cisco的路由器上rip的被動接口,單播更新,水平分隔
實驗拓撲圖
在這個配置中要注意一點,在給r1,r7和r8的e0/0接口配置ip地址的時候,需要把他們全部調做全雙工模式。
sw1(config)#int f0/1
sw1(config-if)#no shutdown
sw1(config-if)#speed 100 //設置帶寬爲100m,不這麼設置,下面那條命令配置不上去
sw1(config-if)#duplex full //設置爲全雙工模式
sw1(config-if)#exit
其他兩個sw1的接口按照上面一樣的配置
在路由器上也要配置
r7(config)#inte e0/0
r7(config)#ip add 10.10.10.3 255.255.255.248
r7(config-if)#duplex full//配置爲全雙工模式
r7(config)#no shutdown
r7(config-if)#exit
其他路由器也按照上面一樣的配置
按照拓撲圖配置命令
r1(config)#router rip
r1(config-router)#version 2
r1(config-router)#no auto-summary
r1(config-router)#network 10.0.0.0
r1(config-router)#network 192.168.1.0
r1(config-router)#network 192.168.2.0
r1(config-router)#exit
其他的路由器命令和這大概相同
配置完後去查看路由表
r1#show ip route
R 192.168.40.0/24 [120/1] via 192.168.2.2, 00:00:06, Serial1/1
[120/1] via 192.168.1.2, 00:00:06, Serial1/0
10.0.0.0/29 is subnetted, 1 subnets
C 10.10.10.0 is directly connected, Ethernet0/0
R 192.168.50.0/24 [120/1] via 10.10.10.2, 00:00:20, Ethernet0/0
C 192.168.1.0/24 is directly connected, Serial1/0
C 192.168.2.0/24 is directly connected, Serial1/1
R 192.168.70.0/24 [120/1] via 10.10.10.3, 00:00:09, Ethernet0/0
r2#show ip route
C 192.168.40.0/24 is directly connected, Loopback0
10.0.0.0/29 is subnetted, 1 subnets
R 10.10.10.0 [120/1] via 192.168.2.1, 00:00:25, Serial1/1
[120/1] via 192.168.1.1, 00:00:29, Serial1/0
R 192.168.50.0/24 [120/2] via 192.168.2.1, 00:00:22, Serial1/1
[120/2] via 192.168.1.1, 00:00:22, Serial1/0
C 192.168.1.0/24 is directly connected, Serial1/0
C 192.168.2.0/24 is directly connected, Serial1/1
R 192.168.70.0/24 [120/2] via 192.168.2.1, 00:00:25, Serial1/1
[120/2] via 192.168.1.1, 00:00:29, Serial1/0
r7#show ip route
R 192.168.40.0/24 [120/2] via 10.10.10.1, 00:00:05, Ethernet0/0
10.0.0.0/29 is subnetted, 1 subnets
C 10.10.10.0 is directly connected, Ethernet0/0
R 192.168.50.0/24 [120/1] via 10.10.10.2, 00:00:16, Ethernet0/0
R 192.168.1.0/24 [120/1] via 10.10.10.1, 00:00:05, Ethernet0/0
R 192.168.2.0/24 [120/1] via 10.10.10.1, 00:00:05, Ethernet0/0
C 192.168.70.0/24 is directly connected, Loopback0
r8#show ip route
R 192.168.40.0/24 [120/2] via 10.10.10.1, 00:00:22, Ethernet0/0
10.0.0.0/29 is subnetted, 1 subnets
C 10.10.10.0 is directly connected, Ethernet0/0
C 192.168.50.0/24 is directly connected, Loopback0
R 192.168.1.0/24 [120/1] via 10.10.10.1, 00:00:22, Ethernet0/0
R 192.168.2.0/24 [120/1] via 10.10.10.1, 00:00:22, Ethernet0/0
R 192.168.70.0/24 [120/1] via 10.10.10.3, 00:00:02, Ethernet0/0
此時可以發現所有的路由器都已經學到了這個網絡上其他網段上的路由條目,並且建立了自己的路由表
如果r1不想把他的信息給r7和r8,可以在r1的e0/0接口設置爲被動接口.
r1(config)#router rip//要在協議底下配置被動接口
r1(config-router)#passive-interface e0/0//配置爲被動接口
此時清空r7和r8的路由表在看看其路由表中的信息
R7#clear ip route *
r7#show ip route
10.0.0.0/29 is subnetted, 1 subnets
C 10.10.10.0 is directly connected, Ethernet0/0
R 192.168.50.0/24 [120/1] via 10.10.10.2, 00:00:02, Ethernet0/0
C 192.168.70.0/24 is directly connected, Loopback0
r8#clear ip route *
r8#show ip route
10.0.0.0/29 is subnetted, 1 subnets
C 10.10.10.0 is directly connected, Ethernet0/0
C 192.168.50.0/24 is directly connected, Loopback0
R 192.168.70.0/24 [120/1] via 10.10.10.3, 00:00:01, Ethernet0/0
我門可以發現在r7和r8上面已經沒有了r1右邊網段的路由條目了,這是因爲在r1的e0/1接口上配置了被動接口,是的r1路由上的信息不再從這個接口發送出去
此時清空一下r1的路由表,在查看r1上面的路由信息
R1#clear ip route *
r1#show ip route
R 192.168.40.0/24 [120/1] via 192.168.2.2, 00:00:00, Serial1/1
[120/1] via 192.168.1.2, 00:00:29, Serial1/0
10.0.0.0/29 is subnetted, 1 subnets
C 10.10.10.0 is directly connected, Ethernet0/0
R 192.168.50.0/24 [120/1] via 10.10.10.2, 00:00:01, Ethernet0/0
C 192.168.1.0/24 is directly connected, Serial1/0
C 192.168.2.0/24 is directly connected, Serial1/1
R 192.168.70.0/24 [120/1] via 10.10.10.3, 00:00:11, Ethernet0/0
可以發現r1上面的路由信息沒有變化,證明在r1的e0/0口還是能夠接受rip信息的,這就是被動接口
但是如果我只是不想給r7路由信息,但是和r8關係好,又想給r8路由信息,那怎麼辦呢?
這就要靠單播更新了
在r1上配置如下mingl
r1(config)#router rip //也是要在協議底下配置
r1(config-router)#passive-interface e0/0 //被動接口後配置單播更新
r1(config-router)#neighbor 10.10.10.2//單播更新給r8
此時在顯示r8的路由信息
r8#show ip route
R 192.168.40.0/24 [120/2] via 10.10.10.1, 00:00:22, Ethernet0/0
10.0.0.0/29 is subnetted, 1 subnets
C 10.10.10.0 is directly connected, Ethernet0/0
C 192.168.50.0/24 is directly connected, Loopback0
R 192.168.1.0/24 [120/1] via 10.10.10.1, 00:00:22, Ethernet0/0
R 192.168.2.0/24 [120/1] via 10.10.10.1, 00:00:22, Ethernet0/0
R 192.168.70.0/24 [120/1] via 10.10.10.3, 00:00:03, Ethernet0/0
我們能夠發現,r8又能學到r1路由器右邊的網段了,這是因爲r1給了r8單播更新的信息,我們可以看到此時r7依然還是原路由條目
r7#show ip route
10.0.0.0/29 is subnetted, 1 subnets
C 10.10.10.0 is directly connected, Ethernet0/0
R 192.168.50.0/24 [120/1] via 10.10.10.2, 00:00:01, Ethernet0/0
C 192.168.70.0/24 is directly connected, Loopback0
這就是單播更新了,即一個接口連接了幾臺路由器,但是隻想給其中的某幾臺路由器發送更新消息的話可以使用單播更新.
但是此時r7和r8關係很好,r8想把從r1上學到的路由條目傳給r7由於有水平分割怎麼辦呢?
可以關閉r8上面的默認水平分隔。
r8(config)#inter e0/0
r8(config-if)#no ip split-horizon
此時再在r7上去查看路由表
r7#show ip route
R 192.168.40.0/24 [120/3] via 10.10.10.2, 00:00:02, Ethernet0/0
10.0.0.0/29 is subnetted, 1 subnets
C 10.10.10.0 is directly connected, Ethernet0/0
R 192.168.50.0/24 [120/1] via 10.10.10.2, 00:00:02, Ethernet0/0
R 192.168.1.0/24 [120/2] via 10.10.10.2, 00:00:02, Ethernet0/0
R 192.168.2.0/24 [120/2] via 10.10.10.2, 00:00:02, Ethernet0/0
C 192.168.70.0/24 is directly connected, Loopback0
在r7和r8上面上開啓debug命令
r8#
*Mar 1 03:15:05.375: RIP: sending v2 update to 224.0.0.9 via Loopback0 (192.168.50.1)
*Mar 1 03:15:05.375: RIP: Update contains 5 routes
*Mar 1 03:15:05.379: RIP: Update queued
*Mar 1 03:15:05.379: RIP: Update sent via Loopback0
*Mar 1 03:15:05.383: RIP: ignored v2 packet from 192.168.50.1 (sourced from one of our addresses)//由於是同一個接口發出去的,loopback接口,又發回來給自己所以是非法的
r8#
*Mar 1 03:15:10.415: RIP: sending v2 update to 224.0.0.9 via Ethernet0/0 (10.10.10.2)//給r7發送路由信息
*Mar 1 03:15:10.415: RIP: Update contains 6 routes//包含了6條路由信息,證明水平分隔已經關閉,不然他只會從這個接口發送的路由信息沒有6條
*Mar 1 03:15:10.419: RIP: Update queued
*Mar 1 03:15:10.419: RIP: Update sent via Ethernet0/0
r8#
*Mar 1 03:15:17.527: RIP: received v2 update from 10.10.10.1 on Ethernet0/0//證明r8還是能夠從r7上收到路由信息的。
*Mar 1 03:15:17.531: RIP: Update contains 3 routes
r7#
*Mar 1 03:10:11.103: RIP: received v2 update from 10.10.10.2 on Ethernet0/0//從r8接受日拋包
*Mar 1 03:10:11.107: RIP: Update contains 6 routes//包中有6條路由信息,證明關閉了水平分隔
*Mar 1 03:10:11.259: RIP: sending v2 update to 224.0.0.9 via Loopback0 (192.168.70.1)
*Mar 1 03:10:11.259: RIP: Update contains 5 routes
*Mar 1 03:10:11.263: RIP: Update queued
*Mar 1 03:10:11.263: RIP: Update sent via Loopback0
*Mar 1 03:10:11.267: RIP: ignored v2 packet from 192.168.70.1 (sourced from one of our addresses)
r7#
*Mar 1 03:10:25.207: RIP: sending v2 update to 224.0.0.9 via Ethernet0/0 (10.10.10.3)
*Mar 1 03:10:25.207: RIP: Update contains 1 routes//從這裏可以看到,r7上面沒有關閉水平分隔,發出去的路由條數只有1條
*Mar 1 03:10:25.211: RIP: Update queued
*Mar 1 03:10:25.211: RIP: Update sent via Ethernet0/0
r7#
總結
使我對rip的動態路由協議有了一個很好的瞭解和實踐,特別是其中的被動接口,單播更新和水平分隔