深刻理解OSPF建立鄰居過程

2021-09-26 08:06:34 字數 2241 閱讀 4816

拓撲圖:

知識點:

router-id:確定網路中的每一台路由器,router-id 是唯一的,不能重複,三種方法確定它: 1.在 ospf 程序中手工指定 router-id;

2…活動 loopback 介面 ip 位址最大的,最優選;

3.活動物理介面 ip 位址最大的,次優選;

dr/bdr:多路訪問網路中必須選擇出乙個核心路由器和備份核心路由器,稱為 dr(designated router)和 bdr(backup designated router),網路中所有的 ospf 路由器都和 dr/bdr 互換 lsa, 這樣一來,dr/bdr 就會擁有所有的 lsa,並且由 dr 將所有的 lsa **給每一台路由器,當 dr 丟失後,bdr 自動接管 dr 的工作,選舉順序依次為:介面優先順序 > router‐id,最大將成為 dr, 次大成為 bdr;

鄰居建立條件:必須滿足 4 個條件,才能形成 ospf 鄰居,4 個必備條件如下:

1.area-id(區域號碼)一致

2.hello and dead interval(hello 時間與 dead 時間)一致

3.authentication(認證)一致

4.stub area flag(末節標籤)一致

ospf 8 種狀態機:

1.down————剛剛啟動 ospf 程序,還沒有收到任何 hello 包

2.attempt———特殊網路環境,不能傳送組播,需要單播發送,例如幀中繼,會有此狀態 3.init—————只是一方收到另一方的 hello,但雙方沒有完成 hello 交換

4.two-way———已完成 hello 交換,已經在 hello 中看到自己是對方的鄰居

5.exstart————在交換 dbd 之前,要在此狀態協商主從關係,從先傳送 dbd 給主 6.exchange———完成協商後,開始交換 dbd

7.loading————收到 lsr 之後,確定對方少哪條 lsa,再傳送 lsu 告知對方自己的詳細 lsa 資訊

8.full——————完成鏈路資料庫收

實驗目的:深刻理解 ospf router-id、dr/bdr 和重分布原理

需求一:如上圖所示,四台路由器介面使用 192.168.1.0/24 網段,r1 位址是 1.1、r2 位址是 1.2,以此類推,r1 的 loopback 介面位址是 1.1.1.1/24,r2 是 2.2.2.2/24,以此類推; 需求二:完成 loopback 位址和物理介面位址,除了 r4 的 4.4.4.4/24 在 area 10 中執行,其他路由器的介面均在 area 0 中執行,注意:先不要將埠起來,只配位址和 ospf 程序; 需求二:配置完成後,確保你能 ping 通所有 192.168.1.0 網段的位址後,在 r1 上啟動 debug, 並且以此開啟介面,在 r1 上通過 debug 資訊檢視 ospf 鄰居建立和 dr/bdr 選舉過程;

需求三:配置 r4 將 loopback 介面 4.4.4.4 劃入 area 10,在 r1 上觀察 4.4.4.4 的路由,是否打 o ia,這表示 4.4.4.4.是 ospf 其他區域的路由條目;

需求四:r2 新建 200.1.1.1 的 loopback 介面位址,但不 network 進 ospf,問 r1 是否能夠 ping 通 200.1.1.1,為什麼,如何才能 ping 通,並且如何能夠自動讓其他路由器也知道該路由

需求二:

需求四:

深刻理解IdentityHashMap

新建pojo package test public class cat public string getname public void setname string name public integer getage public void setage integer age public...

深刻理解IdentityHashMap

新建pojo package test public class cat public string getname public void setname string name public integer getage public void setage integer age public...

JS深刻理解補充

對於函式的理解,首先看乙個函式定義 function functiondefined 顯而易見,functiondefined 為函式名字,在js中為指向這個函式體的指標,代表這個函式的指標的變數,並且和原始資料型別一樣儲存在棧中。而functiondefined函式體則儲存在堆中。每當new出乙個...