网络-路由交换-路由基础-华为-RIP
RIP
2.1 RIP基础
RIPv1使用UDP协议的520端口传输,广播或单播,传输整个路由表(触发更新不是整个路由表),不能关闭自动汇总。
RIPv2对RIPv1进行了扩充,支持CIDR和VLSM、安全验证,组播(224.0.0.9)
使用UDP协议的520端口传输。
2.1.1 RIP的度量机制
度量:跳数(0~15)
度量值等于从本网络到达目的网络间的三层设备数量,但并不等于所经过的网段数。
A.路由表项每经过一次邻居路由器之间的传递,其度量值加1.
B.路由器收到新的路由更新表项时,会在其路由表中添加新的路由表项,其度量是在接收的路由表项度量值基础上加1,并添加下一跳地址(其邻居路由器的接口地址)
C.收到原有路由表的更新时,先对路由表项度量加1,然后与路由表中的原有度量进行比较,仅接受度量值更小或相等的更新,忽略度量值比原来的值更大的路由更新。(启用了水平分割后就不会出现这样的更新)
2.1.2 RIP协议定时器
A.更新定时器:当此定时器超时时,立即发送路由更新报文,默认30S发送一次
B.老化定时器:老化时间内没有收到邻居发来的路由更新报文,认为该路由不可达,把该路由的度量值置为16,并启动路基收集定时器;当学习到一条路由并添加到RIP路由表中时,老化定时器启动。默认180S
C.垃圾收集定时器:如果在垃圾收集定时器时间内仍没有收到原不可达路由的更新,则该路由将被从RIP路由表中彻底删除。Cisco是240S。
D.抑致定时器:当RIP收到度量值为16的路由表更新,对应路由进入抑制状态,并启动抑制定时器,默认为180S,这时,为了防止路由震荡,在抑制定时器超时之前,即使收到对端度量小于16的更新,也不接受,当怡致定时器超时后,重新允许接受对端发送的路由更新报文。
2.1.3 RIP路由更新机制
RIP的两种更新机制:定期更新、触发更新。
定期更新:更新定时器定期发送RIP路由通告(携带了除“水平分割”机制抑制的RIP路由之外的本地所有RIP路由信息)
触发更新:仅在路由器RIP路由表项发生变化时发送RIP通告,并携带本地路由表中有变化的路由信息。
更新:RIP路由器一旦察觉到网络变化,就尽快或立即发送路由更新,不等待更新周期结束。(只要触发更新速度足够快就可与极大的防止“计数到无穷大”的发生,但这一现象还是有可能发生)
RIP路由的更新规则:
A.如果更新的路由表项在路由表中没有,则直接在路由表中添加该路由。
B.路由表中有到达相同网络的路由,且来源接口相同,无条件根据最新的路由信息更新其路由表。
C.路由表中有到达相同网络的路由,但来源接口不同,将度量值较小的一个作为自己的路由表项。
D.如果路由表中已有相同目的的路由表项,且度量值相等,则保留原来的路由表项。
1、RIP路由定期更新机制
RIP路由器30S通过UDP协议520端口以广播发送一个路由更新包。
RIP路由表中主要包括3个字段:目的网络、下一跳地址、距离。
路由器进入抑制周期内,它仍然可向前转发报文,但网络中的其他路由器不学习到达该路由器所连网络的路由信息,除非有一条更好的到达该路由器所连网络的路由信息,抑制周期过后,即使差的路由信息也接受。
如果在连续300S内还没有收到这个路由器的路由更新,则本地路由器从路由表中删除与该邻居路由器相关联的路由表项。
2、RIP路由定期更新机制解析示例
A.开始,路由器只有自己直连的路由表项(直连路由),无下一跳,度量均为0.
B.接下来,路由器按设置周期向邻居发送路由更新(默认30S),先开的路由器先发更新。
C.路由器更新自己的路由表后,会把完整的路由表发送给邻居路由器。邻居接收路由后,每条路由度量都加1。
D.度量加1后,把得到的路由与本地路由对比,更新小于和等于本地路由度量值得,度量值大于本地路由的丢弃。
RIP路由的缺陷:
网络收敛慢、有许多无效路由更新。
2.1.4 RIP路由收敛机制
1、计数到无穷大机制
最大跳数为15,这个数字限制了网络大小的同时也防止了一个叫“计数到无穷大”的问题。计数到无穷大的工作原理如下图所示。
A.假设网络A的链接断了,R1发送路由更新,不再有到达网络A的路径。R2由于网络原因接收时间被推迟,R3接收后立即从路由表中去掉到达网络A的路径。
B.由于R2没有收到网络A的路由更新,路由更新中仍然有网络A的路由(度量:2),R3接收后,度量为3,并向R1发送更新。
C.R1接收到R3的路由更新后,度量加1,并向邻居发送更新。
D.R2接收到R1的更新后,将网络A的度量置为4,并发送更新。如此循环,度量值达到16,。一旦一个路由器达到这个值,它将声明这条路劲不可用,并从路由表中删除此路径。
2、水平分割法
路由器不向路由更新表项流入的方向回传此条路由信息,使他只沿一个方向通告。(目的:避免出现更新环路)
水平分割在不通网络中的实现有所区别:广播网、P2P、和P2MP网络中时按照接口进行水平分割;NBMA网络按照邻居来进行水平分割(路由以单播方式发送,同一接口上收到的路由可以按邻居进行区分)。
3、毒性反转
在更新信息中包括这些回传路由,但将这些路由的条数直接置为16。
4、保持定时器法
设置路由信息被抑制的时间,默认为180S。当路由器接收到一个不可达的路由更新时,把这条路由更新置于无效抑制状态,不再接收对应路由的更新消息,也不再向外发送这条路由更新信息,持续到接收到一个带有更好度量的对应路由更新分组,或者这个保持计时器到期为止。
2.1.5 RIP报文格式
RIPv1:只支持广播方式发送协议报文。报文中不携带掩码信息。
RIPv2:
A. 支持外部路由标记,可以在路由策略中根据Tag对路由进行灵活的控制。
B. 报文中携带掩码信息,支持CIDR。
C. 支持指定下一跳,在广播网上可以选择到达目的网段的最佳下一跳IP地址。
D. 支持组播更新报文,减少资源消耗,只有支持RIPv2的设备才能接受这种更新报文。
E. 支持对协议报文进行验证(增强安全性)
为什么RIPv1不支持不连续子网?
RIPv1路由器接口在收到不是与接收接口IP地址处于同一自然网段的路由更新时会自动进行路由聚合(如果是处于同一自然网段下,则不会聚合,是以具体子网路由显示的),该接口的聚合功能不可关闭。
RIP-1的报文格式
字段名 |
长度 |
含义 |
Command |
8比特 |
标识报文的类型:
|
Version |
8比特 |
RIP的版本号:
|
Must be zero |
16/32比特 |
必须为零字段。(Unused(为使用字段,固定为0)) |
AFI(Address family identifier) |
16比特 |
地址族标识,其值为2时表示IP协议。对于Request报文,此字段值为0。 |
IP Address |
32比特 |
该路由的目的IP地址,可以是自然网段的地址,也可以是子网地址或主机地址。 |
Metric |
32比特 |
路由的开销值。对于Request报文,此字段值为16。 |
RIP-2的报文格式
字段名 |
长度 |
含 义 |
Command |
8比特 |
标识报文的类型:
|
Version |
8比特 |
RIP的版本号:
|
Must be zero |
16比特 |
必须为零字段。 |
AFI(Address Family Identifier) |
16比特 |
地址族标识,其值为2时表示IP协议。对于Request报文,此字段值为0。 |
Route Tag |
16比特 |
外部路由标记。 |
IP Address |
32比特 |
该路由的目的IP地址,可以是自然网段的地址,也可以是子网地址或主机地址。 |
Subnet Mask |
32比特 |
目的地址的掩码。 |
Next Hop |
32比特 |
提供一个更好的下一跳地址。如果为0.0.0.0,则表示发布此路由的路由器地址就是最优下一跳地址。 |
Metric |
32比特 |
路由的开销值。对于Request报文,此字段为16。 |
RIP-2的验证报文格式
字段名 |
长度 |
含义 |
Command |
8比特 |
标识报文的类型:
|
Version |
8比特 |
RIP的版本号:
|
Must be zero |
16比特 |
必须为零字段。 |
0xFFFF |
16比特 |
验证项标识,表示整个路由报文需要验证。 |
Authentication Type |
16比特 |
验证类型:
|
Authentication |
16字节 |
验证口令,当使用明文验证时该字段才会包含密码信息。 |
2.2 RIP配置与管理
2.2.1 RIP的基本功能
(1)启动RIP进程
如果在全局启用RIP前,在接口下配置了RIP相关命令,这些配置自由在全局RIP启动后才会生效。
RIP 1----65535(默认1) AS仅本地有效
RIP vpn-instance 1----31个字符,区分大小写,无空格
如果没有指定VPN实例,则该RIP进程将在公网(非特定VPN实例网络)或省VPN实例下运行。
Description 1----80个字符,支持空格,区分大小写,默认无
(2)在指定网段使能RIP
网络宣告。RIP只有在宣告上的网段才能运行,没有宣告的接口,RIP既不通过它接收和发送路由,也不将它的接口路由转发出去。
Undo serify-source (可选)禁止对RIP报文的原地址检查(默认开启,检测是否同一网段,如果不同,则该RIP报文将不被处理。当P2P链路两端的IP地址属于不通网络时,只有取消报文的原地址检测,链路两端才能建立起正常的邻居关系)
Network 192.168.1.0 宣告网络(自然网段)
(3)(可选)配置NBMA网络的RIP邻居
如果在不支持广播或组播报文的NBMA网络(如X.25、ATM和FR等网络)链路上运行RIP,则必须在链路两端手动指定RIP的邻居(报文就会以单播形式发送到对端)。
Peer 192.168.1.1 指定RIP的邻居IP地址,仅用于NBMA网络
通常不建议使用此命令,这样会造成对端同事接收到同一报文的组播(广播)和单播两种形式的报文。
Silent-interface all 将相关接口改为被动模式(建议与peer命令同时配置)
(4)(可选)配置RIP的版本号
通常在全局配置,也可在接口配置。(接口优先于全局)
Version 1/2 缺省情况下,只发送RIPv1,可以接收RIPv1和RIPv2报文。
Rip version 1/2 broadcast | multicast 在接口下配置版本信息和发送方式
版本信息与发送方式:
版本信息 |
发送方式 |
接收 |
未配置 |
广播、RIPv1 |
广播、RIPv1和RIPv2 |
RIPv1 |
广播、RIPv1 |
广播、RIPv1 |
RIPv2 |
组播、RIPv2 |
组播或广播的RIPv2 |
RIPv2组播 |
组播 |
组播、RIPv2 |
RIPv2广播 |
广播RIPv2 |
RIPv1、RIPv2 |
2.2.2配置RIPv2特性
(1)配置RIPv2的路由聚合
RIP支持手动和自动聚合:自动聚合只能聚合成对应的自然网段,在系统视图下全局使能的;手动聚合可以是超网路由,在接口下配置。RIPv1仅支持自动路由聚合,聚合功能不可配置,不可关闭;RIPv2刚好相反。自动聚合的路由级低于手动聚合的路由优先级。(默认开启)
缺省情况下,配置了水平分割或毒性反转,有类的自动路由聚合功能失效。因此,自然网段边界向外发送聚合路由时,相关视图下的水平分割和毒性反转功能都应关闭。
聚合配置:
Version 2 视图下
Summary [always] 聚合后以自然掩码的形式发布。Always:无论水平分割是否配置,均使能;若无:在配置水平分割等的情况下失效
Rip summary-address ip-address mask [avoid-feedback] 接口下
Ip-address mask:与本接口网段对应的自然网或超网(掩码不能小于8位)
Avoid-feedback:禁止从此接口学习到相同的路由(避免环路)
(2)配置RIPv2报文的认证方式(接口认证)
简单认证:使用未加密的认证字段随报文一同传送
MD5认证:加密后传送
Rip authentication-mode simple plain huawei
simple:简单认证
MD5:MD5认证
usual:表示MD5密文认证报文使用通用报文格式(IETF标准)
nonstandard:表示MD5密文认证报文使用非标准报文格式
rip authentication-mode md5 usual [plain plain-text | (cipher)password ]
rip authentication-mode md5 nonstandard keychain ripauth
rip authentication-mode hmac-sha256 plain huawie
plain:明文认证,字符或数字,区分大小写
simple/md5 usual:1----16个字符
md5 nonstandard/hmac-sha256:1----255个字符。只能输入明文验证密码
cipher:密文认证,字符或数字,区分大小写
simple/md5 usual:1----16个明文字符或24位和32位的密文
md5 nonstandard/hmac-sha256:1----255个字符明文或20----392位密文
查看是均以密文显示
keychain:指定使用秘钥认证
秘钥链名称:1----47个字符,不区分大小写,无空格
key-id:指定MD5密文认证标识符,范围:1----255 整数
hmac-sha256:指定使用HMAC-SHA256密文认证方式
密码小于16位时,以#结尾,大于16位时,以^#^#开始和结尾;MD5简单认证中,两端的吗,密码必须一致;采用秘钥链认证提高UDP链接的安全性,两端必须配置keychain认证,且使用相同的加密算法和密码。
2.2.3配置防止路由环路
水平分割:
Rip split-horizon 接口下,默认开启(NBMA网络例外)
毒性反转:
Rip poison-reverse 接口下,默认关闭,水平分割与毒性反转同时开启,只有毒性反转生效
2.2.4控制RIP的路由选路
(1)配置RIP协议优先级
Preference 120 route-policy rt-policy1 进程下
120:指定路由优先级,1----255,默认100,越小越优先。
route-policy:指定路由策略,1----40个字符,区分大小写。
(2)配置接口的附加度量值
Rip metricout ip-prefix p1 12 发送
Rip metricin acl-name abcd 12 接收
value:指定接收到的增加度量值,0----15,默认0
acl-number:指定用于接收路由信息过滤的ACL(仅支持基本ACL)、前缀列表。
接口接收到路由后,匹配成功后,增加度量值,再装表。
(3)配置最大等价路由条数
通过配置RIP最大等价路由条数,可以调整进行负载分担的路由数目。
Maximum load-balancing 4 进程下
不同设备不同
2.2.5控制RIP路由信息的发布
(1)配置RIP发布缺省路由
default-route originate [cost {{match defaule | route-policy rotue-policy-name}[avoid-lerning ]}] 进程 默认不发送默认路由
cost:0----15,默认0
match default:当路由表中存在其他路由协议或其他rip进程生成的默认路由时,向邻居发布该默认路由。
route-policy:指定生成缺省路由策略名称,1----40个字符,区分大小写
avoid-learning:指定当路由表中已有或有的默认路由是,不引入其他默认路由。
配置后,只有路由表中有默认路由是才能向RIP邻居发送默认路由,且之前从邻居学习到的默认路由将被删除。
Default cost 2 默认为0 ,装表是增加1.
(2)配置RIP引入外部路由信息
import-route bgp [permit-ibgp][cost {cost | transparent } | rotue-policy route-policy-name ]
import-route {{static | direct | unr} | {{rip | ospf | isis} [process-id] }} [cost cost | route-policy route-policy-name ]
permit-ibgp:指定公网实例下的RIP进程可以引入IBGP路由
cost:指定引入路由的开销
cost transparent:指定引入路由的开小灶为BGP路由的MED(多出口区分)特性值。
route-policy指定用于过滤路由信息 引入的路由策略名称,1----40个字符,区分大小写
filter-policy {acl-number | acl-name | ip-prefix } export [protocol ] [protocol-id ]| [inferface-type] 对外发布路由更新时,对引入的路由信息进行过滤
acl-number:用于对发布的外部路由的目的IP地址过滤
protocol: 指定要过滤向外发布的引入路由信息的类型
interface-type:指定引入外部路由的接口
(3)禁止接口发送更新报文
silent-interface {all | interface } 全局 抑制所有或某个接口
undo rip output 接口 全局优先于接口
2.2.6控制RIP路由信息的接收
(1)禁止RIP接收主机路由
Undo host-route 进程下
(2)配置RIP对接收的路由进行过滤
Filter-policy acl import interface 进程下 基于ACL 基本ACL,默认没有配置
Filter-policy gateway ip-prefix-name import 基于发布网关
Ip-prefix-name:发布网关的地址前缀列表
Filter-policy ip-prefix ip-prefix-name gateway gateway-name import 基于指定接口学到的路由进行基于目的地址前缀和基于邻居的过滤 进程
Ip-prefix-name:地址前缀列表名称
Gateway:可选参数,指定用于过滤路由信息目的地址所对应的发布网关的地址前缀列表名称。
Interface:可选参数,若不指定,所有符合前缀列表条件,或同时符合网关地址前缀列表条件的路由都将接收。
(3)禁止接口接收更新报文
Undo rip input/output
2.2.7 调整RIP网络性能参数
(1)配置RIP定时器
Timers rip update age garbage-collect
update:1----86400S
age:1----86400S
garbage-collect:1----8640S
(2)配置RIP对更新报文进行有效性检查
RIPv1零域检查、源地址检查
Checkzero 对RIPv1报文中的零域进行检查(不对非0的进行处理)
verify-source 检测发送报文的接口IP与接收报文接口的IP地址是否同一网段
(3)配置报文的发送间隔和发送报文的最大数量
Rip pkt-transmit { interval | number } 接口下
interval:指定RIP报文发送的时间间隔,50----500S 默认200ms
number:指定更新报文数量,25----100 默认50
(4)使能Replay-Protext功能(重放保护)
可以得到接口down之前所发送RIP报文的identification(标识符),避免双方的RIP路由信息不同步、丢失。
Rip authentication-mode md5 nonstandard password-key key-id 接口
配置MD5认证,非标准报文格式
passowrd-key:字母或数字,1-----255字符,明文
20----392字符,密文 区分大小写
Rip replay-protect 默认关闭
2.2.8 配置RIP与BFD联动
1、配置RIP与动态BFD联动
a、RIP进程下全局使能BFD
b、RIP接口下使能BFD
全局下开启BFD功能
方式一: 全局配置BFD
Bfd all-interface enable
Bfd all-interfaces { min-rx-interval | min-tx-interval | detect-multiplier }
min-rx-interval:收到BFD报文的最小间隔,10----2000毫秒 默认1000
min-tx-interval:发送BFD报文的最小间隔,10----2000毫秒 默认 1000
detect-multiplier:指定本地检测倍数,3----50 默认 3
本地BFD实际接收/发送时间间隔=本地和对端所配置的参数
本地BFD实际检测时间=本地实际接收时间间隔*对端BFD检测倍数
Rip bfd block 接口下 阻止BFD特性 默认接收
方式二: 接口下配置BFD
Rip bfd enable 接口下(先全局开启BFD) 默认关闭
Rip bfd { min-rx-interval | min-tx-interval | detect-multiplier }
只有接口配置了BFD参数,进程中的BFD参数才会生效。接口BFD参数优先级高于进程BFD优先级。运行优先级高的BFD。
2、配置RIP与静态BFD联动
a、单臂回声BFD:对端不支持BFD时使用
b、普通单跳BFD:故障响应速度较高,且两端都支持BFD。
华为路由器学习指南:P484 7.3.4 单臂回声BFD P480 7.3.1 普通单跳BFD
Rip bfd static 接口下 默认关闭
2.2.9 RIP路由管理
Display rip rip-id vpn-instance name 查看当前运行状态和配置信息
Display rip rip-id route 查看学习到的rip路由
Display default-parameter rip 查看RIP缺省配置信息
Display rip rip-id statistics interface { all | interface [verbose | neighbor neighbor-IP ] }
查看指定RIP进程下RIP路由器接口的统计信息
Display rip rip-id database [ verbose ] 查看指定进程下数据库中的所有激活路由
Display rip -rip-id interface 0/0/0 [ verbose ] 查看指定进程下的接口信息
Display rip rip-id neighbor [ verbose ] 查看邻居信息
Reset rip rip-id configuration 清除RIP对应进程下的参数
Reset rip rip-id statistics interface ** 清除RIP进程计数器的统计数据