ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [네트워크] 3. IP 주소, 서브넷 - 후니의 쉽게 쓴 시스코 네트워킹
    IT/네트워크 2024. 8. 30. 14:56

     

    📝 IP 주소

     

    TCP/IP라는 프로토콜을 만들 때 이 프로토콜을 사용하는 모든 장비들을 구분해주기 위해서 만들어낸 것이 바로 IP 주소이다. 서로 간의 통신을 위해 이들을 구분할 주소가 필요했다. 요즘은 공인 IP 주소를 따내기가 그리 쉽지 않은데, 그것은 공인 IP 주소의 한계 때문이다.

     

    IP 주소는 이진수 32자리로 되어있다. 즉) 0000 0000.0000 0000.0000 0000.0000 0000에서 1111 1111.1111 1111.1111 1111.1111 1111까지이다. 따라서 지정 가능한 전체 IP 주소의 개수는 약 2의 32승 정도밖에 되지 않는다. 이는 약 42억 9,000개가 나온다. 이진수 8자리마다 점을 찍기 때문에 이들 8개를 묶어서 '옥텟(Octet)'이라고 부른다. 그래서 IP 주소는 총 4개의 옥텟으로 나뉘는 것이다. 

     

    출처 : satoshi25.log

     

     

    📝 라우터에서 IP 주소 

     

    조그만 네트워크를 꾸민다고 가정해볼때 약 50대 정도의 PC, 그리고 그 PC들이 전용선을 통해 인터넷을 쓴다고 할 때 라우터에 IP 주소를 배정하는 규칙을 알아보자.

     

    시스코 2501 라우터의 경우 이더넷 인터페이스는 1개이고, 인터넷과 접속하기 위한 시리얼 인터페이슨느 2개이다. 시리얼 인터페이스는 DSU 또는 CSU라는 전용선 모뎀에 연결된다. 위와 같은 가정에서 라우터에 부여해야 하는 IP 주소는 2개가 된다. 하나는 이더넷(Ethrnet) 인터페이스에 부여할 주소이고, 또 하나는 시리얼(Serial) 인터페이스에 부여할 IP 주소이다. 이더넷용 IP 주소는 IP 주소는 우리가 내부에서 사용하기 위해 부여받은 IP 주소 중 하나를 배정해야한다.

     

    만약 내부 PC용으로 부여받은 주소가 203.120.150.1 ~ 203.120.150.255까지라면 라우터의 주소는 203.120.150.1(보통 앞 번호 사용)이 된다.

     

    그럼 시리얼(Serial)에는 어떤 주소가 부여될까?

     

    우리 마음대로 부여할 수 있는게 아니라 라우터가 접속하는 상대편(ISP 업체) 라우터의 시리얼 인터페이스와 IP 주소를 서로 맞추어야 하기 때문이다. 일단 우리 내부용 IP 주소와는 다른 네트워크가 되며 상대편 라우터의 시리얼과는 같은 네트워크가 된다. 

     

    상대평 라우터의 시리얼이 203.150.150.5에 서브넷 마스크가 255.255.255.252라면 우리 라우터의 Serial은 203.150.150.6에 서브넷 마스크는 255.255.255.252가 되는 것이다.

     

     

     

    📝 네트워크 부분(Network Part) 와 호스트 부분(Host part)

     

     

     🔖네트워크 부분

     

    여기서 말하는 네트워크 부분은 하나의 브로드캐스트 영역(Broadcast Domain)이라고 생각하면 된다. 하나의 PC가 데이터를 뿌렸을 때 그 데이터를 라우터를 거치지 않고 바로 받을 수 있는 영역이란 뜻이다.

     

    예를 들어 보면, A라는 게임방에서 한 PC가 데이터를 그 게임방 안에 있는 다른 PC에게 전송하면 그 데이터는 라우터를 거치지 않고 바로 전달이 가능하다. 왜냐하면 두 PC는 같은 네트워크 영역안에 있기 때문이다. 하지만 A라는 게임방의 PC가 인터넷의 어떤 PC(예를 들면 외국에 있는 PC나 서버)에 데이터를 보낸다면 그건 라우터를 거치지 않고는 전달이 불가능하다. 왜냐하면 두 PC가 같은 네트워크상에 있지 않기 때문이다. 

     

    정리하자면 한 네트워크란 하나의 브로드캐스트 영역이란 말인 동시에 라우터를 거치지 않고도 통신이 가능한 영역이다.

     

     

     

     🔖호스트 부분

     

    각각의 PC 또는 장비라고 생각하면 된다. 

     

    이렇게 네트워크와 호스트를 언급한 이유는 IP 주소가 그냥 보기에는 점 3개로 나누어진 4자리 숫자 같지만 사실 IP 주소 자체는 네트워크 부분과 호스트 부분으로 나누어져 있다.

     

    따라서 어떤 네트워크에서든지 '하나의 네트워크' 에서는 네트워크 부분은 모두 같아야 되고 호스트 부분은 모두 달라야 정상적인 통신이 일어난다.

     

    예들 들어 볼때,

    한 사무실에서 50대의 PC가 한 라우터를 통해 연결되어 있다면(한 라우터에 하나의 인터페이스란 표현이 더 맞다. 왜냐하면 하나의 라우터에도 여러 개의 인터페이스가 있으니 말이다.) 이 PC들은 모두 같은 네트워크 상에 있다고 말한다. 따라서 이 PC들의 IP주소 중 네트워크 부분은 모두 같아야 한다. 그래야 라우터를 거치지 않고 서로 통신하는 것이 가능하다.

     

    하지만 호스트는 서로 달라야된다. 만약 호스트가 같으면 두 PC는 서로 IP주소 충돌이 생겨 통신이 불가능하게 된다. 마치 각 지방별로 전화번호를 나눌 때 한 지역의 지역번호는 모두 같고 전화번호는 서로 다른 것과 마찬가지이다.

     

    만약 IP 주소가 203.240.100.1에서 203.204.100.255까지라면 이 중 네트워크 부분은 203.204.100이다. 

     

     

     

     

    📝 IP 주소의 활용

     

    네트워크가 서로 다른 두 장비 간의 통신은 라우터를 통해서만 가능하다. TCP/IP 통신할 경우 라우터의 각 인터페이스 역시 IP 주소를 부여해 주는 것이 좋다. 라우터의 인터페이스에 IP 주소를 부여할 때는 그 인터페이스가 속한 네트워크의 주소를 부여해야한다. IP 주소를 배정할때는 그 네트워크에 몇 개의 호스트가 접속이 가능한지를 먼저 확인한 후에 배정하는 주소가 이 호스트를 모두 포함할 수 있는지를 확인해야한다. 즉) 예를들어 300개의 호스트가 있는 네트워크에 클래스 C 하나를 배정하면 안 되는 것이다.(클래스 C는 최대 가능 호스트 수가 254이기 때문이다.)

     

     

     

     

    📝 서브넷 마스크(Subnet Mask)

     

    서브넷 마스크란 서브, 즉 메인이 아닌 어떤 가공을 통한 네트워크를 만들기 위해 씌우는 마스크라고 생각하면 된다. 다시 말해 우리가 일단 어떤 IP 주소를 배정받게 되면 보통은 이 주소를 그대로 사용하지 않는다. 자신의 입맛에 맞춰야 하기 때문이다.

     

    예를 들어 클래스 B 주소를 받았다고 가정할때 하나의 네트워크가 65,000여 개의 호스트를 가지는데, 이렇게 큰 네트워크를 구성했다가는 브로드캐스트의 영향이 너무 커서 아무것도 할 수 없을 것이다.

     

    따라서 나누어 써야한다. IP 주소를 자를 때는 서브넷 마스크를 사용한다. 부여받은 원래 상태 IP 주소에 서브넷 마스크를 씌워서 네트워크를 나누어 주는 것이다. 즉) 서브넷 마스크는 주어진 IP 주소를 네트워크 환경에 맞게 나누어 주기 위해 씌워주는 이진수의 조합이다.'

     

    서브넷 마스크 관련 상세 내용은 다음 포스팅에서 알아볼 예정!

     

     

     📝서브넷팅(Subnetting)

     

    클래스 C의 경우 디폴트 서브넷 마스크는 255.255.255.0, 클래스 B의 경우는 255.255.0.0, 클래스 A는 255.0.0.0이다. 그러므로 주어진 네트워크를 하나도 나누지 않고 그대로 다 쓰는 경우 디폴트 서브넷 마스크릴 쓰면 된다. 만약 가공해서 쓰는 경우 디폴트 서브넷 마스크를 고쳐서 쓴다. 

     

    서브넷 마스크는 IP 주소를 가지고 어디 까지가 네트워크 부분이고, 또 어디까지가 호스트 부분인지를 나타내는 역할을 한다. 서브넷 마스크가 이진수로 '1'인 부분은 네트워크이고, 호스트는 서브넷 마스크기 아진수로 '0'인 부분이다. 

     

    1101 0010.0110 0100.0110 0100.0000 0001 = 210.100.100.1 -> IP주소
    1111 1111.1111 1111.1111 1111.0000 0000 = 255.255.255.0 -> 서브넷 마스크
    1101 0010.0110 0100.0110 0100.0000 0000 =210.100.100.0 -> 서브넷 네트워크

     

    위의 255.255.255.0인 서브넷 마스크는 255.255.255까지가 네트워크 주소이고 0이 호스트 부분인 것이다. IP 주소를 적고, 아래에 서브넷 마스크를 적은 후 이 둘을 논리적 AND를 하게 되면 아래 서브넷 네트워크가 된다. 이 과정을 서브네팅(Subnetting) 이라고 한다. 

     

    다시한번 서브넷 마스크를 정리해보자면 서브넷 마스크는 디폴트 서브넷 마스크와 무언가를 변형한 서브넷 마스크로 나누어볼 수 있다. 서브넷 마스크를 사용하는 이유는 커다란 네트워크(호스트 숫자가 많은 네트워크)를 작은 네트워크 여러 개로 나누어서 쓰기 위함이다. 서브넷 마스킹은 기존 IP 주소의 호스트 일부분을 네트워크 부분으로 바꾸는 작업이다.

     

     

     

    📝 서브넷 마스크 기본 성질

     

    서브넷 마스크로 만들어진 네트워크, 즉) 서브넷은 이제 하나의 네트워크기 때문에 서로 나뉜 서브넷끼리는 라우터를 통해서만 통신이 가능하다. 예를들어 150.100.0.0이란 클래스 B 네트워크가 있다고 가정한다. 이때 150.100.100.1과 150.100.200.1은 라우터를 거치지 않고 통신이 가능하다. 같은 네트워크에 있기 때문이다. 

     

    클래스 B의 경우 디폴트 서브넷 마스크는 255.255.0.0이다. 즉) 2개의 옥텟까지 255가 있으니까 두 자리가 네트워크 부분이 되는 것이다.  만약 이 주소를 255.255.255.0이란 서브넷 마스크를 사용해서 서브네팅했다고 가정해보자. 이렇게 되면 네트워크 부분이 바뀌게 된다. 기존에는 150.100까지가 네트워크 부분이었는데, 서브넷 마스크가 세 번째 옥텟까지 255기 때문에 네트워크 부분은 세자리가 되어서 150.100.100과 150.100.200으로 바뀌게 된다. 이제 150.100.100.1(서브넷 마스크 255.255.255.0)과 150.100.200.1 (서브넷 마스크 255.255.255.0)은 네트워크 부분이 서로 달라 라우터를 거치지 않으면 통신이 불가능해졌다. 

     

    즉) 서로 다른 브로드캐스트 도메인에 존재하고 있기 때문에 아무리 소리쳐 불러도 상대편이 목소리를 들을 수 없다. 

     

    또, 하나의 성질은 서브넷 마스크는 이진수로 썼을 때 '1'이 연속적으로 나와야 한다. 다시 말하자면 255.255.255.10이란 서브넷 마스크는 사용할 수 없다. 이진수로 바꿔보면 1111 1111. 1111 1111. 1111 1111.0000 1010이라 1010과 같이 1이 연속적으로 나오지 않았기 때문이다. 

     

    255.255.255.252는 어떨까? 이진수로 변경 시 '1111 1111. 1111 1111. 1111 1111.1111 1100' 으로 1이 연속적으로 나왔기 때문에 서브넷 마스크로 사용 가능하다. 

     

     

    📝 라우터와 서브넷마스크

     

    기본적으로 네트워크가 나누어지게 되면 두 개의 네트워크를 서로 건너가는 방법은 라우터밖에 없다. 서브넷 마스크를 이용해서 나눈 다음에도 둘 사이에는 라우터가 놓이게 된다. 그렇다면 왜 나눌까?? 그것은 네트워크 주소의 효율적인 이용을 위하며 브로드캐스트 도메인을 줄이기 위한 것이다. 따라서 라우터 없이 네트워크를 나누기 위해 서브넷 마스크를 만들어 쓴다는 말은 틀린 말이다.

     

     

     

    📝 서브넷 마스크 구하기 예제

     

    문1)
    C클래스 네트워크를 24개의 서브넷으로 나누려고 한다. 각 서브넷에는 4~5개의 호스트가 연결되어야한다. 어떤 서브넷 마스크가 적절한가?

     

    A1) 

    서브넷 마스크를 적용해야 하는 부분은 클래스 C였으니 마지막 8비트가 된다. 먼저 4~5개 호스트를 가지려면 몇 비트의 호스트 비트가 필요한지 알아보자. 2의2승은 4가 되지만 맨 앞은 서브넷 자체라서 버리고 맨 뒤는 브로드캐스트 주소라서 못 쓰니 2비트를 호스트 비트로 썼을 때 막상 호스트에 지정할 수 있는 주소는 2개밖에 안된다. 2의 3승은 8이 되니까 앞뒤 2개를 버린다고 해도 6개의 호스트 주소가 생겨 위의 조건에 만족한다. 

     

    2의 5승이 32니까 5비트로 24개의 서브넷을 만들 수 있다. 즉 서브넷의 수가 24개가 되고 호스트가 4~5개이면 클래스 C의 경우는 NNNN NNNN.NNNN NNNN.NNNN NNNN.nnnn nhhh(N=클래스 C의 네트워크 부분, n = 서브넷의 네트워크 부분, h = 호스트 부분)이 된다. 

     

    따라서 값은 222522252225.1111 1000으로 255.255.255.248이된다.

     

     

    문2)
    IP 주소가 128.110.121.32(255.255.255.0)이라면 네트워크 주소는 어떻게 되는가?

     

    A2)

    원래 126.110.121.32라면 클래스 B라서 네트워크 주소는 128.110.0.0이 된다. (클래스 B는 네트워크 부분이 2옥텟, 호스트 부분이 2옥텟이니까 호스트 부분을 전부 0으로 한 값인 128.11.0.0이다.)

     

    그런데 여기서는 서브넷 마스크가 뒤에 따라 나온다. 서브넷 마스크에서 3개의 옥텟에 255가 있으니까 맨 마지막 8비트(옥텟)만을 0으로 한 128.110.121.0이 답이 된다. 

     

     

    문3)
    IP 주소 203.10.24.27이란 호스트의 서브넷 마스크는 255.255.255.240이다. 이때 네트워크의 호스트 범위와 브로드캐스트 주소는 어떻게 되는가?

     

    A3)

    서브넷 마스크 맨 마지막 240을 이진수로 바꾸어 보면 1111 0000이 된다. 따라서 호스트 부분은 4자리가 되고 나머지 4자리가 서브넷 부분이 된다. 그렇다면 27이 0001 1011이니까 뒤에서 4자리는 호스트 부분, 5번째 자리에서 8번째 자리는 서브넷 부분이 된다. 

     

    그럼 호스트 부분을 전부 0으로 만든 것이 네트워크라고 했으니까 전부 0으로 만들어보면 203.10.24.0001 0000이 되어 네트워크 주소는 203.10.24.16이 네트워크 주소에 된다. 이번에는 브로드캐스트 주소를 알아보면 호스트 부분을 전부 1로 만들어주면 되니까 203.10.24.0001 1111이 되어 203.10.24.31이 브로드캐스트 주소가 된다. 

     

    따라서 나머지 호스트에 부여 가능한 호스트 주소는 네트워크 주소에 1을 더한 값부터 시작해서 브로드캐스트 주소에서 1을 뺀 값이니까 203.10.24.17 ~ 203.10.24.30이 된다. 

     

    문4)
    클래스 B주소를 가지고 서브넷 마스크 255.255.255.240으로 서브넷을 만들었을 때 나오는 서브넷의 수와 호스트의 수가 맞게 짝지어진 것은?

     

     

    B의 기본 마스크 주소는 255.255.0.0이고 새로 받은 서브넷 마스크는 255.255.255.240이다. 새로운 서브넷 마스크에서 모두 12비트를 서브넷 부분에 할당했다는 것을 알 수 있다. 

     

    Why?? 255.255.0000 0000.0000 0000 -> 255.255.1111 1111.1111 0000으로 1의 개수가 12개 늘어났기  때문이다. 서브넷당 호스트 수는 새로 받은 서브넷 마스크에서 0인 부분이니까 4자리가 가능하므로 (2의 4승 - 2) 14가 답이 된다.

     

    서브넷은 2의 12승인 4094(여기서 앞 뒤는 빠졌다)가 답이된다. 

     

     

     

     

     


     

    해당 포스팅은 후니의 쉽게쓴 시스코 코딩을 내돈내산으로 구입 후 학습하기 위해 정리한 내용입니다. 😃

     

    반응형

    댓글

Designed by Tistory.