IP Class
A 클래스는 제일 앞 자리가 0 으로 고정 (Network Address : 128개)
0xxx xxxx. xxxx xxxx. xxxx xxxx. xxxx xxxx
뒤의 3byte 는 1670만개의 host IP 를 가질 수 있다. (2^24 - 2개)
0.0.0.0 ~ 127.255.255.255
B 클래스는 앞 2개의 byte 고정, 이진수 기준 10 으로 시작한다. (Network Address : 65536개)
10xx xxxx. xxxx xxxx. xxxx xxxx. xxxx xxxx
뒤의 2byte 로 65536개의 host IP 를 가질 수 있다. (2^16 - 2개)
128.0.0.0 ~ 191.255.255.255
C 클래스는 앞 3개의 byte 고정, 이진수 기준 110 으로 시작한다. (Network Address : 1670만개)
110x xxxx. xxxx xxxx. xxxx xxxx. xxxx xxxx
뒤의 1byte 로 256개의 host IP 를 가질 수 있다. (2^8 - 2개)
192.0.0.0 ~ 223.255.255.255
host IP 개수에서 2개를 빼는 이유 ?
모두가 0 인 주소는 네트워크 주소로,
모두가 1 인 주소는 broadcast 주소로 사용하기 때문 !
앞 부분은 Network address, 뒷 부분은 host address
왜 나눠놨는가?
Network address 는 Routing 할 때 사용 !
Routing 할 땐 host address 는 보지 않는다.
Router 로 들어오고 나서 switch 로 오면 IP 주소가 아닌 MAC 주소로 판단 !
IP 주소와 매핑되는 MAC 주소를 ARP 테이블을 보고 판단.
Subnet
IP 주소를 확인해보면 192.168.0.3 이고,
subnet mask 가 0xffffff00 (255.255.255.0) 인 것을 확인할 수 있다.
Router 가 네트워크를 판단할 때 IP 주소가 어느 클래스인지 Network address 를 보고 판단할 수도 있지만,
서브넷 마스크를 보고 어디까지가 Network address 인지 판단할 수 있다.
서브넷 마스크는 왜 쓰는 걸까 ?
예를 들어 A 클래스의 IP 주소, 12.1.2.3 이 있다고 가정해보자.
A 클래스는 앞 한 바이트가 Network address 이기 때문에 기본적인 서브넷 마스크는
255.0.0.0 일 것이다.
하지만 네트워크가 너무 크기 때문에 네트워크를 서브넷 마스크를 이용해 나누어서
하위 네트워크로 Routing 할 수 있다 !
예를 들어 서브넷 마스크를 255.255.0.0 으로 한다면 앞 두 바이트를 Network address 로 보고
판단하기 때문에 더 작은 네트워크로 Routing 이 가능해진다.
서브넷 마스크를 표현하는 여러가지 방법
223.1.1.0/24
IP : 223.1.1.0, Subnet : 255.255.255.0
IP : 223.1.1.0, Subnet : 0xFFFFFF00
다 동일한 표현 !
서브네팅
예를 들어 B 클래스 IP 주소 136.2.0.0/16 을 할당받았다고 치자.
15개의 내부 네트워크로 나눠 사용하고 싶으면 어떻게 할까?
136.2.0.0 에서 앞 두 바이트는 현재 Network address 로 사용되고 있는데,
그 뒤 세번째 바이트를 이용해서 네트워크를 더 쪼개서 사용하면 된다.
15개의 네트워크로 나누기 위해서는 4개의 bit 가 필요하다
(0000 ~ 1111 로 표현하면 16개 표현 가능)
136.2.0.0/20
IP 주소 : 136.2.0.0, subnet mask : 255.255.240.0
으로 표현할 수 있다.
문제 : 각 서브 네트워크당 달 수 있는 host ip 의 개수는 ?
답 : 4096 (정확히는 4096 - 2개)
CIDR
Classless Inter-Domain Routing
IP 주소랑 서브넷만 해도 헷갈리는데 이 친구는 또 뭘까?
예를 들어 200.23.16.0/23 IP 주소를 보면 어떤 생각이 드는가?
나는 “엥? C클래스인데 서브넷이 24보다 작다고?” 하는 생각이 들었다.
그렇다.. CIDR 는 “클래스랑 상관없이 서브넷으로 알아서 잘라 쓰자” 이다.
네트워크 구분을 클래스로 하지 않고, CIDR 를 통해 더 유연하게 네트워크 영역을 나누기 위함 !