Subnetting 은 큰 네트워크를 많은 소규모 서브넷으로 분할하는 광정이다.
목표
- 서브넷이 필요한 이유
- 서브넷 마스크가 네트워크와 호스트 ID 만으로 가능한 것을 어떻게 확장시키는지
- CIDR 기술이 어떻게 일반 서브넷보다 많은 유연성을 제공하는지
클래스 A 의 9 아이피 주소를 IBM 사가 가지고 있다고 했을때
9.100.100.100.100 과 통신하려면 네트워크 ID 를 보고 네트워크를 담당하는 게이트웨이 라우터로 메시지를 라우트한다.
일단 패킷이 9.0.0.0 클래스 A 네트워크를 위한 게이트웨이 라우터에 도달하면,
그 라우터는 이제 호스트 ID 를 보고 데이터를 적절한 시스템으로 가져가야 한다.
하지만 클래스 A 에는 너무 많은 네트워크 장치들이 있다.
그래서 여기서 서브넷팅이 이루어 진다.
서브넷을 사용하면 큰 네트워크를 작은 네트워크로 분할 할 수 있다.
이러한 개별 서브넷은 모두 각 서브넷의 수신 및 송신 지점 역할을 하는 자체 게이트웨이 라우터를 가진다.
서브넷 마스크
네트워크를 식별할때 네트워크 ID 와 호스트 ID 에 대해 알아보았다
만약 이걸 더 분열시키고 싶으면 서브넷 ID 를 도입해야 한다.
서브넷은 호스트 ID 를 구성하는 일부 비트가 서브넷 ID 에 사용된다.
이 세 개의 ID 를 모두 하나의 IP 주소로 나타낼 수 있게 되어서 네트워크를 정확하게 전달 될 수 있는 32 비트 IP 주소를 얻을 수 있다
서브넷 ID 는 서브넷 마스크를 통해 계산된다.
서브넷 마스크는 일반적으로 십진법으로 4옥텟으로 표기되는 32비트 숫자다.
서브넷 마스크는 두개의 섹션으로 나눠져있다.
앞부분은 모두 1이 오고 뒤에는 모두 0이 오게 된다.
255.255.255.0 을 예시로 보면 모두 비트로 표기했을때
11111111.11111111.11111111.00000000 으로 표기 되는걸 볼 수 있다.
255.255.255.0 을 보면 뒤 0 인 8비트 부분만 호스트 ID 로 쓸 수 있다는걸 보여준다.
여기서 0은 일반적으로 사용되지 않고 255는 서브넷의 브로드캐스트 주소로 예약 되어있기 때문에
1~254의 까지만 호스트 ID 로 사용될 수 있다.
하지만, 일반적으로 두개의 주소를 할당할 수 없어도 호스트 ID 는 256개를 쓸 수 있다고 말하긴 한다.
다른 IP 가 서브넷의 노드에 할당되지 않더라도 여전히 IP 주소기 때문이다.
다른 예시를 또 보자
255.255.255.224 는 1이 27개 0이 5개로 변환된다.
11111111.11111111.11111111.1110000
이건 5비트의 호스트 ID 공간 즉 총 32개의 주소를 가지고 있다는 것을 의미한다.
IP 9.100.100.100 을 예시로 보면 서브넷 마스크는 9.100.100.100/27 로 작성할 수 있다.
서브넷 마스크와 IP 주소를 AND 로 묶으면 서브넷 네트워크 를 얻을 수 있다.
CIDR
CIDR 은 Classless Inter-Domain Routing 로 클래스 없이 도메인 라우팅을 한다는 뜻이다.
위 서브넷 마스크에서 슬래시로 표기한 것을 CIDR 이라고 생각하면 된다
C 클래스는 너무 작고 B 클래스는 너무 많은 현상이 생겼다.
이때 CIDR 을 이용해 효율적으로 도메인을 가져갈 수 있게 만든것이다.
전통적인 클래스 서브넷팅 이 아닌 /23 이나 /22 처럼 도메인을 나눠 쓸 수 있게 했다.
/23 개 의 경우 /24 는 8비트를 써 256개의 호스트를 가지는데 0 과 255 를 쓸 수 없으니
254개의 호스트를 가지고 만약 /24 가 2개 있으면 508개의 호스트를 가진다.
/23은 9비트로 512개의 호스트를 가지고 0과 255 를 쓸 수 없으니 510 개의 호스트 를 가진다.
'프로그래밍 > 네트워크' 카테고리의 다른 글
[Coursera Google] The Transport Layer (0) | 2020.12.08 |
---|---|
[Coursera Google] The Network Layer - Routing (0) | 2020.12.07 |
[Coursera Google] The Network Layer (0) | 2020.12.06 |
[Coursera Google] Datalink Layer (0) | 2020.07.19 |
[Coursera Google] Physical Layer (0) | 2020.07.07 |