Intro
오래전에 네트워크 공부를 하면서 CIDR계산이 너무어려웠던 기억이 있습니다. 책이나 구글링을 해봐도 이해하기 쉽게 설명되어 있지 않기도 했고 예시가 다양해서 매번 막혔던것 같습니다. 그래서 기억하기 쉽게 정리하여 글을 올렸고 다행히도 많은 분들이 도움을 받았다고 피드백을 주셨습니다.
해당 블로그는 [네트워크] CIDR이란?(사이더 란?) 를 참고하시기 바랍니다.
그런데 여기서 설명드린 계산법으로는 계산하기가 매우 번거롭습니다. 계산 원리를 설명드리기위해 하나하나 풀어서 설명드렸지만 원리를 이해하셨다면 사실 더 쉽게 계산할 수 있는 방법이 있습니다. 물론 CIDR계산기를 사용하면 더 빠르게 계산이 가능합니다만 계산기가 없을때 대응해야하기 때문에 오늘 2진수로 하나하나 변경하지 않아도 쉽게 계산할 수 있는 방법을 알려드리도록 하겠습니다.
몇가지 예시로 설명 드리도록 하겠습니다.
CIDR 쉽게 계산하는 방법 (예시1)
192.168.207.2/22
192(옥텟1).168(옥텟2).207(옥텟3).2(옥텟4)/22(비트)
- / 뒤에 숫자를 32로 뺀다. 32-22= 10
- (1)번에서 나온 숫자가 8이상인 경우 8보다 작아질때 까지 뺀다. 10-8=2 (뺀 횟수를 기억한다)
- (2)번에서 나온 숫자 2를 2의 2승을 한다. 2x2=4 (와일드카드를 구하는 과정임 즉 최대 4개의 IP를 가질 수 있다)
- 와일드카드 값인 4는 옥텟 1개가 가질 수 있는 최대 범위 0~255를 64개로 분할한 것을 의미한다
(0~3, 4~7, 8~11, 12~15.....200~203, 204~207.....252~255 의 범위를 가진다) - (2)번에서 8을 1회 뺏다면 옥텟3의 값인 207을 확인한다. 이 값이 (4)번 와일드카드의 범위 어디에 포함되어있는지 알아내면 끝이다.
(0회 일경우=옥텟4, 1회 일경우=옥텟3, 2회 일경우=옥텟2, 3회일 경우 = 옥텟1 을 보면됨) - 옥텟3의 값 207이 0보다 256에 더 가깝기 때문에 뒤에서부터 4를 13번 빼주면 256-(-4x13)=204 가 되고 204-207 범위내에 포함되어있다. 옥텟3의 최소값은 204이며 최대값은 207이다. 그 아래 옥텟4의 값의 최소값은 0이며 최대값은 255이다.
- 따라서 192.168.204.0 ~ 192.168.207.255
CIDR 쉽게 계산하는 방법 (예시2)
192.168.207.227/25
192(옥텟1).168(옥텟2).207(옥텟3).227(옥텟4)/25(비트)
- / 뒤에 숫자를 32로 뺀다. 32-25= 7
- (1)번에서 나온 숫자가 8이상인 경우 8보다 작아질때 까지 뺀다. 8이하 이므로 그냥 7 (뺀 횟수를 기억한다)
- (2)번에서 나온 숫자 7를 2의 7승을 한다. 2x2x2x2x2x2x2= 128 (와일드카드를 구하는 과정임 즉 최대 128개의 IP를 가질 수 있다)
- 와일드카드 값인 128는 옥텟 1개가 가질 수 있는 최대 범위 0~255를 2개로 분할한 것을 의미한다
(0~127, 128~255 의 범위를 가진다) - (2)번에서 8을 0회 뺏다면 옥텟4의 값인 227을 확인한다. 이 값이 (4)번 와일드카드의 범위 어디에 포함되어있는지 알아내면 끝이다.
(0회 일경우=옥텟4, 1회 일경우=옥텟3, 2회 일경우=옥텟2, 3회일 경우 = 옥텟1 을 보면됨) - 이 예제는 딱봐도 옥텟4의 값 227이 128~255에 포함된다. 옥텟4은 최소값 0부터 시작하며 최대값은 255이다.
- 따라서 192.168.207.128 ~ 192.168.207.255
마지막으로 한번 더 해볼까요?
CIDR 쉽게 계산하는 방법 (예시3)
192.1.207.2/13
92(옥텟1).1(옥텟2).207(옥텟3).2(옥텟4)/22(비트)
- / 뒤에 숫자를 32로 뺀다. 32-13= 19
- (1)번에서 나온 숫자가 8이상인 경우 8보다 작아질때 까지 뺀다. 19-8=11 ,11-8=3 (뺀 횟수를 기억한다)
- (2)번에서 나온 숫자 3을 2의 3승을 한다. 2x2x2= 8 (와일드카드를 구하는 과정임 즉 최대 8개의 IP를 가질 수 있다)
- 와일드카드 값인 8은 옥텟 1개가 가질 수 있는 최대 범위 0~255를 32개로 분할한 것을 의미한다
(0~7, 8~15, 16~23, 24~31...., 240~247, 248~255 의 범위를 가진다) - (2)번에서 8을 2회 뺏다면 옥텟2의 값인 1을 확인한다. 이 값이 (4)번 와일드카드의 범위 어디에 포함되어있는지 알아내면 끝이다.
(0회 일경우=옥텟4, 1회 일경우=옥텟3, 2회 일경우=옥텟2, 3회일 경우 = 옥텟1 을 보면됨) - 이 예제도 딱봐도 옥텟2의 값인 1이 0~7에 포함된다. 옥텟2는 최소값 0부터 시작하며 최대값은 7이다. 그 아래 옥텟3,옥텟4은 최소값 0부터 시작하며 최대값은 255이다.
- 따라서 192.0.0.0 ~ 192.7.255.255
CIDR 계산기
CIDR계산기를 제공하는 사이트는 여러곳이 있고 또 설치형으로 제공해주는 계산기도 있습니다만 저는 항상 즐겨찾기에 이 URL을 넣어두고 다닙니다. 사실 사람이 계산하는 것보다 기계가 더 빠르니까요. 참고 하시기 바랍니다.
https://www.ipaddressguide.com/cidr
'[개발관련] > 네트워크' 카테고리의 다른 글
[네트워크] CIDR이란?(사이더 란?) (0) | 2022.03.08 |
---|