这个星期看了张sir的EIGRP视频,决定把看到的所有知识点放入一个实验中。于是有了下面的topo,原始topo看于56cto,没有写出作者,自己删除了一些他的需求,添加了张sir视频中的需求
需求:按照如下拓扑图配置好接口地址和EIGRP 100,并关闭自动汇总
R1启用172.16.0.1/24,172.16.1.1/24,172.16.2.1/24,172.16.3.1/24;
R2启用2.2.2.2/24(外网)
R3启用192.168.0.1/24,192.168.1.1/24,192.168.2.1/24,192.168.3.1/24
R4启用4.4.4.4/24
R5启用5.5.5.5/24
1:在R4做DHCP服务,要求R1和R3的f0/0地址要自动获取
2:R2,R4,R5只能收到R1,R3的一条汇总路
3:R2的S1/1的带宽改为700K,修改R2的S1/0接口的hello-time为20S,R2的Lo不能收发任何EIGRP路由更新
4:必须确保R2的EIGRP在S1/1能使用到最少70K的带宽
5:为了安全起见,R1和R2之间不允许用组播建立邻居且启用EIGRP的MD5认证
6:R1和R3都发布通往回环的默认路由,R2也建立外网的默认路由0.0.0.0.这时候会有三条默认路由,只保留一条。
7:R5为EIGRP stub,只通告直连
8:要求从R2telnet到R5的5.5.5.5环回,登陆进去的时候却是登陆到了R4上
9:要求从R2到R4形成非等价负载均衡
首先,做初始配置:
因为每个都初始,太多,所有只初始R1,其余基本差不多,当然,如果你需要的话,下面会附所有配置步骤文件
R1:
Router>en
Router#conf t
Router(config)#hoStname R1
R1(config)#no ip domain lookup
R1(config)#line console 0
R1(config-line)#logging synchronous
R1(config-line)#exec-timeout 0 0
R1(config-line)#exit
R1(config)#int s1/1
R1(config-if)#ip address 12.1.1.2 255.255.255.252
R1(config-if)#no shut
R1(config-if)#int f0/0
R1(config-if)#ip address dhcp
R1(config-if)#no shut
R1(config-if)#int lo 0
R1(config-if)#ip address 172.16.0.1 255.255.255.0
R1(config-if)#ip address 172.16.1.1 255.255.255.0 secondary
R1(config-if)#ip address 172.16.2.1 255.255.255.0 secondary
R1(config-if)#ip address 172.16.3.1 255.255.255.0 secondary
R1(config-if)#exit
R1(config)#router eigrp 100
R1(config-router)#network 12.1.1.0 0.0.0.3
R1(config-router)#network 134.1.1.0 0.0.0.255
R1(config-router)#network 172.16.0.0
R1(config-router)#no auto-summary
R2~R5略
然后第一需求:
1:在R4做DHCP服务,要求R1和R3的f0/0地址要自动获取:
R4(config)#ip dhcp pool promisewell
R4(dhcp-config)#network 134.1.1.0 /24
R4(dhcp-config)#dns-server 202.202.202.202
R4(dhcp-config)#lease 1
R4(dhcp-config)#exit
R4(config)#ip dhcp excluded-address 134.1.1.4
R4(config-if)#exit
R2在刚刚EIGRP通时查看路由表
R5查看路由表:
2:R2,R4,R5只能收到R1,R3的一条汇总路
R1在两个接口做汇总
R1(config)#int s1/1
R1(config-if)#ip summary-address eigrp 100 172.16.0.1 255.255.252.0
R1(config-if)#int f0/0
R1(config-if)#ip summary-address eigrp 100 172.16.0.1 255.255.252.0
R1(config-if)#exit
R3在两个接口做汇总
R3(config)#int f0/0
R3(config-if)#ip summary-address eigrp 100 192.168.0.1 255.255.252.0
R3(config-if)#int s1/0
R3(config-if)#ip summary-address eigrp 100 192.168.0.1 255.255.252.0
R3(config-if)#exit
这时的R2再次查看路由表
R1和R3的环回地址已经被汇总
同样,查看R5的路由表:
3:R2的S1/1的带宽改为700K,我们先看看s1/1的缺省带宽:
修改s1/1的BW的值
R2#conf t
R2(config)#int s1/1
R2(config-if)#bandwidth 700
再次查看s1/1的BW值
700 Kbit
这个时候查看R2的路由表,去R5的路径已经不负载,只有一条路由了:
修改R2的S1/0接口的hello-time为20S,R2的Lo不能收发任何EIGRP路由更新
修改Hello-time时间,但是,请注意,这里修改了Hello-time时间,
要把hold-time时间也要修改过来,保持3倍的关系
R2(config)#int s1/0
R2(config-if)#ip hello-interval eigrp 100 20
R2(config-if)#ip hold-time eigrp 100 60
R2(config)#router eigrp 100
R2(config-router)#passive-interface loopback 0
4:必须确保R2的EIGRP在S1/1能使用到最少70K的带宽
R2(config-if)#ip bandwidth-percent eigrp 100 10
R2(config-if)#exit
(默认,EIGRP协议本身的流量最多只占用接口的参考带宽的50%。)
5:为了安全,R1和R2之间不允许用组播建立邻居且启用EIGRP的MD5认证
先建立R2的:
建立钥匙串并应用到接口
R2(config)#key chain cisco-r2
R2(config-keychain)#key 1
R2(config-keychain-key)#key-string 123456
R2(config-keychain-key)#exit
R2(config-keychain)#exit
R2(config)#int s1/0
R2(config-if)#ip authentication key-chain eigrp 100 cisco-r2
R2(config-if)#ip authentication mode eigrp 100 md5
R2(config-if)#exit
这时候R1已经有了反应,邻居关系失败了:
R1也创建钥匙环:
R1创建钥匙串并应用与接口
R1(config)#key chain cisco-r1
R1(config-keychain)#key 1
R1(config-keychain-key)#key-string 123456
R1(config-keychain-key)#exit
R1(config-keychain)#exit
R1(config)#int s1/1
R1(config-if)#ip authentication key-chain eigrp 100 cisco-r1
R1(config-if)#ip authentication mode eigrp 100 md5
这个时候,R1与R2邻居关系恢复
R1和R2之间不用组播建立邻居
R2(config)#router eigrp 100
R2(config-router)#neighbor 12.1.1.2 s1/1(对方的地址)
R1(config)#router eigrp 100
R1(config-router)#neighbor 12.1.1.1 s1/1 (R2的地址)
6:R1和R3都发布通往回环的默认路由,R2也建立外网的默认路由0.0.0.0.这时候会有三条默认路由,只保留一条。
先做R3的默认路由
注:EIGRP发布默认路由只有一种方法.不像RIP有三种。
R3发布默认路由
R3(config)#ip default-network 192.168.0.0
R1也建立默认路由
R1(config)#ip default-network 172.16.0.0
但是showR2的路由后发现并没有出现。
重新汇总
R1(config)#int s1/1
R1(config-if)#no ip summary-address eigrp 100 172.16.0.1 255.255.252.0
R1(config-if)#ip summary-address eigrp 100 172.16.0.1 255.255.0.0
R1(config-if)#int f0/0
R1(config-if)#no ip summary-address eigrp 100 172.16.0.1 255.255.252.0
R1(config-if)#ip summary-address eigrp 100 172.16.0.1 255.255.0.0
再次查看R2的路由,已经出现。(注:因为default-network只能发布主类路由)
R2也建立一条通往外网默认路由
R2(config)#int s1/1
R2(config-if)#ip summary-address eigrp 100 0.0.0.0 0.0.0.0
R2(config-if)#int s1/0
R2(config-if)#ip summary-address eigrp 100 0.0.0.0 0.0.0.0
然后R5show ip ro,竟然3个默认路由
这个肯定不是这个网络所要的结果,R5的路由器如果要上外网的2.2.2.2,能通吗?
不通,用张sir话讲,太失败了。。。
这个时候在R4上建一个访控
R4(config)#access-list 1 permit 0.0.0.0 0.0.0.0
R4(config)#router eigrp 100
R4(config-router)#default-information in 1
注意,这里建立访控后,需重置一下邻居关系
然后查看R5的路由表,并ping 2.2.2.2 测试
已通,并且已经只有一条默认路由,但还需要在R2上做下访控
R2(config)#access-list 1 permit 0.0.0.0 0.0.0.0
R2(config)#router eigrp 100
R2(config-router)#default-information in 1
R2(config-router)#do cle ip eig nei
查看R2路由,也只有一个默认路由了,R5就不用做了
7:R5为EIGRP stub,只通告直连
R5做stub
R5(config)#router eigrp 100
R5(config-router)#eigrp stub connected
注: stub connected (通告直连路由)
stub summary (通告汇总路由) 在本地做的汇总路由才会传
stub redistributed (通告重分布的路由)
stub static (通告静态路由)
stub receive-only (只接收不通告)
8:要求从R2telnet到R5的5.5.5.5环回,登陆进去的时候却是登陆到了R4上
这个是用nat,跟EIGRP没关系
R4(config)#int s1/1
R4(config-if)#ip nat inside
R4(config-if)#int f0/0
R4(config-if)#ip nat outside
R4(config-if)#exit
R4(config)#ip nat inside source static 4.4.4.4 5.5.5.5
不要忘记打开R4的telnet,否则,nat做成功也没用。
R4(config)#line vty 0 4
R4(config-line)#password 123
测试 ……
9:最后,就是EIRGP特有的非等价负载均衡
R2到R5的路由表里虽然只有一条路径,但topo表呢
查看R2的topo表,配置variance值,具体可参见理论篇,当然,也可以给我留言
大致为: FD of FS route < FD of best route (Successor)*Varince
R2(config)#router eigrp 100
R2(config-router)#variance 2
R2(config-router)#end
再次查看路由表:
O(∩_∩)O~,已经出现
看不等价的比例关系
比例有47:80 700K的链路发47个包,1.544M的链路发80个包,用debug测试一下
R2(config)#access-list 100 permit icmp any any
R2#debug ip packet 100
然后ping 5.5.5.5 ping 127次,
在这里,要注意自己R2是否开启cef
负载均衡分为两种:(快速交换fast switching,和处理交换process switching)。
快速交换是开启了cef和ip route-cache 基于目的地的交换
处理交换是没有开cef和ip route-cache 基于数据包的交换。
所以,这里如果要测试,要关闭cef,否则debug不出效果。
最后,提一下EIGRP的一个命令:
EIGRP的有一个缺省命令为
R2(config)#router eigrp 100
R2(config-router)#traffic-share balanced 默认会做负载均衡
如果改为
R2(config-router)#traffic-share min across-interfaces
则会列出所有路径,但不做负载均衡
好了,我能想到的大概就那么多了,但我更想继续在这个实验里完善EIGRP的知识点,如果有朋友能想到的话,欢迎帮忙添加,下面连接,附上R1-R5的所有具体配置,以及GNS3的文件。当然,如果你有需要的话。
http://down.51cto.com/data/152108