子網(wǎng)掩碼、反掩碼以及ospf network命令誤區(qū)
在學(xué)習(xí)過程中,難免會(huì)有些誤區(qū),本文為大家徹底澄清子網(wǎng)掩碼、反掩碼、通配符掩碼以及ospf network命令誤區(qū),并介紹一些正確的示例:
1.子網(wǎng)掩碼(IP subnet mask)
用途:標(biāo)識(shí)一個(gè)IP地址的網(wǎng)絡(luò)位,主機(jī)位
網(wǎng)絡(luò)設(shè)備判斷目的IP跟自己是否同一網(wǎng)段的依據(jù)。
特點(diǎn):1和0絕對(duì)不可能間隔,1總在0的前面。
網(wǎng)絡(luò)通信角度,子網(wǎng)掩碼只具有本地意義。跟對(duì)端沒有匹配的硬性要求。
誤區(qū):一條鏈路兩端的子網(wǎng)掩碼必須一致(是習(xí)慣不是必須)
例外:ospf 多路訪問網(wǎng)絡(luò)中,掩碼不一致會(huì)影響ospf鄰居關(guān)系建立
2.通配符掩碼 wildcard mask
用途:選出一組符合否規(guī)則的IP地址
特點(diǎn):0表匹配,1表示不需要匹配。0和1 的位置根據(jù)需求可隨意穿插
示例1:
deny ip 192.168.1.0 0.0.0.255 192.168.2.0 0.0.0.255
deny ip 192.168.1.2 0.0.0.255 192.168.2.2 0.0.0.255
deny ip 192.168.1.3 0.0.0.255 192.168.2.3 0.0.0.255
這三跳條目是完全相同的,效果都是阻止192.168.1.x 訪問192.168.1.x (x表示任意數(shù)字)
紅色字體部分對(duì)應(yīng)的是全1,所以是忽略的 ,寫什么都無所謂了
實(shí)例2:
deny ip 192.168.1.0 255.0.0.255 192.168.2.0 255.0.0.255
deny ip 193.168.1.0 255.0.0.255 193.168.2.0 255.0.0.255
deny ip 194.168.1.0 255.0.0.255 194.168.2.0 255.0.0.255
這三跳條目是完全相同的,效果都是阻止x.168.1.x 訪問 x.168.2.x (x表示任意數(shù)字)
紅色字體部分對(duì)應(yīng)的是全1,所以是忽略的 ,寫什么都無所謂了
3. 反掩碼(中國式教育的敗筆,誤人子弟的一個(gè)說法,通配符掩碼的錯(cuò)誤理解)
需求1:阻止192.168.1.0/24 訪問 192.168.2.0/24
命令:deny ip 192.168.1.0 0.0.0.255 192.168.2.0 0.0.0.255
看起啦確實(shí)是把掩碼反過來寫正好滿足要求,實(shí)際上邏輯關(guān)系已經(jīng)變了。只是恰巧蒙對(duì)了而已。
少有求知欲的同學(xué)都有必要問一下,為什么要把掩碼反過來寫呢?
如果寫成 deny ip 192.168.1.0 255.255.255.0 192.168.2.0 255.255.255.0
嚴(yán)格解讀效果是:拒絕 x.x.x.0 訪問 x.x.x.0
但是很多版本故作人性化,show run的時(shí)候自己給該成了:
deny ip 192.168.1.0 0.0.0.255 192.168.2.0 0.0.0.255
這屬于操作系統(tǒng)對(duì)客戶錯(cuò)誤理解的妥協(xié)
后期的思科版本不再做此修改
-----------------------------------------------------------------
需求2:阻止 X.168.1.x 訪問 X.168.2.x
命令:deny ip 192.168.1.0 255.0.0.255 192.168.2.0 255.0.0.255
這個(gè)需求用反掩碼的邏輯恐怕就行不通了吧? 當(dāng)然這個(gè)需求屬于怪異需求。
4.ospf的network命令(非rfc規(guī)定,各廠家可以自行設(shè)計(jì),以下為大部分廠家邏輯)
正解:
Network + IP + wild card bits
Network 通過 IP 和 wild card bits 篩選出一組IP地址,從而定位出需要開啟OSPF的接口(誰擁有其中一個(gè)IP地址誰就開啟OSPF)
接口開啟ospf 含義有二:1. 從該接口收發(fā)ospf報(bào)文
2.該接口所在的網(wǎng)絡(luò)對(duì)應(yīng)的路由成為ospf的資源,從其他接口發(fā)給鄰居(當(dāng)然ospf發(fā)的不是路由條目)
示例:inter f0/1
ip add 10.1.1.1 255.255.255.0
router ospf 1
network 10.1.1.1 0.0.0.255 area 0
這個(gè)network命令實(shí)際上宣告了10.1.1.0-10.1.1.255 這256個(gè)地址。
當(dāng)然在這個(gè)環(huán)境下恰好有且僅有一個(gè)接口在這個(gè)范圍內(nèi)。
也就是說把接口的掩碼反過來寫正好能且只能宣告一個(gè)接口。不會(huì)多宣告
如果寫成
network 10.1.1.1 0.0.0.0 area 0 效果也完全一樣
或者寫成
network 10.1.1.2 0.0.0.255 area 0 紅色字體部分隨便寫,效果也是一樣的
如果寫成
network 0.0.0.0 255.255.255.255 area 0 宣告所有的IP地址,也就是所有的接口
如果寫成
network 0.0.0.0 0.0.0.0 area 0 也是宣告所有接口,邏輯上講不通(這個(gè)背過吧)
重大誤區(qū):
1. network 宣告的是路由,影響鄰居學(xué)習(xí)路由的掩碼
2. network IP 后面跟的是反掩碼,必須把掩碼反過來寫,否則會(huì)影響路由學(xué)習(xí)
錯(cuò)誤理解示例1:
network 10.1.1.1 0.0.0.0
會(huì)導(dǎo)致鄰居學(xué)到 10.1.1.1/32位的路由(已經(jīng)遇到好多人跟我糾結(jié)這種問題,唉,網(wǎng)絡(luò)世界,其實(shí)難尋知己)
原文博客:http://blog.sina.com.cn/s/blog_bf5ae9030101cy25.html