CIDR 저는 항상 씨아이디알이라고 하나씩 읽었는데 구글에서 검색하니 사이더라고 떡하니 나오는 걸 보고 깜짝놀랐습니다. CIDR은 네트워크를 공부하거나 현업에서 가장 빈번하게 사용하는 개념중 하나일 것입니다.
CIDR의 개념
CIDR은 씨아이디알이라고 읽어도 되고 사이더라고 읽기도 합니다. CIDR은 기존 네트워크 클래스로 나눠서 정의하던 IP정보를 클래스 없이 유연하게 나눠줄 수 있는 방식의 라우팅 기법입니다. 정보통신, 네트워크 통신 등을 배우던 분들은 IP 클래스의 개념에 대해서 알고 계실 것입니다. 원래는 클래스라는 단위로 A, B, C, D, E를 나누어서 네트워크를 나눠 사용하고 있었습니다. 하지만 클래스로 나누게 되는 IP들은 유연성이 없고 IP의 개수가 많기 때문에 좀 더 유연하게 사용하고자 CIDR이라는 개념이 나오게 된 것입니다. 이게 글로 설명하기는 참 복잡하지만 우선 클래스나 IP에 대한 글을 한 번 읽어보시면 좋을 것 같습니다.
클래스 및 IP
CIDR의 이해
CIDR을 이해하기 위해서는 우선 IP주소에 대한 전반적이 사항을 이해하고 있어야합니다. 가장 처음으로 우리가 볼 수 있는 IP주소에 대해서 설명해보겠습니다. 그냥 일상생활에서 IP주소가 뭐냐고 물어보면 내 IP 주소는 192.168.0.20이야 라고 할 수 있습니다. 이 IP 주소는 10진수로 표기된 것이며 CIDR을 이해하기 위해서는 2진수로 표기된 컴퓨터가 알아들을 수 있는 말로 변환해야 합니다. 일반적으로 사용하는 서브넷 마스크가 CIDR 전에 사용하던 개념이라고 생각하시면 됩니다.
10진수
192.168.0.20
2진수
1100 0000. 1010 1000. 0000 0000. 0001 0100
이렇게 표현을 할 수 있습니다. IPv4는 32비트이며 따라서 2진수로 표현할 경우 32개의 숫자가 나오게 됩니다. 또한 8개씩 묶어서 .(점)을 찍게 되며 8개씩 묶은 단위를 옥텟(octet)이라고 합니다. 이렇게 나눠진 IP 주소는 이제 서브넷 마스크가 아닌 CIDR을 사용하게 됩니다. 또한 그냥 서브넷 마스크가 아닌 가변길이 서브넷 마스크(VLSM)를 사용하게 됩니다.
CIDR과 클래스의 차이
우선 클래스를 보시면 A클래스, B클래스, C클래스를 놓고 보겠습니다.
A클래스 : 0.0.0.0 ~ 127.255.255.255
B클래스 : 128.0.0.0 ~ 191.255.255.255
C클래스 : 192.0.0.0 ~ 223.255.255.255
이렇게 표현이 될 수 있습니다. 이렇게 정해놓은 개수와 IP주소를 사용하다가 CIDR을 사용하게 되면 자신이 원하는 개수만큼 잘라서 IP를 사용할 수 있게 되는 것입니다. 또한 클래스 단위를 이진수로 놓고 보게되면 앞자리 비트수를 정해서 사용하는 것을 볼 수 있습니다.
A클래스 : 0000
B클래스 : 1000
C클래스 : 1100
이렇게 앞자리 4개의 비트가 숫자가 고정적으로 써지는 것을 볼 수 있습니다. 이렇게 고정적으로 사용하던 것을 이제 CIDR을 사용하게 되면 자유롭게 사용할 수 있습니다. 뒤에 서브넷 마스크만 붙여서 어디에서 끊어 읽어야 할지만 알려주면 됩니다.
192.168.0.20/32
뒤에 서브넷(가변길이), 어디서 끊어 읽어 주어야할지 알려주는 /(슬래시)와 비트수를 함께 붙여서 표기하게 됩니다. 위에 있는 192.168.0.20/32를 2진수로 표현해본다면 이렇게 됩니다. 32라는 것은 비트수를 의미하며 32개 모두 이진수 0과 1중 1로 되어 있다는 것을 의미합니다. 만약 31이 되었다면 맨 뒤에서부터 1을 0으로 바꿔서 2진수로 계산을 해주면 됩니다. 또한 이것을 계산할 경우에는 AND 계산을 통해서 하면 됩니다. 32를 가지고 계산을 해보도록 하겠습니다. 1이 모두 32개이므로 10진수로 표현하면 255.255.255.255가 됩니다. 1이라고 표현된 부분은 사용하지 않는다고 생각하면 되고 0이라고 표현된 부분은 사용한다고 생각하시면 됩니다.
192.168.0.20
1100 0000. 1010 1000. 0000 0000. 0001 0100
255.255.255.255 -> 32
1111 1111. 1111 1111. 1111 1111. 1111 1111
1100 0000. 1010 1000. 0000 0000. 0001 0100
AND 1111 1111. 1111 1111. 1111 1111. 1111 1111
1100 0000. 1010 1000. 0000 0000. 0001 0100 = 192.168.0.20
이렇게 계산한 것이 나옵니다. 자기 자신 192.168.0.20 한개의 IP만이 나오게 됩니다. 이렇게 뒤에 붙이는 서브넷 마스크를 32, 31, 30 내려가면서 0까지 붙일 수 있습니다. 자신이 어디까지를 사용할 것인지를 말해주는 지표라고 생각하면 됩니다.
만약 30 이라고 가정하고 계산을 해보겠습니다.
192.168.0.20/30 이렇게 되어 있다면 서브넷 마스크는 1111 1111. 1111 1111. 1111 1111. 1111 1100 가 됩니다. 32는 전부 1이고 30은 맨 뒤에서부터 1을 0으로 2개를 바꿔준 숫자가 됩니다. 이것을 10진수로 표현하면 255.255.255.252가 됩니다. 또한 AND 계산을 해보겠습니다.
1100 0000. 1010 1000. 0000 0000. 0001 0100
AND 1111 1111. 1111 1111. 1111 1111. 1111 1100
이렇게 계산해도 위와 같이 값은 똑같이 나옵니다. 192.168.0.20 /30 뒤에 30비트이기 때문에 32비트와 비교하여 사용할 수 있는 host ip의 개수가 3개가 늘어난 것입니다. (2진수 계산을 통해서) 아까 /32는 1개를 쓸 수 있었는데 /30은 3개가 늘어난 4개의 IP를 host ip로 사용할 수 있다는 결과가 나옵니다. 여기서 network주소, broadcast 주소를 제외하고 사용할 수 있는 IP는 2개입니다. 따라서 사용할 수 있는 IP는 192.168.0.21 ~ 192.168.0.22까지 2개가 됩니다.
CIDR 정리
위에서 설명한 부분은 30비트로 나눠서 어렵습니다. 자주 사용하는 /24나 /16으로 표현해서 보겠습니다. 만약 /24를 사용한다면 IP주소의 앞에서부터 .(점) 3개까지는 고정으로 사용하고 마지막 뒤에 있는 부분만 host로 사용하게 됩니다. 이진수로 표현하였을때 1로 되어 있는 부분은 고정되어 있고 0으로 되어 있는 부분은 변동되고 사용할 수 있다는 의미로 생각하면 편합니다.
192.168.10.0/24 를 보겠습니다.
192.168.10은 고정으로 사용하게 되며 마지막 .(점) 뒤에만 바꿔서 사용할 수 있습니다. 따라서 사용할 수 있는 IP는 192.168.10.0 ~ 192.168.10.255 까지 사용할 수 있습니다. 여기서 192.168.10.0과 192.168.10.255는 제외하고 나머지 192.168.10.1 ~ 192.168.10.254 까지 host IP로 사용할 수 있는 것입니다.
만약 /16으로 사용한다면 192.168.0.0/16이라면 앞에있는 2개까지가 고정으로 변하지 않습니다. 따라서 192.168.0.0 ~ 192.168.255.255 까지를 사용할 수 있는 것입니다. 또한 이렇게 나누었을때 앞에서 계산한 것과 마찬가지로 사용할 수 없는 IP 2개를 빼주면 host로 사용할 수 있는 IP 개수가 나옵니다.
CIDR 호스트수 및 마스크
CIDR |
Hosts |
Mask |
/32 |
1 |
255.255.255.255 |
/31 |
2 |
255.255.255.254 |
/30 |
4 |
255.255.255.252 |
/29 |
8 |
255.255.255.248 |
/28 |
16 |
255.255.255.240 |
/27 |
32 |
255.255.255.224 |
/26 |
64 |
255.255.255.192 |
/25 |
128 |
255.255.255.128 |
/24 |
256 |
255.255.255.000 |
/23 |
512 |
255.255.254.000 |
/22 |
1024 |
255.255.252.000 |
/21 |
2048 |
255.255.248.000 |
/20 |
4096 |
255.255.240.000 |
/19 |
8192 |
255.255.224.000 |
/18 |
16384 |
255.255.192.000 |
/17 |
32768 |
255.255.128.000 |
/16 |
65536 |
255.255.000.000 |
/15 |
131072 |
255.254.000.000 |
/14 |
262144 |
255.252.000.000 |
/13 |
524288 |
255.248.000.000 |
/12 |
1048576 |
255.240.000.000 |
/11 |
2097152 |
255.224.000.000 |
/10 |
4194304 |
255.192.000.000 |
/9 |
8388608 |
255.128.000.000 |
/8 |
16777216 |
255.000.000.000 |
/7 |
33554432 |
254.000.000.000 |
/6 |
67108864 |
252.000.000.000 |
/5 |
134217728 |
248.000.000.000 |
/4 |
268435456 |
240.000.000.000 |
/3 |
536870912 |
224.000.000.000 |
/2 |
1073741824 |
192.000.000.000 |
/1 |
2147483648 |
128.000.000.000 |
'IT > 네트워크' 카테고리의 다른 글
와이파이 공유기 구매 시 확인사항, 성능 (0) | 2020.04.22 |
---|---|
네오정보시스템 NIS 무선 공유기 설정, 비밀번호 변경 (24) | 2020.04.12 |
Tcpdump 사용법 및 파일 저장 방법, 기본옵션 설명 (0) | 2019.11.05 |
putty 글자크기, 글꼴 바꾸기, 저장하기 사용법 (2) | 2019.05.25 |
hping3의 설치, 옵션, 사용방법 네트워크 패킷 전송 툴 (0) | 2019.05.11 |
댓글