VPC 세팅을 하다보면 IP를 할당 받고 Subnet을 나눠준다. 그리고 각 Subnet에 CIDR 블록을 설정해준다.
뭔가 IP 재활용을 위해 하나의 IP로 여러 곳에 사용한다는 개념은 알겠는데, 정확히 어떻게 작동하는지는 모르고 사용해 왔다.
이를 이해하려면 먼저 IP의 구조를 이해해야 했다.
IP 주소는 네트워크에서 컴퓨터 장치들이 서로를 인식하는 특수한 번호를 말한다.
IP의 종류에는 IPv4와 IPv6가 있는데, 여기서는 IPv4만 다루도록 하겠다.
IP주소는 192.0.0.1
이렇게 4개의 영역을 숫자가 하나씩 차지하고 있다.
이는 10진수이므로 원래는 00010101.00000000.00000000.00000001
이렇게 이진수로 이루어져 있다.
2진수 총 32개로 총 2^32개의 주소를 표현할 수 있다.
IP의 등장 초기에는 저 정도의 숫자면 모든 컴퓨터 장치를 인식할 수 있을거라고 생각했다.
하지만 현대 사회로 오면서 턱없이 부족했다.
그래서 Private Network 즉 사설망의 개념이 등장한다.
사설망은 하나의 IP가 대표가 되어 인터넷과 통신하는 것을 의미한다.
대표가 인터넷과 통신하고 자신의 사설망에 해당하는 장치에 응답을 돌려준다. 사설망의 범위는 아래와 같다.
10.0.0.0 ~ 10.255.255.255 (24bit)
172.16.0.0 ~ 172.31.255.255 (20bit)
192.168.0.0 ~ 192.168.255.255 (16bit)
위 3개의 IP 범위는 사설망에 예약된 IP이다.
24bit의 경우 앞의 10을 제외한 나머지가 24bit이고 이 bit 범위를 이용한다는 의미이다.
이는 아래에서 설명할 IP의 클래스에 대해 더 이해할 필요가 있다.
IP주소는 네트워크 주소와 호스트 주소로 나뉜다.
네트워크 주소는 네트워크 그룹을 식별하기 위한 주소이고 호스트 주소는 개인 네트워크의 호스트 장치를 식별하기 위한 것이다.
즉 사설망 이용을 나누기 위해 호스트 주소 범위를 지정해주고 이 범위에 따라서 Class가 나뉜다.
A Class는 앞의 8비트만 네트워크 주소로 사용하고 나머지는 호스트 주소로 사용한다.(Network 8 bit, Host 24 bit)
B Class는 앞의 16비트만 네트워크 주소로 사용하고 나머지는 호스트 주소로 사용한다.(Network 16 bit, Host 16 bit)
C Class는 앞의 24비트만 네트워크 주소로 사용하고 나머지는 호스트 주소로 사용한다.(Network 24 bit, Host 8 bit)
CIDR는 Classless Inter-Domain Routing의 약자로 즉 위에서 설명한 Class가 없는 라우팅 방법을 말한다.
CIDR는 198.168.32.0/24
이런식으로 표현하는데 뒤에 /24는 네트워크 주소로 24 bit를 사용하겠다는 뜻이다.
즉 /24는 C class 와 네트워크 주소의 사용 범위가 같다.
198.168.32.0/24의 정확한 사설망 호스트 주소 범위를 분석하자면
198.168.32.0 네트워크에서 8 비트를 사용할 수 있으므로 총 16개 주소인 198.168.32.0 ~ 198.168.32.15가 범위가 된다. 일반적으로 맨 첫 번째 주소인 198.168.32.0는 네트워크 주소, 198.168.32.15는 브로드 캐스트 주소로 사용 되므로 총 14개의 주소를 사용할 수 있다.
AWS의 경우에는 2개가 아닌 5개의 IP를 예약해 두는데 0 번째, 마지막 번째는 위와 같이 네트워크, 브로드캐스트 주소로 사용하고 AWS의 경우엔 1 번째는 VPC Router, 2 번째는 DNS, 3 번째는 AWS의 이 후 개발된 신기능에 사용할 수 있도록 비워둔다.
CIDR Block으로 /32를 사용하면 하나의 주소만을 나타낸다.
그래서 위 방법으로 열심히 네트워크를 쪼개는 것을 Subnet이라고 하며 이 Subnet 범위 표현을 위해 Class 혹은 CIDR를 사용하는 것이다.
출처
https://www.youtube.com/watch?v=kYiQGpPVnyI&ab_channel=AWS%EA%B0%95%EC%9D%98%EC%8B%A4
https://dev.classmethod.jp/articles/vpc-3/