05-IP转发基础配置
本章节下载: 05-IP转发基础配置 (307.64 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报文不再从该接口向外发送,用于避免环路。
对于S12500G-AF系列交换机,本功能仅在SF系列接口板和SG系列接口板上生效。
(1) 进入系统视图。
system-view
(2) 开启转发水平分割功能。
forwarding split-horizon
缺省情况下,转发水平分割功能处于关闭状态。
在同时支持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报文转发功能处于关闭状态。
· 对于S12500G-AF系列交换机,安装丝印前缀为LSXM1的主控板时,不支持本功能;安装其它主控板时,SE系列接口板不支持本功能。
· 对于S12500CR系列交换机,安装丝印前缀为LSXM1的主控板时,不支持本功能。
在VLAN接口上开启IPv4转发路径快速迁移功能后,当发生网络拓扑变化或用户接入端口迁移等事件时,通过该VLAN接口转发的IPv4流量能够迅速迁移到其它转发路径,从而减少流量中断时间,提高网络的整体响应速度和用户体验。
在VLAN接口开启IPv4转发路径快速迁移功能时,该VLAN将不能用作link-aggregation management-vlan命令指定的聚合管理VLAN,否则聚合管理VLAN和聚合管理端口功能将失效。有关聚合管理VLAN和聚合管理端口功能的详细介绍,请参见“二层技术-以太网交换配置指导”中的“以太网链路聚合”。
(1) 进入系统视图。
system-view
(2) 进入VLAN接口视图。
interface vlan-interface interface-number
(3) 开启IPv4转发路径快速迁移功能。
ip forwarding fast-move
缺省情况下,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处理。
如果当前系统的IP报文转发效果达不到预期,可以通过本功能检查IPv4 FIB软件表项与驱动硬件表项的一致性。该功能开启后,设备将定时对所有的IPv4 FIB软件表项下发驱动进行检查,如果与驱动硬件表项不一致则打印日志信息,同时根据IPv4 FIB软件表项刷新驱动硬件表项。
(1) 进入系统视图。
system-view
(2) 开启IPv4 FIB表项一致性检查功能。
fib consistency-check enable
缺省情况下,IPv4 FIB表项一致性检查功能处于关闭状态。
开启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”。
用户可根据业务需求开启指定功能的IP转发模块的告警:
· 开启了TTL超时告警功能后,设备会按照设置的时间间隔检查报文的丢弃个数,如果丢弃的报文数达到或超过了用户设置的告警阈值,将发送告警到告警中心。
· 开启了MBUF内存申请失败告警功能后,设备会MBUF内存申请失败时,将发送告警到告警中心。
本命令如果未指定任何参数,则表示开启或者关闭IP转发模块所有的告警功能。
关闭IP转发模块的告警功能后,设备将只发送日志信息到信息中心模块,此时可以配置信息中心的输出规则和输出方向来查看IPv6基础模块的日志信息。有关信息中心的详细介绍,请参见“网络管理和监控配置指导”中的“信息中心”。
(1) 进入系统视图。
system-view
(2) 开启FIB告警功能。
snmp-agent trap enable ip-forwarding [ ttl-expired | mbuf-alloc ]
缺省情况下,IP转发告警功能处于开启状态。
FIB日志可以满足管理员对FIB模块的审计需求。设备生成FIB日志信息会交给信息中心模块处理,信息中心模块的配置将决定日志信息的发送规则和发送方向。关于信息中心的详细描述请参见“网络管理和监控配置指导”中的“信息中心”。
记录日志信息会消耗一定的内存,如果要避免此类内存消耗,可通过undo fib log enable命令关闭FIB日志信息功能。
(1) 进入系统视图。
system-view
(2) 开启FIB日志功能。
fib log enable
缺省情况下,FIB日志功能处于关闭状态。
查看转发表的信息是定位转发问题的基本方法。在任意视图下执行display命令可以显示转发表信息。
表1-1 IP转发表显示和维护
|
操作 |
命令 |
|
显示FIB表项的信息 |
display fib [vpn-instance vpn-instance-name ] [ ip-address [ mask | mask-length ] ] |
配置负载分担的内容包括:
· 配置负载分担方式:设备上存在多条等价路由时,可以根据报文中的信息(源IP地址、目的IP地址、源端口、目的端口、IP协议号和入端口)配置逐流进行负载分担,或者根据报文进行逐包负载分担。
· 配置负载分担算法切换:在某些复杂的组网环境中,单一的负载分担算法不能满足负载分担的需求,可能出现设备负载分担不均匀的时候。这种情况下可以通过指定不同的负载分担算法来实现设备负载分担算法切换,保证负载分担均匀。
对于MPLS报文,设备仅支持基于报文的源IP地址逐流和基于报文的目的IP地址逐流进行负载分担的方式。
对于S12500G-AF系列交换机,配置基于报文逐包进行负载分担功能仅在SF系列接口板和SG系列接口板上生效。在VXLAN组网下,配置基于报文逐包进行负载分担功能在SF系列接口板和SG系列接口板上也无法生效。对于S12500CR系列交换机,在VXLAN组网下,配置基于报文逐包进行负载分担功能无法生效。
对于S12500G-AF系列交换机,seed、shift和flow-label参数仅在SF系列接口板和SG系列接口板上生效。
配置基于报文逐包进行负载分担功能仅支持在等价路由普通模式下配置。有关等价路由模式的介绍,请参见“三层技术-IP路由命令参考”中的“IP路由基础命令”。
开启基于报文逐包进行负载分担功能后,报文会出现乱序。逐包负载分担仅适用于不关心报文乱序的场景。
当通过ip load-sharing mode命令配置基于报文逐包进行负载分担功能时,display ip load-sharing path命令显示的等价路由哈希选路信息会与实际不一致。
缺省情况下,设备基于报文的源IP地址、目的IP地址、源端口、目的端口和IP协议号逐流进行负载分担,同一个报文的首包和分片报文可能会负载分担到不同的出端口进行转发。对于S12500G-AF系列交换机,使用SE系列接口板时,如果当前网络环境处理分片报文重组时与报文转发路径强相关,这可能导致报文重组失败。若出现此问题,请重新配置ip load-sharing mode命令,并且配置时不能指定dest-port和src-port参数。
使用基于IPv6报文的流标签逐流进行负载分担功能时,无法支持内层是IPv6报文的MPLS数据包。
在设备开启对称负载分担功能的场景下,若按报文的源IP地址进行逐流负载分担,当源IP变化时,基于源IP的逐流负载分担可能不生效。
当设备配置如下命令进行负载分担时,不能与RDMA Telemetry功能同时使用,否则会影响RDMA Telemetry功能的实现。有关RDMA Telemetry功能的详细介绍,请参见“Telemetry”中的“RDMA Telemetry”。
· ip load-sharing mode per-packet
· ip load-sharing mode per-flow ingress-port
(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 { inner | outer } ] | per-packet } { global | slot slot-number }
(IRF模式)
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 { inner | outer } ] | per-packet } { chassis chassis-number slot slot-number | global }
缺省情况下,设备基于报文的源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 | vpn-instance vpn-instance-name ] *
本命令行的参数输入需要和display ip load-sharing mode命令显示的配置参数以及负载分担报文所携带的字段相匹配。如不匹配,则显示的等价路由哈希选路信息可能跟实际不一致。
在业务流量和转发报文的接口均固定的场景下,逐包负载分担的性能比逐流负载分担稍高。在设备采取全局逐流负载分担的场景下,通过本命令可以指定接口为逐包负载分担,并指定负载分担算法。多用于测试设备的性能。在逐包情况下,robin算法不考虑报文大小。
配置完成后,接口将保持逐包负载分担,不再继承系统视图下负载分担方式的配置。
对于S12500G-AF系列交换机,本功能仅在SF系列接口板和SG系列接口上生效。
VSI虚接口下不支持配置本功能。
本功能不能与RDMA Telemetry功能同时使用,否则会影响RDMA Telemetry功能的实现。有关RDMA Telemetry功能的详细介绍,请参见“Telemetry”中的“RDMA Telemetry”。
(1) 进入系统视图。
system-view
(2) 进入三层接口视图。
interface interface-type interface-number
(3) 指定接口采用逐包方式进行负载分担。
ip load-sharing mode per-packet robin
缺省情况下,不指定接口的负载分担方式,接口的负载分担方式继承系统视图下负载分担方式的配置。
开启IPv4基于带宽的负载分担功能情况下,如果转发时查到多个出接口/下一跳,则按照接口的带宽值计算出各个接口应该分配的报文比例,然后按照带宽比例对报文进行转发。
支持负载分担的协议(如LISP)的设备,无论是否配置负载分担命令,负载分担比例以协议定义的负载分担比例为准。
对于S12500G-AF系列交换机,本功能仅在SF系列接口板和SG系列接口板上生效。
本功能仅支持在等价路由普通模式下配置,有关等价路由模式的详细介绍,请参见“三层技术-IP路由命令参考”中的“IP路由基础命令”。
配置了逐包转发功能的多个接口,无法实现本功能。
(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的流量,将负载分担到同一条路径。
对于S12500G-AF系列交换机,仅SF系列接口板和SG系列接口板支持本功能。
对称负载分担功能仅对已知单播报文生效。
配置本功能后,当源IP地址发生变化时,可能导致基于报文源IP的负载分担策略失效。
(1) 进入系统视图。
system-view
(2) 开启对称负载分担功能。
ip load-sharing symmetric enable
缺省情况下,对称负载分担功能处于关闭状态。
在实际应用中,RoCE网络常面临大象流(如业务报文,具有流数少、数据量大、占用带宽大的特点)和老鼠流(如RoCE协议报文,具有流数多、数据量少、对丢包敏感的特点)共存的问题,对两种流量采用同一种负载分担方式容易导致负载分担不均和带宽利用率低。为了解决这一问题,可以通过配置负载分担匹配的ACL规则,进一步区分流量,并对不同类型流量采用不同的负载分担方式,从而实现更有效的负载均衡。
ACL规则下发驱动后,匹配上ACL规则的报文将采用非DLB,即逐流负载分担方式;未匹配上ACL规则的报文采用ip load-sharing mode per-packet robin命令配置的动态负载分担模式。
配置本功能未引用任何ACL规则时,系统会生成一个硬件驱动自定义的ACL规则,用于识别RoCE协议报文,并对这些报文进行逐流负载分担。而对于未匹配上该驱动自定义ACL规则的报文,系统将采用ip load-sharing mode per-packet robin命令配置的负载分担模式。
· IPv4和IPv6 ACL规则可以同时配置,也可以叠加配置。
· 命令行下发的ACL规则未配置时,不会将ACL规则下发给驱动,当用户下发的ACL规则创建后再将ACL规则下给驱动;当ACL规则被删除时,会通知驱动删除ACL规则。
· undo ip load-sharing acl命令未指定任何ACL时,将删除全部ACL规则引用关系。
· 对于S12500G-AF系列交换机,本功能仅在SF系列接口板和SG系列接口板上生效。
(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规则。
该功能用于判断入接口到网板的负载分担功能是否正常。当聚合链路的接口分布在不同接口板上时,数据需要通过网板中转。因此,通过聚合链路转发流量可以分为两个阶段:一个是入接口到网板,一个是网板到出接口。设备从入接口收到流量后,会通过多个内部接口转发给网板。系统会根据用户的出接口链路负载分担配置来决定入接口到网板之间的内部接口的负载分担方式。
通常情况下,这些内部接口的负载分担方式无需配置,仅当链路负载分担功能异常(负载分担结果不符合预期)时,请在专业人士的指导下配置本功能,来判定入接口到网板的内部接口的负载分担功能是否正常。因为多个入接口会共用本接口板到网板的内部接口转发报文,如果人为干预这些内部接口的报文负载分担配置,会对所有使用该内部接口的业务流量产生影响
仅在缺省MDC下支持本命令。
对于S12500G-AF S系列交换机,仅SF系列接口板和SG系列接口板支持定位聚合负载分担故障。
(1) 进入系统视图。
system-view
(2) 配置业务板的负载分担类型。
(独立运行模式)
fabric load-sharing mode { { destination-ip | destination-mac | source-ip | ingress-port | source-mac } * | destination-slot-port | flexible } slot slot-number
(IRF模式)
fabric load-sharing mode { { destination-ip | destination-mac | source-ip | ingress-port | source-mac } * | destination-slot-port | flexible } chassis chassis-number slot slot-number
缺省情况下,未配置业务板的负载分担类型。
(3) 配置业务板的负载分担算法。
(独立运行模式)
fabric load-sharing algorithm algorithm-number slot slot-number
(IRF模式)
fabric load-sharing algorithm algorithm-number chassis chassis-number slot slot-number
缺省情况下,未配置业务板的负载分担算法。
(4) 配置业务板负载分担计算结果的偏移量。
(独立运行模式)
fabric load-sharing offset offset-value slot slot-number
(IRF模式)
fabric load-sharing offset offset-value chassis chassis-number slot slot-number
缺省情况下,未配置业务板负载分担计算结果的偏移量。
(5) 配置业务板的负载HASH SEED。
(独立运行模式)
fabric load-sharing seed seed-number slot slot-number
(IRF模式)
fabric load-sharing seed seed-number chassis chassis-number slot slot-number
缺省情况下,未配置业务板的负载HASH SEED。
(6) 配置业务板对隧道报文采用的负载分担方式。
(独立运行模式)
fabric load-sharing tunnel { inner | outer } slot slot-number
(IRF模式)
fabric load-sharing tunnel { inner | outer } chassis chassis-number slot slot-number
缺省情况下,未配置业务板对隧道报文采用的负载分担方式。
(7) 开启业务板的流量调整功能。
fabric load-sharing flow-orchestration enable [ ip-pair | nic-bandwidth { 100g | 200g | 400g } ] *
缺省情况下,业务板的流量调整功能处于关闭状态。
对于S12500G-AF系列交换机,仅安装丝印前缀为LSXM3的主控板与如下网板+接口板的搭配支持本功能:
¡ LSXM3SFS08G2网板+LSXM3CDQ8SF2接口板
¡ LSXM3SFS08G2网板+LSXM3CDQ16SF2接口板
¡ LSXM3SFS16G2网板+LSXM3CDQ8SF2接口板
¡ LSXM3SFS16G2网板+LSXM3CDQ16SF2接口板
¡ LSXM3SFS08K2网板+LSXM3CDHQ36SG2接口板
¡ LSXM3SFS08K2网板+LSXM3CCQ36SG2接口板
¡ LSXM3SFS04K2网板+LSXM3CDHQ36SG2接口板
¡ LSXM3SFS04K2网板+LSXM3CCQ36SG2接口板
对于S12500CR系列交换机,仅安装丝印前缀为LSXM3的主控板与如下网板+接口板的搭配支持本功能:
¡ LSXM3SFS08K2网板+LSXM3CDHQ36RSG2接口板
¡ LSXM3SFS08K2网板+LSXM3CCQ36SG2接口板
¡ LSXM3SFS04RK2网板+LSXM3CDHQ36RSG2接口板
¡ LSXM3SFS04RK2网板+LSXM3CCQ36SG2接口板
在任意视图下执行display命令可以显示配置后的运行情况,通过查看显示信息验证配置的效果。
表2-1 负载分担显示和维护
|
操作 |
命令 |
|
显示当前使用的负载分担方式 |
(独立运行模式) display ip load-sharing mode slot slot-number (IRF模式) display ip load-sharing mode chassis chassis-number slot slot-number |
|
显示接口视图下配置了逐包负载分担方式的接口信息 |
(独立运行模式) display ip load-sharing mode per-packet interface [ slot slot-number ] (IRF模式) display ip load-sharing mode per-packet interface [ chassis chassis-number 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 | vpn-instance vpn-instance-name ] * |
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!
