路由器收到数据报文,查看报文目的地址并依据路由表将报文转发到下一个路由器,报文经过中间路由器多次转发后到达目的主机,中间路由器的转发路径构成了路由的路径信息。
说明
本章使用“路由器”指支持路由功能的网络设备。这些网络设备可以是三层交换机、路由器、防火墙等。
路由器管理路由表,整合各种路由协议下发的路由,进行优选,并下发给转发表。路由表中保存了各种路由协议发现的路由。路由表中包含了下列关键项:
Destination:目的地址,用来标识IP包的目的网络或目的地址。
Mask:网络掩码,和目的地址共同标识目的地址所在的网段。
Protocol:路由协议。
Distance:管理距离,标识路由加入路由表的优先级。同一目的地址,路由管理会根据管理距离小的作为最优路由。不同路由协议的缺省管理距离如下表。
路由协议及缺省管理距离
路由协议 |
管理距离 |
---|---|
直连路由 |
0 |
静态路由 |
1 |
EBGP |
20 |
OSPF |
110 |
IS-IS |
115 |
RIP |
120 |
IBGP |
200 |
Metric:路由开销,相同管理距离情况下,路由开销越小的路由将成为最优路由。
NextHop:下一跳IP地址,数据包在下一个转发路由的接口IP地址。
Interface:转发接口,表明数据包从本路由器的哪一个接口转发至下一跳。
根据来源方式路由通常分为以下三类:
直连路由:链路层协议发现的路由,也称为接口路由。
静态路由:网络管理员手工配置的。静态路由配置方便,对系统要求低,适用于拓扑结构简单并且稳定的小型网络。其缺点是每当网络拓扑结构发生变化,都需要手工重新配置,不能自动适应。
动态路由:动态路由协议发现的路由。
路由功能
路由功能分IPv4路由功能和IPv6路由功能。若关闭了路由功能,则设备相当于一台主机,不具备路由转发功能。
动态路由
动态路由协议以邻居间交换路由的方式学习远方的路由,并保持动态更新。如果邻居失效,则下一跳为此邻居的路由随之失效。
按照作用范围分类:
IGP(Interior Gateway Protocol,内部网关协议):在一个自制与系统内运行,协议有RIP,OSPF和IS-IS。
EGP(Exterior Gateway Protocol,外部网关协议):在不同自治域系统间运行,协议有BGP。
按照路由计算算法分类:
距离矢量路由协议:协议有BGP和RIP。
链路状态路由协议:协议有OSPF和IS-IS。
静态路由
在组网结构比较简单的网络中,只需配置静态路由即可实现网络互通。恰当地设置和使用静态路由可以改善网络的性能,并可为重要的网络应用保证带宽。
静态路由根据本地接口的状态计算路由的活动性。当静态路由的出口处于三层Up状态(链路状态为Up,且配置有IP地址)时,该路由为活动的,可以指导转发。
静态路由可跨越VRF。VRF 1下的静态路由,下一跳或出口可以设置在VRF 2中。
ARP转化为主机路由
指定接口开启ARP转化为主机路由功能。当指定接口处于三层Up状态时,会将该接口上的ARP表项转化为32位的主机路由。
管理距离
当多个路由协议产生了到达同一个目的地址的路由时,根据管理距离判断这些路由的优先级。管理距离越小,优先级越高。
等价路由
到达同一个目的地址,下一跳不同,管理距离相同的多条路由,则形成等价路由。报文根据均衡转发策略在多条路由间分流,从而实现负载分担。
具体设备上,对等价路由中包括的路由条目数是有限制的,超出限制的路由不会参与转发。
支持等价路由的路由协议有:静态路由、RIP、OSPF、IS-IS和BGP。
浮动路由
到达同一目的地址,下一跳不同,管理距离不同的多条路由,形成浮动路由。管理距离小的优先被选择参与转发,若管理距离小的路由失效,则管理距离大的路由替代管理距离小的路由参与转发,从而达到避免网络线路故障导致的通信中断。
路由递归
直连的下一跳才能作为路由器转发依据,但是在BGP和静态路由中,下一跳可能不是直连的。此时需要路由迭代能够根据下一跳地址查询路由表,找到一条具有直连下一跳或者出接口的路由,并将其作为转发依据。
IP路由基础配置任务如下:
(可选)配置路由限制,以下配置均可选,请根据实际情况配置:
配置等价路由的条数
禁止IPv4路由转发
禁止IPv6路由转发
(可选)配置递归路由快速收敛,以下配置均可选,请根据实际情况配置:
开启IPv4递归路由快速收敛
开启IPv6递归路由快速收敛
禁止递归到黑洞路由
禁止递归到默认路由
(可选)配置ARP转化主机路由
配置接口开启ARP转化Host路由
(可选)配置开启ARP代答功能
(可选)配置BGP重分布ARP-Host路由
(可选)配置ND转化路由
配置接口开启ND转化路由
(可选)配置ND转路由延时重分发
(可选)配置ND转化路由Tag属性
(可选)配置忽略ND转路由的告警
(可选)配置ND代理功能
(可选)配置BGP重分布ND-Route路由
(可选)配置删除GR期BGP路由
限制等价路由的条数,静态路由的条数或限制路由转发。
路由限制配置任务如下,以下配置均可选,请根据实际情况配置:
配置等价路由的条数
禁止IPv4路由转发
禁止IPv6路由转发
通过该命令限制等价路由中下一跳的数目。
配置等价路由条数后,在负载均衡模式下,负载均衡的分路数不会超过配置的等价路由数。
进入特权模式。
enable
进入全局配置模式。
configure terminal
配置等价路由条目数。
maximum-paths number
缺省情况下,等价路由条目数为32。
当设备只作为桥接设备,或者只作为VoIP网关设备时,可以不需要IPv4路由转发功能。这时可以关闭设备的IPv4路由功能。
进入特权模式。
enable
进入全局配置模式。
configure terminal
关闭IPv4路由。
no ip routing
缺省情况下,IPv4路由功能处于开启状态。
当设备只作为桥接设备,或者只作为VoIP网关设备时,可以不需要IPv6路由转发功能。这时可以关闭设备的IPv6路由功能。
进入特权模式。
enable
进入全局配置模式。
configure terminal
关闭IPv6路由。
no ipv6 unicast-routing
缺省情况下,IPv6路由处于开启状态。
链路发现变化或者中断时,动态路由的递归路由查询可能需要2秒才能收敛,在某些可靠性要求高的场景中,这种收敛时间无法接受。开启递归路由快速收敛功能,会在路由发送信息中添加中间下一跳信息。即便中间链路故障,路由管理也能快速感知,缩短收敛时间。
递归路由配置任务如下,以下配置均可选,请根据实际情况配置:
开启IPv4递归路由快速收敛
开启IPv6递归路由快速收敛
禁止递归到黑洞路由
禁止递归到默认路由
开启IPv4递归路由快速收敛功能,可将IPv4网络中间链路故障的收敛时间缩短到1秒内。
进入特权模式。
enable
进入全局配置模式。
configure terminal
开启IPv4递归路由快速收敛。
ip recur-route fastswitch-nexthop
缺省情况下,递归路由快速收敛功能处于关闭状态。
开启IPv6递归路由快速收敛功能,可将IPv6网络中间链路故障的收敛时间缩短到1秒内。
进入特权模式。
enable
进入全局配置模式。
configure terminal
开启IPv6递归路由快速收敛。
ipv6 recur-route fastswitch-nexthop
禁止递归到黑洞路由功能,可在主路径故障时将流量全部切换到备份路径,避免引入黑洞路由导致部分流量缺失。
如图1-1,P1分别与P2、P3建立BGP邻居,P1到P2和P3两路形成主备路径到达P4,其中P1-P2为主路径,P1-P3为备路径,另外,P1上配置黑洞路由。当P1-P2间链路出现故障时,期望业务流量切换到P3,但是由于存在黑洞路由,路由重新计算递归到黑洞路由,这样将导致部分业务流量丢失,不能满足收敛的要求。使用本命令,P1-P2故障时,流量全部切换到P3上,不会引入黑洞路由,可以满足收敛。
进入特权模式。
enable
进入全局配置模式。
configure terminal
禁止递归到黑洞路由。
ip recur-route over blackhole-route disable
缺省情况下,允许递归到黑洞路由。
当不希望将默认路由作为业务流量选择时,禁止递归到默认路由功能可以在递归路由选择时不选择默认路由出口。
如图1-2,P1分别与P2、P3建立非直连EBGP邻居,P1上的业务流量通过P2和P3两路负载均衡到达P4,另外,P1上配置默认路由通过P1-P5出口访问外网。当P1-P2间链路出现故障时,期望业务流量切换到P3,但是由于存在默认路由,部分业务流量将被引入到P1-P5的出口上,而该出口并不是业务出口,这样将导致部分业务流量丢失,不能满足1秒收敛的要求。
当默认路由出口不是业务期望出口时,必须配置本命令。
进入特权模式。
enable
进入全局配置模式。
configure terminal
禁止递归到默认路由。
ip recur-route over blackhole-route disable
缺省情况下,允许递归到默认路由。
如果需要其他路由协议发布直连路由,或者指导转发,可以将ARP表中的信息转化成主机路由,再由其他路由协议进行重分发。
接口必须为三层接口Up状态。
ARP转化为主机路由配置任务如下:
配置接口开启ARP转化Host路由
(可选)配置开启ARP代答功能
(可选)配置BGP重分布ARP-Host路由
可以指定接口上ARP表项转为32位主机路由。
进入特权模式。
enable
进入全局配置模式。
configure terminal
配置指定接口开启ARP转化为Host路由。
ip route arp-to-host interface interface-type interface-number
缺省情况下,接口开启ARP转化为Host路由功能处于关闭状态。
设备接收到一个ARP请求,就会代理发送ARP响应,响应的MAC地址为设备自身的以太网MAC地址,这样不同的主机之间的通信靠三层路由来实现。
进入特权模式。
enable
进入全局配置模式。
configure terminal
进入接口配置模式。
进入三层以太网接口配置模式。
interface ethernet-type interface-number
进入三层聚合接口配置模式。
interface aggregateport interface-number
进入三层以太网子接口配置模式。
interface ethernet-type interface-number.subnumber
进入三层聚合子接口配置模式。
interface aggregateport interface-number.subnumber
进入SVI接口配置模式。
interface vlan interface-number
进入VXLAN路由接口配置模式。
interface overlayrouter interface-number
开启ARP代答功能。
local-proxy-arp
缺省情况下,SVI接口上的本地代理ARP功能处于关闭状态。
BGP重分布从ARP表中转化的主机路由。
进入特权模式。
enable
进入全局配置模式。
configure terminal
进入BGP配置模式。
router bgp as-number
配置BGP重分布ARP Host路由。
redistribute arp-host
缺省情况下,不对ARP-Host路由进行重分发。
和ARP转化主机路由类似,设备可通过ND(Neighbor Discovery,邻居发现)表项生成直连路由信息,其他路由协议可以根据生成的直连路由信息进行路由发布,可指定ND转化路由的掩码长度。
接口必须为三层接口Up状态。
ND转化路由配置任务如下:
配置接口开启ND转化路由
(可选)配置ND转路由延时重分发
(可选)配置ND转化路由Tag属性
(可选)配置忽略ND转路由的告警
(可选)配置ND代理功能
(可选)配置BGP重分布ND-Route路由
设备接收到一个ARP请求,就会代理发送ARP响应,响应的MAC地址为设备自身的以太网MAC地址,这样不同的主机之间的通信靠三层路由来实现。
如果IPv6网段和IPv6前缀都没有指定,默认接口上学习到的ND生成128位路由;
如果没有指定IPv6网段,只指定了IPv6前缀,则该接口下所有ND都生成指定的IPv6前缀;
如果指定IPv6网段没有指定IPv6前缀,则该网段默认生成128位路由;
如果指定了网段和IPv6前缀,则在学习到ND时,会校验前缀和哪个网段匹配,找到匹配的指定网段后生成配置的IPv6前缀;
如果指定了网段和IPv6前缀同时配置了未指明网段的IPv6前缀,则匹配网段的按网段的IPv6前缀生成路由,未匹配网段的按无网段的IPv6前缀生成路由。
如果先配置接口的IPv6地址,后配置该接口地址网段的IPv6前缀生成指定掩码长度路由,当IPv6前缀长度小于等于该IPv6地址的掩码长度时会提示配置错误,该接口地址网段的IPv6前缀命令不生效,举例:先在GigabitEthernet 0/1接口上配置IPv6地址10::1/64,后全局模式下配置ipv6 route nd-to-route interface gigabitethernet 0/1 ipv6-prefix 10::1/58 prefix-len 60,则配置不生效。
如果先配置接口的IPv6地址,后配置未指定网段的IPv6前缀,当IPv6前缀长度小于等于该接口其中一个IPv6地址的掩码长度,提示配置错误,未指定网段的IPv6前缀配置命令不生效,举例:先在GigabitEthernet 0/1接口上配置IPv6地址10::1/64,后全局模式下配置ipv6 route nd-to-route interface gigabitethernet 0/1 prefix-len 60,则配置不生效。
如果先配置未指定网段的IPv6前缀,后配置该接口的ipv6地址,当其中一个IPv6地址的掩码长度大于等于未指定网段的IPv6前缀,提示Syslog且取消未指定网段的IPv6前缀配置,举例:先在全局模式下配置ipv6 route nd-to-route interface gigabitethernet 0/1 prefix-len 60,后到GigabitEthernet 0/1接口下配置地址10::1/64,则提示Syslog告警并删除ipv6 route nd-to-route interface gigabitethernet 0/1 prefix-len 60这条配置。
如果先配置指定网段的IPv6前缀,后配置该接口对应网段的IPv6地址,当对应网段的IPv6地址掩码长度大于等于指定网段的IPv6前缀,提示Syslog且取消该指定网段的IPv6前缀配置,举例:先在全局模式下配置ipv6 route nd-to-route interface gigabitethernet 0/1 ipv6-prefix 10::1/58 prefix-len 60,后到GigabitEthernet 0/1接口下配置地址10::1/64,则提示Syslog告警并删除ipv6 route nd-to-route interface gigabitethernet 0/1 ipv6-prefix 10::1/58 prefix-len 60这条配置。
如果先配置未指定网段的IPv6前缀和指定网段的IPv6前缀,后配置该接口的IPv6地址,检查每个IPv6地址的掩码长度是否大于相应指定网段的IPv6前缀和未指定网段的IPv6前缀, IPv6地址的掩码长度大于等于相应网段的IPv6前缀提示Syslog且取消相应指定网段的IPv6前缀配置,IPv6地址的掩码长度大于等于未指定网段的IPv6前缀提示Syslog且取消未指定网段的IPv6前缀配置,举例:先在全局模式下配置ipv6 route nd-to-route interface gigabitethernet 0/1 prefix-len 62和ipv6 route nd-to-route interface gigabitethernet 0/1 ipv6-prefix 10::1/58 prefix-len 60,后到GigabitEthernet 0/1接口下配置地址10::1/64,则提示Syslog告警并删除这两条配置ipv6 route nd-to-route interface gigabitethernet 0/1 prefix-len 62和ipv6 route nd-to-route interface gigabitethernet 0/1 ipv6-prefix 10::1/58 prefix-len 60。
进入特权模式。
enable
进入全局配置模式。
configure terminal
配置指定接口开启ND转化指定掩码长度路由。
ipv6 route nd-to-route interface interface-type interface-number [ ipv6-prefix X:X:X:X::X/<0-128> ] [ prefix-len mask-length ]
缺省情况下,指定接口开启ND转化为路由功能处于关闭状态。
防止ND表项变动导致路由抖动,所以可以延迟将ND表项转化成路由。
进入特权模式。
enable
进入全局配置模式。
configure terminal
配置ND转路由延时重分发。
ipv6 route nd-to-route delay-time delay-time
缺省情况下,nd转路由延时重分发功能处于关闭状态,延时重分发时间为0秒。
设置ND转化路由的Tag值,便于后续路由控制管理。
进入特权模式。
enable
进入全局配置模式。
configure terminal
配置ND转化的路由的Tag属性。
ipv6 route nd-to-route tag tag-number
缺省情况下,nd转化的路由的tag属性功能处于关闭状态。
配置忽略ND转指定长度路由告警后,忽略相同Port ND生成同一网段路由的告警;未配置该忽略告警情况下,打印相同Port ND生成同一网段路由的告警Log,且每条nd的告警信息最多只打印一次。不同Port生成相同网段路由打印的告警信息不受此功能控制。
进入特权模式。
enable
进入全局配置模式。
configure terminal
配置忽略ND转指定长度路由的告警Log。
ipv6 route nd-to-route warning-ignore
缺省情况下,忽略ND转指定长度路由的告警Log功能处于关闭状态。
设备接收到一个ND请求,就会代理发送ND响应,响应的MAC地址为设备自身的以太网MAC地址,这样不同的主机之间的通信靠三层路由来实现。
进入特权模式。
enable
进入全局配置模式。
configure terminal
进入SVI接口模式。
interface vlan vlan-id
配置SVI接口IPv6地址。
ipv6 address ipv6-address/prefix-length
开启ND代理功能。
local-proxy-nd enable
缺省情况下,接口本地ND代理处于关闭状态。
在BGP协议模式下使用此命令,将ND-Route重分发到BGP协议。
进入特权模式。
enable
进入全局配置模式。
configure terminal
进入bgp模式。
router bgp as-number
进入BGP IPv6地址族配置模式。
address-family ipv6
配置BGP重分布ND-Route路由。
redistribute nd-route [ route-map map-tag ] [ metric metric-value ]
缺省情况下,BGP不重分发ND-Route。
GR(Graceful Restart,优雅重启)功能的路由器在控制层面的重启过程中,转发层面能够继续指导数据的转发,同时控制层面邻居关系的重建以及路由计算等动作不会影响转发层面的功能。打开该功能,GR期间BGP路由删除马上生效,避免出现路由黑洞。
进入特权模式。
enable
进入全局配置模式。
configure terminal
配GR期间,BGP路由直接删除。
ip route notify delete always
缺省情况下,BGP路由删除功能处于关闭状态。
可以通过show命令行查看功能配置后的运行情况以验证配置效果。
同时还可以通过执行debug命令例举输出的各种调试信息。
注意
输出调试信息,会占用系统资源。使用完毕后,请立即关闭调试开关。
使用clear命令可以清除路由表缓存。
监视与维护
作用 |
命令 |
---|---|
清除路由表缓存 |
clear ip route [ vrf vrf-name ] { * | network [ mask ] } |
查看IPv4路由表 |
show ip route [ vrf vrf-name ] [ aggregate | count | [ ecmp | normal ] [ network [ mask ] ] | network [ mask [ longer-prefix ] ] | route-protocol [ process-id ] | weight | tag ] |
查看IPv6路由表 |
show ipv6 route [ vrf vrf-name ] [ ipv6-prefix/prefix-length [ longer-prefixes ] | route-protocol [ process-id ] | weight ] |
查看IP路由递归信息 |
show ip route [ vrf vrf-name ] recursive ipv4-network/mask |
查看IP路由联动BFD信息 |
show ip route [ vrf vrf-name ] static bfd |
查看单张路由表的统计信息 |
show ip route [ vrf vrf-name ] summary |
查看IPv4路由联动Track信息 |
show ip route [ vrf vrf-name ] track-table |
查看IPv6路由联动BFD信息 |
show ipv6 route [ vrf vrf-name ] static bfd |
查看所有IPv6路由表的统计信息 |
show ipv6 route [ vrf vrf-name ] summary |
打开IPv4路由管理的调试开关 |
debug nsm kernel ucast-v4 |
打开IPv6路由管理的调试开关 |
debug nsm kernel ucast-v6 |
打开缺省网络管理的调试开关 |
debug nsm kernel default-network |
打开路由管理内部事件调试开关 |
debug nsm events |
打开路由管理与路由协议消息发送开关 |
debug nsm packet send |
打开路由管理与路由协议消息接收开关 |
debug nsm packet recv |