這個星期看了張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的文件。當然,如果你有需要的話。