无论是cisco还是华三的书上对于子网划分有个问题需要解释
無論是cisco還是華三的書上對于子網劃分有個問題,例如:如果子網為有五位 ,則可以劃分為30個子網。在實際中卻不是這樣的 子網位五位,可以劃分為32個子網。那為什么這么寫,難道是出書的人寫錯了,其實不是。這是由原因的:這需要講到一個cisco 命令入手 “ip?classless”
關于ip?classless問題,給個簡單的例子,假設show?ip?route時在路由表中有以下輸出
C?10.1.1.0/24?s0/0
C?10.1.2.0/24?s0/1
S????10.1.3.0/24?s0/0
S?0.0.0.0/0??????s0/1
問路由器收到IP包,目的地址10.1.4.1,路由器該如何轉發?
問路由器收到IP包,目的地址20.1.4.1,路由器該如何轉發?
根據常識大家都會說走默認路由?;卮鹫_,但是這只是在ip?classless命令生效的時候。如?果去除這條命令,結果就是去20.1.4.1走默認路由,去10.1.4.1路由器則丟棄!
為什么這樣,在沒有ip?classless命令生效的時候,cisco?路由器找路由記錄首先看目的地址??????是哪個大的網絡號,如現在10.1.4.1的大網絡號是10.0.0.0,因為它是A類地址,然后在路由表中找這個大網絡號或其子網的相關的記錄,如果能找到對應記錄則轉發,如果找不到則丟棄。為什么不走默認路由?因為現在路由器認為它知道10.0.0.0這個A類地址上的所有子網,例子中只有3個10.1.1.0/24,?10.1.2.0/24?,?10.1.3.02/24,數據包要去的10.1.4.0/24這個子網并不存在,所以將數據包丟掉。
去20.1.4.1則不同,因為路由表中沒有20.0.0.0這個大網絡號的相關路由記錄,所以立刻走默認路由。
總結:ip?classless命令其實是影響的路由表查找的方法,最直接的效果就是對默認路由的使用。有了ip?classless命令,則路由器查找路由表使用的是最長匹配原則,而不首先考慮目的地址是哪個類的
?
?
如果你有一個CLASS?C的IP地址,比如192.168.10.0,你想把它分成8個網段,每個網段內可以有32臺主機,你可以這樣分:
subnetmask是:255.255.255.224
192.168.10.0?-?31,?網絡地址:192.168.10.0,廣播地址:192.168.10.31
192.168.10.32?-?63,?網絡地址:192.168.10.32,?廣播地址:192.168.10.63
192.168.10.64?-?95,?網絡地址:192.168.10.64,廣播地址:192.168.10.95
192.168.10.96?-?127,?網絡地址:192.168.10.96,廣播地址:192.168.10.127
192.168.10.128?-?159,?網絡地址:192.168.10.128,廣播地址:192.168.10.159
192.168.10.160?-?191,?網絡地址:192.168.10.160,廣播地址:192.168.10.191
192.168.10.192?-?223,?網絡地址:192.168.10.192,廣播地址:192.168.10.223
192.168.10.224?-?255,?網絡地址:192.168.10.224,廣播地址:192.168.10.255
即:每個網段32個IP地址,第一個是網絡地址,用來標志這個網絡,最后一個是廣播地址,用來代表這個網絡上的所有主機。這兩個IP地址被TCP/IP保留,不可分配給主機使用。
另外,第一個子網192.168.10.0?-?31和最后一個子網192.168.10.224?-?255通常也被保留,不能使用,原因是因為第一個子網的網絡地址192.168.10.0和最后一個子網的廣播地址192.1.68.10.255具有二意性。
先看看這個大C的網絡地址和廣播地址:
192.168.10.0是它的網絡地址,192.168.10.255是它的廣播地址.顯然,它們分別與第一個子網的網絡地址和最后一個子網的廣播地址相重了。
那么怎樣區分192.168.10.0到底是哪個網絡的網絡地址呢?
答案是:把子網掩碼加上去!
192.168.10.0?255.255.255.0?是大C的網絡地址,192.168.10.0?255.255.255.224?是第一個子網的網絡地址,192.168.10.255?255.255.255.0是大C的廣播地址,192.168.10.255?255.255.255.224是最后一個子網的廣播地址。帶上掩碼,它們的二意性就不存在了。
所以,在嚴格按照TCP/IP?ABCD給IP地址分類的環境下,為了避免二意性,全0和全1網段都不讓使用。這種環境我們叫作Classful。在這種環境下,子網掩碼只在所定義的路由器內有效,掩碼信息到不了其它路由器,比如RIP-1,它在做路由廣播時根本不帶掩碼信息,收到路由廣播的路由器因為無從知道這個網絡的掩碼,只好照標準TCP/IP的定義賦予它一個掩碼。比如,拿到10.X.X.X,就認為它是A類,掩碼是255.0.0.0;拿到一個204.X.X.X,就認為它是C類,掩碼是255.255.255.0。
但在Classless的環境下,掩碼任何時候都和IP地址成對地出現,這樣,前面談到的二意性就不會存在,是Classful還是Classless取決于你在路由器上運行的路由協議,一個路由器上可同時運行Classful和Classless的路由協議。RIP是?Classful,它在做路由廣播時不帶掩碼信息;OSPF,EIGRP,BGP4是Classless的,它們在做路由廣播時帶掩碼信息,它們可以同時運行在同一臺路由器上。
在Cisco路由器上,缺省你可以使用全1網段,但不能使用全0網段。所以,當在Cisco路由器上給端口定義IP地址時,該IP地址不能落在全0網段上。如果你配了,你會得到一條錯誤信息。使用IP?SUBNET-ZERO命令之后,你才能使用全0網段。
要強調的是,使用了IP?SUBNET-ZERO命令之后,如果路由協議使用的是Classful的(比如RIP),雖然你的定義成功了,但那個子網掩碼還是不會被RIP帶到它的路由更新報文中。即,IP?SUBNET-ZERO?命令不會左右路由協議的工作。
總之,TCP/IP協議中,全0和全1網段因為具有二意性而不能被使用。Cisco?缺省使全1網段可以被使用,但全0網段只有在配置了IP?SUBNET-ZERO后方可被使用。
?
?
轉載于:https://blog.51cto.com/h3cxbj502/371286
總結
以上是生活随笔為你收集整理的无论是cisco还是华三的书上对于子网划分有个问题需要解释的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ARP 地址解析协议
- 下一篇: win7域内桌面黑屏