簡介
本文檔介紹零子網和全1子網的使用。
必要條件
需求
本文件沒有特定需求。
採用元件
本文件所述內容不限於特定軟體和硬體版本。
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路運作中,請確保您瞭解任何指令可能造成的影響。
慣例
如需檔案慣例的詳細資訊,請參閱技術提示和其他內容的使用格式慣例。
背景資訊
子網劃分將給定的網路地址劃分為更小的子網。結合其他技術,例如網路位址翻譯(NAT)和連線埠位址翻譯(PAT),可更有效率地使用可用的IP位址空間,並大幅減輕位址耗盡的問題。子網劃分的準則涵蓋第一個和最後一個子網(分別稱為零子網和全1子網)的使用。
零子網
如果對網路地址劃分子網,對網路地址劃分子網後獲得的第一個子網稱為零子網。
考慮B類地址172.16.0.0。預設情況下,B類地址172.16.0.0保留了16位來表示主機部分,因此它允許65534(216-2)個有效主機地址。如果網路172.16.0.0/16由於從主機部分借用3位而劃分子網,則獲得八(23)個子網。下表顯示了透過對地址172.16.0.0劃分子網而獲得的子網、生成的子網掩碼、關聯的廣播地址和有效主機地址的範圍。
子網地址 |
子網路遮罩 |
廣播地址 |
有效主機範圍 |
172.16.0.0 |
255.255.224.0 |
172.16.31.255 |
172.16.0.1到172.16.31.254 |
172.16.32.0 |
255.255.224.0 |
172.16.63.255 |
172.16.32.1到172.16.63.254 |
172.16.64.0 |
255.255.224.0 |
172.16.95.255 |
172.16.64.1到172.16.95.254 |
172.16.96.0 |
255.255.224.0 |
172.16.127.255 |
172.16.96.1到172.16.127.254 |
172.16.128.0 |
255.255.224.0 |
172.16.159.255 |
172.16.128.1到172.16.159.254 |
172.16.160.0 |
255.255.224.0 |
172.16.191.255 |
172.16.160.1到172.16.191.254 |
172.16.192.0 |
255.255.224.0 |
172.16.223.255 |
172.16.192.1到172.16.223.254 |
172.16.224.0 |
255.255.224.0 |
172.16.255.255 |
172.16.224.1到172.16.255.254 |
在上一個示例中,第一個子網(子網172.16.0.0/19)稱為零子網。
劃分子網的網路類別和劃分子網後獲得的子網數量不能確定子網零。它是劃分子網網路地址時獲得的第一個子網。此外,當您寫出子網零地址的二進位制等效值時,所有子網位(本例中為14、15和16位)都為零。零子網也稱為全零子網。
全1子網
對網路地址劃分子網後,最後獲得的子網稱為全1子網。
對於前面的示例,對網路172.16.0.0(子網172.16.224.0/19)劃分子網時獲得的最後一個子網稱為全1子網。
劃分子網的網路類別和劃分子網後獲得的子網數量並不能確定全1子網。此外,當您寫入全1子網地址的二進位制等效項時,所有子網位(在本例中為14、15和16位)都是1,因此命名為。
零子網和全1子網的問題
傳統上,強烈建議不要將零子網和全1子網用於IP地址。 基於RFC 950,「在經過子網劃分處理的網路中保留並擴展這些特殊(網路和廣播)地址的解釋非常有用。這意味著不能將子網欄位中的所有零和全部一的值分配給實際(物理)子網。」 這就是網路工程師需要計算借用3位時獲得的子網數量時,計算出的子網數量為23-2 (6)而不是23 (8)的原因。-2知道零子網和全1子網在傳統上不使用。
零子網問題
不建議使用零子網進行IP編址,因為網路與地址難以區分的子網存在固有混淆。
對於前面的示例,請考慮IP地址172.16.1.10。如果計算與此IP地址關聯的子網地址,您會發現答案是子網172.16.0.0(零子網)。請注意,此子網地址與網路地址172.16.0.0相同,而網路地址最初經過子網劃分,因此每次執行子網劃分時,您都會得到一個網路和一個地址難以區分的子網(零子網)。這曾經是引起巨大混亂的根源。
在Cisco IOS®軟體版本12.0之前,預設情況下,Cisco路由器不允許在介面上配置屬於零子網的IP地址。但是,如果使用Cisco IOS軟體12.0版本以前版本的網路工程師發現使用全0子網很安全,全局配置模式的ip subnet-zero命令可以用來克服此限制。時至Cisco IOS軟體版本12.0的推出,Cisco路由器現在可以預設啟用ip subnet-zero,但是如果網路工程師認為使用零子網不安全,no ip subnet-zero命令則可以用來限制子網零地址的使用。
在Cisco IOS軟體版本8.3之前的版本中,使用了service subnet-zerocommand。
全1子網問題
過去不鼓勵使用全1子網進行IP編址,因為網路與具有相同廣播地址的子網存在固有混淆。
參考前面的示例,最後一個子網(子網172.16.224.0/19)的廣播地址是172.16.255.255,與網路172.16.0.0的廣播地址相同,而後者首先進行了子網劃分,因此每當您執行子網劃分時,您都會得到一個具有相同廣播地址的網路和一個子網(全1子網)。換句話說,網路工程師可以在路由器上配置地址172.16.230.1/19,但如果這樣做,他就無法再區分本地子網廣播(172.16.255.255 (/19))和完整的B類廣播(172.16.255.255(/16))。
雖然現在可以使用全1子網,但配置錯誤可能會引起問題。
註:請參閱主機和子網數量瞭解詳細資訊。
為了讓您知道會發生什麼,請考慮以下事項:
配置錯誤的多合一子網
路由器2至5是接入路由器,每個路由器都有多個傳入的非同步(或ISDN)連線。網路(192.168.1.0/24)針對這些內送使用者分成四個部分。每個部分都分配給其中一台接入路由器。並且,這些非同步線路是configuredip unnum e0。路由器1的靜態路由指向正確的接入路由器,而每台接入路由器在路由器1上都有預設路由點。
Router 1的路由表如下所示:
C 192.168.2.0/24 E0
S 192.168.1.0/26 192.168.2.2
S 192.168.1.64/26 192.168.2.3
S 192.168.1.128/26 192.168.2.4
S 192.168.1.192/26 192.168.2.5
接入路由器具有相同的乙太網連線路由、相同的預設路由和若干條非同步線路的主機路由(由點對點協定(PPP)提供)。
Router 2 routing table: Router 3 routing table:
C 192.168.2.0/24 E0 C 192.168.2.0/24 E0
S 10.0.0.0/0 192.168.2.1 S 10.0.0.0/0 192.168.2.1
C 192.168.1.2/32 async1 C 192.168.1.65/32 async1
C 192.168.1.5/32 async2 C 192.168.1.68/32 async2
C 192.168.1.8/32 async3 C 192.168.1.74/32 async3
C 192.168.1.13/32 async4 C 192.168.1.87/32 async4
C 192.168.1.24/32 async6 C 192.168.1.88/32 async6
C 192.168.1.31/32 async8 C 192.168.1.95/32 async8
C 192.168.1.32/32 async12 C 192.168.1.104/32 async12
C 192.168.1.48/32 async15 C 192.168.1.112/32 async15
C 192.168.1.62/32 async18 C 192.168.1.126/32 async18
Router 4 routing table: Router 5 routing table:
C 192.168.2.0/24 E0 C 192.168.2.0/24 E0
S 10.0.0.0/0 192.168.2.1 S 10.0.0.0/0 192.168.2.1
C 192.168.1.129/32 async1 C 192.168.1.193/32 async1
C 192.168.1.132/32 async2 C 192.168.1.197/32 async2
C 192.168.1.136/32 async3 C 192.168.1.200/32 async3
C 192.168.1.141/32 async4 C 192.168.1.205/32 async4
C 192.168.1.152/32 async6 C 192.168.1.216/32 async6
C 192.168.1.159/32 async8 C 192.168.1.223/32 async8
C 192.168.1.160/32 async12 C 192.168.1.224/32 async12
C 192.168.1.176/32 async15 C 192.168.1.240/32 async15
C 192.168.1.190/32 async18 C 192.168.1.252/32 async18
如果非同步線路上的主機配置不正確,掩碼為255.255.255.0而非255.255.255.192,結果會如何?一切正常嗎?
瞭解當其中一個主機(192.168.1.24)執行本地廣播(NetBIOS、WINS)時發生的情況。資料包如下所示:
s: 192.168.1.24 d: 192.168.1.255
Router 2會收到封包。路由器2將資料包傳送到路由器1,路由器1將資料包傳送到路由器5,路由器5將資料包傳送到路由器1,路由器1將資料包傳送到路由器5,以此類推,直到生存時間(TTL)過期。
以下是另一個範例(主機192.168.1.240):
s: 192.168.1.240 d: 192.168.1.255
Router 5會收到此封包。路由器5將資料包傳送到路由器1,路由器1將資料包傳送到路由器5,路由器5將資料包傳送到路由器1,路由器1將資料包傳送到路由器5,以此類推,直到TTL過期。如果發生這種情況,您可能會認為自己受到了資料包攻擊。鑑於路由器5上的負載,這不是不合理的假設。
在此範例中,已建立路由回圈。由於Router 5處理全1子網,因此會遭到攻擊。路由器2至4只看到「廣播」資料包一次。Router 1也遭命中,但如果是Cisco 7513,該路由器可以處理此情況呢?在這種情況下,您需要使用正確的子網掩碼配置主機。
要防止未正確配置的主機,請在每個接入路由器上建立一個環回介面,將靜態路由192.168.1.255路由到該環回地址。您可以使用Null0介面,但是這會導致路由器產生網際網路控制訊息通訊協定(ICMP)「無法連線」訊息。
使用零子網和全1子網
必須注意的是,即使不鼓勵這樣做,包含零子網和全1子網的整個地址空間始終都是可用的。從Cisco IOS軟體版本12.0開始,明確允許使用全1子網,並且明確允許使用零子網。早在Cisco IOS軟體版本12.0之前,如果輸入ip subnet-zero全局配置命令,就可以使用零子網
有關零子網和全1子網使用情況的問題,請參閱RFC 1878。目前,零子網和全1子網被普遍接受,大多數供應商都支援使用。但是,在某些網路(尤其是使用傳統軟體的網路)上,使用全0子網和全1子網會導致問題。
附註:只有完成註冊的思科使用者能存取思科內部工具與資訊。
相關資訊