前文我們了解了OSPF的網絡類型,OSPF中的DR和BDR的選舉規則、作用等相關話題,回顧請參考https://www.cnblogs.com/qiuhom-1874/p/15054938.html;今天我們來聊一聊OSPF的度量值以及基礎配置命令相關話題;
我們知道路由器的作用就是維護路由表和根據路由表中的路由來進行數據包轉發;其中路由表中有目標網絡、掩碼、優先級、開銷、下一跳、出接口等信息;其中開銷(cost)這個字段就是用來描述到達目標網絡的開銷;對於不同類型的路由,其開銷這個字段的意義各不相同;比如在RIP里cost這個字段是用來描述到達目標網絡的跳數(默認情況下數據包所經過一個路由器,其跳數+1),並且規定大於等於16,該路由則為不可達網絡;而在OSPF中cost這個字段是用來描述對應路由所在匹配的接口開銷;在每一個運行OSPF的接口上,都維護着一個接口開銷,這個接口開銷是指接口帶寬參考值和接口帶寬的比,即cost=接口帶寬參考值/接口帶寬;接口帶寬參考值是10^8,單位是bps(每秒傳輸的字節數);換算成以兆(M)為單位就是100Mbps;所以默認情況下在ospf中cost的計算就是100Mbps/對應接口的帶寬;比如接口帶寬為100M,對應計算cost就是1;對應接口帶寬為1000M,按照公式計算出來的cost應該是0.1,但是在cost這個字段上是沒有小數的,所以如果接口帶寬為1000M,那么對應的開銷也是為1;所以在ospf中開銷最小值為1 ;如果我們計算cost的值有小數,則直接取整(注意不是四舍五入哦);對於物理的接口通過上述公式可以計算出cost;對於邏輯接口lo,華為這邊默認是0,思科默認是1;
在ospf里cost是用來描述到達一個目標網絡的度量值,該度量值可以從兩個層面來描述,如果從數據層面,我們就說這個cost是用來描述從源到目標,沿途所經過的路由器出站接口的cost值的累加;如果從路由學習方向(控制層面)來講,cost是指從源到目標,沿途所經過的路由器入站接口的cost的值的累加;這兩句話都是表達的同一個意思,只是各自描述的方向不同;
提示:從1.1.1.0/24網絡到達路由器A的cost為1的話,那么到達路由器B的cost就是路由器A的入站接口cost+路由器B的入站接口的cost,即1+64=65;到達C路由器的cost就是路由器A的入站接口cost+路由器B的人站接口cost+c的入站接口cost,即從1.1.1.0/24網絡到達路由器C的cost就為1+64+1=66;
實驗:如下圖top,配置好各路由器,並全網運行ospf
R1的配置
<Huawei>sys Enter system view, return user view with Ctrl+Z. [Huawei]sys R1 [R1]int g0/0/0 [R1-GigabitEthernet0/0/0]ip add 192.168.100.1 24 [R1-GigabitEthernet0/0/0]int lo1 Jul 28 2021 10:55:40-08:00 R1 %%01IFNET/4/LINK_STATE(l)[0]:The line protocol IP on the interface GigabitEthernet0/0/0 has entered the UP state. [R1-GigabitEthernet0/0/0]int lo1 [R1-LoopBack1]ip add 1.1.1.1 32 [R1-LoopBack1]ospf 1 router-id 1.1.1.1 [R1-ospf-1]area 0 [R1-ospf-1-area-0.0.0.0]net 192.168.100.0 0.0.0.255 [R1-ospf-1-area-0.0.0.0]net 1.1.1.1 0.0.0.0 [R1-ospf-1-area-0.0.0.0]
R2的配置
<Huawei>sys Enter system view, return user view with Ctrl+Z. [Huawei]sys R2 [R2]int g0/0/0 [R2-GigabitEthernet0/0/0]ip add 192.168.100.2 24 [R2-GigabitEthernet0/0/0]int lo1 Jul 28 2021 10:56:29-08:00 R2 %%01IFNET/4/LINK_STATE(l)[0]:The line protocol IP on the interface GigabitEthernet0/0/0 has entered the UP state. [R2-GigabitEthernet0/0/0]int lo1 [R2-LoopBack1]ip add 2.2.2.2 32 [R2-LoopBack1]ospf 1 router-id 2.2.2.2 [R2-ospf-1]area 0 [R2-ospf-1-area-0.0.0.0]net 192.168.100.0 0.0.0.255 [R2-ospf-1-area-0.0.0.0]net 2.2.2.2 0.0.0.0 [R2-ospf-1-area-0.0.0.0]
R3的配置
<Huawei>sys Enter system view, return user view with Ctrl+Z. [Huawei]sys R3 [R3]int g0/0/0 [R3-GigabitEthernet0/0/0]ip add 192.168.100.3 24 Jul 28 2021 10:57:07-08:00 R3 %%01IFNET/4/LINK_STATE(l)[0]:The line protocol IP on the interface GigabitEthernet0/0/0 has entered the UP state. int lo1 [R3-GigabitEthernet0/0/0] [R3-LoopBack1]ip add 3.3.3.3 32 [R3-LoopBack1]ospf 1 router-id 3.3.3.3 [R3-ospf-1]area 0 [R3-ospf-1-area-0.0.0.0]net 192.168.100.0 0.0.0.255 [R3-ospf-1-area-0.0.0.0]net 3.3.3.3 0.0.0.0 [R3-ospf-1-area-0.0.0.0] [R3-ospf-1-area-0.0.0.0]
R4的配置
<Huawei>sys Enter system view, return user view with Ctrl+Z. [Huawei]sys R4 [R4]int g0/0/0 [R4-GigabitEthernet0/0/0]ip add 192.168.100.4 24 [R4-GigabitEthernet0/0/0]int lo1 Jul 28 2021 10:57:43-08:00 R4 %%01IFNET/4/LINK_STATE(l)[0]:The line protocol IP on the interface GigabitEthernet0/0/0 has entered the UP state. [R4-GigabitEthernet0/0/0]int lo1 [R4-LoopBack1]ip add 4.4.4.4 32 [R4-LoopBack1]ospf 1 router-id 4.4.4.4 [R4-ospf-1]area 0 [R4-ospf-1-area-0.0.0.0]net 192.168.100.0 0.0.0.255 [R4-ospf-1-area-0.0.0.0]net 4.4.4.4 0.0.0.0 Jul 28 2021 10:57:44-08:00 R4 %%01OSPF/4/NBR_CHANGE_E(l)[1]:Neighbor changes event: neighbor status changed. (ProcessId=256, NeighborAddress=3.100.168.192, NeighborEvent=HelloReceived, NeighborPreviousState=Down, NeighborCurrentState=Init) [R4-ospf-1-area-0.0.0.0]net 4.4.4.4 0.0.0.0 Jul 28 2021 10:57:44-08:00 R4 %%01OSPF/4/NBR_CHANGE_E(l)[2]:Neighbor changes event: neighbor status changed. (ProcessId=256, NeighborAddress=3.100.168.192, NeighborEvent=2WayReceived, NeighborPreviousState=Init, NeighborCurrentState=2Way) [R4-ospf-1-area-0.0.0.0]net 4.4.4.4 0.0.0.0 [R4-ospf-1-area-0.0.0.0]
驗證:在R1上查看鄰居關系
提示:可以看到在R1上查看對應的鄰居表,里面有三個鄰居,和我們的拓撲圖一樣;說明ospf配置沒有問題,並且對應的ospf都運行起來;
驗證:在R1上查看通過ospf學習到的路由
提示:可以看到R1通過ospf學習到了三條路由,並且這三條路由的開銷都為1;這是因為,默認情況下lo接口的開銷為0,物理接口比如g0/0/0這些接口默認是1;所以R1到R2的lo接口的cost就是R2的lo接口的開銷+R1的g0/0/0接口的開銷,即0+1=1;同理R3、R4也是一樣的;
驗證:修改R1的g0/0/0接口開銷為10,看看對應的路由的開銷是否會發生變化呢?
提示:更改ospf的開銷,需要在對應接口上修改;可以看到修改了R1的g0/0/0接口開銷以后,對應學習到的路由開銷都變為10,這是因為各路由器到達R1時,都要從g0/0/0入站,所以開銷都是對應路由器的lo接口的開銷+R1的g0/0/0的開銷,即0+10=10;
驗證:在R2查看對應ospf學習到的路由,看看對應路由的開銷有什么變化?
提示:可以看到在R2上查看對應的路由,對應路由的開銷都為1,這是因為各路由器的lo接口從R2入站,對應cost就是各路由器的lo接口cost+上R2的g0/0/0接口的cost,即0+1=1;
驗證:更改R2的lo接口cost為100,看看對應路由的cost是否會有變化呢?
提示:可以看到在R2 上更改了lo接口cost為100以后,在R2上查看對應路由的cost並沒有發生變化,其原因是各個路由器的路由都是從R2的g0/0/0接口入站,對應cost就是為各路由器的lo接口cost+R2的g0/0/0接口的cost,即0+1=1;
驗證:在R3上查看對應ospf學習到的路由,看看對應路由的cost會是多少呢?
提示:可以看到在R3上查看ospf學習到的路由中,到達R2lo接口的路由,對應cost為101,這是因為R2的lo接口的cost為100,那么到達R3,對應cost就為R2的lo接口cost+R3的g0/0/0的cost,即100++1=101;對於除R2以外的其他路由器,學習到達R2的路由cost都是101;
路由表中的cost字段,主要用來描述到達目標網絡的cost,它的主要作用評判對應鏈路的cost,數字越大表示開銷越大,開銷越大即路由器選擇對應的路由的幾率就越低(如果有到達相同目標網絡的路由),所以更改cost是能夠影響路由器選路;
驗證:查看R4的lo接口和g/00/0接口,看看默認情況下對應lo接口和物理接口的cost為多少?
提示:默認情況下華為設備的lo接口cost為0,思科的設備lo接口cost為1 ;
OSPF基礎配置命令總結
ospf 1 router-id 1.1.1.1
提示:上述命令表示開啟ospf進程,進程號為1,並手動設置其router id 為1.1.1.1;
area 0
提示:上述命令是配置對應ospf的區域id為0;區域id為0表示該區域為ospf的骨干區域,非0的區域是常規區域;
network 192.168.0.0 0.0.0.255
提示:上述命令是用來在ospf中宣告網絡,這個和RIP中宣告網絡的命令一樣;只有在對應的動態路由協議中宣告了網絡,其他路由器才能學習到到達該網絡的路由條目;對於RIP來講,我們宣告的時候只需要把對應要宣告的網絡的主類地址進行宣告即可,不需要帶掩碼;而在ospf中,宣告網絡必須帶反掩碼,所謂反掩碼就是指255.255.255.255減去對應網絡的掩碼;比如255.255.255.0的反掩碼就是0.0.0.255;255.255.255.252的反掩碼就是0.0.0.3;我們宣告網絡可以對一個網段進行宣告,當然也可單獨對一個地址進行宣告,只要宣告的網絡能夠包含對應接口的地址就行;
display ospf peer
display ospf peer brief
提示:上述命令用來驗證ospf的鄰居信息的;
ospf timer hello 10
提示:該命令在對應接口下進行修改,表示修改ospf的發送hello包的時間間隔,默認只修改hello包發送時間間隔,對應死亡間隔也會跟着保持4倍關系進行修改;
ospf timer dead 40
提示:上述命令表示修改ospf接口hello包的死亡時間為40秒;如果修改了hello包的死亡事件和發送時間,它會以后者修改的為准,不會和hello發送時間保持4倍關系,如果只修改hello包的發送時間,它會跟着修改保持4倍關系;
display ospf interface g0/0/0
提示:該命令用於顯示ospf接口的相關信息;默認ospf后面不跟進程號,默認就是1號進程;
ospf dr-priority 100
提示:該命令用於在接口模式下修改ospf的DR優先級;默認情況下ospf的接口DR優先級都為1 ,修改其優先級可以影響對應DR和BDR的選舉,當前提是在DR和BDR沒有完全選舉成功,如果DR和BDR選舉成功,需要重置ospf進程觸發DR和BDR的重新選舉,讓其新的配置生效;
ospf cost 10
提示:該命令用於在接口模式下修改對應接口的cost,其范圍是1-65535,默認情況下都是1 ;
bandwidth-reference 100
提示:上述命令是在ospf進程模式下調整ospf接口的帶寬參考值,默認情況下帶寬參考值為100Mbps,如果要修改接口帶寬參考值,建議在整個OSPF網絡中統一進行調整;
reset ospf process
提示:該命令用於用戶模式下重啟ospf進程;