[Network] 10. 넷마스크, 서브넷, 서브넷마스크, CIDR, 서브네팅


넷마스크(Netmask)

  • 네트워크 주소 부분의 비트1로 치환한 것이 넷마스크이다.

    Untitled

  • 따라서 IP 주소와 넷마스크를 AND 연산 하면 네트워크 주소를 얻을 수 있다.
  • 이 넷마스크가 어디에 사용될까?

서브넷

  • 서브넷은 IP 주소에서 네트워크 영역을 부분적으로 나눈 부분 네트워크로, 부분망이다.
  • 원본 네트워크를 여러 개의 네트워크로 분리하여 서브넷으로 만드는 과정을 서브넷팅이라 하고, 네트워크 ID와 호스트 ID를 분리하는 서브넷 마스크를 통해 이루어진다.
  • IP 주소에서 128비트 체계의 IPv6가 나오기 전에 IPv4가 있었다.
  • IPv4 주소는 클래스를 나누어서 IP 를 할당하는 방식이다. 그러나 이 방식은 비효율적인 방식이다.
  • 예를 들어, 어떤 회사에서 클래스 B를 할당해서 65,534 개의 IP 주소, 즉 호스트 할당을 쓸 수 있으나 IP 를 다 쓰지 않고 10,000 개의 IP 만 사용한다면 55,534 개의 IP 는 쓰이지 않고 낭비되게 된다.
  • 따라서 클래스 단위로 IP, 즉 네트워크를 분류하는 것은 비효율적이라는 결론이 나오고, 좀 더 적절한 단위로 네트워크를 분할해야 할 필요성이 생겨 서브넷이 탄생하게 된 것.
  • 즉 서브넷은 하나의 네트워크를 나누어 네트워크를 효율적으로 분배하고자 하는 것이고, 이 때 서브넷마스크라는 개념으로 네트워크를 나눈다. 서브넷에 마스크를 씌워서 필요없는 IP 는 가린다는 의미로 서브넷 마스크라고 부른다.
  • 서브넷을 쪼개는 서브넷팅CIDR 에 속하고 서브넷을 합치는 슈퍼네팅 또한 CIDR 에 속한다.

서브넷 마스크 (Subnet mask)

  • 하나의 네트워크를 나누어 네트워크를 효율적으로 분배하고자, 서브넷마스크를 이용하여 네트워크를 나눈다.

서브넷 마스크의 형태

  • 서브넷 마스크의 형태는 IP 주소와 똑같이 32bit의 2진수로 되어 있으며, 8bit(1byte)마다 .(dot)으로 구분하고 있다. 즉, IP 와 똑같은 OOO.OOO.OOO.OOO의 모습을 가지고 있다.
  • 그러나 형태가 똑같다고 하여서 역할을 혼동하면 안 된다. 형태가 똑같은 이유는 IP 주소와 서브넷 마스크를 AND 연산하기 위해서다.
  • 서브넷 마스크는 2진수로 표현했을 때, 앞자리가 모두 1로 구성되고 뒷자리는 모두 0으로 구성되어 있다.
  • 11111111.00000000.00000000.00000000 = 255.0.0.0
  • 11111111.11111111.00000000.00000000 = 255.255.0.0
  • 11111111.11111111.11111111.10000000 = 255.255.255.128
  • IP 주소와 서브넷 마스크 주소를 AND 연산하면 네트워크 ID를 구할 수 있다. 2진법에서 AND 연산은 두 개의 수가 모두 1일 때는 1, 하나라도 0이면 0으로 표기한다.
  • 예시
    • IP주소: 115.95.229.196 → 01110011.01011111.11100101.11000100
    • 서브넷 마스크: 255.255.255.0 → 11111111.11111111.11111111.00000000
    • 위의 두 주소를 AND 연산하면, 01110011.01011111.11100101.00000000이 나온다. 이는 115.95.229.0 로서 새로운 네트워크 ID(주소)는 115.95.229.0 가 되는 것이다.
    • 원래는 115.0.0.0가 네트워크 주소지만, 서브넷 마스크를 씌워서 네트워크 주소를 분리한 것이다.
    • 이렇게 서브넷 마스크를 씌우게 되면 이제는 115.95.229로 시작하는 주소만을 같은 네트워크에 있다고 인식하게 되고, 호스트 주소는 네트워크 주소 (115.95.229.0)와 브로드캐스팅 주소 (115.95.229.255)를 제외하고 254개(2^8-2)를 가질 수 있게 된다.
    • 즉 쓰이지 않고 낭비되는 IP 를 줄여서 효율적으로 네트워크를 할당할 수 있다.

기본 서브넷 마스크

  • 서브넷 마스크를 이해하기 위해서는 기본 서브넷마스크(Default Subnet Mask)와 서브넷 네트워크를 알고 있어야 한다.
  • 사실 우리가 IP 를 클래스로 나눈다는 뜻은 결국 서브넷 마스크를 사용한다는 말과 같은 의미다.
  • 예를 들어 C 클래스를 그대로 사용한다는 것은 C 클래스 네트워크를 쪼개지 않고 그대로 하나의 네트워크에 할당할 수 있는 2^8-2개의 호스트 ID를 사용하겠다는 뜻이고, 이 때는 255.255.255.0 이 기본 서브넷 마스크가 된다.
  • 즉, 별개의 서브넷 마스크를 생성하지 않아도 기본적으로 적용되어 있는게 기본 서브넷 마스크이고, 기본 서브넷 마스크로 쪼개진 네트워크 주소를 서브넷 네트워크라고 한다.

  • 기본 서브넷 마스크의 형태를 보면, 네트워크 부분의 비트만 1로 치환한 모습이다. 즉 기본 서브넷 마스크는 넷마스크라고도 할 수 있는 것이다.
  • 위 예시에서 서브넷 마스크 주소 뒤에 붙은 /24 같은 것들은 서브넷 마스크의 bit 수를 의미한다.
  • 옥탯 하나의 8bit가 모두 1일 경우 10진수로 255가 되기에 /24는 왼쪽부터 나열된 1bit의 수가 24개라는 뜻이다. 따라서 192.168.0.3/24는 IP 주소가 192.168.0.3 이며, 서브넷 마스크가 255.255.255.0이라는 의미가 된다.
  • 요즘에는 뚜렷하게 넷마스크와 서브넷 마스크를 구분하지 않는다고 한다. 왜냐면 CIDR 이후(현재) 서브넷 마스크만 쓰고 있기 때문이다.

CIDR

  • CIDR 의 full name 은 Classless Inter-Domain Routing 으로 클래스 없는 도메인간 라우팅 기법이라는 뜻이다. 이는 기존 IP 주소를 A, B, C 클래스로 나누었던 클래스풀 방법의 단점을 보완한 클래스리스에 해당한다.
  • 서브넷 마스크는 결국 2진수로 표현했을 때 앞자리를 모두 1로 만들면 되는 것이기 때문에 1이 몇 개인지만 알면 해당 서브넷 마스크를 쉽게 알 수 있다.
  • 서브넷 마스크를 개수로 표현한 것을 CIDR 이라고 이해하면 편하다. 즉 네트워크 주소를 적고 /<개수>로 표기해주면 끝이다.
  • 클래스가 없다는 뜻은 네트워크 구분을 아래와 같이 Class 로 하지 않는다는 것이다.

    Untitled클래스풀

  • CIDR 가 나오면서 Class 체계보다 더 유연하게 IP 주소를 여러 네트워크 영역으로 나눌 수 있게 되었다.

    Untitled도메인간 라우팅

  • CIDR 는 위 Intra-Domain 과 같이 각 네트워크 대역을 구분짓고 Inter-Domain 과 같이 구분된 네트워크간 통신을 위한 주소 체계다.

CIDR 표기법

  • 이처럼 IP 주소 뒤에 192.168.10.0/24 이런식으로 /24를 본 적 있다면, 바로 이것이 CIDR 표기법이다.
  • 이 숫자는 비트 단위이며 0~32 까지 표현 가능한다.
  • IP 를 표현하는 방식은 옥텟이라는 단위로 나누게 된다. 하나의 옥텟은 8비트로 이루어져 있으며 일반적으로 사용하는 IPv4 주소는 4개의 옥텟으로 이루어져 있다. 따라서 CIDR 는 0~32 까지 총 32비트까지 사용 가능한 것이다.

    Untitled

  • CIDR 가 /24 라면 위 그림과 같이 앞에서부터 24비트 이후에 오는 4번째 옥텟(파란색 부분)을 전부 사용할 수 있다는 표현이다.
  • 하나의 옥텟은 8비트로 2^8 인 256개 이기 때문에, 143.7.65.203/24 일 때 143.7.65.0 ~ 143.7.65.255 까지 사용이 가능한 것이다.
  • 이렇게 CIDR 값이 각 자리의 옥텟을 전체를 포함하는 /8, /16, /24, /32 일 경우는 계산하기 쉽다. 0 부터 그 옥텟의 자리에 해당하는 255 까지 라고 보면 되기 때문이다. 다시 간단한 예로 143.7.65.203/16 이라면 143.7.0.0 ~ 143.7.255.255 가 될 것이다.
  • 애매하게 걸쳐 있는 쪽의 옥텟의 10진수 값을 2진수로 변경하여 걸쳐 있는 비트수 만큼의 최소값과 최대값을 구하면 된다.

서브네팅

  • 네트워크 주소는 하나의 네트워크를 통칭하기 위한 주소로, 해당 네트워크의 첫번째 IP주소다. 계산방법은 IP 주소와 서브넷 마스크의 AND연산으로 구해진다.
  • 브로드캐스트 주소는 특정 네트워크에 속하는 모든 호스트들이 갖게 되는 주소다. 네트워크에 있는 클라이언트 모두에게 데이터를 보내기 위함이다.
    • 해당 네트워크에 속하는 모든 IP 주소 가운데 맨 마지막 IP주소
    • 계산방법 : 서브넷 마스크의 0인 부분을 모두 1로 바꾼다.
    • 예를 들어 C 클래스 하나로 특정 IP 를 할당했고 그 IP 의 네트워크 주소가 192.168.2.0 라면, 브로드캐스트 주소는 192.168.2.255 가 된다.
  • 서브네팅(Subnetting)
    • 한 개의 네트워크를 서브넷 마스크를 이용해 여러 개의 서브넷 네트워크로 분할 하는 것이다.
    • 왜 하나의 네트워크를 여러 개로 나눠야 할까?
      • 네트워크 자원을 효율적으로 사용하기 위함이다.
      • 극단적으로 예를 들자면, A 클래스는 하나의 네트워크에 16,777,214개나 되는 호스트를 할당할수 있기에 만일 그런 네트워크를 일반 가정집에 부여한다면 정말 많은 IP 가 낭비될 것이다. IP 를 사용하는 네트워크 장치들의 수에 따라 효율적으로 사용할 수 있도록 하는 방법이 바로 서브넷팅이다.
      • 반대로, 네트워크를 합쳐 네트워크를 확장하는 슈퍼넷팅(Supernetting)이라는 개념도 존재한다.
      • 서브넷팅은 서브넷 마스크를 이용하여 Host ID 를 Network ID 로 변환하게 되고, 슈퍼넷팅은 서브넷 마스크를 이용하여 Network ID 를 Host ID로 변환하게 되어서 가능해진다.
      • 즉, 서브넷팅 하는 경우에는 네트워크 주소 부분의 비트를 연장한다. 그리고 그 나머지 호스트 부분이 호스트 식별자가 된다.

        Untitled

    • 서브네팅을 빠르게 이해하려면, A 클래스 IP주소(예를 들어 1.1.1.1)의 기본 서브넷 마스크(255.0.0.0)를 B 클래스의 서브넷 마스크(255.255.0.0)로 변경하는 예시를 생각해보면 된다.
    • 변경된 서브넷 마스크로 AND 연산을 하게 되면 네트워크 ID가 기존의 1.0.0.0이 아닌 1.1.0.0으로 확장된다.
    • 반대로 호스트 ID 의 범위는 기존의 0.0.0.0 ~ 0.255.255.255 (약 16,777,216개)에서 0.0.0.0 ~ 0.0.255.255 (약 65,534(256 * 256)개)로 훨씬 적어졌음을 알 수 있다.

서브넷팅의 특징

  • 서브넷팅을 통해 Network ID가 확장되므로 인해 할당할 수 있는 네트워크의 수가 늘어난다.
    • 하지만 네트워크가 분리되기 때문에 서로가 통신하기 위해서는 라우터를 통하여서만 가능하게 된다.
    • 물론 각 네트워크에 속해 있는 호스트들은 같은 영역에 존재하기에 라우터까지 거치지 않고도 통신할 수 있다.
  • 또한 특정 몇 군데의 호스트에서 너무 많은 트래픽을 발생시켜서 속도를 저하시키는 문제를 해결할 수 있다.
    • 이는 서브넷팅을 통하여 네트워크가 분리되기 때문에 브로드캐스트 도메인의 크기가 줄어들게 되므로 가능한 일이다. (브로드캐스트 주소가 다양해짐)
    • 서브넷의 브로드캐스트 주소는 255 보다 훨씬 작은 수를 가질 수 있게 된다.
    • 한 브로드캐스트 주소를 너무 많은 호스트가 갖는 걸 방지할 수 있기 때문에 트래픽 문제를 해결할 수 있는 것이다.

서브넷팅 계산 방법

  • 서브넷 마스크는 2진수로 표현하였을 때 Network ID 부분은 1이 연속적으로 있어야 하며, Host ID 부분은 0이 연속적으로 있어야 한다. 즉, 중간에 1이나 0이 섞이면서 나열될 수 없다.
  • 이로 인해 서브넷 마스크가 Network ID를 확장하면서 1bit씩 확보하게 되면 네트워크 할당 가능 수가 2배로 증가하지만 반대로 호스트 할당가능 수가 2배로 줄어들게 된다.
  • 예를 들어 11111111.11111111.1111111.00000000(255.255.255.0)에서 네 번째 옥탯에 1bit를 확보하면 11111111.11111111.11111111.10000000(255.255.255.128)이 된다.

    Untitled

  • 194.139.10.7/25 라는 IP 를 서브넷팅 해보자. /25는 서브넷 마스크가 25bit라는 의미로 255.255.255.128이 된다.
  • 그럼 호스트에 IP 를 할당할 수 있는 범위가 0~127128~255가 되며, 네트워크 영역은 194.139.10.0 과 194.139.10.128가 되어 2개로 나누어지게 된다.
  • 이 때, 네트워크 영역이 2개로 나누어진다는 의미는, 각 범위의 가장 첫 번째 IP 를 네트워크 주소로 할당한다는 의미다. 결국 194.139.10.7/25가 속한 네트워크는 194.139.10.0/25 대역에 속하게 되며, 다른 서브넷팅 된 네트워크인 194.139.10.128과는 라우터를 통하여서만 통신할 수 있는 것이다.
맨 위로 이동 ↑

댓글 남기기