개념
- CIDR은 기존 네트워크 클래스로 나눠서 정의하던 IP정보를 클래스 없이 유연하게 나눠줄 수 있는 방식의 라우팅 기법
- 원래는 클래스라는 단위로 A,B,C,D,E를 나누어서 네트워크를 사용한다. 하지만 클래스로 나누게 되는 IP들은 유연성이 없고 IP의 개수가 많기 때문에 좀 더 유연하게 사용하고자 CIDR이라는 개념이 나오게 된 것이다.
- 내 IP = 192.168.0.20 (10진수)
- 1100 0000. 1010 1000. 0000 0000. 0001 0100 (2진수)
- IPv4는 32비트이며 따라서 2진수로 표현할 경우 32개의 숫자가 나오게 된다. 또한 8개씩 묶어서 .(점)을 찍게 되며 8개씩 묶은 단위를 옥텟(octet)이라고 하는데, 이렇게 나눠진 IP 주소는 이제 서브넷 마스크가 아닌 CIDR을 사용하게 된다. 또한 그냥 서브넷 마스크가 아닌 가변길이 서브넷 마스크(VLSM)를 사용한다.
CIDR과 클래스의 차이
- 클래스
- A클래스 : 0.0.0.0 ~ 127.255.255.255
- 앞자리 비트 수 : 0000
- B클래스 : 128.0.0.0 ~ 191.255.255.255
- 앞자리 비트 수 : 1000
- C클래스 : 192.0.0.0 ~ 223.255.255.255
- 앞자리 비트 수 : 1100
- 앞자리 4개의 비트수가 고정이다. 이렇게 고정적으로 사용하던 것을 이제 CIDR을 사용하게 되면 자유롭게 사용할 수 있다.
- A클래스 : 0.0.0.0 ~ 127.255.255.255
- CIDR
- ex) 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
- 연산
- 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
- 192.168.0.20
- 결과 : 1100 0000. 1010 1000. 0000 0000. 0001 0100 = 192.168.0.20
- 자기 자신 192.168.0.20 한개의 IP만이 나온다. 이렇게 뒤에 붙이는 서브넷 마스크를 32, 31, 30 내려가면서 0까지 붙일 수 있고, 자신이 어디까지를 사용할 것인지를 말해주는 지표라고 생각하면 된다.
CIDR 정리
- 자주 사용하는 /24나 /16으로 표현시, 만약 /24를 사용한다면 IP주소의 앞에서부터 .(점) 3개까지는 고정으로 사용하고 마지막 뒤에 있는 부분만 host로 사용하게 된다. 이진수로 표현하였을 때 1로 되어 있는 부분은 고정되어 있고 0으로 되어 있는 부분은 변동되고 사용할 수 있다는 의미로 생각하면 편합니다.
- ex) 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 |
/24 | 256 | 255.255.255.000 |
/16 | 65536 | 255.255.000.000 |
'Engineering WIKI > Docs' 카테고리의 다른 글
로그스태시 개념 뿌수기 (153) | 2023.10.19 |
---|---|
DAO, DTO, VO, Entity 개념 뿌수기! (3) | 2023.09.21 |
Reverse Proxy, Forward Proxy 개념 뿌수기! (1) | 2023.08.19 |
@Retention 어노테이션 개념 뿌수기 (RetentionPolicy SOURCE vs CLASS vs RUNTIME) (0) | 2023.08.17 |
Gradle 개념 (0) | 2023.05.29 |
SOLID 5가지 설계 원칙 (0) | 2023.05.27 |
퍼사드 패턴 (Facade Pattern) 개념 및 코드 예제 (0) | 2022.12.30 |
Redis 뿌수기! (0) | 2022.12.30 |