본문 바로가기

네트워크

네트워크 기초 - CIDR과 서브넷팅

1. CIDR (사이더)

이전 포스팅에서 IP와 클래스에 대해 다루었고 지나가면서 CIDR에 대한 언급이 조금 있었는데, 이 CIDR는 무엇인지 짚고 넘어가겠습니다.

 

Classless Inter-Domain Routing의 약자로, 클래스가 없는 도메인간 라우팅 기법이라는 뜻입니다.

클래스가 없다는건 네트워크의 구분을 전에 본 클래스가 아니고 다른 방식으로 한다는 것으로, 클래스로 네트워크를 구분하는것은 CIDR가 나오기 전의 방식입니다. 

 

도메인간 라우팅은 아래 그림의 Inter-Domain과 같은 형태로 각 네트워크 대역을 구분짓고 구분된 네트워크간 통신을 위한 주소체계입니다.

 

우선, IP 클래스는 네트워크, 호스트의 수에 맞게 IP를 나누는 방식이지만 가뜩이나 부족한 IP를 비효율적으로 할당하게 됩니다. 예를들어서 C클래스는 254개의 호스트를, B클래스는 65,533개의 호스트를 가질수 있는데 마침 내가 255개의 호스트를 가지고 있다면 65,533개까지 필요없음에도 불구하고 B클래스를 사용해야 할수 있습니다. 그러면 주소공간이 거의 대부분 낭비되게 되고 IP의 고갈도 빨라지는 현상이 발생합니다.

 

이 문제의 해결책인 CIDR은 네트워크 주소를 더 유연하게 할당하는 방법입니다. 서브넷마스크를 클래스가 지정하는것이 아니고, 필요에따라 직접 지정하는 방식이 되겠습니다.

 

현재는 클래스 할당을 사용하지 않고 CIDR을 사용한 할당만을 사용합니다. 때문에 넷마스크와 서브넷마스크의 구분이 거의 없어지고 서브넷마스크라는 용어만 사용됩니다.

 

 

 

2. 서브넷팅

서브넷마스크를 사용하여 네트워크를 분리하는 작업입니다.

 

예시를 들어 기존 IP와 서브넷마스크는 다음과 같은 형식입니다.

IP 192.168.10.70
서브넷마스크 255.255.255.0

이 정보를 가지고 유추할 수 있는 내용은 다음과 같습니다.

192.168.10.0 ~ 192.168.10.255까지 사용가능하며

192.168.10.0 의 네트워크 ID

192.168.10.70 의 호스트 ID를 가진다는것입니다.

 

이것을 CIDR 표기법으로 바꿔 보겠습니다.

192.168.10.70/24

 

눈치가 빠르다면 뒤에붙은 /24가 무슨 뜻일지 아실겁니다. 바로 서브넷마스크를 이진수로 표현했을때 1의 갯수입니다. 255.255.255.0에서 255는 한 옥텟의 8비트공간이 전부 1로 채워져 있는것입니다. 그러므로 1의 갯수가 8 X 3 = 24개입니다.

 

지금은 두개의 각 예시가 의미하는 바가 같지만, CIDR의 장점은 바로 /24의 숫자를 필요에따라 더 쓰거나 적게 사용하여 IP를 적절하게 할당할 수 있다는것입니다.

 

다음 예시를 들어보겠습니다.

192.168.10.70/26

 

이 예시에서는 서브넷마스크의 1의 갯수가 26개입니다. 네번째 옥텟의 최상위 2개의 비트가 1이고, 나머지 6비트를 호스트로 할당하게 됩니다. 

 

1100 0000(2) = 192로, 서브넷마스크는 255.255.255.192가 됩니다.

IP 192.168.10.70
서브넷마스크 255.255.255.192

256 - 192 = 64 (특수목적 IP - 2) = 62 이므로 62개의 호스트를 가질 수 있게 됩니다.

22 = 4, 256 / 64 = 4이므로 4개의 서브넷 네트워크를 가진다는것도 알수 있겠네요.

 

 

그래서 사용할 수 있는 IP의 대역에 대한 정보는 다음과 같습니다.

네트워크 1 192.168.10.0 ~ 192.168.10.63
네트워크 2 192.168.10.64 ~ 192.168.10.127
네트워크 3 192.168.10.128 ~ 192.168.10.191
네트워크 4 192.168.10.192 ~ 192.168.10.255

단, 각 네트워크의 첫번째와 마지막 IP는 사용이 불가능합니다.

192.168.10.70/26 은 이렇게 분리된 4개의 네트워크와 각 62개의 호스트를 가진 네트워크를 사용한다는 것을 의미하며, 자신이 두번째 네트워크에 속해있다는것을 알립니다.

 

이 개념은 굉장히 많이 사용되고, 머릿속에서 깊이 생각할 필요없이 계산을 할 수 있어야 하는 정도까지 숙달되셔야 합니다. 아래의 표를 보시면 웬만한 서브넷팅은 가능하게 되니 거의 외우다시피 하셔야 합니다.

 

초심자를 위한 계산기가 따로 있지만, 검증용도로만 사용을 하시고 지금은 종이에 적으면서 풀이를 하더라도 익숙해 지는것이 중요할 것 같습니다. 서브넷팅 문제를 검색하셔서 많이 풀어보시며 숙달하시기 바랍니다.

 LINK  https://www.subnet-calculator.com/

 

 

3. 슈퍼넷팅

CIDR의 장점중 하나입니다. 서브넷팅이 네트워크를 분할하는것이라면, 슈퍼넷팅은 반대의 개념입니다. 네트워크를 합치는 것을 슈퍼넷팅이라고 할수 있겠습니다.

 

예를들어 192.168.10.0/24를 사용하면 192.168.10.0~192.168.10.255 범위에서 254개의 호스트를 가질 수 있지만, 이 네트워크에 몇명이 추가로 들어와서 더 많은 호스트가 필요하게 되었다면?

 

C클래스 2개를 합쳐서 하나의 네트워크로 구성하여 사용할 수 있습니다.

192.168.10.0/23을 사용해보겠습니다.

 

세번째 옥텟의 7비트까지 1이고, 나머지는 0을 가지게 될겁니다. 

마스크는 255.255.254.0 이 되겠네요. 

255 - 254 = 1이므로 192.168.10.0 ~ 192.168.11.255 의 범위를 가지게 되는 네트워크가 될겁니다.

그러면 C클래스 두개를 합쳐 256 X 2 = 512 - 2(특수목적 IP) = 510 개의 호스트를 가질 수 있는 네트워크가 완성되었습니다.

 

마찬가지로 많은 문제들을 풀어보시며 연습하시고, 계산기는 검증용도로만 사용하시길 권합니다.

 LINK  https://www.subnet-calculator.com/cidr.php