前文我們了解了PPPoE協議相關話題,回顧請參考https://www.cnblogs.com/qiuhom-1874/p/15182512.html;今天我們聊聊一聊OSPF中的網絡類型相關話題;
在na的筆記里,我們也提到過ospf的網絡類型;ospf的網絡類型是根據對應接口二層封裝來進行分類的;對於二層鏈路是以太網封裝的,在ospf里叫廣播型網絡類型;這種網絡類型支持廣播和組播,也是我們最常見的一種ospf網絡類型;對於二層鏈路是ppp點到點封裝的,在ospf里叫點到點網絡類型,該網絡類型,支持廣播和組播,但不支持多路訪問;所謂多路訪問是指是否有共享介質將多個網絡設備連接在一起;對於點到點類型的網絡,接口和接口中間沒有其他共享介質連接其他設備,所以點到點類型的網絡不是多路訪問網絡,但支持廣播和組播;除上述兩種常見的網絡類型以外;還有一種就是非廣播多路訪問;這種網絡類型的二層鏈路封裝是幀中繼封裝;不支持廣播和組播,但是它是多路訪問,原因是幀中繼網絡類型,可以用幀中繼交換機將多個路由器連接起來,實現幀中繼網絡;以上是三種ospf里的網絡類型;它們的二層鏈路封裝都有默認的協議封裝;但對於第四種網絡類型P2MP(點到多點,是多個點到點的網絡集合),這種網絡類型來說,它沒有默認的二層鏈路封裝協議,只有我們手動更改對應接口的網絡類型為P2MP網絡類型;這種手動更改為P2MP網絡類型我們可以看作一組點到點網絡的集合;這種網絡類型支持廣播、組播;
P2P網絡類型
提示:P2P網絡連接了一對通過PPP協議的二層鏈路封裝的路由器,中間沒有其他設備,廣播、珠寶數據包都可以正常轉發;該網絡類型,ospf是不需要選DR和BDR;
廣播型網絡
提示:廣播型網絡支持兩台及以上的設備接入同一共享鏈路且可以支持廣播、組播報文的轉發,是ospf中最常見的網絡類型;廣播型網絡是通過以太網鏈路相連的路由器網絡;該網絡類型,ospf是需要選DR和BDR;
NBMA網絡
提示:NBMA網絡默認不支持廣播域組播報文的轉發,在NBMA網絡上,OSPF模擬在廣播型網絡上的操作,但每個路由器的鄰居需要我們手動配置;NBMA網絡是全互聯的幀中繼鏈路相連的路由器網絡;該網絡類型,ospf是需要選DR和BDR;
P2MP網絡
提示:P2MP網絡我們可以看作一組P2P網絡,這樣便行成為了一個點到多點網絡;在P2MP網絡上,每個路由器的OSPF鄰居可以使用方向地址解析協議(Inverse ARP)來發現;P2MP可以看作多個P2P的集合,所以P2MP可以支持廣播、組播的轉發;沒有一種鏈路層協議默認屬於P2MP類型網絡,也就是說我們必須由其他的網絡類型強制更改為P2MP;最為常見的做法將非完全連接的幀中繼或ATM(異步傳輸)改為P2MP;該網絡類型,ospf是不需要選DR和BDR;
實驗:如下拓撲,實現全互聯的幀中繼網絡
提示:DLCI我們可以理解為以太網交換機中的mac地址;上圖中AR1上有去往AR2的HDLC為102,去往AR3的DLCI為103;AR2去往AR1的HDLI為201,去往AR3的DLCI為203;AR3去往AR1的DLCI為301,去往AR2的DLCI為302;
配置各路由器接口ip地址和更改對應接口為幀中繼封裝
配置R1

sys sys R1 int s4/0/0 link-protocol fr y ip add 202.11.0.1 24
配置R2

sys sys R2 int s4/0/0 link-protocol fr y ip add 202.11.0.2 24
配置R3

sys sys R3 int s4/0/0 link-protocol fr y ip add 202.11.0.3 24
提示:三個路由器都需要將對應串口的二層封裝修改為幀中繼網絡;從上面的截圖可以看到,更改對應接口的封裝為幀中繼封裝,配置好ip地址以后,對應的接口都up起來;
驗證:在R1上pingR2 、R3看看是否能正常ping通?
提示:可以看到在R1上ping R2、R3都不能Ping通;什么原因呢?其實原因就是因為我們中間連接的是幀中繼交換機,它和以太網交換機不同,需要我們手動配置對應網絡的映射關系,類似以太網交換機中的mac地址表;
配置幀中繼交換機映射
提示:上述三條映射分別表示R1從幀中繼0口收到DLCI為102的數據包,從1口發送出去修改為201;對應返回的數據包,它會自動根據這條映射,將DLCI為201的數據包從1口收到,從0口發送出去,並將對應DLCI修改為102;這樣一來就打通了R1到R2的映射;同樣的道理R1到R3,源端口為0口,發送出去的的DLCI為103,對應幀中繼交換機的1口收到此類數據包,會將對應的數據包的DLCI為103修改為301,然后從2口發送出去,回來的包自動修改對應的DLCI;對於R2到R3也是類似的邏輯;
配置路由器映射
配置R1的映射,將DLCI為102映射為對應網絡為202.11.0.2,DLCI為103映射對應網絡為202.11.0.3
提示:配置映射需要在對應接口下配置;
配置R2的映射,把DLCI為201映射ip為202.11.0.1,DLCI為203映射ip為202.11.0.3
配置R3的映射,把DLCI為301映射ip為202.11.0.1,DLCI為302映射ip為202.11.0.2
提示:后面的broadcast參數表示支持廣播發送;
驗證:在R1上看對應映射配置
提示:查看映射,一定要看對應狀態為active狀態才表示對應映射生效;
驗證:現在用R1ping R2、R3看看是否能夠ping通呢?
提示:可以看到R1可以正常ping通R2和R3;
驗證:在幀中繼交換機的0口抓包看看通信過程
提示:可以看到R1ping R2的所有包其DLCI都為102;
驗證:用R1PingR3看看對應包的DLCI是否為103呢?
提示:可以看到R1PingR3的DLCI是103;其實我們也很好理解,路由器里有對應的映射,它在發送數據包之前會查看對應的目標地址,根據對應目標地址修改其DLCI;回包也是同樣的邏輯;
實驗:如下拓撲配置非完全互聯的幀中繼網絡
提示:這個實驗和上面那個實驗唯一的區別是R2沒有直達R3的DLCI,其他都一樣,變化的只有R2、R3的映射,以及正宗交換機里的映射;
配置幀中繼交換機映射
配置R2、R3映射
提示:上述命令表示R2去往R1或和R3對應的DLCI都為201;
提示:上述命令表示R3去往R1或和R2對應的DLCI都為301;
驗證:現在用R2pingR3看看是否能通?
提示:可以看到R2現在也能正常ping通R3;
驗證:在幀中繼交換機的0口抓包看看R2pingR3對應DLCI的變化
提示:可以看到R2pingR3是,首先R2用DLCI為201把數據包發送給R1,幀中繼交換機收到對應的數據包,會從0口發送給R1並把對應DLCI修改為102,隨后R1收到對應DLCI為102的數據包,查看目標網絡為R3,然后它查映射表,然后把對應的數據包的DLCI修改為103,然后發送給幀中繼交換機;從上面的過程可以看到,此時R2和R3沒有直達DLCI時,可以借助R1的DLCI實現通訊;
其實上述實驗中,我們不配置路由器的映射,對應網絡也能正常實現互通;其原因是在幀中繼網絡里可以用方向地址解析(Inverse ARP)來學習到對應的DLCI映射關系;默認情況下是開啟Inverse arp功能;如果手動關閉了此功能,就需要我們手動配置對應路由的映射;
關閉方向地址arp解析
在上述實驗環境跑OSPF
提示:上述命令需要在三個路由器上都配置對應ospf;
驗證:查看對應ospf網絡類型
提示:可以看到對應ospf網絡類型為NBMA;
驗證:查看ospf鄰居信息
提示:可以看到配置好對應ospf以后,對應鄰居並沒有建立;其原因是NBMA網絡類型不支持組播;所以我們還需要手動配置鄰居信息;
在R1手動配置鄰居關系
提示:可以看到手動配置鄰居信息以后,對應鄰居就處於attempt狀態;該狀態表示等待鄰居喚醒;只要對應鄰居也認識了R1,對應狀態就會變為full;
在R2上手動配置鄰居關系
提示:可以看到在R2上手動配置鄰居信息以后,對應鄰居狀態就變為full了;此時R2就和R1建立起鄰居關系;對於R1和R3也是同樣的邏輯;但是R2和R3是建立不起鄰居的;原因是R2沒有直達R3的鏈路;他倆通信需要R1的中轉,所以建立不起鄰居;在完全互聯的幀中繼網絡是可以正常建立鄰居關系;這里還需說明一點NBMA雖然不支持廣播、組播,但它還是一個多路訪問網絡,所以它還是會選DR和BDR的;
在R2上查看DR和BDR
更改NBMA網絡類型為P2MP
修改R1的s4/0/0接口網絡類型為P2MP
提示:可以看到把R1的s4/0/0接口網絡類型修改為P2MP以后,對應鄰居就down掉了,過一會有起來了;現在R1的s4/0/0的網絡類型為P2MP,而R2的接口還是NBMA,從原理上講,兩者封裝不同應該建立不起鄰居;為什么這里建立起鄰居了呢?其實原因就是ospf建立鄰居它不看接口網絡類型;但通常建議把對應接口都改為相同的網絡類型;
修改R2的s4/0/0接口網絡類型為P2MP
驗證:ospf網絡類型
提示:P2MP網絡類型是不需要選DR和BDR,其原因是它本質上還是點到點類型網絡;但該網絡類型支持廣播和組播,所以我們無需手動建立鄰居;
回環接口/32主機路由現象
實驗:在R1上新建回環接口lo1其地址為1.1.1.1 24,並宣告在ospf里,看看R2學習到的路由掩碼是多少
在R2上查看對應學習到的路由信息
提示:上述兩條命令都可以用來查看ospf路由信息;從上面的信息可以看到對應R2學習到的路由並非/24,而是/32;這到底是為什么呢?原因是ospf認為回環口只有一個地址,它不可能和其他接口在同一網段,所以在傳遞是自動變成/32的主機路由信息;我們可以通過修改對應回環口網絡類型為broadcast來還原;
查看R1回環接口的網絡類型
提示:默認情況下lo接口的網絡類型為p2p網絡類型;
修改lo1接口的網絡類型為broadcast,再次看看R2學習到的路由還會是/32嗎?
在R2上查看對應學習到的路由
提示:可以看到現在ospf學習到的回環接口的路由的掩碼就變為了24,還原了對應網絡配置時的掩碼;