一、路由
1、路由的分類
2、路由協議分類
3、路由優先級
4、負載分擔
對同一路由協議來說,允許配置多條目的地相同且開銷也相同的路由。當到同一目的地的路由中,沒有更高優先級的路由時,這幾條路由都被采納,在轉發去往該目的地的報文時,依次通過各條路徑發送,從而實現網絡的負載分擔。
目前支持負載分擔有靜態路由/IPv6靜態路由、RIP/RIPng、OSPF/OSPFv3、BGP/IPv6 BGP和IS-IS/IPv6 IS-IS。
5、路由備份
使用路由備份可以提高網絡的可靠性。用戶可根據實際情況,配置到同一目的地的多條路由,其中優先級最高的一條路由作為主路由,其余優先級較低的路由作為備份路由。
正常情況下,路由器采用主路由轉發數據。當鏈路出現故障時,主路由變為非激活狀態,路由器選擇備份路由中優先級最高的轉發數據,實現從主路由到備份路由的切換;當鏈路恢復正常時,路由器重新選擇路由,由於主路由的優先級最高,
路由器選擇主路由來發送數據,實現從備份路由到主路由的切換。
6、路由迭代
對於BGP路由(直連EBGP路由除外)和靜態路由(配置了下一跳)以及多跳RIP路由而言,其所攜帶的下一跳信息可能並不是直接可達,需要找到到達下一跳的直連出接口。路由迭代的過程就是通過路由的下一跳信息來找到直連出接口的過程。
而對於OSPF和IS-IS等鏈路狀態路由協議而言,其下一跳是直接在路由計算時得到的,不需要進行路由迭代。
路由迭代信息記錄並保存路由迭代的結果,包括依賴路由的概要信息、迭代路徑、迭代深度等。
7、路由共享
由於各路由協議采用的路由算法不同,不同的路由協議可能會發現不同的路由。如果網絡規模較大,當使用多種路由協議時,往往需要在不同的路由協議間能夠共享各自發現的路由。
各路由協議都可以引入其它路由協議的路由、直連路由和靜態路由,具體內容請參見本手冊中各路由協議模塊有關引入外部路由的描述。
路由共享信息記錄了路由協議之間的引入關系。
8、路由擴展
路由擴展屬性主要是指BGP路由的擴展團體屬性以及OSPF路由的區域ID、路由類型和Router ID等。同路由共享一樣,路由協議可以引入其它路由協議的路由擴展屬性。
路由擴展信息記錄了各路由協議的路由擴展屬性以及路由協議擴展屬性之間的引入關系。
華三路由配置文檔:http://www.h3c.com/cn/d_201908/1222060_30005_0.htm#_Toc17299626
二、BFD
1、BFD介紹
BFD(Bidirectional Forwarding Detection,雙向轉發檢測)提供了一個通用的、標准化的、介質無關、協議無關的快速故障檢測機制,可以為上層協議(如路由協議等)統一地快速檢測兩台路由器間雙向轉發路徑的故障。
2、配置雙向檢測
1)功能簡介
雙向檢測,即本端和對端需要同時進行配置,通過控制報文檢測兩個方向上的鏈路狀態,實現毫秒級別的鏈路故障檢測。
雙向檢測支持直連下一跳和非直連下一跳。
直連下一跳是指下一跳和本端是直連的,配置時必須指定出接口和下一跳。
非直連下一跳是指下一跳和本端不是直連的,中間還有其它設備。配置時必須指定下一跳和BFD源IP地址。
2)配置直連下一跳雙向檢測
配置靜態路由與BFD聯動。
ip route-static dest-address { mask-length | mask } interface-type interface-number next-hop-address bfd control-packet [ preference preference ] [ tag tag-value ] [ description text ]
缺省情況下,未配置靜態路由與BFD聯動。
3)配置非直連下一跳雙向檢測
配置靜態路由與BFD聯動。
ip route-static dest-address { mask-length | mask } { next-hop-address bfd control-packet bfd-source ip-address } [ preference preference ] [ tag tag-value ] [ description text ]
缺省情況下,未配置靜態路由與BFD聯動。
3、配置單跳檢測
1)功能簡介
單跳檢測,即只需要本端進行配置,通過echo報文檢測鏈路的狀態。echo報文的目的地址為本端接口地址,發送給下一跳設備后會直接轉發回本端。這里所說的“單跳”是IP的一跳。
靜態路由的出接口為處於SPOOFING狀態時,不能使用BFD進行檢測。
2)配置步驟
配置echo報文的源IP地址。
bfd echo-source-ip ip-address
缺省情況下,未配置echo報文的源IP地址。
3) 配置靜態路由與BFD聯動。
ip route-static dest-address { mask-length | mask } interface-type interface-number next-hop-address bfd echo-packet [ preference preference ] [ tag tag-value ] [ description text ]
缺省情況下,未配置靜態路由與BFD聯動。
4、案列演示
此時的路由優先級為60的為主,路由表中此時存在的路由為下面這一條,當右邊畫X的線宕掉,路由表此時不會立即感知此路已經宕掉,依然不會切換
修改R1靜態路由,調用bfd
[R1]ip route-static 2.2.2.0 24 23.1.1.2 bfd control-packet bfd-source 23.1.1.1
[R2]ip route-static 1.1.1.0 24 23.1.1.1 bfd control-packet bfd-source 23.1.1.2
驗證
[R1]ping -a 1.1.1.1 -c 10000 2.2.2.2 斷掉畫線的線路 56 bytes from 2.2.2.2: icmp_seq=68 ttl=255 time=1.000 ms Request time out Request time out %Oct 24 17:42:39:088 2020 R1 BFD/5/BFD_CHANGE_FSM: Sess[23.1.1.1/23.1.1.2, LD/RD:2049/2049, Interface:N/A, SessType:Ctrl, LinkType:INET], Ver:1, Sta: UP->DOWN, Diag: 1 (Control Detection Time Expired) Request time out 56 bytes from 2.2.2.2: icmp_seq=72 ttl=255 time=1.000 ms 56 bytes from 2.2.2.2: icmp_seq=73 ttl=255 time=1.000 ms 56 bytes from 2.2.2.2: icmp_seq=74 ttl=255 time=1.000 ms
中間過程中斷了幾個包,馬上切換了
查看bfd會話
[R1]display bfd session Total Session Num: 1 Up Session Num: 1 Init Mode: Active IPv4 session working in control packet mode: LD/RD SourceAddr DestAddr State Holdtime Interface 2049/2049 23.1.1.1 23.1.1.2 Up 4618ms N/A
三、靜態路由
1、靜態路由簡介
1)靜態路由是一種特殊的路由,由管理員手工配置。當網絡結構比較簡單時,只需配置靜態路由就可以使網絡正常工作。
2)靜態路由不能自動適應網絡拓撲結構的變化。當網絡發生故障或者拓撲發生變化后,必須由網絡管理員手工修改配置。
2、缺省路由
1)缺省路由是在路由器沒有找到匹配的路由表項時使用的路由。
2)如果報文的目的地不在路由表中且沒有配置缺省路由,那么該報文將被丟棄,將向源端返回一個ICMP報文報告該目的地址或網絡不可達。
3)缺省路由有兩種生成方式:
第一種是網絡管理員手工配置。配置時將目的地址與掩碼配置為全零(0.0.0.0 0.0.0.0)。
第二種是動態路由協議生成(如OSPF、IS-IS和RIP),由路由能力比較強的路由器將缺省路由發布給其它路由器,其它路由器在自己的路由表里生成指向那台路由器的缺省路由。
3、基本命令
[R1]display ip routing-table 查看路由表
[R1]ip route-static 192.168.1.0 255.255.255.0 10.0.12.1 以下一跳,添加靜態路由
[R1]ip route-static 192.168.1.0 255.255.255.0 gi0/2 10.0.12.1 以出接口加下一跳,添加靜態路由
[R1]ip route-static 192.168.1.0 24 gi0/2 10.0.12.1
[R1]undo ip route-static 192.168.1.0 24 刪除一條靜態路由
[R1]ip route-static 23.1.1.0 24 21.1.1.2 preference 65 調整靜態路由優先級為65
[R2]delete static-routes all 刪除所有靜態路由
4、靜態路由備份(浮動靜態路由)
浮動靜態路由在網絡中主路由失效的情況下,會加入到路由表並承擔數據轉發業務
5、缺省路由基本命令
[R2]ip route-static 0.0.0.0 0 23.1.1.3 添加缺省路由 [R2]display ip routing-table Destinations : 21 Routes : 21 Destination/Mask Proto Pre Cost NextHop Interface 0.0.0.0/0 Static 60 0 23.1.1.3 GE0/2 缺省路由 0.0.0.0/32 Direct 0 0 127.0.0.1 InLoop0 12.1.1.0/24 Direct 0 0 12.1.1.2 GE0/0 12.1.1.0/32 Direct 0 0 12.1.1.2 GE0/0 12.1.1.2/32 Direct 0 0 127.0.0.1 InLoop0 12.1.1.255/32 Direct 0 0 12.1.1.2 GE0/0
注意:缺省路由是“替補路由”!!!
四、RIP路由協議
1、RIP簡介
RIP(Routing Information Protocol,路由信息協議)是一種基於距離矢量(Distance-Vector)算法的內部網關協議(Interior Gateway Protocol,IGP),它通過UDP報文進行路由信息的交換,使用的端口號為520。RIP適用於小型網絡。
2、RIP的度量值
RIP使用跳數來衡量到達目的地址的距離,跳數稱為度量值。在RIP中,路由器到與它直接相連網絡的跳數為0,通過一個路由器可達的網絡的跳數為1,其余依此類推。為限制收斂時間,RIP規定度量值取0~15之間的整數,大於或等於16的跳數被定義為無窮大,即目的網絡或主機不可達。由於這個限制,使得RIP不適合應用於大型網絡。
3、RIP的運行過程
RIP的運行過程如下:
1) 路由器啟動RIP后,便會向相鄰的路由器發送請求報文(Request message),相鄰的RIP路由器收到請求報文后,響應該請求,回送包含本地路由表信息的響應報文(Response message)。
2)路由器收到響應報文后,更新本地路由表,同時向相鄰路由器發送觸發更新報文,通告路由更新信息。相鄰路由器收到觸發更新報文后,又向其各自的相鄰路由器發送觸發更新報文。在一連串的觸發更新廣播后,各路由器都能得到並保持最新的路由信息。
3) 路由器周期性向相鄰路由器發送本地路由表,運行RIP協議的相鄰路由器在收到報文后,對本地路由進行維護,選擇一條最佳路由,再向其各自相鄰網絡發送更新信息,使更新的路由最終能達到全局有效。同時,RIP采用老化機制對超時的路由進行老化處理,以保證路由的實時性和有效性。
4、RIP防止路由環路的機制
RIP協議向鄰居通告的是自己的路由表,有可能會發生路由環路,可以通過以下機制來避免:
1)計數到無窮(Counting to infinity):將度量值等於16的路由定義為不可達(infinity)。在路由環路發生時,某條路由的度量值將會增加到16,該路由被認為不可達。
2)觸發更新(Triggered Updates):RIP通過觸發更新來避免在多個路由器之間形成路由環路的可能,而且可以加速網絡的收斂速度。一旦某條路由的度量值發生了變化,就立刻向鄰居路由器發布更新報文,而不是等到更新周期的到來。
3)水平分割(Split Horizon):RIP從某個接口學到的路由,不會從該接口再發回給鄰居路由器。這樣不但減少了帶寬消耗,還可以防止路由環路。
4)毒性逆轉(Poison Reverse):RIP從某個接口學到路由后,將該路由的度量值設置為16(不可達),並從原接口發回鄰居路由器。利用這種方式,可以清除對方路由表中的無用信息。
5、RIP的版本
RIP有兩個版本:RIP-1和RIP-2
RIP-1是有類別路由協議(Classful Routing Protocol),它只支持以廣播方式發布協議報文。RIP-1的協議報文無法攜帶掩碼信息,它只能識別A、B、C類這樣的自然網段的路由,因此RIP-1不支持不連續子網(Discontiguous Subnet)。
RIP-2是一種無類別路由協議(Classless Routing Protocol),與RIP-1相比,它有以下優勢:
1) 支持路由標記,在路由策略中可根據路由標記對路由進行靈活的控制。
2)報文中攜帶掩碼信息,支持路由聚合和CIDR(Classless Inter-Domain Routing,無類域間路由)。
3)支持指定下一跳,在廣播網上可以選擇到最優下一跳地址。
4)支持組播路由發送更新報文,只有RIP-2路由器才能收到更新報文,減少資源消耗。
5)支持對協議報文進行驗證,並提供明文驗證和MD5驗證兩種方式,增強安全性。
RIP-2有兩種報文傳送方式:廣播方式和組播方式,缺省將采用組播方式發送報文,使用的組播地址為224.0.0.9。當接口運行RIP-2廣播方式時,也可接收RIP-1的報文。
6、RIP的基本命令
[R1]rip 1 啟動RIP,並進入RIP視圖 [R1-rip-1]network 12.1.1.0 0.0.0.255 宣告網端(在指定網段上使能RIP)缺省情況下,沒有網段使能RIP
在單進程情況下,可以使用network 0.0.0.0命令在所有接口上使能RIP。在多進程情況下,無法使用network 0.0.0.0命令
[R1]rip 1 [R1-GigabitEthernet0/1]rip 1 enable 在端口上使用RIP協議
五、OSPF
1、OSPF簡介
OSPF(Open Shortest Path First,開放最短路徑優先)是IETF(Internet Engineering Task Force,互聯網工程任務組)組織開發的一個基於鏈路狀態的內部網關協議。目前針對IPv4協議使用的是OSPF Version 2。下文中所提到的OSPF均指OSPF Version 2。
2、OSPF特點
1)適應范圍廣:支持各種規模的網絡,最多可支持幾百台路由器。
2)快速收斂:在網絡的拓撲結構發生變化后立即發送更新報文,使這一變化在自治系統中同步。
3)無自環:由於OSPF根據收集到的鏈路狀態用最短路徑樹算法計算路由,從算法本身保證了不會生成自環路由。
4)區域划分:允許自治系統的網絡被划分成區域來管理。路由器鏈路狀態數據庫的減小降低了內存的消耗和CPU的負擔;區域間傳送路由信息的減少降低了網絡帶寬的占用。
5)等價路由:支持到同一目的地址的多條等價路由。
6)路由分級:使用4類不同的路由,按優先順序來說分別是:區域內路由、區域間路由、第一類外部路由、第二類外部路由。
7)支持驗證:支持基於區域和接口的報文驗證,以保證報文交互和路由計算的安全性。
8)組播發送:在某些類型的鏈路上以組播地址發送協議報文,減少對其他設備的干擾。
3、OSPF報文類型
OSPF協議報文直接封裝為IP報文,協議號為89。
OSPF有五種類型的協議報文:
1)Hello報文:周期性發送,用來發現和維持OSPF鄰居關系,以及進行DR(Designated Router,指定路由器)/BDR(Backup Designated Router,備份指定路由器)的選舉。
2)DD(Database Description,數據庫描述)報文:描述了本地LSDB(Link State DataBase,鏈路狀態數據庫)中每一條LSA(Link State Advertisement,鏈路狀態通告)的摘要信息,用於兩台路由器進行數據庫同步。
3)LSR(Link State Request,鏈路狀態請求)報文:向對方請求所需的LSA。兩台路由器互相交換DD報文之后,得知對端的路由器有哪些LSA是本地的LSDB所缺少的,這時需要發送LSR報文向對方請求所需的LSA。
4)LSU(Link State Update,鏈路狀態更新)報文:向對方發送其所需要的LSA。
5)LSAck(Link State Acknowledgment,鏈路狀態確認)報文:用來對收到的LSA進行確認。
4、路由器類型,OSPF路由器根據在AS中的不同位置,可以分為以下四類
1) 區域內路由器(Internal Router)
該類路由器的所有接口都屬於同一個OSPF區域。
2) 區域邊界路由器ABR
該類路由器可以同時屬於兩個以上的區域,但其中一個必須是骨干區域。ABR用來連接骨干區域和非骨干區域,它與骨干區域之間既可以是物理連接,也可以是邏輯上的連接。
3) 骨干路由器(Backbone Router)
該類路由器至少有一個接口屬於骨干區域。因此,所有的ABR和位於Area0的內部路由器都是骨干路由器。
4) 自治系統邊界路由器ASBR
與其他AS交換路由信息的路由器稱為ASBR。ASBR並不一定位於AS的邊界,它有可能是區域內路由器,也有可能是ABR。只要一台OSPF路由器引入了外部路由的信息,它就成為ASBR。
5、DR/BDR簡介
在廣播網和NBMA網絡中,任意兩台路由器之間都要交換路由信息。如果網絡中有n台路由器,則需要建立n(n-1)/2個鄰接關系。這使得任何一台路由器的路由變化都會導致多次傳遞,浪費了帶寬資源。為解決這一問題,
OSPF提出了DR的概念,所有路由器只將信息發送給DR,由DR將網絡鏈路狀態發送出去。另外,OSPF提出了BDR的概念。BDR是對DR的一個備份,在選舉DR的同時也選舉BDR,BDR也和本網段內的所有路由器建立鄰接關
系並交換路由信息。當DR失效后,BDR會立即成為新的DR。OSPF網絡中,既不是DR也不是BDR的路由器為DR Other。DR Other僅與DR和BDR建立鄰接關系,DR Other之間不交換任何路由信息。這樣就減少了廣播網和NBMA
網絡上各路由器之間鄰接關系的數量,同時減少網絡流量,節約了帶寬資源。
6、DR/BDR選舉過程
DR/BDR是由同一網段中所有的路由器根據路由器優先級和Router ID通過Hello報文選舉出來的,只有優先級大於0的路由器才具有選舉資格。
進行DR/BDR選舉時每台路由器將自己選出的DR寫入Hello報文中,發給網段上每台運行OSPF協議的路由器。當處於同一網段的兩台路由器同時宣布自己是DR時,路由器優先級高者勝出。如果優先級相等,則Router ID大者勝出。
需要注意的是:
1)只有在廣播或NBMA網絡中才會選舉DR;在P2P或P2MP網絡中不需要選舉DR。
2)DR是某個網段中的概念,是針對路由器的接口而言的。某台路由器在一個接口上可能是DR,在另一個接口上有可能是BDR,或者是DR Other。
3)DR/BDR選舉完畢后,即使網絡中加入一台具有更高優先級的路由器,也不會重新進行選舉,替換該網段中已經存在的DR/BDR成為新的DR/BDR。DR並不一定就是路由器優先級最高的路由器接口;同理,BDR也並不一定就是路由器優先級次高的路由器接口。
7、OSPF基本命令
[R1]ospf router-id 1.1.1.1 [R1-ospf-1]area 0 [R1-ospf-1-area-0.0.0.0]network 1.1.1.0 0.0.0.255 [R1-ospf-1-area-0.0.0.0]network 12.1.1.0 0.0.0.255 [R1-ospf-1-area-0.0.0.0]display this # area 0.0.0.0 network 1.1.1.0 0.0.0.255 network 12.1.1.0 0.0.0.255 # return [R1]int g0/0 [R1-GigabitEthernet0/0]ospf authentication-mode simple plain 123 ospf配置認證 <R1>reset ospf process 重置ospf進程,重新收斂路由 Reset OSPF process? [Y/N]:y
查看接口信息
[R3]display ospf int g0/1 OSPF Process 1 with Router ID 3.3.3.3 Interfaces Area: 0.0.0.0 Interface: 23.1.1.3 (GigabitEthernet0/1) Cost: 1 State: DR Type: Broadcast(廣播型鏈路) MTU: 1500 Priority: 1 Designated router: 23.1.1.3 Backup designated router: 23.1.1.2 Timers: Hello 10, Dead 40, Poll 40, Retransmit 5, Transmit Delay 1 每10秒發送一個hello包,40收不到,就認為對方掛了 FRR backup: Enabled Enabled by network configuration MTID Cost Disabled Topology name 0 1 No base <R1>terminal debugging 開始這兩條命令,監控ospf的報文情況,排錯使用 The current terminal is enabled to display debugging logs. <R1>debugging ospf packet <R1>undo debugging all 關閉調試