05-IP轉發基礎配置
本章節下載: 05-IP轉發基礎配置 (290.10 KB)
FIB(Forwarding Information Base,轉發信息庫)表用來指導IP報文轉發。
路由器通過路由表選擇路由,把優選路由下發到FIB表中,通過FIB表指導IP報文轉發。FIB表中每條轉發表項都指明了要到達某子網或某主機的報文的下一跳IP地址以及出接口。
關於路由表的詳細介紹,請參見“三層技術-IP路由配置指導”中的“IP路由基礎”。
通過命令display fib可以查看FIB表的信息,例如:
<Sysname> display fib
Destination count: 8 FIB entry count: 8
Flag:
U:Usable G:Gateway H:Host B:Blackhole D:Dynamic S:Static
R:Relay F:FRR
Destination/Mask Nexthop Flag OutInterface/Token Label
0.0.0.0/32 127.0.0.1 UH InLoop0 Null
127.0.0.0/8 127.0.0.1 U InLoop0 Null
127.0.0.0/32 127.0.0.1 UH InLoop0 Null
127.0.0.1/32 127.0.0.1 UH InLoop0 Null
127.255.255.255/32 127.0.0.1 UH InLoop0 Null
224.0.0.0/4 0.0.0.0 UB NULL0 Null
224.0.0.0/24 0.0.0.0 UB NULL0 Null
255.255.255.255/32 127.0.0.1 UH InLoop0 Null
FIB表中包含了下列關鍵項:
· Destination:目的地址。用來標識IP報文的目的地址或目的網絡。
· Mask:網絡掩碼。與目的地址一起來標識目的主機或路由器所在的網段的地址。將目的地址和網絡掩碼“邏輯與”後可得到目的主機或路由器所在網段的地址。例如:目的地址為192.168.1.40、掩碼為255.255.255.0的主機或路由器所在網段的地址為192.168.1.0。掩碼由若幹個連續“1”構成,既可以用點分十進製法表示,也可以用掩碼中連續“1”的個數來表示。
· NextHop:轉發的下一跳地址。
· Flag:路由的標誌。
· OutInterface:轉發接口。指明IP報文將從哪個接口轉發。
· Token:LSP(Label Switched Path,標簽交換路徑)索引號。
· Label:內層標簽值。
保存IP轉發表項信息到用戶指定的文件中時,如果指定的文件不存在,係統會先創建該文件,再保存;如果已存在,則會覆蓋原文件。
本功能隻用來觸發一次IP轉發表項保存到用戶指定的文件中。
如果需要周期性地自動保存IP轉發表,可以通過配置定時執行任務功能,采用循環執行方式,讓設備在指定時間到達時,自動執行命令。關於配置定時執行任務功能的詳細介紹,請參見“基礎配置指導”中“設備管理”。
可在任意視圖下執行本命令,將當前的IP轉發表項保存到用戶指定的文件中。
ip forwarding-table save filename filename
通過開啟轉發水平分割功能,可以使從一個物理接口收到的IPv4、IPv6和MPLS報文不再從該接口向外發送,用於避免環路。
係統視圖和以太網接口視圖都可以配置轉發水平分割功能,係統視圖下為全局配置,接口視圖的配置僅對該接口生效。係統視圖和以太網接口視圖任意一個開啟本功能時,接口的轉發水平分割功能生效;係統視圖和以太網接口視圖均關閉本功能時,接口的轉發水平分割功能關閉。
建議需要全局開啟本功能時,在係統視圖下配置本功能,需要某個接口開啟本功能時,在接口視圖下配置本功能。
(1) 進入係統視圖。
system-view
(2) 開啟轉發水平分割功能。
forwarding split-horizon
缺省情況下,轉發水平分割功能處於關閉狀態。
(1) 進入係統視圖。
system-view
(2) 進入三層接口視圖。
interface interface-type interface-number
(3) 開啟轉發水平分割功能。
forwarding split-horizon
缺省情況下,轉發水平分割功能處於關閉狀態。
(1) 進入係統視圖。
system-view
(2) 進入二層接口視圖。
interface interface-type interface-number
(3) 開啟轉發水平分割功能。
forwarding split-horizon
缺省情況下,轉發水平分割功能處於關閉狀態。
通過開啟接口丟包報文統計功能,設備會對指定原因丟棄的報文數進行統計,並通過gRPC協議報文將統計出來的數據主動上報給采集器。
本功能僅統計物理接口上的丟棄報文。
(1) 進入係統視圖。
system-view
(2) 開啟接口丟包報文統計功能。
packet-drop statistics enable [ in-acl | out-acl | in-checksum | out-checksum | in-illegal-interface | in-l2-mtu | out-l2-mtu | in-l3-header | in-l3-header-ipv6 | in-l3-mtu | in-l3-nexthop | in-l3-rib | in-l3-rib-ipv6 | in-l3-ttl | in-stp-block | out-stp-block | in-same-interface | in-storm-suppression | in-vlan-mismatch | out-vlan-mismatch ] *
缺省情況下,接口丟包統計計數功能處於關閉狀態。
在同時支持IPv4協議和IPv6協議的設備上,IPv4路由的下一跳可以是IPv4地址或IPv6地址。如果出接口上未配置IPv4地址,IPv4報文將無法在該接口上進行轉發。通過開啟本功能,可以在接口未配置IPv4地址的情況下,實現IPv4報文在接口上的轉發。
(1) 進入係統視圖。
system-view
(2) 進入接口視圖。
interface interface-type interface-number
(3) 在接口未配置IPv4地址時,開啟接口的IPv4報文轉發功能。
ip forwarding
缺省情況下,在接口未配置IPv4地址時,接口的IPv4報文轉發功能處於關閉狀態。
在EVPN分布式網關組網中,設備作為VTEP從VXLAN隧道口收到VXLAN封裝的指定內層協議類型(VXLAN封裝的內層報文的協議類型)的報文後,缺省情況會上送CPU進行處理。當指定內層協議類型的報文較多時,會被限速而導致丟包。這種情況下,VTEP的下行設備或終端可能因無法及時收到指定協議類型的報文,引發業務異常。
為避免此類情況,設備支持配置對VXLAN隧道口收到指定協議類型的報文直接轉發,不上送CPU。
(1) 進入係統視圖。
system-view
(2) 配置設備從VXLAN隧道收到指定協議類型的報文直接轉發,不上送CPU。
forwarding vxlan-packet inner-protocol { ipv4 | ipv6 } *
缺省情況下,設備從VXLAN隧道收到指定報文後將會上送CPU處理。
開啟FIB模塊的告警功能後,該模塊會生成告警信息,用於報告該模塊的重要事件,例如FIB消息的隊列長度超過閾值時,設備將此信息記錄在告警信息中,生成的告警信息將發送到設備的SNMP模塊。
用戶可根據業務需求開啟指定功能的FIB模塊的告警,當不指定任何告警功能時,代表選擇全部告警功能:
· 開啟等價路由超過係統支持的最大數量告警功能後,如果單板學習到的等價路由的數量超過了配置的係統支持最大等價路由條數,設備會將告警板號信息作為告警信息發送到設備的SNMP模塊。
· 開啟FIB軟件表項與硬件表項不一致的告警功能後,如果單版FIB軟件表項和硬件表項不一致,設備會將告警板號信息作為告警信息發送到設備的SNMP模塊。
· 開啟了FIB表項超過最大個數的告警功能後,如果設備FIB表項超過了告警閾值,設備會將FIB表項模塊名信息作為告警信息發送到設備的SNMP模塊。
· 開啟FIB表項下發硬件失敗的告警功能後,如果設備FIB表項下發硬件失敗,設備會將下發失敗的FIB表項的VRF、IP地址類型、IP地址、掩碼、表項下發失敗原因等信息作為告警信息發送到設備的SNMP模塊。
通過設置SNMP中告警信息的發送參數,來決定告警信息輸出的相關屬性。有關告警信息的詳細介紹,請參見“網絡管理和監控配置指導”中的“SNMP”。
(1) 進入係統視圖。
system-view
(2) 開啟FIB模塊的告警功能。
snmp-agent trap enable fib [ deliver-failed | ecmp-limit | entry-consistency | entry-limit ] *
缺省情況下,FIB模塊的告警功能均處於開啟狀態。
開啟IP轉發模塊的告警功能後,IP轉發模塊會生成告警信息報告該模塊的重要事件。生成的告警信息將發送到設備的SNMP模塊,通過設置SNMP中告警信息的發送參數,來決定告警信息輸出的相關屬性。有關告警信息的詳細介紹,請參見“網絡管理和監控配置指導”中的“SNMP”。
(1) 進入係統視圖。
system-view
(2) 開啟FIB告警功能。
snmp-agent trap enable ip-forwarding
缺省情況下,IP轉發告警功能處於開啟狀態。
查看轉發表的信息是定位轉發問題的基本方法。在任意視圖下執行display命令可以顯示轉發表信息。
表1-1 IP轉發表顯示和維護
操作 |
命令 |
顯示FIB表項的信息 |
display fib [ vpn-instance vpn-instance-name ] [ ip-address [ mask | mask-length ] ] |
顯示FIB表項數的使用率 |
display fib usage |
顯示FIB存儲的ECMP組信息 |
display fib ecmp-group [ group-id ] slot slot-number |
對同一路由協議來說,允許配置多條目的地相同且開銷也相同的路由。當到同一目的地的路由中,沒有更高優先級的路由時,這幾條路由都被采納,在轉發去往該目的地的報文時,依次通過各條路徑發送,從而實現網絡的負載分擔。
配置負載分擔的內容包括:
· 配置負載分擔方式:設備上存在多條等價路由時,可以根據報文中的信息(源IP地址、目的IP地址、源端口、目的端口、IP協議號和入端口)配置逐流進行負載分擔。
· 配置負載分擔算法切換:在某些複雜的組網環境中,單一的負載分擔算法不能滿足負載分擔的需求,可能出現設備負載分擔不均勻的時候。這種情況下可以通過指定不同的負載分擔算法來實現設備負載分擔算法切換,保證負載分擔均勻。
當同時配置負載分擔方式功能(ip load-sharing mode命令)和Rail-Group功能時,Rail-Group功能將優先生效。換言之,該情況下加入Rail-Group組內的接口流量將按照Rail-Group功能實現負載分擔,其它接口上的流量則會按照ip load-sharing mode命令配置的方式進行負載分擔。有關Rail-Group功能的詳細介紹,請參見“接口管理配置指導”中的“以太網接口配置”。
(1) 進入係統視圖。
system-view
(2) 配置負載分擔方式。
ip load-sharing mode { per-flow [ algorithm algorithm-number [ seed seed-number ] [ shift shift-number ] | [ dest-ip | dest-port | flow-label | ingress-port | ip-pro | src-ip | src-port ] * | tunnel { all | inner | outer } ] | per-packet } { global | slot slot-number }
缺省情況下,基於報文的源IP地址、目的IP地址、源端口、目的端口、IP協議號和入端口逐流進行負載分擔。
(3) 顯示計算出的等價路由選路信息。
display ip load-sharing path ingress-port interface-type interface-number packet-format { ipv4oe dest-ip ip-address [ src-ip ip-address ] | ipv6oe dest-ipv6 ipv6-address [ src-ipv6 ipv6-address | flow-label flow-label ] } [ dest-port port-id | ip-pro protocol-id | src-port port-id ] *
本命令行的參數輸入需要和display ip load-sharing mode命令顯示的配置參數以及負載分擔報文所攜帶的字段相匹配。如不匹配,則顯示的等價路由哈希選路信息可能跟實際不一致。
在業務流量和轉發報文的接口均固定的場景下,逐包負載分擔的性能比逐流負載分擔稍高。在設備采取全局逐流負載分擔的場景下,通過本命令可以指定接口為逐包負載分擔,並指定負載分擔算法。多用於測試設備的性能。在逐包情況下,robin算法不考慮報文大小,spray算法在逐包的同時,考慮不同報文的大小,讓負載更均衡,不選擇任何算法時,缺省為spray。
配置完成後,接口將保持逐包負載分擔,不再繼承係統視圖下負載分擔方式的配置。
一條等價路由經過的所有三層接口全部開啟本功能時,本功能才生效。
僅當等價路由模式為普通模式(undo ecmp mode命令)時支持逐包負載分擔。有關等價路由模式的詳細介紹,請參見“三層技術-IP路由命令參考”中的“IP路由基礎命令”。
配置逐包方式負載分擔時,僅支持等價路由出接口為三層以太網接口、三層以太網子接口和VLAN接口。當配置本功能的多個出接口中存在聚合口時,本功能無法生效。
在IRF組網下,如果流量需要跨成員設備進行轉發,指定的spray算法無法生效。
Spray算法最大支持64條等價路由,robin算法最大支持128條等價路由。
(1) 進入係統視圖。
system-view
(2) 進入三層接口視圖。
interface interface-type interface-number
(3) 指定接口采用逐包方式進行負載分擔。
ip load-sharing mode per-packet [ robin | spray ]
缺省情況下,不指定接口的負載分擔方式,接口的負載分擔方式繼承係統視圖下負載分擔方式的配置。
開啟IPv4基於帶寬的負載分擔功能情況下,如果轉發時查到多個出接口/下一跳,則按照接口的帶寬值計算出各個接口應該分配的報文比例,然後按照帶寬比例對報文進行轉發。
支持負載分擔的協議(如LISP)的設備,無論是否配置負載分擔命令,負載分擔比例以協議定義的負載分擔比例為準。
本功能和等價路由增強模式(配置ecmp mode enhanced命令)互斥,兩者不能同時配置。
開啟IPv4基於帶寬的負載分擔功能後,配置接口的期望帶寬值不能超過接口的實際物理帶寬值。
(1) 進入係統視圖。
system-view
(2) 開啟IPv4基於帶寬的負載分擔功能。
bandwidth-based-sharing
缺省情況下,IPv4基於帶寬的負載分擔功能處於關閉狀態。
(3) (可選)配置接口的期望帶寬值。
a. 進入接口視圖。
interface interface-type interface-number
b. 配置接口的期望帶寬值。
bandwidth bandwidth
缺省情況下,接口期望帶寬為接口的物理帶寬。
當IRF設備轉發報文時,如果查詢到的是等價路由且出接口在不同成員設備上,可能會將報文透傳到某個成員設備再發送,這會使報文轉發效率變低,也會影響成員設備間的數據處理能力。當配置了等價路由負載分擔本地優先的功能以後,如果在處理報文的成員設備上存在等價路由的出接口,就隻從當前設備發送報文,而不會再透傳到其他成員設備發送。
(1) 進入係統視圖。
system-view
(2) 開啟等價路由負載分擔本地優先功能。
ip load-sharing local-first enable
缺省情況下,等價路由負載分擔本地優先功能處於開啟狀態。
開啟對稱負載分擔功能後,對於源IP為A、目的IP為B的流量,和源IP為B、目的IP為A的流量,將負載分擔到同一條路徑。
配置本功能前,需要先使用ip load-sharing mode命令配置基於五元組(源IP地址、目的IP地址、源端口、目的端口和IP協議號)進行負載分擔。否則,由於缺省負載分擔模式下計算負載分擔時包含物理入端口使得對稱負載分擔功能無法生效。
配置ip load-sharing symmetric enable命令後,對稱負載分擔功能將在聚合接口中同樣生效。
(1) 進入係統視圖。
system-view
(2) 開啟對稱負載分擔功能。
ip load-sharing symmetric enable
缺省情況下,對稱負載分擔功能處於關閉狀態。
在RoCE組網下,使用驅動硬件定義的ACL規則可以自動識別協議報文和數據報文,使協議報文通過逐流負載分擔,以保持報文順序;使數據報文通過逐包負載分擔,以達到更加均勻的負載分擔效果。
執行本功能,但不指定任何參數時,使用驅動硬件自定義的ACL規則。
· IPv4和IPv6 ACL規則可以同時配置,也可以疊加配置。
· 命令行下發的ACL規則未配置時,不會將ACL規則下發給驅動硬件,當用戶下發的ACL規則創建後再將ACL規則下給驅動硬件;當ACL規則被刪除時,會通知驅動硬件刪除ACL規則。
· undo ip load-sharing acl命令未指定任何ACL時,將刪除全部ACL規則引用關係。
· ACL規則下發驅動硬件後,報文未匹配上配置的ACL規則時使用DLB模式負載分擔;否則使用非DLB模式的負載分擔,DLB(dynamic loadshare balance)模式相關信息請參考ecmp mode命令。
(1) 進入係統視圖。
system-view
(2) 配置負載分擔匹配的ACL規則。
ip load-sharing acl [ { ipv4 { ipv4-acl-number | name ipv4-acl-name } | ipv6 { ipv6-acl-number | name ipv6-acl-name } }* | user-defined { user-define-acl-number | name user-define-acl-name } ]
缺省情況下,未配置任何ACL規則。
在任意視圖下執行display命令可以顯示配置後的運行情況,通過查看顯示信息驗證配置的效果。
表2-1 負載分擔顯示和維護
操作 |
命令 |
顯示當前使用的負載分擔方式 |
display ip load-sharing mode slot slot-number |
指定計算等價路由哈希選路的參數並顯示計算出的等價路由哈希選路信息 |
display ip load-sharing path ingress-port interface-type interface-number packet-format { ipv4oe dest-ip ip-address [ src-ip ip-address ] | ipv6oe dest-ipv6 ipv6-address [ src-ipv6 ipv6-address | flow-label flow-label ] } [ dest-port port-id | ip-pro protocol-id | src-port port-id ] * |
在Switch A和Switch B之間存在兩條等價路由,要求實現通過Switch B到達目的地址為1.2.3.4/24的報文在兩條等價路由上基於源和目的地址進行負載分擔。
圖2-1 負載分擔配置舉例組網圖
# 配置Switch A
<SwitchA> system-view
[SwitchA] vlan 10
[SwitchA-vlan10] port twenty-fivegige 1/0/1
[SwitchA-vlan10] quit
[SwitchA] vlan 20
[SwitchA-vlan20] port twenty-fivegige 1/0/2
[SwitchA-vlan20] quit
# 配置接口Vlan-interface10和Vlan-interface20的IP地址。
[SwitchA] interface vlan-interface 10
[SwitchA-Vlan-interface10] ip address 10.1.1.1 24
[SwitchA-Vlan-interface10] quit
[SwitchA] interface vlan-interface 20
[SwitchA-Vlan-interface20] ip address 20.1.1.1 24
[SwitchA-Vlan-interface20] quit
# 配置Switch B
<SwitchB> system-view
[SwitchB] vlan 10
[SwitchB-vlan10] port twenty-fivegige 1/0/1
[SwitchB-vlan10] quit
[SwitchB] vlan 20
[SwitchB-vlan20] port twenty-fivegige 1/0/2
[SwitchB-vlan20] quit
# 配置接口Vlan-interface10和Vlan-interface20的IP地址。
[SwitchB] interface vlan-interface 10
[SwitchB-Vlan-interface10] ip address 10.1.1.2 24
[SwitchB-Vlan-interface10] quit
[SwitchB] interface vlan-interface 20
[SwitchB-Vlan-interface20] ip address 20.1.1.2 24
[SwitchB-Vlan-interface20] quit
# 在Switch A上配置靜態路由
<SwitchA> system-view
[SwitchA] ip route-static 1.2.3.4 24 10.1.1.2
[SwitchA] ip route-static 1.2.3.4 24 20.1.1.2
[SwitchA] quit
# 通過查看轉發表觀察兩條等價路由
<SwitchA> display fib 1.2.3.4
Destination count: 1 FIB entry count: 2
Flag:
U:Usable G:Gateway H:Host B:Blackhole D:Dynamic S:Static
R:Relay F:FRR
Destination/Mask Nexthop Flag OutInterface/Token Label
1.2.3.0/24 10.1.1.2 USGR Vlan10 Null
1.2.3.0/24 20.1.1.2 USGR Vlan20 Null
# 配置基於源IP地址和目的IP地址的負載分擔
<SwitchA> system-view
[SwitchA] ip load-sharing mode per-flow dest-ip src-ip global
[SwitchA] quit
<SwitchA> display counters outbound interface GigabitEthernet
Interface Total (pkts) Broadcast (pkts) Multicast (pkts) Err (pkts)
WGE1/0/1 1045 0 0 0
WGE1/0/2 1044 0 0 0
由上表可以看出來,通過Switch A的兩個接口的報文數量基本相同,實現了負載分擔。
不同款型規格的資料略有差異, 詳細信息請向具體銷售和400谘詢。H3C保留在沒有任何通知或提示的情況下對資料內容進行修改的權利!