IP ?
IP란 Internet Protocol의 약자로, 인터넷이 통하는 네트워크에서 어떤 정보를 수신하고 송신하는 통신에 대한 규약을 의미합니다. 우리가 사용하는 스마트폰, 노트북, 컴퓨터같은 전자기기는 모두 운영체제도 다르고, 아예 구현된 언어가 다르기 때문에 네트워크상에서 통신할 수 있도록 하려면 공통 통신 규약이 필요합니다.
IPv4
IPv4는 우리가 흔히 접하는 IP주소 192.168.xx 혹은 127.0.0.1 처럼 8비트씩 4옥텟으로 나타난것을 의미합니다.
IPv4는 총 32비트로, 약 43억개의 고유한 주소를 부여할 수 있는데, 처음 IP를 할당할 때는 클래스를 나누어 할당했지만, 인터넷이 점점 발달하면서 IP주소의 소모가 빨라지자 클래스로 나누어 할당하는 방식 대신 CIDR란 방식을 사용하게 되었습니다.
2021년 기준 지구의 인구가 78억인데 한사람당 하나의 IP만 사용한다고 가정해도 모자르겠죠..?
CIDR
IPv4의 주소 부족으로 CIDR가 등장하게 되었는데, IP의 주소의 영역을 여러 네트워크 영역으로 나누기 위해 IP를 묶는 방식을 말합니다. CIDR는 사설망과 연관지어 설명할 수 있는데,
다음과 같이 하나의 사설망에서 게이트웨이를 통해 인터넷과 통신한다고 했을 때, 각각의 컴퓨터가 가지고 있는 IP는 프라이빗 IP 게이트웨이의 IP가 공인 IP라고 말할 수 있습니다. 게이트웨이가 대표자가 되어 인터넷과 통신을 하게 되는데, 그렇다면 사설망안에 있는 컴퓨터가 게이트웨이를 통해 인터넷과 통신했을때, 응답을 받으려면 어떻게 해야하는지 의문이 들 수 있습니다.
만약 192.168.0.2의 IP 사용자가 인터넷을 통해 61.123.44.1 IP와 통신을 하고 싶을 때.
게이트웨이의 IP를 통해 해당 IP에 전송을 하게 됩니다. 이때, 61.123.44.1에서 응답이 온다면 게이트웨이가 방금 전송했던 포트를 기억하고 있다가 전송 IP로 데이터를 보내주게 됩니다.
만약 두 개의 IP가 동일한 포트로 전송을 하고 싶을 땐, SRC port라는 Source Port를 나누어 기억하고 있다가, 각각의 SRC port로 응답 데이터를 사설망 전송 IP로 정확하게 보내주게 됩니다.
여기서 CIDR는 이때의 사설망 IP를 더 효율적으로 사용하기 위해 등장하게 되었습니다.
사설망에서 클래스 대역을 더 분산시키는 역할이라고 봐도 무방합니다.
10.88.135.144이라는 IP주소가 있을때, 10.88.135.144/28은 32비트중 앞에서부터 28비트를 네트워크 주소로 사용하고, 나머지 4비트를 호스트 주소로 사용한다고 생각하면 됩니다.
즉, 10.88.135.144/28 IP 주소는 4비트(16개의 IP주소) 범위를 능동적으로 사용해 10.88.135.144 ~ 10.88.135.159의 범위를 사용할 수 있게 됩니다.
네트워크 주소와 호스트 주소를 쉽게 이해하는 예로 성남시 분당구라는 동네가 있을때, 성남시 분당구는 하나의 동네 (네트워크)로 묶이기 때문에, 하나의 네트워크 주소로 볼 수 있습니다. 성남시 분당구라는 동네 중 여러가지 주택과 아파트 건물의 각각의 주소가 있을테고, 이때의 주소를 호스트 주소로 이해하면 편할 것 같습니다. 성남시 분당구라는 주소는 고정적으로 붙여지고 각각의 도로명이 붙듯이 호스트 주소는 그 범위내에서 자유롭게 사용할 수 있습니다.
하지만, CIDR의 주소 중 사용할 수 없는 주소가 존재하는데, 첫번째 IP와 마지막 IP입니다.
첫번째 IP는 네트워크 자체를 가르키기 때문에 사용할 수 없고,마지막 주소는 Broadcast 주소이기 때문에 사용할 수 없게 됩니다.
즉 앞서 말한 10.88.135.144/28이 사용할 수 있는 네트워크 주소는 16-2개로 총 14개입니다.
만일, AWS에서 CIDR를 사용할 경우 AWS는 총 5개의 주소를 예약하여 사용할 수 없게 됩니다.
0 - 네트워크 어드레스
1 - VPC Router
2 - DNS
3 - Future use
마지막 - Broadcast
따라서, AWS 환경에서는 총 11개의 네트워크 주소를 사용할 수 있게 됩니다.
192.168.0.0/16 이라는 네트워크 주소가 있을때, 뒤에 16비트가 호스트 주소이며, 호스트 주소를 이용하여 네트워크를 잘개 쪼갠 주소를 서브넷이라 하고, 그 서브넷안의 집합을 잘 쪼개어 나눈것을 CIDR라고 합니다.
확실히 서브넷과 CIDR을 적절히 사용하면 네트워크 대역을 효율적으로 사용할 수 있는 것을 알 수 있습니다.
https://www.youtube.com/watch?v=kYiQGpPVnyI
본 영상을 시청하며 CIDR에 대해 공부하였습니다.