29-RIPng配置
本章节下载: 29-RIPng配置 (301.04 KB)
目 录
RIPng(RIP next generation,下一代RIP协议)是基于距离矢量(Distance-Vector)算法的协议。它通过UDP报文交换路由信息,使用的端口号为521。RIPng是对原来的IPv4网络中RIP-2协议的扩展,大多数RIP的概念都可以用于RIPng。
RIPng使用跳数来衡量到达目的地址的距离(也称为度量值或开销)。在RIPng中,从一个路由器到其直连网络的跳数为0,通过与其相连的路由器到达另一个网络的跳数为1,其余以此类推。当跳数大于或等于16时,目的网络或主机就被定义为不可达。
每个运行RIPng的路由器都管理一个路由数据库,该路由数据库包含了到所有可达目的地的路由项,这些路由项包含下列信息:
· 目的地址:主机或网络的IPv6地址。
· 下一跳地址:为到达目的地,需要经过的相邻路由器的接口IPv6地址。
· 出接口:转发IPv6报文通过的出接口。
· 度量值:本路由器到达目的地的开销。
· 路由时间:从路由项最后一次被更新到现在所经过的时间,路由项每次被更新时,路由时间重置为0。
· 路由标记(Route Tag):用于标识外部路由。
RIPng有两种报文:Request报文和Response报文,并采用组播方式发送报文,使用组播地址FF02::9作为RIPng路由更新的目的地址;使用链路本地地址FE80::/10作为RIPng路由更新的源地址。
当RIPng路由器启动后或者需要更新部分路由表项时,便会发出Request报文,向邻居请求需要的路由信息。
Response报文包含本地路由表的信息,一般在下列情况下产生:
· 对某个Request报文进行响应
· 作为更新报文周期性地发出
· 在路由发生变化时触发更新
收到Request报文的RIPng路由器会以Response报文形式发回给请求路由器。
收到Response报文的路由器会更新自己的RIPng路由表。为了保证路由的准确性,RIPng路由器会对收到的Response报文进行有效性检查,比如源IPv6地址是否是链路本地地址,端口号是否正确等,没有通过检查的报文会被忽略。
与RIPng相关的规范有:
· RFC 2080:RIPng for IPv6
· RFC 2081:RIPng Protocol Applicability Statement
RIPng配置任务如下:
(1) 配置RIPng的基本功能
(2) (可选)配置RIPng的路由信息控制
(3) (可选)调整和优化RIPng网络
(4) (可选)提高RIPng的可靠性
(5) (可选)提高RIPng的安全性
¡ 配置IPsec
(1) 进入系统视图。
system-view
(2) 进入RIPng视图。
ripng [ process-id ]
缺省情况下,系统没有运行RIPng。
(3) 退回系统视图。
quit
(4) 进入接口视图。
interface interface-type interface-number
(5) 在接口上使能RIPng路由协议。
ripng process-id enable
缺省情况下,接口上的RIPng功能处于关闭状态。
如果接口没有使能RIPng,那么RIPng进程在该接口上既不发送也不接收RIPng路由。
附加度量值是在RIPng路由原来度量值的基础上所增加的度量值(跳数),包括发送附加度量值和接收附加度量值。
· 发送附加度量值:不会改变路由表中的路由度量值,仅当接口发送RIPng路由信息时才会添加到发送路由上。
· 接收附加度量值:会影响接收到的路由度量值,接口接收到一条合法的RIPng路由时,在将其加入路由表前会把附加度量值加到该路由上。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 设置接口接收RIPng路由时的附加度量值。
ripng metricin value
缺省情况下,接口接收RIPng路由时的附加度量值为0。
(4) 设置接口发送RIPng路由时的附加度量值。
ripng metricout value
缺省情况下,接口发送RIPng路由时的附加度量值为1。
RIPng的路由聚合是在接口上实现的,在接口上配置路由聚合,此时可以将RIPng要在这个接口上发布出去的路由按最长匹配原则聚合后发布出去。
RIPng路由聚合可提高网络的可扩展性和效率,缩减路由表。
RIPng将多条路由聚合成一条路由时,聚合路由的Metric值将取所有路由Metric的最小值。
例如,RIPng从接口发布出去的路由有两条:11:11:11::24 Metric=2 和11:11:12::34 Metric=3,在此接口上配置的聚合路由为11::0/16,则最终发布出去的路由为11::0/16 Metric=2。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置RIPng在接口发布聚合的IPv6地址,并指定被聚合的路由的IPv6前缀。
ripng summary-address ipv6-address prefix-length
缺省情况下,未配置RIPng在接口发布聚合的IPv6地址。
用户可以配置RIP以指定度量值向邻居发布一条缺省路由。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置RIPng发布缺省路由。
ripng default-route { only | originate } [ cost cost-value ]
缺省情况下,RIPng进程不发布缺省路由。
缺省路由将被强制通过指定接口的路由更新报文发布出去,该路由的发布不考虑其是否已经存在于本设备的IPv6路由表中。
用户可通过使用IPv6 ACL和IPv6前缀列表对接收到的路由信息进行过滤,只有通过过滤的路由才能被加入到RIPng路由表;此外,还可对本机所有要发布的路由进行过滤,包括从其它路由协议引入的路由和从邻居学到的RIPng路由,只有通过过滤的路由才能被发布给RIPng邻居。
(1) 进入系统视图。
system-view
(2) 进入RIPng视图。
ripng [ process-id ]
(3) 对接收的路由信息进行过滤。
filter-policy { ipv6-acl-number | prefix-list prefix-list-name } import
缺省情况下,RIPng不对接收的路由信息进行过滤。
(4) 对发布的路由信息进行过滤。
filter-policy { ipv6-acl-number | prefix-list prefix-list-name } export [ protocol [ process-id ] ]
缺省情况下,RIPng不对发布的路由信息进行过滤。
任何路由协议都具备特有的协议优先级,在设备进行路由选择时能够在不同的协议中选择最佳路由。可以手工设置RIPng协议的优先级,设置的值越小,其优先级越高。
(1) 进入系统视图。
system-view
(2) 进入RIPng视图。
ripng [ process-id ]
(3) 配置RIPng路由的优先级。
preference { preference }
缺省情况下,RIPng路由的优先级为100。
(1) 进入系统视图。
system-view
(2) 进入RIPng视图。
ripng [ process-id ]
(3) 引入外部路由。
¡ 配置RIPng引入直连或静态路由。
import-route { direct | static } [ cost cost-value ]
¡ 配置RIPng引入其他ripng进程的路由。
import-route ripng [ process-id ] [ allow-direct | cost cost-value ] *
缺省情况下,RIPng不引入其它路由。
(4) (可选)配置引入路由的缺省度量值。
default cost cost-value
缺省情况下,引入路由的缺省度量值为0。
用户可通过调节RIPng定时器来调整RIPng路由协议的性能,以满足网络需要。
在配置RIPng定时器时需要注意,定时器值的调整应考虑网络的性能,并在所有运行RIPng的路由器上进行统一配置,避免增加不必要的网络流量。
(1) 进入系统视图。
system-view
(2) 进入RIPng视图。
ripng [ process-id ]
(3) 配置RIPng定时器的值。
timers { garbage-collect garbage-collect-value | suppress suppress-value | timeout timeout-value | update update-value } *
缺省情况下,Update定时器的值为30秒,Timeout定时器的值为180秒,Suppress定时器的值为120秒,Garbage-collect定时器的值为120秒。
· 如果同时配置了水平分割和毒性逆转,则只有毒性逆转功能生效。
· 配置水平分割可以使得从一个接口学到的路由不能通过此接口向外发布,用于避免相邻路由器间的路由环路。因此,建议不要关闭水平分割。
· 配置毒性逆转可以使得从一个接口学到的路由还可以从这个接口向外发布,但此时这些路由的度量值已设置为16,即不可达。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 使能水平分割功能。
ripng split-horizon
缺省情况下,水平分割功能处于使能状态。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 使能毒性逆转功能。
ripng poison-reverse
缺省情况下,毒性逆转功能处于关闭状态。
(1) 进入系统视图。
system-view
(2) 进入RIPng视图。
ripng [ process-id ]
(3) 配置RIPng最大等价路由条数。
maximum load-balancing number
RIPng周期性地将路由信息放在RIPng报文中向邻居发送。
如果路由表里的路由条目数量很多,同时发送大量RIPng协议报文有可能会对当前设备和网络带宽带来冲击;因此,路由器将RIPng协议报文分为多个批次进行发送,并且对RIPng接口每次允许发送的RIPng协议报文最大个数做出限制。
用户可根据需要配置接口发送RIPng报文的时间间隔以及接口一次发送RIPng报文的最大个数。
(1) 进入系统视图。
system-view
(2) 配置RIPng报文的发送速率。
¡ 请依次执行以下命令在RIP视图下配置RIPng报文发送速率。
ripng [ process-id ]
output-delay time count count
缺省情况下,接口发送RIPng报文的时间间隔为20毫秒,一次最多发送3个RIPng报文。
¡ 请依次执行以下命令在接口视图下配置RIPng报文发送速率。
interface interface-type interface-number
ripng output-delay time count count
缺省情况下,接口发送RIPng报文的速率以RIPng进程配置的为准。
RIPng路由信息变化后将以触发更新的方式通知邻居设备,加速邻居设备的路由收敛。如果路由信息频繁变化,且每次变化都立即发送触发更新,将会占用大量系统资源,并影响路由器的效率。通过调节触发更新的时间间隔,可以抑制由于路由信息频繁变化带来的影响。本命令在路由信息变化不频繁的情况下将连续触发更新的时间间隔缩小到minimum-interval,而在路由信息变化频繁的情况下可以进行相应惩罚,增加incremental-interval×2n-2(n为连续触发更新的次数),将等待时间按照配置的惩罚增量延长,最大不超过maximum-interval。
(1) 进入系统视图。
system-view
(2) 进入RIPng视图。
ripng [ process-id ]
(3) 配置RIPng触发更新的时间间隔。
timer triggered maximum-interval [ minimum-interval [ incremental-interval ] ]
缺省情况下,发送触发更新的最大时间间隔为5秒,最小间隔为50毫秒,增量惩罚间隔为200毫秒。
GR(Graceful Restart,平滑重启)是一种在协议重启或主备倒换时RIPng进行平滑重启,保证转发业务不中断的机制。
GR有两个角色:
· GR Restarter:发生协议重启或主备倒换事件且具有GR能力的设备。
· GR Helper:和GR Restarter具有邻居关系,协助完成GR流程的设备。
在普通的路由协议重启的情况下,路由器需要重新学习RIPng路由,并更新FIB表,此时会引起网络暂时的中断,基于RIPng的GR可以解决这个问题。
应用了GR特性的设备向外发送RIPng全部路由表请求报文,重新从邻居处学习RIPng路由,在此期间FIB表不变化。在路由协议重启完毕后,设备将重新学到的RIPng路由下刷给FIB表,使该设备的路由信息恢复到重启前的状态。
本配置在GR Restarter上进行。启动了RIPng的设备缺省就是GR Helper。
(1) 进入系统视图。
system-view
(2) 进入RIPng视图。
ripng [ process-id ]
(3) 使能RIPng协议的GR能力。
graceful-restart
缺省情况下,RIPng协议的GR能力处于关闭状态。
(4) (可选)配置RIPng协议的GR重启间隔时间。
graceful-restart interval interval
缺省情况下,RIPng协议的GR重启间隔时间为60秒。
RIPng报文头部中的一些字段必须配置为0,也称为零域。使能RIPng报文的零域检查功能后,如果报文头部零域中的值不为零,这些报文将被丢弃,不做处理。如果能确保所有报文都是可信任的,则不需要进行该项检查,以节省CPU处理时间。
(1) 进入系统视图。
system-view
(2) 进入RIPng视图。
ripng [ process-id ]
(3) 使能对RIPng报文头部的零域检查功能。
checkzero
缺省情况下,RIPng报文的零域检查功能处于使能状态。
在安全性要求较高的网络环境中,可以通过配置基于IPsec安全框架的认证方式来对RIPng报文进行有效性检查和验证。IPsec安全框架的具体情况请参见“安全配置指导”中的“IPsec”。
设备在发送的报文中会携带配置好的IPsec安全框架的SPI(Security Parameter Index,安全参数索引)值,接收报文时通过SPI值进行IPsec安全框架匹配:只有安全框架匹配的报文才能接收;否则将不会接收报文,从而不能正常建立邻居和学习路由。
RIPng支持在进程和接口下配置IPsec安全框架。进程下配置的IPsec安全框架对该进程下的所有报文有效,接口下的IPsec安全框架只对接口下的报文有效。当接口和接口所在进程均配置了IPsec安全框架时,接口下的配置生效。
(1) 进入系统视图。
system-view
(2) 进入RIPng视图。
ripng [ process-id ]
(3) 配置RIPng进程应用IPsec安全框架。
enable ipsec-profile profile-name
缺省情况下,RIPng进程没有应用IPsec安全框架。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置使能了RIPng的接口上应用IPsec安全框架。
ripng ipsec-profile profile-name
缺省情况下,RIPng接口没有应用IPsec安全框架。
在完成上述配置后,在任意视图下执行display命令可以显示配置后RIPng的运行情况,通过查看显示信息验证配置的效果。
在用户视图下执行reset命令可以重启RIPng进程或清除指定RIPng进程的统计信息。
表1-1 RIPng显示和维护
操作 |
命令 |
显示RIPng进程的GR状态信息 |
display ripng [ process-id ] graceful-restart |
显示RIPng进程的配置信息 |
display ripng [ process-id ] |
显示RIPng发布数据库中的路由 |
display ripng process-id database [ ipv6-address prefix-length ] |
显示指定RIPng进程的接口信息 |
display ripng process-id interface [ interface-type interface-number ] |
显示RIPng进程的邻居信息 |
display ripng process-id neighbor [ interface-type interface-number ] |
显示指定RIPng进程的路由信息 |
display ripng process-id route [ ipv6-address prefix-length [ verbose ] | peer ipv6-address | statistics ] |
重启指定RIPng进程 |
reset ripng process-id process |
清除RIPng进程的统计信息 |
reset ripng process-id statistics |
· Device A与2::/64网段相连,Device B与3::/64网段相连。
· Device A与Device B使用RIPng进行互联,2::/64网段内的主机与3::/64网段内的主机能够相互通信。
图1-1 RIPng基本功能配置组网图
(1) 配置接口IPv6地址
# 根据组网图中规划的信息,配置各接口的IPv6地址,具体配置步骤如下。
<DeviceA> system-view
[DeviceA] interface gigabitethernet 1/0/1
[DeviceA-GigabitEthernet1/0/1] ipv6 address 1::1 64
[DeviceA-GigabitEthernet1/0/1] quit
请参考以上步骤配置其他接口的IPv6地址,具体配置步骤略。
(2) 配置接口加入安全域
# 根据组网图中规划的信息,将接口加入对应的安全域,具体配置步骤如下。
[DeviceA] security-zone name untrust
[DeviceA-security-zone-Untrust] import interface gigabitethernet 1/0/1
[DeviceA-security-zone-Untrust] quit
[DeviceA] security-zone name trust
[DeviceA-security-zone-Trust] import interface gigabitethernet 1/0/2
[DeviceA-security-zone-Trust] quit
(3) 配置安全策略
a. 配置安全策略放行Untrust与Local安全域之间的流量,用于设备之间可以建立RIPng邻居关系。
# 配置名称为ripnglocalin的安全策略规则,让Device A可以接收Device B发送的RIPng协议报文,具体配置步骤如下。
[DeviceA] security-policy ipv6
[DeviceA-security-policy-ipv6] rule name ripnglocalin
[DeviceA-security-policy-ipv6-0-ripnglocalin] source-zone untrust
[DeviceA-security-policy-ipv6-0-ripnglocalin] destination-zone local
[DeviceA-security-policy-ipv6-0-ripnglocalin] service rip
[DeviceA-security-policy-ipv6-0-ripnglocalin] action pass
[DeviceA-security-policy-ipv6-0-ripnglocalin] quit
# 配置名称为ripnglocalout的安全策略规则,让Device A可以向Device B发送RIPng协议报文,具体配置步骤如下。
[DeviceA-security-policy-ipv6] rule name ripnglocalout
[DeviceA-security-policy-ipv6-1-ripnglocalout] source-zone local
[DeviceA-security-policy-ipv6-1-ripnglocalout] destination-zone untrust
[DeviceA-security-policy-ipv6-1-ripnglocalout] service rip
[DeviceA-security-policy-ipv6-1-ripnglocalout] action pass
[DeviceA-security-policy-ipv6-1-ripnglocalout] quit
b. 配置安全策略放行Trust与Untrust安全域之间的流量,使得2::/64网段内的主机与3::/64网段内的主机互通。
# 配置名称为trust-untrust的安全策略规则,让2::/64网段的主机能够访问3::/64网段内的主机。
[DeviceA-security-policy-ipv6] rule name trust-untrust
[DeviceA-security-policy-ipv6-2-trust-untrust] source-zone trust
[DeviceA-security-policy-ipv6-2-trust-untrust] destination-zone untrust
[DeviceA-security-policy-ipv6-2-trust-untrust] source-ip-subnet 2:: 64
[DeviceA-security-policy-ipv6-2-trust-untrust] destination-ip-subnet 3:: 64
[DeviceA-security-policy-ipv6-2-trust-untrust] action pass
[DeviceA-security-policy-ipv6-2-trust-untrust] quit
# 配置名称为untrust-trust的安全策略规则,让3::/64网段的主机能够访问2::/64网段内的主机。
[DeviceA-security-policy-ipv6] rule name untrust-trust
[DeviceA-security-policy-ipv6-3-untrust-trust] source-zone untrust
[DeviceA-security-policy-ipv6-3-untrust-trust] destination-zone trust
[DeviceA-security-policy-ipv6-3-untrust-trust] source-ip-subnet 3:: 64
[DeviceA-security-policy-ipv6-3-trust-untrust] destination-ip-subnet 2:: 64
[DeviceA-security-policy-ipv6-3-untrust-trust] action pass
[DeviceA-security-policy-ipv6-3-untrust-trust] quit
[DeviceA-security-policy-ipv6] quit
(4) 配置RIPng基本功能
[DeviceA] ripng 1
[DeviceA-ripng-1] quit
[DeviceA] interface gigabitethernet 1/0/1
[DeviceA-GigabitEthernet1/0/1] ripng 1 enable
[DeviceA-GigabitEthernet1/0/1] quit
[DeviceA] interface gigabitethernet 1/0/2
[DeviceA-GigabitEthernet1/0/2] ripng 1 enable
[DeviceA-GigabitEthernet1/0/2] quit
(1) 配置接口IP地址
# 根据组网图中规划的信息,配置各接口的IPv6地址,具体配置步骤如下。
<DeviceB> system-view
[DeviceB] interface gigabitethernet 1/0/1
[DeviceB-GigabitEthernet1/0/1] ipv6 address 1::2 64
[DeviceB-GigabitEthernet1/0/1] quit
请参考以上步骤配置其他接口的IPv6地址,具体配置步骤略。
(2) 配置接口加入安全域
# 根据组网图中规划的信息,将接口加入对应的安全域,具体配置步骤如下。
[DeviceB] security-zone name untrust
[DeviceB-security-zone-Untrust] import interface gigabitethernet 1/0/1
[DeviceB-security-zone-Untrust] quit
[DeviceB] security-zone name trust
[DeviceB-security-zone-Trust] import interface gigabitethernet 1/0/2
[DeviceB-security-zone-Trust] quit
(3) 配置安全策略
a. 配置安全策略放行Untrust与Local安全域之间的流量,用于设备之间可以建立RIPng邻居关系。
# 配置名称为ripnglocalin的安全策略规则,让Device B可以接收Device A发送的RIPng协议报文,具体配置步骤如下。
[DeviceB] security-policy ipv6
[DeviceB-security-policy-ipv6] rule name ripnglocalin
[DeviceB-security-policy-ipv6-0-ripnglocalin] source-zone untrust
[DeviceB-security-policy-ipv6-0-ripnglocalin] destination-zone local
[DeviceB-security-policy-ipv6-0-ripnglocalin] service rip
[DeviceB-security-policy-ipv6-0-ripnglocalin] action pass
[DeviceB-security-policy-ipv6-0-ripnglocalin] quit
# 配置名称为ripnglocalout的安全策略规则,让Device B可以向Device A发送RIPng协议报文,具体配置步骤如下。
[DeviceB-security-policy-ipv6] rule name ripnglocalout
[DeviceB-security-policy-ipv6-1-ripnglocalout] source-zone local
[DeviceB-security-policy-ipv6-1-ripnglocalout] destination-zone untrust
[DeviceB-security-policy-ipv6-1-ripnglocalout] service rip
[DeviceB-security-policy-ipv6-1-ripnglocalout] action pass
[DeviceB-security-policy-ipv6-1-ripnglocalout] quit
b. 配置安全策略放行Trust与Untrust安全域之间的流量,使得2::/64网段内的主机与3::/64网段内的主机互通。
# 配置名称为trust-untrust的安全策略规则,让3::/64网段的主机能够访问2::/64网段内的主机。
[DeviceB-security-policy-ipv6] rule name trust-untrust
[DeviceB-security-policy-ipv6-2-trust-untrust] source-zone trust
[DeviceB-security-policy-ipv6-2-trust-untrust] destination-zone untrust
[DeviceB-security-policy-ipv6-2-trust-untrust] source-ip-subnet 3:: 64
[DeviceB-security-policy-ipv6-2-trust-untrust] destination-ip-subnet 2:: 64
[DeviceB-security-policy-ipv6-2-trust-untrust] action pass
[DeviceB-security-policy-ipv6-2-trust-untrust] quit
# 配置名称为untrust-trust的安全策略规则,让2::/64网段的主机能够访问3::/64网段内的主机。
[DeviceB-security-policy-ipv6] rule name untrust-trust
[DeviceB-security-policy-ipv6-3-untrust-trust] source-zone untrust
[DeviceB-security-policy-ipv6-3-untrust-trust] destination-zone trust
[DeviceB-security-policy-ipv6-3-untrust-trust] source-ip-subnet 2:: 64
[DeviceB-security-policy-ipv6-3-trust-untrust] destination-ip-subnet 3:: 64
[DeviceB-security-policy-ipv6-3-untrust-trust] action pass
[DeviceB-security-policy-ipv6-3-untrust-trust] quit
[DeviceB-security-policy-ipv6] quit
(4) 配置RIPng基本功能
[DeviceB] ripng 1
[DeviceB-ripng-1] quit
[DeviceB] interface gigabitethernet 1/0/1
[DeviceB-GigabitEthernet1/0/1] ripng 1 enable
[DeviceB-GigabitEthernet1/0/1] quit
[DeviceB] interface gigabitethernet 1/0/2
[DeviceB-GigabitEthernet1/0/2] ripng 1 enable
[DeviceB-GigabitEthernet1/0/2] quit
# 查看Device A的RIPng路由表。
[Device A] display ripng 1 route
Route Flags: A - Aging, S - Suppressed, G - Garbage-collect, D - Direct
O - Optimal, F - Flush to RIB
----------------------------------------------------------------------------
Peer FE80::76A5::A3FF:FE7B:205 on GigabitEthernet1/0/1
Destination 3::/64,
via FE80::76A5:A3FF:FE7B:205, cost 1, tag 0, AOF, 17 secs
Local route
Destination 2::/64,
via ::, cost 0, tag 0, DOF
Destination 1::/64,
via ::, cost 0, tag 0, DOF
# 2::/64网段内的主机与3::/64网段内的主机能够互通。
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!