본문 바로가기
컴퓨터공학 & 정보통신/네트워크 & Cisco

[네트워크/Cisco] 시스코 All-zero subnet (subnet zero), All-one subnet 개념 이해하기

by TaeGyeong Lee 2024. 12. 26.

개요 

이 글에서는 시스코 장비 기준 all-zero subnet (서브넷 0) 그리고 all-one subnet 에 관한 내용을 서술합니다. 시스코 한글 문서는 읽지 마세요. 오역이 상당히 많습니다. 저도 한참 보다가 영어 원문 보고 이해했습니다. 

이 글은 영어 원문을 간단하게 축약하여 서브넷 0와 All-one subnet 에 관해 설명하겠습니다. 

All-zero subnet 과 All-one Subnet 을 자연스럽게 이해하기 위해서 클래스 B 주소 예로 들어보겠습니다. 클래스 B 주소 172.16.0.0 은 우측 16비트를 호스트로 사용합니다.

만약 이 클래스 B 주소 172.16.0.0의 호스트 부 3비트를 subnetting을 위해 사용한다고 합시다. 3비트를 서브네팅을 위해 사용되므로 가능한 서브넷의 갯수는 2^3 == 8개 입니다. 서브네팅을 통해 만들어진 각 서브넷에서의 서브넷 주소, 서브넷 마스크, 브로드캐스트 주소, 가능한 호스트 주소 범위는 아래와 같습니다. 

https://www.cisco.com/c/en/us/support/docs/ip/dynamic-address-allocation-resolution/13711-40.html

 

이때, 첫 번째 서브넷 (172.16.0.0/19) 을 All-zero subnet (또는 Subnet Zero) 이라고 부릅니다. 서브네팅을 위해 사용된 3개 비트가 모두 0입니다. 또한 마지막 서브넷 (172.16.224.0/19) 을 All-one subnet 이라고 부릅니다. 서브네팅을 위해 사용된 3개 비트가 모두 1입니다. 

 

All-zero/one subnet 을 사용하게 되면 몇 가지 문제점이 발생합니다.

 

All-zero subnet (Subnet Zero) 사용 시 문제점 

개요에서 서술한 예제를 통해 문제점을 설명하겠습니다. 가령, IP 주소 172.16.1.10 이 있다고 가정합니다. 이 아이피와 연관된 서브넷을 찾는다고 한다면 All-zero subnet 인 172.16.0.0 이라고 답할 수 있습니다.

그러나, 이는 네트워크 주소 172.16.0.0 과 동일합니다. 네트워크 장비가 IP 주소 172.16.0.0 을 처리할 때 이것이 네트워크 주소인지, 서브넷팅 후 첫 번째 서브넷을 의미하는 지 판단하기 어렵습니다.

 

All-one subnet 사용 시 문제점 

All-zero subnet 과 비슷하게 all-one subnet 도 식별에 모호함이 있습니다.

개요에서 서술한 예제를 통해 설명하겠습니다. all-one subnet 172.16.224.0/19 의 브로드캐스트 주소는 172.16.255.255 입니다. 이는 서브넷팅 전 클래스 B 주소 172.16.0.0/16 의 브로드캐스트 주소 172.16.255.255와 동일합니다. 

 

Cisco Subnet zero 

식별에 있어 어려움이 있기에 RFC 950에 따라, 해당 방식 미사용을 강하게 권고했었습니다.  

It is useful to preserve and extend the interpretation of these special addresses in subnetted networks. This means the values of all zeros and all ones in the subnet field should not be assigned to actual (physical) subnets.
- https://www.ietf.org/rfc/rfc950.txt

 

그러나 all-one subnet 및 all-zero subnet 은 초창기가 아닌 현대에 들어서 사용 가능하도록 설계되었습니다. 최신 시스코 장비엔 all-zero 서브넷을 사용하는 것이 기본값으로 설정되어 있습니다. 

 

이와 관련된 재미있는 글을 찾아볼 수 있었는데요, 실제로 서브넷 제로가 사용되고 있냐는 질문에 Cisco에서 관련 일을 했었던 Tony Li가 남긴 답변이 있었습니다. 

Unfortunately, yes.

True story: While I was at Cisco, I ended up making the changes to the routing table to support Classless Inter-Domain Routing (CIDR). As part of that, I updated the martian filters to do classless checking and found that according to very strict reading of specs, subnet zero is reserved. I coded accordingly. It passed all tests. When there were disputes I cited chapter and verse. No problem.

A few months go by and I get an email from a distressed customer who said that this change broke their network because they were using subnet zero. They agreed that it was not legal but that they were already massively deployed on subnet zero and that if we didn’t change it back, they wouldn’t buy Cisco products anymore. Needless to say, we added a knob post-haste.

Irony department: the customer was none other than University of California Berkeley, the same location that gave us BSD Unix and the same folks that invented and wrote the rules on subnetting.
- https://www.quora.com/Is-subnet-zero-used-in-real-life

 

서브넷 제로 사용 제약을 장비에 반영했을 때, 서브넷팅의 규칙(서브넷 제로를 사용하지 말라는 내용을 담은..)을 만든 버클리대학 고객이 서브넷 제로를 사용할 수 있도록  만들라고 항의했습니다. 이에 따라 Tony는 서브넷 제로를 사용할 수 있도록 명령어를 추가했습니다. 이 명령어를 만든 것에 대해 후회한다고 하네요. 

 

요약

  • All-Zero Subnet (서브넷 제로) 는 서브넷팅을 위해 사용되는 비트가 모두 0인 서브넷 
  • All-one subnet 은 서브넷팅을 위해 사용되는 비트가 모두 1인 서브넷
  • 네트워크 주소 / 브로드캐스트 주소와 혼동될 수 있어 사용이 지양되었으나, 현재는 사용 가능한 편

 

참고 자료 

 

Configure Subnet Zero and All-Ones Subnet

This document describes the use of subnet zero and the all-ones subnet.

www.cisco.com

https://www.ietf.org/rfc/rfc950.txt

 

Is subnet zero used in real life?

Answer (1 of 5): Unfortunately, yes. True story: While I was at Cisco, I ended up making the changes to the routing table to support Classless Inter-Domain Routing (CIDR). As part of that, I updated the martian filters to do classless checking and found th

www.quora.com