08-RIPng配置
本章节下载: 08-RIPng配置 (290.31 KB)
目 录
RIPng(RIP next generation,下一代RIP协议)是对原来的IPv4网络中RIP-2协议的扩展。大多数RIP的概念都可以用于RIPng。
为了在IPv6网络中应用,RIPng对原有的RIP协议进行了如下修改:
· UDP端口号:使用UDP的521端口发送和接收路由信息。
· 组播地址:使用FF02::9作为链路本地范围内的RIPng路由器组播地址。
· 前缀长度:目的地址使用128比特的前缀长度。
· 下一跳地址:使用128比特的IPv6地址。
· 源地址:使用链路本地地址FE80::/10作为源地址发送RIPng路由信息更新报文。
RIPng协议是基于距离矢量(Distance-Vector)算法的协议。它通过UDP报文交换路由信息,使用的端口号为521。
RIPng使用跳数来衡量到达目的地址的距离(也称为度量值或开销)。在RIPng中,从一个路由器到其直连网络的跳数为0,通过与其相连的路由器到达另一个网络的跳数为1,其余以此类推。当跳数大于或等于16时,目的网络或主机就被定义为不可达。
RIPng每30秒发送一次路由更新报文。如果在180秒内没有收到网络邻居的路由更新报文,RIPng将从邻居学到的所有路由标识为不可达。如果再过120秒内仍没有收到邻居的路由更新报文,RIPng将从路由表中删除这些路由。
为了提高性能并避免形成路由环路,RIPng既支持水平分割也支持毒性逆转。此外,RIPng还可以从其它的路由协议引入路由。
每个运行RIPng的路由器都管理一个路由数据库,该路由数据库包含了到所有可达目的地的路由项,这些路由项包含下列信息:
· 目的地址:主机或网络的IPv6地址。
· 下一跳地址:为到达目的地,需要经过的相邻路由器的接口IPv6地址。
· 出接口:转发IPv6报文通过的出接口。
· 度量值:本路由器到达目的地的开销。
· 路由时间:从路由项最后一次被更新到现在所经过的时间,路由项每次被更新时,路由时间重置为0。
· 路由标记(Route Tag):用于标识外部路由,以便在路由策略中根据Tag对路由进行灵活的控制。关于路由策略的详细信息,请参见“三层技术-IP路由配置指导”中的“路由策略”。
RIPng报文由头部(Header)和多个路由表项(RTEs)组成。在同一个RIPng报文中,RTE的最大条数与发送接口设置的IPv6 MTU有关。
RIPng报文基本格式如下图所示。
图1-1 RIPng报文基本格式
各字段的含义如下:
· Command:定义报文的类型。0x01表示Request报文,0x02表示Response报文。
· Version:RIPng的版本,目前其值只能为0x01。
· RTE(Route Table Entry):路由表项,每项的长度为20字节。
在RIPng里有两类RTE,分别是:
· 下一跳RTE:位于一组具有相同下一跳的“IPv6前缀RTE”的前面,它定义了下一跳的IPv6地址。
· IPv6前缀RTE:位于某个“下一跳RTE”的后面。同一个“下一跳RTE”的后面可以有多个不同的“IPv6前缀RTE”。它描述了RIPng路由表中的目的IPv6地址、路由标记、前缀长度以及度量值。
下一跳RTE的格式如下图所示。
其中,IPv6 next hop address表示下一跳的IPv6地址。
IPv6前缀RTE的格式如下图所示。
图1-3 IPv6前缀RTE格式
各字段的解释如下:
· IPv6 prefix:目的IPv6地址的前缀。
· route tag:路由标记。
· prefix len:IPv6地址的前缀长度。
· metric:路由的度量值。
当RIPng路由器启动后或者需要更新部分路由表项时,便会发出Request报文,向邻居请求需要的路由信息。通常情况下以组播方式发送Request报文。
收到Request报文的RIPng路由器会对其中的RTE进行处理。如果Request报文中只有一项RTE,且IPv6前缀和前缀长度都为0,度量值为16,则表示请求邻居发送全部路由信息,被请求路由器收到后会把当前路由表中的全部路由信息,以Response报文形式发回给请求路由器。如果Request报文中有多项RTE,被请求路由器将对RTE逐项处理,更新每条路由的度量值,最后以Response报文形式返回给请求路由器。
Response报文包含本地路由表的信息,一般在下列情况下产生:
· 对某个Request报文进行响应
· 作为更新报文周期性地发出
· 在路由发生变化时触发更新
收到Response报文的路由器会更新自己的RIPng路由表。为了保证路由的准确性,RIPng路由器会对收到的Response报文进行有效性检查,比如源IPv6地址是否是链路本地地址,端口号是否正确等,没有通过检查的报文会被忽略。
与RIPng相关的规范有:
· RFC 2080:RIPng for IPv6
· RFC 2081:RIPng Protocol Applicability Statement
表1-1 RIPng配置任务简介
配置任务 |
说明 |
详细配置 |
|
使能RIPng的基本功能 |
必选 |
||
配置RIPng路由特性 |
配置接口附加度量值 |
可选 |
|
配置RIPng路由聚合 |
可选 |
||
配置RIPng发布缺省路由 |
可选 |
||
配置RIPng对接收/发布的路由进行过滤 |
可选 |
||
配置RIPng协议优先级 |
可选 |
||
配置RIPng引入外部路由 |
可选 |
||
调整和优化RIPng网络 |
配置RIPng定时器 |
可选 |
|
配置水平分割和毒性逆转 |
可选 |
||
配置RIPng报文的零域检查 |
可选 |
||
配置最大等价路由条数 |
可选 |
RIPng基本功能的配置任务包括RIPng特性配置中涉及的基本配置,完成本节的配置就可以使用RIPng特性。
在RIPng的配置中,应该最先使能RIPng。但是与RIPng功能特性相关的接口配置不受是否启动了RIPng的限制,比如给接口配置一个IPv6地址。
在配置RIPng基本功能之前,需完成以下任务:
· 启动IPv6报文转发功能
· 配置接口的网络层地址,使相邻节点的网络层可达
表1-2 配置RIPng的基本功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建RIPng进程并进入RIPng视图 |
ripng [ process-id ] [ vpn-instance vpn-instance-name ] |
必选 缺省情况下,没有RIPng进程在运行 |
退回系统视图 |
quit |
- |
进入接口视图 |
interface interface-type interface-number |
- |
在指定的网络接口上使能RIPng |
ripng process-id enable |
必选 缺省情况下,接口禁用RIPng |
如果接口没有使能RIPng,那么RIPng进程在该接口上既不发送也不接收RIPng路由。
在配置RIPng的路由特性之前,需完成以下任务:
· 配置接口的网络层地址
· 配置RIPng基本功能
· 如果使用IPv6 ACL进行路由过滤,需要定义IPv6 ACL,相关配置请参见“ACL和QoS配置指导”中的“ACL”。
· 如果使用IPv6地址前缀列表进行路由过滤,需要定义IPv6地址前缀列表,相关配置请参见“三层技术-IP路由配置指导”中的“路由策略”。
附加度量值是附加在RIPng路由上的输入输出度量值,包括发送附加度量值和接收附加度量值。发送附加度量值不会改变路由表中的路由度量值,仅当接口发送RIPng路由信息时才会添加到发送路由上;接收附加度量值会影响接收到的路由度量值,接口接收到一条合法的RIPng路由时,在将其加入路由表前会把附加度量值加到该路由上。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
设置接口接收RIPng路由时的附加度量值 |
ripng metricin value |
可选 缺省情况下,接口接收RIPng路由时的附加度量值为0 |
设置接口发送RIPng路由时的附加度量值 |
ripng metricout value |
可选 缺省情况下,接口发送RIPng路由时的附加度量值为1 |
表1-4 配置RIPng路由聚合
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
配置RIPng在接口发布聚合的IPv6前缀 |
ripng summary-address ipv6-address prefix-length |
必选 |
表1-5 配置RIPng发布缺省路由
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
配置RIPng发布缺省路由 |
ripng default-route { only | originate } [ cost cost ] |
必选 缺省情况下,RIPng进程不发布缺省路由 |
缺省路由将被强制通过指定接口的路由更新报文发布出去,该路由的发布不考虑其是否已经存在于本设备的IPv6路由表中。
用户可通过使用IPv6 ACL和IPv6前缀列表对接收到的路由信息进行过滤,只有通过过滤的路由才能被加入到RIPng路由表;此外,还可对本机所有要发布的路由进行过滤,包括从其它路由协议引入的路由和从邻居学到的RIPng路由,只有通过过滤的路由才能被发布给RIPng邻居。
表1-6 配置RIPng对接收/发布的路由进行过滤
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入RIPng视图 |
ripng [ process-id ] [ vpn-instance vpn-instance-name ] |
- |
对接收的路由信息进行过滤 |
filter-policy { acl6-number | ipv6-prefix ipv6-prefix-name } import |
必选 缺省情况下,RIPng不对接收的路由信息进行过滤 |
对发布的路由信息进行过滤 |
filter-policy { acl6-number | ipv6-prefix ipv6-prefix-name } export [ protocol [ process-id ] ] |
必选 缺省情况下,RIPng不对发布的路由信息进行过滤 |
任何路由协议都具备特有的协议优先级,在设备进行路由选择时能够在不同的协议中选择最佳路由。可以手工设置RIPng协议的优先级,设置的值越小,其优先级越高。
表1-7 配置RIPng协议优先级
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入RIPng视图 |
ripng [ process-id ] [ vpn-instance vpn-instance-name ] |
- |
配置RIPng路由的优先级 |
preference [ route-policy route-policy-name ] preference |
可选 缺省情况下,RIPng路由的优先级为100 |
表1-8 配置RIPng引入外部路由
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入RIPng视图 |
ripng [ process-id ] [ vpn-instance vpn-instance-name ] |
- |
配置引入路由的缺省度量值 |
default cost cost |
可选 缺省情况下,引入路由的缺省度量值为0 |
引入外部路由 |
import-route protocol [ process-id ] [ allow-ibgp ] [ cost cost | route-policy route-policy-name ] * |
必选 缺省情况下,RIPng不引入其它路由 |
本节将介绍如何调整和优化RIPng网络的性能,以及在特殊网络环境中某些RIPng特性的应用,在调整和优化RIPng网络之前,需完成以下任务:
· 配置接口的网络层地址
· 配置RIPng基本功能
用户可通过调节RIPng定时器来调整RIPng路由协议的性能,以满足网络需要。
表1-9 配置RIPng定时器
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入RIPng视图 |
ripng [ process-id ] [ vpn-instance vpn-instance-name ] |
- |
配置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秒 |
在配置RIPng定时器时需要注意,定时器值的调整应考虑网络的性能,并在所有运行RIPng的路由器上进行统一配置,避免增加不必要的网络流量。
如果同时配置了水平分割和毒性逆转,则只有毒性逆转功能生效。
配置水平分割可以使得从一个接口学到的路由不能通过此接口向外发布,用于避免相邻路由器间的路由环路。
表1-10 配置水平分割
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
使能水平分割功能 |
ripng split-horizon |
可选 缺省情况下,水平分割功能处于使能状态 |
通常情况下,为了防止路由环路的出现,水平分割都是必要的,因此,建议不要关闭水平分割。
配置毒性逆转可以使得从一个接口学到的路由还可以从这个接口向外发布,但此时这些路由的度量值已设置为16,即不可达。
表1-11 配置毒性逆转
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
使能毒性逆转功能 |
ripng poison-reverse |
必选 缺省情况下,毒性逆转功能处于关闭状态 |
RIPng报文头部中的一些字段必须配置为0,也称为零域。使能RIPng报文的零域检查功能后,如果报文头部零域中的值不为零,这些报文将被丢弃,不做处理。如果能确保所有报文都是可信任的,则不需要进行该项检查,以节省CPU处理时间。
表1-12 配置RIPng报文的零域检查
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入RIPng视图 |
ripng [ process-id ] [ vpn-instance vpn-instance-name ] |
- |
使能对RIPng报文头部的零域检查操作 |
checkzero |
可选 缺省情况下,RIPng进行零域检查操作 |
表1-13 配置最大等价路由条数
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入RIPng视图 |
ripng [ process-id ] [ vpn-instance vpn-instance-name ] |
- |
配置RIPng最大等价路由条数 |
maximum load-balancing number |
可选 缺省情况下,RIPng最大等价路由条数为16 |
在完成上述配置后,在任意视图下执行display命令可以显示配置后RIPng的运行情况,通过查看显示信息验证配置的效果。
在用户视图下执行reset命令可以重启RIPng进程或清除指定RIPng进程的统计信息。
表1-14 RIPng显示和维护
操作 |
命令 |
显示RIPng进程的配置信息 |
display ripng [ process-id | vpn-instance vpn-instance-name ] [ | { begin | exclude | include } regular-expression ] |
显示RIPng发布数据库中的路由 |
display ripng process-id database [ | { begin | exclude | include } regular-expression ] |
显示指定RIPng进程的路由信息 |
display ripng process-id route [ | { begin | exclude | include } regular-expression ] |
显示RIPng的接口信息 |
display ripng process-id interface [ interface-type interface-number ] [ | { begin | exclude | include } regular-expression ] |
重启RIPng进程 |
reset ripng process-id process |
清除RIPng进程的统计信息 |
reset ripng process-id statistics |
· Switch A、Switch B和Switch C相连并通过RIPng来学习网络中的IPv6路由信息;
· 在Switch B上对接收的Switch C的路由(3::/64)进行过滤,使其不加入到Switch B的RIPng进程的路由表中,也不发布给Switch A。
图1-4 RIPng配置举例组网图
(1) 配置各接口的IPv6地址(略)
(2) 配置RIPng的基本功能
# 配置Switch A。
<SwitchA> system-view
[SwitchA] ripng 1
[SwitchA-ripng-1] quit
[SwitchA] interface vlan-interface 100
[SwitchA-Vlan-interface100] ripng 1 enable
[SwitchA-Vlan-interface100] quit
[SwitchA] interface vlan-interface 400
[SwitchA-Vlan-interface400] ripng 1 enable
[SwitchA-Vlan-interface400] quit
# 配置Switch B。
<SwitchB> system-view
[SwitchB] ripng 1
[SwitchB-ripng-1] quit
[SwitchB] interface vlan-interface 200
[SwitchB-Vlan-interface200] ripng 1 enable
[SwitchB-Vlan-interface200] quit
[SwitchB] interface vlan-interface 100
[SwitchB-Vlan-interface100] ripng 1 enable
[SwitchB-Vlan-interface100] quit
# 配置Switch C。
<SwitchC> system-view
[SwitchC] ripng 1
[SwitchC-ripng-1] quit
[SwitchC] interface vlan-interface 200
[SwitchC-Vlan-interface200] ripng 1 enable
[SwitchC-Vlan-interface200] quit
[SwitchC] interface vlan-interface 500
[SwitchC-Vlan-interface500] ripng 1 enable
[SwitchC-Vlan-interface500] quit
[SwitchC] interface vlan-interface 600
[SwitchC-Vlan-interface600] ripng 1 enable
[SwitchC-Vlan-interface600] quit
# 查看Switch B的RIPng路由表。
[SwitchB] display ripng 1 route
Route Flags: A - Aging, S - Suppressed, G - Garbage-collect
----------------------------------------------------------------
Peer FE80::20F:E2FF:FE23:82F5 on Vlan-interface100
Dest 1::/64,
via FE80::20F:E2FF:FE23:82F5, cost 1, tag 0, A, 6 Sec
Dest 2::/64,
via FE80::20F:E2FF:FE23:82F5, cost 1, tag 0, A, 6 Sec
Peer FE80::20F:E2FF:FE00:100 on Vlan-interface200
Dest 3::/64,
via FE80::20F:E2FF:FE00:100, cost 1, tag 0, A, 11 Sec
Dest 4::/64,
via FE80::20F:E2FF:FE00:100, cost 1, tag 0, A, 11 Sec
Dest 5::/64,
via FE80::20F:E2FF:FE00:100, cost 1, tag 0, A, 11 Sec
# 查看Switch A的RIPng路由表。
[SwitchA] display ripng 1 route
Route Flags: A - Aging, S - Suppressed, G - Garbage-collect
----------------------------------------------------------------
Peer FE80::200:2FF:FE64:8904 on Vlan-interface100
Dest 1::/64,
via FE80::200:2FF:FE64:8904, cost 1, tag 0, A, 31 Sec
Dest 4::/64,
via FE80::200:2FF:FE64:8904, cost 2, tag 0, A, 31 Sec
Dest 5::/64,
via FE80::200:2FF:FE64:8904, cost 2, tag 0, A, 31 Sec
Dest 3::/64,
via FE80::200:2FF:FE64:8904, cost 1, tag 0, A, 31 Sec
(3) 配置Switch B对接收和发布的路由进行过滤
[SwitchB] acl ipv6 number 2000
[SwitchB-acl6-basic-2000] rule deny source 3::/64
[SwitchB-acl6-basic-2000] rule permit
[SwitchB-acl6-basic-2000] quit
[SwitchB] ripng 1
[SwitchB-ripng-1] filter-policy 2000 import
[SwitchB-ripng-1] filter-policy 2000 export
# 查看Switch B和Switch A的RIPng路由表。
[SwitchB] display ripng 1 route
Route Flags: A - Aging, S - Suppressed, G - Garbage-collect
----------------------------------------------------------------
Peer FE80::20F:E2FF:FE23:82F5 on Vlan-interface100
Dest 1::/64,
via FE80::20F:E2FF:FE23:82F5, cost 1, tag 0, A, 2 Sec
Dest 2::/64,
via FE80::20F:E2FF:FE23:82F5, cost 1, tag 0, A, 2 Sec
Peer FE80::20F:E2FF:FE00:100 on Vlan-interface200
Dest 4::/64,
via FE80::20F:E2FF:FE00:100, cost 1, tag 0, A, 5 Sec
Dest 5::/64,
via FE80::20F:E2FF:FE00:100, cost 1, tag 0, A, 5 Sec
[SwitchA] display ripng 1 route
Route Flags: A - Aging, S - Suppressed, G - Garbage-collect
----------------------------------------------------------------
Peer FE80::20F:E2FF:FE00:1235 on Vlan-interface100
Dest 1::/64,
via FE80::20F:E2FF:FE00:1235, cost 1, tag 0, A, 2 Sec
Dest 4::/64,
via FE80::20F:E2FF:FE00:1235, cost 2, tag 0, A, 2 Sec
Dest 5::/64,
via FE80::20F:E2FF:FE00:1235, cost 2, tag 0, A, 2 Sec
· Switch B上运行两个RIPng进程:RIPng100和RIPng200。Switch B通过RIPng100和Switch A交换路由信息,通过RIPng200和Switch C交换路由信息。
· 要求在Switch B上配置路由引入,将两个不同进程的RIPng路由相互引入到对方的RIPng进程中,将引入的RIPng200的路由缺省度量值设为3。
图1-5 配置RIPng引入外部路由组网图
(1) 配置各接口的IPv6地址(略)
(2) 配置RIPng
# 在Switch A上启动RIPng进程100。
<SwitchA> system-view
[SwitchA] ripng 100
[SwitchA-ripng-100] quit
[SwitchA] interface vlan-interface 100
[SwitchA-Vlan-interface100] ripng 100 enable
[SwitchA-Vlan-interface100] quit
[SwitchA] interface vlan-interface 200
[SwitchA-Vlan-interface200] ripng 100 enable
[SwitchA-Vlan-interface200] quit
# 在Switch B上启动两个RIPng进程,进程号分别为100和200。
<SwitchB> system-view
[SwitchB] ripng 100
[SwitchB-ripng-100] quit
[SwitchB] interface vlan-interface 100
[SwitchB-Vlan-interface100] ripng 100 enable
[SwitchB-Vlan-interface100] quit
[SwitchB] ripng 200
[SwitchB-ripng-200] quit
[SwitchB] interface vlan-interface 300
[SwitchB-Vlan-interface300] ripng 200 enable
[SwitchB-Vlan-interface300] quit
# 在Switch C上启动RIPng进程200。
<SwitchC> system-view
[SwitchC] ripng 200
[SwitchC] interface vlan-interface 300
[SwitchC-Vlan-interface300] ripng 200 enable
[SwitchC-Vlan-interface300] quit
[SwitchC] interface vlan-interface 400
[SwitchC-Vlan-interface400] ripng 200 enable
[SwitchC-Vlan-interface400] quit
# 查看Switch A的路由表信息。
[SwitchA] display ipv6 routing-table
Routing Table :
Destinations : 6 Routes : 6
Destination: ::1/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: 1::/64 Protocol : Direct
NextHop : 1::1 Preference: 0
Interface : Vlan100 Cost : 0
Destination: 1::1/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: 2::/64 Protocol : Direct
NextHop : 2::1 Preference: 0
Interface : Vlan200 Cost : 0
Destination: 2::1/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: FE80::/10 Protocol : Direct
NextHop : :: Preference: 0
Interface : NULL0 Cost : 0
(3) 配置RIPng引入外部路由
# 在Switch B上将两个不同RIPng进程的路由相互引入到对方的路由表中。
[SwitchB] ripng 100
[SwitchB-ripng-100] default cost 3
[SwitchB-ripng-100] import-route ripng 200
[SwitchB-ripng-100] quit
[SwitchB] ripng 200
[SwitchB-ripng-200] import-route ripng 100
[SwitchB-ripng-200] quit
# 查看路由引入后Switch A的路由表信息。
[SwitchA] display ipv6 routing-table
Routing Table :
Destinations : 7 Routes : 7
Destination: ::1/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: 1::/64 Protocol : Direct
NextHop : 1::1 Preference: 0
Interface : Vlan100 Cost : 0
Destination: 1::1/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: 2::/64 Protocol : Direct
NextHop : 2::1 Preference: 0
Interface : Vlan200 Cost : 0
Destination: 2::1/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: 4::/64 Protocol : RIPng
NextHop : FE80::200:BFF:FE01:1C02 Preference: 100
Interface : Vlan100 Cost : 4
Destination: FE80::/10 Protocol : Direct
NextHop : :: Preference: 0
Interface : NULL0 Cost : 0d
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!