우노
[Network] CIDR 계산 방법 본문
들어가기 앞서,
- CIDR은 네트워크를 설계하면서 가장 많이 접하게 되는 개념입니다.
- CIDR의 full name은 Classless Inter-Domain Routing으로, 클래스 없는 도메인간 라우팅 기법이라는 뜻입니다.
- 클래스가 없다는 뜻은, 네트워크 구분을 Class로 하지 않는다는 것입니다.
- Class는 사이더가 나오기 전 사용했던 네트워크 구분 체계입니다.
- 사이더가 나오면서 Class 체계보다 더 유연하게 IP 주소를 여러 네트워크 영역으로 나눌 수 있게 되었습니다.
- 해당 포스트에선, CIDR 계산 방법에 대해서 다뤄보겠습니다.
IP 표현 방식
CIDR을 이해하기 전에, IP 표현 방식을 알아야합니다.
IP는 옥텟이라는 단위로 이루어져 있습니다.
하나의 옥텟은 8비트로 이루어져 있으며,
일반적으로 사용하는 IPv4 주소는 4개의 옥텟으로 이루어져 있습니다.
기본적인 CIDR 계산 방법
192.168.10.0/24 와 같이, IP 뒤에 "/24"를 보신 적이 있으신가요?
바로 이것이 사이더 표기법입니다.
해당 IP 대역에서, 앞에서 몇 번째 비트까지가 고정되어 있는지를 의미합니다.
따라서, 사이더는 0~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 가 됩니다.
CIDR 계산 응용 1
그런데, 사이더 값이 23일 경우,
아래와 같이 노란색과 파란색, 두 개의 옥텟에 걸치게 되므로 바로 계산하기가 어려워집니다.
이런 경우에는, 애매하게 걸친 옥텟을 2진수로 표현하고 최솟값과 최댓값을 찾아내야 합니다.
예를 들어, 143.7.65.203/23 일 때, 4번째 옥텟(파란색 부분) 전체와 3번째 옥텟(노란색 부분) 영역의 마지막 1비트가 포함됩니다.
그럼 애매하게 걸친 3번째 옥텟을 2진수로 표현해 보겠습니다.
65는 01000001입니다.
사이더에 의해 마지막 1비트를 0 또는 1을 사용할 수 있게 된다면,
01000000, 01000001 이기 때문에, 10진수로는 64, 65가 됩니다.
즉, 3번째 옥텟에서 사용할 수 있는 최솟값은 64, 최댓값은 65가 됩니다.
나머지 4번째 옥텟(파란색 부분)은 전체를 사용할 수 있기 때문에 최솟값은 0, 최댓값은 255이 됩니다.
따라서, 143.7.65.203/23 는 143.7.64.0 ~ 143.7.65.255 대역을 사용할 수 있는 것입니다.
CIDR 계산 응용 2
- 그럼 이어서 143.7.65.203/22 를 계산해볼까요?
- /22일 경우, 3번째 옥텟의 마지막 2 비트를 사용할 수 있습니다.
- 즉, 01000000, 01000001, 01000010, 01000011 총 4개를 사용할 수 있습니다.
- 따라서, 3번째 옥텟의 최솟값은 64, 최댓값은 67이 됩니다.
- 즉, 143.7.65.203/22 는 143.7.64.0 ~ 143.7.67.255 대역을 사용할 수 있습니다.
CIDR 계산 응용 3
- 그럼 143.7.65.203/25 일 경우는 어떻게 될까요?
- 4번째 옥텟의 최솟값과 최댓값을 알아내야 합니다.
- 203은 2진수로 11001011 입니다.
- 여기서 최솟값은 10000000 인 128이고, 최댓값은 11111111인 255 입니다.
- 따라서, 143.7.65.203/25 는 143.7.65.128 ~ 143.7.65.255 대역을 사용할 수 있습니다.
정리
- 계산이 필요한 옥텟 구간을 10진수에서 2진수로 변경한 뒤,
- 각 구간에서의 최소값과 최대값을 구하면 됩니다.
참고
'Network & Security > Concept' 카테고리의 다른 글
[Network] HTTP, HTTPS 및 SSL/TLS 암호화 프로토콜 (0) | 2024.04.08 |
---|---|
[Network] 로드밸런싱 알고리즘 종류 (0) | 2023.05.21 |
[Network] 통신사별 DNS 서버 아이피 주소 (SKT, KT, LG, 구글) (0) | 2023.02.23 |
[Network] OpenID Connect(OIDC), OAuth 2.0 차이 (0) | 2023.02.18 |
[Network] HTTP 상태 코드 (0) | 2023.02.18 |