网络 RIP
6 个 RIP 网络实战 - 图1

RIPv2 基础配置

下面的拓扑图中有三台路由器,在路由器上部署 RIPv2 ,让网络中的各个网段能够实现互通。
6 个 RIP 网络实战 - 图2

RT1 配置:

  1. <Huawei>system-view
  2. [Huawei]sysname RT1
  3. [RT1]interface GigabitEthernet 0/0/0
  4. [RT1-GigabitEthernet0/0/0]ip address 192.168.1.1 30
  5. [RT1-GigabitEthernet0/0/0]quit
  6. [RT1]interface GigabitEthernet 0/0/1
  7. [RT1-GigabitEthernet0/0/1]ip address 172.16.1.254 24
  8. [RT1-GigabitEthernet0/0/1]quit
  9. [RT1]
  10. [RT1]rip 1
  11. [RT1-rip-1]version 2
  12. [RT1-rip-1]network 192.168.1.0
  13. [RT1-rip-1]network 172.16.0.0

配置说明:

rip 1 :数字 1 表示 RIP 的进程 ID 。如果不配置,系统会自动生成一个。一个设备运行不同 RIP 进程,使用进程 ID 区分,且相互独立。
version 2 :配置 RIP 的版本,这里配置的是 RIPv2 。
network 192.168.1.0 :network 命令用于网段的激活。
network 172.16.0.0 :需要注意的是 network 命令指定的必须是主类网络地址,而不是子网地址。如果使用 network 172.16.1.0 命令,那么系统会报错,因为 172.16.1.0 是一个子网地址,而不是主类地址。

RT2 配置:

  1. [RT2]rip 1
  2. [RT2-rip-1]version 2
  3. [RT2-rip-1]network 192.168.1.0

配置说明:

network 192.168.1.0 :同时激活了 192.168.1.0/30 和 192.168.1.4/30 这两个网段。

RT3 配置:

  1. [RT3]rip 1
  2. [RT3-rip-1]version 2
  3. [RT3-rip-1]network 192.168.1.0
  4. [RT3-rip-1]network 172.16.0.0

R1 、R2 和 R3 配置完成后,就会在相应接口发送 Request 和 Response 报文,并进行路由学习。

检查配置

配置完成后,其实并不知道配置是否有效,这时就需要使用检查命令,查看配置是否正确、功能是否生效。使用 display rip 1 interface 命令,查看设备哪些接口激活了 RIP 。
比如查看 RT1 :

  1. <RT1>display rip 1 interface
  2. --------------------------------------------------------------------------
  3. Interface IP Address State Protocol MTU
  4. --------------------------------------------------------------------------
  5. GE0/0/1 172.16.1.254 UP RIPv2 Multicast 500
  6. GE0/0/0 192.168.1.1 UP RIPv2 Multicast 500
  7. <RT1>

上面可以看出,R1 的 GE0/0/0 和 G/0/01 接口都已激活。
还可以使用 display rip 1 database 命令查看 RIP 进程 1 的数据库。
比如查看 RT1 :

  1. <RT1>display rip 1 database
  2. ---------------------------------------------------
  3. Advertisement State : [A] - Advertised
  4. [I] - Not Advertised/Withdraw
  5. ---------------------------------------------------
  6. 172.16.0.0/16, cost 0, ClassfulSumm
  7. 172.16.1.0/24, cost 0, [A], Rip-interface
  8. 172.16.31.0/24, cost 2, [A], nexthop 192.168.1.2
  9. 192.168.1.0/24, cost 0, ClassfulSumm
  10. 192.168.1.0/30, cost 0, [A], Rip-interface
  11. 192.168.1.4/30, cost 1, [A], nexthop 192.168.1.2
  12. <RT1>

上面可以看出,R1 发现了直连网段 172.16.1.0/24 和 192.168.1.0/30 ,度量值为 0 。RT1 还通过 RIP 学习到 172.16.31.0/24 和 192.168.1.4/30 ,度量值分别为 2 跳和 1 跳。
最后使用 display ip routing-table protocol rip 命令,检查三个路由器学习到的 RIP 路由。

查看 RT1 的 RIP 路由:
  1. <RT1>display ip routing-table protocol rip
  2. Route Flags: R - relay, D - download to fib
  3. ------------------------------------------------------------------------------
  4. Public routing table : RIP
  5. Destinations : 2 Routes : 2
  6. RIP routing table status : <Active>
  7. Destinations : 2 Routes : 2
  8. Destination/Mask Proto Pre Cost Flags NextHop Interface
  9. 172.16.31.0/24 RIP 100 2 D 192.168.1.2 GigabitEthernet0/0/0
  10. 192.168.1.4/30 RIP 100 1 D 192.168.1.2 GigabitEthernet0/0/0
  11. RIP routing table status : <Inactive>
  12. Destinations : 0 Routes : 0
  13. <RT1>

查看 RT2 的 RIP 路由:
  1. <RT2>display ip routing-table protocol rip
  2. Route Flags: R - relay, D - download to fib
  3. ------------------------------------------------------------------------------
  4. Public routing table : RIP
  5. Destinations : 2 Routes : 2
  6. RIP routing table status : <Active>
  7. Destinations : 2 Routes : 2
  8. Destination/Mask Proto Pre Cost Flags NextHop Interface
  9. 172.16.1.0/24 RIP 100 1 D 192.168.1.1 GigabitEthernet0/0/0
  10. 172.16.31.0/24 RIP 100 1 D 192.168.1.6 GigabitEthernet0/0/1
  11. RIP routing table status : <Inactive>
  12. Destinations : 0 Routes : 0
  13. <RT2>

查看 RT3 的 RIP 路由:
  1. <RT3>display ip routing-table protocol rip
  2. Route Flags: R - relay, D - download to fib
  3. ------------------------------------------------------------------------------
  4. Public routing table : RIP
  5. Destinations : 2 Routes : 2
  6. RIP routing table status : <Active>
  7. Destinations : 2 Routes : 2
  8. Destination/Mask Proto Pre Cost Flags NextHop Interface
  9. 172.16.1.0/24 RIP 100 2 D 192.168.1.5 GigabitEthernet0/0/0
  10. 192.168.1.0/30 RIP 100 1 D 192.168.1.5 GigabitEthernet0/0/0
  11. RIP routing table status : <Inactive>
  12. Destinations : 0 Routes : 0
  13. <RT3>

PC1 ping PC2 ,可以正常 ping 通,实验成功。
6 个 RIP 网络实战 - 图3

RIP 路由手动汇总

RIP 的路由自动汇总功能是把子网路由汇总成主类网络路由,存在路由汇总不准确的情况,导致报文不能正确转发到目的地,影响网络正常通信。这时,就可以使用路由手工汇总,准确的汇总路由,确保网络中的路由正常。
6 个 RIP 网络实战 - 图4
RT1 和 RT2 是两台汇聚层路由器,分别下联 4 个终端网段,上联核心路由器 RT3 。在三台路由器上部署 RIPv2 ,让路由器动态学习全网的路由。

RT1 配置

  1. [RT1]rip 1
  2. [RT1-rip-1]version 2
  3. [RT1-rip-1]network 192.168.1.0
  4. [RT1-rip-1]network 172.16.0.0

RT3 配置

  1. [RT3]rip 1
  2. [RT3-rip-1]version 2
  3. [RT3-rip-1]network 192.168.1.0

RT2 配置

  1. [RT2]rip 1
  2. [RT2-rip-1]version 2
  3. [RT2-rip-1]network 192.168.1.0
  4. [RT2-rip-1]network 172.16.0.0

配置完成后,查看每一台路由器学习到的 RIP 路由。

查看 RT1 的 RIP 路由:

  1. <RT1>display ip routing-table protocol rip
  2. Route Flags: R - relay, D - download to fib
  3. ------------------------------------------------------------------------------
  4. Public routing table : RIP
  5. Destinations : 5 Routes : 5
  6. RIP routing table status : <Active>
  7. Destinations : 5 Routes : 5
  8. Destination/Mask Proto Pre Cost Flags NextHop Interface
  9. 172.16.4.0/24 RIP 100 2 D 192.168.1.2 GigabitEthernet0/0/0
  10. 172.16.5.0/24 RIP 100 2 D 192.168.1.2 GigabitEthernet0/0/0
  11. 172.16.6.0/24 RIP 100 2 D 192.168.1.2 GigabitEthernet0/0/0
  12. 172.16.7.0/24 RIP 100 2 D 192.168.1.2 GigabitEthernet0/0/0
  13. 192.168.1.4/30 RIP 100 1 D 192.168.1.2 GigabitEthernet0/0/0
  14. RIP routing table status : <Inactive>
  15. Destinations : 0 Routes : 0
  16. <RT1>

查看 RT2 的 RIP 路由:

  1. <RT2>display ip routing-table protocol rip
  2. Route Flags: R - relay, D - download to fib
  3. ------------------------------------------------------------------------------
  4. Public routing table : RIP
  5. Destinations : 5 Routes : 5
  6. RIP routing table status : <Active>
  7. Destinations : 5 Routes : 5
  8. Destination/Mask Proto Pre Cost Flags NextHop Interface
  9. 172.16.0.0/24 RIP 100 2 D 192.168.1.5 GigabitEthernet0/0/0
  10. 172.16.1.0/24 RIP 100 2 D 192.168.1.5 GigabitEthernet0/0/0
  11. 172.16.2.0/24 RIP 100 2 D 192.168.1.5 GigabitEthernet0/0/0
  12. 172.16.3.0/24 RIP 100 2 D 192.168.1.5 GigabitEthernet0/0/0
  13. 192.168.1.0/30 RIP 100 1 D 192.168.1.5 GigabitEthernet0/0/0
  14. RIP routing table status : <Inactive>
  15. Destinations : 0 Routes : 0
  16. <RT2>

查看 RT3 的 RIP 路由:

  1. <RT3>display ip routing-table protocol rip
  2. Route Flags: R - relay, D - download to fib
  3. ------------------------------------------------------------------------------
  4. Public routing table : RIP
  5. Destinations : 8 Routes : 8
  6. RIP routing table status : <Active>
  7. Destinations : 8 Routes : 8
  8. Destination/Mask Proto Pre Cost Flags NextHop Interface
  9. 172.16.0.0/24 RIP 100 1 D 192.168.1.1 GigabitEthernet0/0/0
  10. 172.16.1.0/24 RIP 100 1 D 192.168.1.1 GigabitEthernet0/0/0
  11. 172.16.2.0/24 RIP 100 1 D 192.168.1.1 GigabitEthernet0/0/0
  12. 172.16.3.0/24 RIP 100 1 D 192.168.1.1 GigabitEthernet0/0/0
  13. 172.16.4.0/24 RIP 100 1 D 192.168.1.6 GigabitEthernet0/0/1
  14. 172.16.5.0/24 RIP 100 1 D 192.168.1.6 GigabitEthernet0/0/1
  15. 172.16.6.0/24 RIP 100 1 D 192.168.1.6 GigabitEthernet0/0/1
  16. 172.16.7.0/24 RIP 100 1 D 192.168.1.6 GigabitEthernet0/0/1
  17. RIP routing table status : <Inactive>
  18. Destinations : 0 Routes : 0
  19. <RT3>

RIPv2 支持路由自动汇总,在 RIP 配置视图下,使用 summary 命令激活功能。默认状态是已经激活了。

查看下 RT1 的 RIP 协议信息。

  1. <RT1>display rip
  2. Public VPN-instance
  3. RIP process : 1
  4. RIP version : 2
  5. Preference : 100
  6. Checkzero : Enabled
  7. Default-cost : 0
  8. Summary : Enabled
  9. Host-route : Enabled
  10. Maximum number of balanced paths : 4
  11. Update time : 30 sec Age time : 180 sec
  12. Garbage-collect time : 120 sec
  13. Graceful restart : Disabled
  14. ......

可以发现 RT1 的路由自动汇总功能已经激活,但是为什么路由条目依然是明细路由?这是因为在华为设备上,接口默认开启了 RIP 水平分割功能。为了防止环路和不连续子网问题的产生,在启动了水平分割或毒性逆转的接口上,RIPv2 的默认自动汇总功能会失效,所以路由器上看到的依然是明细路由条目。

查看 RT1 的 GE0/0/0 接口 RIP 信息:

  1. <RT1>display rip 1 interface GigabitEthernet 0/0/0 verbose
  2. GigabitEthernet0/0/0(192.168.1.1)
  3. State : UP MTU : 500
  4. Metricin : 0
  5. Metricout : 1
  6. Input : Enabled Output : Enabled
  7. Protocol : RIPv2 Multicast
  8. Send version : RIPv2 Multicast Packets
  9. Receive version : RIPv2 Multicast and Broadcast Packets
  10. Poison-reverse : Disabled
  11. Split-Horizon : Enabled
  12. Authentication type : None
  13. Replay Protection : Disabled
  14. <RT1>

为了让 RT1 的路由自动汇总生效,不通告明细路由,只通告汇总路由,可以关闭 GE0/0/0 接口的水平分割:

  1. [RT1]interface GigabitEthernet 0/0/0[RT1-GigabitEthernet0/0/0]undo rip split-horizon

这样 RT1 通告 172.16.0.0/16 的子网路由时,不会通告明细路由,直接通告主类网络路由 172.16.0.0/16 ,这就是路由自动汇总的效果。

在 RT3 上查看 RIP 路由:

  1. <RT3>display ip routing-table protocol rip
  2. Route Flags: R - relay, D - download to fib
  3. ------------------------------------------------------------------------------
  4. Public routing table : RIP
  5. Destinations : 6 Routes : 6
  6. RIP routing table status : <Active>
  7. Destinations : 6 Routes : 6
  8. Destination/Mask Proto Pre Cost Flags NextHop Interface
  9. 172.16.0.0/16 RIP 100 1 D 192.168.1.1 GigabitEthernet0/0/0
  10. 172.16.4.0/24 RIP 100 1 D 192.168.1.6 GigabitEthernet0/0/1
  11. 172.16.5.0/24 RIP 100 1 D 192.168.1.6 GigabitEthernet0/0/1
  12. 172.16.6.0/24 RIP 100 1 D 192.168.1.6 GigabitEthernet0/0/1
  13. 172.16.7.0/24 RIP 100 1 D 192.168.1.6 GigabitEthernet0/0/1
  14. 192.168.1.0/24 RIP 100 1 D 192.168.1.1 GigabitEthernet0/0/0
  15. RIP routing table status : <Inactive>
  16. Destinations : 0 Routes : 0
  17. <RT3>

这时发现 RT3 上到达 RT1 直连的 4 个网段的明细路由没有了,替代的是汇总路由 172.16.0.0/16 ,看出来 RT1 的路由自动汇总功能生效了。
但是接口的水平分割关闭,是一个隐患,因为路由防环依赖水平分割。
其实,可以使用 summary always 命令,始终执行路由自动汇总,不管水平分割或毒性逆转是否激活。

调整 RT1 的配置:

  1. [RT1]interface GigabitEthernet 0/0/0
  2. [RT1-GigabitEthernet0/0/0]rip split-horizon
  3. [RT1-GigabitEthernet0/0/0]quit
  4. [RT1]rip 1
  5. [RT1-rip-1]summary always

调整 RT2 的配置:

  1. [RT2]rip 1[RT2-rip-1]summary always

这样,RT1 和 RT2 都可以路由自动汇总。但是路由自动汇总不准确,产生网络问题。

查看 RT3 的路由:

  1. <RT3>display ip routing-table protocol rip
  2. Route Flags: R - relay, D - download to fib
  3. ------------------------------------------------------------------------------
  4. Public routing table : RIP
  5. Destinations : 1 Routes : 2
  6. RIP routing table status : <Active>
  7. Destinations : 1 Routes : 2
  8. Destination/Mask Proto Pre Cost Flags NextHop Interface
  9. 172.16.0.0/16 RIP 100 1 D 192.168.1.1 GigabitEthernet0/0/0
  10. RIP 100 1 D 192.168.1.6 GigabitEthernet0/0/1
  11. RIP routing table status : <Inactive>
  12. Destinations : 0 Routes : 0
  13. <RT3>

RT1 和 RT2 的汇总路由都是 172.16.0.0/16 ,而且两条路由的度量值相等,这两条路由都会添加到路由表中,并且进行等价负载分担。那么发往 172.16.1.0/24 的数据包,可能会发给 RT2 ,导致报文丢失。
问题根本原因是自动汇总产生的路由不精确,汇总路由的只能是主类网络路由。这时,可以使用手动路由汇总。RT1 的 4 个网段是 172.16.0.0/24 ~ 172.16.3.0/24 是连续的子网,可以使用 172.16.0.0/22 进行汇总。同理,RT2 的 4 个网段,可以使用 172.16.4.0/22 汇总。

RT1 手动路由汇总配置:

  1. [RT1]interface GigabitEthernet 0/0/0[RT1-GigabitEthernet0/0/0]rip summary-address 172.16.0.0 255.255.252.0

RT2 手动路由汇总配置:

  1. [RT2]interface GigabitEthernet 0/0/0[RT2-GigabitEthernet0/0/0]rip summary-address 172.16.4.0 255.255.252.0

配置完成后,查看 RT3 的 RIP 路由:

  1. Route Flags: R - relay, D - download to fib
  2. ------------------------------------------------------------------------------
  3. Public routing table : RIP
  4. Destinations : 2 Routes : 2
  5. RIP routing table status : <Active>
  6. Destinations : 2 Routes : 2
  7. Destination/Mask Proto Pre Cost Flags NextHop Interface
  8. 172.16.0.0/22 RIP 100 1 D 192.168.1.1 GigabitEthernet0/0/0
  9. 172.16.4.0/22 RIP 100 1 D 192.168.1.6 GigabitEthernet0/0/1
  10. RIP routing table status : <Inactive>
  11. Destinations : 0 Routes : 0
  12. <RT3>

RIP 报文认证

6 个 RIP 网络实战 - 图5
RT1 和 RT2 连接在一台交换机上,并开启 RIPv2 。正常情况下,RT1 能从 RT2 上获取 192.168.2.0/24 的路由。这时,出现了 RT3 这个攻击者,RT3 接入到交换机上,开启 RIPv2 ,并通告 192.168.2.0/24 的路由,那么 RT1 的路由表会受到影响。如果两条 192.168.2.0/24 路由的度量值相同,则会出现路由等价负责分担,发往这个网段的数据包可能会发送给 RT3 ,导致业务中断;如果 RT3 的跳数比 RT2 更新,就会刷新 RT1 的路由表,导致业务彻底中断。
这时就可以使用报文认证,RIPv2 支持报文认证,只要在 RT1 和 RT2 的接口上激活报文认证,就可以解决问题。

RT1 配置:

  1. [RT1]rip 1
  2. [RT1-rip-1]version 2
  3. [RT1-rip-1]network 192.168.123.0
  4. [RT1-rip-1]quit
  5. [RT1]interface GigabitEthernet 0/0/0
  6. [RT1-GigabitEthernet0/0/0]rip authentication-mode simple plain fox123

RT2 配置:

  1. [RT2]rip 1
  2. [RT2-rip-1]version 2
  3. [RT2-rip-1]network 192.168.123.0
  4. [RT2-rip-1]network 192.168.2.0
  5. [RT2-rip-1]quit
  6. [RT2]interface GigabitEthernet 0/0/0
  7. [RT2-GigabitEthernet0/0/0]rip authentication-mode simple plain fox123

rip authentication-mode simple plain fox123 :这条命令用于激活 RIP 报文认证,simple 表示认证方式是简单认证,即明文认证,RIP 报文以明文的方式携带口令 fox123
6 个 RIP 网络实战 - 图6
plain 表示口令以明文方式存储在配置文件中,使用 display 命令查看配置文件时,可以直接看到配置的口令。

  1. <RT1>display current-configuration interface
  2. GigabitEthernet0/0/0
  3. [V200R003C00]
  4. #
  5. interface GigabitEthernet0/0/0
  6. ip address 192.168.123.1 255.255.255.0
  7. rip authentication-mode simple plain fox123
  8. #
  9. return
  10. <RT1>

传输和保存口令,都是明文方式,显然不安全。可以使用 cipher 替换 plain ,口令是以密文形式存储在配置文件中。

RT1 配置举例:

  1. [RT1]interface GigabitEthernet 0/0/0
  2. [RT1-GigabitEthernet0/0/0]rip authentication-mode simple cipher fox123
  3. [RT1-GigabitEthernet0/0/0]display this
  4. [V200R003C00]
  5. #
  6. interface GigabitEthernet0/0/0
  7. ip address 192.168.123.1 255.255.255.0
  8. rip authentication-mode simple cipher %$%$pSsy'6OeQ&-xUUMgo]/1sG<e%$%$
  9. #
  10. return
  11. [RT1-GigabitEthernet0/0/0]

可以使用 md5 替换 simple,md5 有两个参数:usual 和 nonstandard ,usual 表示使用通用报文格式(私有协议),nonstandard 表示使用非标准报文格式( IETF 标准)。双方交互的 Response 报文不再以明文的方式携带,安全性得到提升。

RT1 配置:

  1. [RT1]interface GigabitEthernet 0/0/0
  2. [RT1-GigabitEthernet0/0/0]rip authentication-mode md5 usual cipher fox123

RT2 配置:

  1. [RT2]interface GigabitEthernet 0/0/0
  2. [RT2-GigabitEthernet0/0/0]rip authentication-mode md5 usual cipher fox123

查看 Response 报文:

6 个 RIP 网络实战 - 图7

附加度量值

6 个 RIP 网络实战 - 图8
RT1 、RT2 、RT3 、RT4 和 RT5 都运行 RIP 协议,RT5 发布 192.168.5.0/24 路由。RT1 分别从 RT2 和 RT3 获取到这条路由,从 RT2 学到的路由度量值是 2 跳,从 RT3 学到的路由度量值是 3 跳,RT1 选择从 RT2 学到的 192.168.5.0/24 路由,因为路由的度量值更小。同理,RT5 优选 RT2 通告的 192.168.1.0/24 路由。

查看 RT1 的 RIP路由:

  1. <RT1>display ip routing-table protocol rip
  2. Route Flags: R - relay, D - download to fib
  3. ------------------------------------------------------------------------------
  4. Public routing table : RIP
  5. Destinations : 4 Routes : 5
  6. RIP routing table status : <Active>
  7. Destinations : 4 Routes : 5
  8. Destination/Mask Proto Pre Cost Flags NextHop Interface
  9. 192.168.5.0/24 RIP 100 2 D 192.168.12.2 Ethernet1/0/0
  10. 192.168.25.0/24 RIP 100 1 D 192.168.12.2 Ethernet1/0/0
  11. 192.168.34.0/24 RIP 100 1 D 192.168.13.3 GigabitEthernet0/0/0
  12. 192.168.45.0/24 RIP 100 2 D 192.168.13.3 GigabitEthernet0/0/0
  13. RIP 100 2 D 192.168.12.2 Ethernet1/0/0
  14. RIP routing table status : <Inactive>
  15. Destinations : 0 Routes : 0
  16. <RT1>

这样的话,192.168.1.0/24 和 192.168.5.0/24 网段的流量是走在 RT1-RT2-RT5 这条百兆链路上,而 RT1-RT3-RT4-RT5 这条千兆链路上没有任何流量,实在不合理。更好的方法是将流量切换到千兆链路上,而百兆链路作为备份路径。
RIP 支持在接口上增加指定路由的度量值,影响 RIP 路由的选择。

RT1 的配置:

  1. [RT1]acl 2000
  2. [RT1-acl-basic-2000]rule permit source 192.168.5.0 0.0.0.0
  3. [RT1-acl-basic-2000]quit
  4. [RT1]interface Ethernet 1/0/0
  5. [RT1-Ethernet1/0/0]rip metricin 2000 2

rip metricin 2000 2 :用于调整接口的附加度量值,当收到 ACL 匹配的路由更新时,度量值会在原来的基础上增加 2 跳。
这时,RT1 从 Ethernet1/0/0 接口收到的 192.168.5.0/24 路由时,度量值变为 4 ,于是 RT1 选择从 RT3 通告的 192.168.5.0/24 路由,因为路由度量值为 3 。
但是现在只完成了一半,从 192.168.1.0/24 到 192.168.5.0/24 的数据包走 RT1-RT3-RT4-RT5 这条路径,但是从 192.168.5.0/24 到 192.168.1.0/24 的数据包走 R5-R2-R1 这条百兆带宽路径,也就是数据的往返路径不一致。为了实现数据往返使用相同路径,需要进行相应调整,让 RT5 选择 RT4 通告的 192.168.1.0/24 路由。方法有两种:一种是在 RT5 的 Ethernet1/0/0 接口做配置,增加这条路由的度量值;另一种就是在 RT2 的 Ethernet1/0/1 接口做配置,增加这条路由的度量值。看下后面一种方法的配置:

  1. [RT2]acl 2000
  2. [RT2-acl-basic-2000]rule permit source 192.168.1.0 0.0.0.0
  3. [RT2-acl-basic-2000]quit
  4. [RT2]interface Ethernet 1/0/1
  5. [RT2-Ethernet1/0/1]rip metricout 2000 3

rip metricout 2000 3 :用于调整接口的附加度量值,当发送 ACL 匹配的路由更新时,度量值会在原来的基础上增加 3 跳。
这时,RT2 通告给 RT5 的 192.168.1.0/24 路由的度量值从 2 跳变成 4 跳,RT5 选择 RT4 通告的路由(跳数为 3 )。这样就把流量引导到千兆带宽的路径上。

RIP 发布默认路由

通常连接 Internet 出口线路的路由器,会配置一条静态默认路由实现网络互联。
6 个 RIP 网络实战 - 图9
RT2 、RT3 和 RT4 下连终端设备,上连出口路由器 RT1 。在 4 台路由器上部署 RIPv2 ,实现各个网段互通。RT1 上配置一条指向 Internet 的静态默认路由,来访问 Internet 。那么 RT2 、RT3 和 RT4 下连终端设备访问 Internet 的流量,如何转发到 RT1 呢?一种方法是在 RT2 、RT3 和 RT4 配置下一跳是 RT1 的静态默认路由,但是这个方法不灵活,需要额外手动配置,而且静态默认路由无法感知网络拓扑的变化。还有一个更合适的方法:通过 RIP 传递默认路由,在 RT1 上通过 RIP 下发默认路由,从而让网络中的 RIP 路由器能够动态学习到这条默认路由。

RT1 关键配置:

  1. [RT1]ip route-static 0.0.0.0 0.0.0.0 200.1.1.2
  2. [RT1]rip
  3. [RT1-rip-1]version 2
  4. [RT1-rip-1]default-route originate cost 1

default-route originate cost 1 :在 RIP 发布一条默认路由,cost 表示默认路由的度量值,默认值为 0 。
完成配置后,在下连路由器上查看学习到的默认路由。RT2 的 RIP 路由如下:

  1. <RT2>display ip routing-table protocol rip
  2. Route Flags: R - relay, D - download to fib
  3. ------------------------------------------------------------------------------
  4. Public routing table : RIP
  5. Destinations : 5 Routes : 5
  6. RIP routing table status : <Active>
  7. Destinations : 5 Routes : 5
  8. Destination/Mask Proto Pre Cost Flags NextHop Interface
  9. 0.0.0.0/0 RIP 100 2 D 192.168.12.1 GigabitEthernet0/0/0
  10. ......

这样,RT2 下连终端访问 Internet 时,流量会转发到 RT2 ,RT2 根据这条默认路由,转发给 RT1 ,RT1 根据静态默认路由将流量转发到 Internet 。
但是有个小问题,RT1 连接 Internet 的接口发生故障时,指向 Internet 的静态默认路由会失效,但 RT1 还会向 RIP 通告默认路由,导致下连的 Internet 流量会向上转发,最终在 RT1 处被丢弃。
这个问题可以通过 RT1 的配置解决,在 default-route originate 命令中增加 match default 。只有当 RT1 的路由表中有默认路由时,RT1 才会向 RIP 通告默认路由。这时,当 RT1 连接 Internet 的接口发生故障时,路由表的静态默认路由消失,RT1 会发布一条毒性路由来撤销之前发布的默认路由,这样下连的三台路由器就会把 RIP 默认路由删除。

RIP 路由标记

6 个 RIP 网络实战 - 图10
RT2 处于 RIP 域的边界,连接着一个外部网络,外部网络中有 A 、B 两个业务,分别使用不同的网段。RT2 通过静态路由到达两个业务网段,为了让整个 RIP 域动态学习到这些路由,RT2 需要将静态路由重分发到 RIP 。为了区分达到 A 、B 业务的路由,为它们设置不同的路由标记。

RT2 关键配置:

  1. [RT2]ip route-static 10.1.1.0 24 2.0.0.1 tag 10
  2. [RT2]ip route-static 10.2.2.0 24 2.0.0.1 tag 10
  3. [RT2]ip route-static 11.1.1.0 24 2.0.0.1 tag 20
  4. [RT2]ip route-static 11.2.2.0 24 2.0.0.1 tag 20
  5. [RT2]rip
  6. [RT2-rip-1]import-route static

ip route-static 10.1.1.0 24 2.0.0.1 tag 10 :设置 10.1.1.0 静态路由的标记值为 10 。
import-route static :将静态路由重分发到 RIP 中。静态路由的标记值会一并携带,并填充到 Response 报文的路由标记字段中。

查看 RT1 的路由表:
  1. <RT1>display ip routing-table protocol rip
  2. Route Flags: R - relay, D - download to fib
  3. ------------------------------------------------------------------------------
  4. Public routing table : RIP
  5. Destinations : 4 Routes : 4
  6. RIP routing table status : <Active>
  7. Destinations : 4 Routes : 4
  8. Destination/Mask Proto Pre Cost Flags NextHop Interface
  9. 10.1.1.0/24 RIP 100 1 D 12.0.0.2 GigabitEthernet0/0/0
  10. 10.2.2.0/24 RIP 100 1 D 12.0.0.2 GigabitEthernet0/0/0
  11. 11.1.1.0/24 RIP 100 1 D 12.0.0.2 GigabitEthernet0/0/0
  12. 11.2.2.0/24 RIP 100 1 D 12.0.0.2 GigabitEthernet0/0/0
  13. RIP routing table status : <Inactive>
  14. Destinations : 0 Routes : 0
  15. <RT1>

查看 10.1.1.0/24 路由的详细信息:
  1. <RT1>display ip routing-table 10.1.1.0 verbose
  2. Route Flags: R - relay, D - download to fib
  3. ------------------------------------------------------------------------------
  4. Routing Table : Public
  5. Summary Count : 1
  6. Destination: 10.1.1.0/24
  7. Protocol: RIP Process ID: 1
  8. Preference: 100 Cost: 1
  9. NextHop: 12.0.0.2 Neighbour: 12.0.0.2
  10. State: Active Adv Age: 00h14m11s
  11. Tag: 10 Priority: low
  12. Label: NULL QoSInfo: 0x0
  13. IndirectID: 0x0
  14. RelayNextHop: 0.0.0.0 Interface: GigabitEthernet0/0/0
  15. TunnelID: 0x0 Flags: D
  16. <RT1>

上面可以看到路由携带的标记。
查看 RT1 的 RIP 数据库,查看外部路由及标记:

  1. <RT1>display rip 1 database verbose
  2. ---------------------------------------------------
  3. Advertisement State : [A] - Advertised
  4. [I] - Not Advertised/Withdraw
  5. ---------------------------------------------------
  6. 10.0.0.0/8, cost 1, ClassfulSumm
  7. 10.1.1.0/24, cost 1, [A]
  8. NextHop : 12.0.0.2 Intf : GigabitEthernet0/0/0
  9. EntryID : 0xb4b3aeac Tag : 10
  10. State : RM Active
  11. 10.2.2.0/24, cost 1, [A]
  12. NextHop : 12.0.0.2 Intf : GigabitEthernet0/0/0
  13. EntryID : 0xb4b3ae24 Tag : 10
  14. State : RM Active
  15. 11.0.0.0/8, cost 1, ClassfulSumm
  16. 11.1.1.0/24, cost 1, [A]
  17. NextHop : 12.0.0.2 Intf : GigabitEthernet0/0/0
  18. EntryID : 0xb4b3ad9c Tag : 20
  19. State : RM Active
  20. 11.2.2.0/24, cost 1, [A]
  21. NextHop : 12.0.0.2 Intf : GigabitEthernet0/0/0
  22. EntryID : 0xb4b3ad14 Tag : 20
  23. State : RM Active
  24. ......