[Network] 10. 넷마스크, 서브넷, 서브넷마스크, CIDR, 서브네팅
넷마스크(Netmask)
-
네트워크 주소 부분의 비트를 1로 치환한 것이 넷마스크이다.
- 따라서 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 를 줄여서 효율적으로 네트워크를 할당할 수 있다.
- 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 로 하지 않는다는 것이다.
클래스풀
-
CIDR 가 나오면서 Class 체계보다 더 유연하게 IP 주소를 여러 네트워크 영역으로 나눌 수 있게 되었다.
도메인간 라우팅
- CIDR 는 위 Intra-Domain 과 같이 각 네트워크 대역을 구분짓고 Inter-Domain 과 같이 구분된 네트워크간 통신을 위한 주소 체계다.
CIDR 표기법
- 이처럼 IP 주소 뒤에
192.168.10.0/24
이런식으로/24
를 본 적 있다면, 바로 이것이 CIDR 표기법이다. - 이 숫자는 비트 단위이며
0~32
까지 표현 가능한다. -
IP 를 표현하는 방식은 옥텟이라는 단위로 나누게 된다. 하나의 옥텟은 8비트로 이루어져 있으며 일반적으로 사용하는 IPv4 주소는 4개의 옥텟으로 이루어져 있다. 따라서 CIDR 는
0~32
까지 총 32비트까지 사용 가능한 것이다. - 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로 변환하게 되어서 가능해진다.
-
즉, 서브넷팅 하는 경우에는 네트워크 주소 부분의 비트를 연장한다. 그리고 그 나머지 호스트 부분이 호스트 식별자가 된다.
- 서브네팅을 빠르게 이해하려면, 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)
이 된다. 194.139.10.7/25
라는 IP 를 서브넷팅 해보자./25
는 서브넷 마스크가25bit
라는 의미로255.255.255.128
이 된다.- 그럼 호스트에 IP 를 할당할 수 있는 범위가
0~127
,128~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
과는 라우터를 통하여서만 통신할 수 있는 것이다.
댓글 남기기