Cisco EIGRP Route

使用eigrp
(config)#router eigrp < as>
(config-router)#network < network [wildcard-mask]>
as:可自訂,各路由器上的as設相同才可互動
network:指定那個網段的所有介面要啟用eigrp  
wildcard-mask:若沒指定,則預設使用classful(分級式)網路,也就是class A,class B,class C的網路編號 
ex:讓屬於10.1.1.0/24與10.1.100.0/24的介面使用eigrp,並設as為100
(config)#router eigrp 100
(config-router)#network 10.1.1.0 0.0.0.255
(config-router)#network 10.1.100.0 0.0.0.255
以下也可達到  
(config)# router eigrp 100
(config-router)#network 10.0.0.0

ps:
IGRP直接升級成EIGRP 
做法:若原本用(config)#router igrp 10產生動態路由,則直接用(config)#router eigrp 10
即可自動轉移igrp as變成eigrp as,不需其他設定

設定eigrp平衡幾條路徑負載的能力
(config-router)#maximum-paths < maximum>
maximum值為1-6,通常系統預設為4
各路徑可不同成本

調整內部和外部ad值
(config)#distance eigrp < internal-ad> < external-ad>
ps:可應用在redistribute時,防止domain loop問題

………

調整鄰居關係 

設定hello間隔
(config-if)#ip hello-interval eigrp < as> < time> 

設定holdtime計時器
(config-if)#ip hold-time eigrp < as> < time>

設定某介面進入被動模式
禁止該界面收送hello封包,會阻止緊鄰關係形成,因此不會收送任何路徑資訊
ps:eigrp的被動模式不會收送任何更新,但rip的被動模式可接收更新
主要有兩方法,如下所示
方法1:指定被動介面
(config-router)#passive-interface < interface>
方法2:先指定所有介面為被動介面,在各別對非被動介面處理
(config-router)#passive-interface default
(config-router)#no passive-interface < interface> 
  
ps
show ip eigrp interface指令不會列出passive interface
ps
另一個阻止形成鄰居的方式是Mismatched IP subnets,也就是使用不同網段  
ps:
若eigrp鄰居使用第2個ip,可能會導致鄰居無法建立

設定EIGRP之md5驗證 
1建立key chain
(config)#key chain < keychain-name>
(config)#key < key-number>
(config)#key-string < key-string-value> 

2啟用md5並套用key chain 
(config)#interface < int>
(config-if)#ip authentication mode eigrp < as> md5
(config-if)#ip authentication key-chain eigrp < as> < keychain-name>
 
ps:
使用EIGRP驗證時,兩設備
1時間需一致,可使用show clock檢查 
2key-number和key-string-value要一致
3確定建立的key已經生效,可使用show key chain來檢查

設定靜態鄰居
(config-router)#neighbor < ip> < int>
可手動定義鄰居代替以multicast探索鄰居的功能
會在該介面停止處理EIGRP的multicast封包,以減少multicast對其他router的影響 
int:要指定連接鄰居的介面
ip:要指定鄰居的ip
ps:
若指定的ip不屬於int介面上的網段,則該命令無法執行
ps:
一但使用該指令關閉介面的multicast後,其他鄰居就無法使用multicast看到該介面,
也就是說,該介面與其他鄰居之間的關係就會消失
除非其他鄰居也手動指定此鄰居,才有辦法重新建立起鄰居關係
也就是說,兩邊都要使用neighbor 指令,才有辦法發現鄰居 

啟動記錄相鄰路由的改變
(config-router)#eigrp log-neighbor-change  

………….

WAN情況下的注意事項 

關閉split-horizon
(config-if)#no ip split-horizon eigrp < as>
ps:
當使用frame-relay的multipoint介面,且同時有三台router在一個子網路內
像是full mesh(完全互連)或partial mesh(部份互連)的網路架構下 
會因為預設的split-horizon,而造成EIGRP訊息無法交換 
因此要在frame-relay下之mutlipoint介面下關閉split-horizon以解決該問題
ex:
(config)#interface Serial0/0/0
(config-if)#no ip address
(config-if)#encapsulation frame-relay
(config-if)#interface Serial0/0/0.9 multipoint
(config-if)#ip address 10.0.0.1 255.255.255.248
(config-if)#frame-relay interface-dlci 103
(config-if)#frame-relay interface-dlci 104
(config-if)#no ip split-horizon eigrp 1

指定EIGRP可用頻寬
(config-if)#ip bandwidth-percent eigrp < as> < percent>

number指定頻寬 
percent可調整eigrp可使用之頻寬百分比,預設是50%  
ps:
當使用frame-relay之類的NBMA(非廣播多重存取)時,EIGRP的update訊息可能會超過鏈路的負荷
因此需要指定可使用的頻寬,以減輕負荷
ex:
(config)#interface Serial0/0/0
(config-if)#no ip address
(config-if)#encapsulation frame-relay
(config-if)#interface Serial0/0/0.9 multipoint
(config-if)#ip address 10.0.0.1 255.255.255.248
(config-if)#frame-relay interface-dlci 103
(config-if)#frame-relay interface-dlci 104
(config-if)#bandwidth 200
(config-if)#ip bandwidth-percent eigrp 1 40

ps:
假設介面serial新增多點子介面(dlci101,dlci102)和單點子介面(dlci103)這兩個子介面
則各dlci預設可使用eigrp的頻寬為
多點子介面serial
 dlci101=(1544*50%)/2
 dlci102=(1544*50%)/2 
單點子介面serial
 dlci103=(1544*50%)   
ps:1544為serial介面預設頻寬

………..  

拓樸調整   

設定eigrp的bandwidth
(config-if)#bandwidth < kbps>

設定eigrp的delay
(config-if)# delay < number> 
number單位為10ms(微秒)
ps:show interface所用單位為ms(微秒),因此輸出的數據會不太一樣
ps:若要從bandwidth和delay決定路徑,建議調整delay,因為delay對其他模組影響較小

ps:
各介面的bandwidth和delay值預設如下
interface bandwidth(kbps) delay(10ms) 
serial 1544 2000 
giga 1000000 10
faste 100000 100
ethernet 10000 1000

設定eigrp的hop count
(config-router)#metric maximum-hops < value>
預設hop count為100

設定eigrp的k值
(config-router)#metric weights < option>
ps:官方建議不要修改k值

設定offset list改變metric weight
會在檢查所有update訊息,若符合指定的條件,則在FD和RD上增加數值,值越高表示路徑越差 
(config-router)#offset-list < acl id|acl name> < in|out> < number> < int>
in和out是指定進入或離開介面
number:指定最後要加多少metric weight在該介面上
ex:
在serial0/1介面上收到10.1.1.0的路徑後,metric weight在加5 
(config)# access-list 12 permit 10.1.1.0
(config)# router eigrp 1
(config-router)# offset-list 12 in 5 Serial0/1
ex:
在serial0/2介面上送出10.1.1.0的路徑前,metric weight在加3 
(config)# access-list 11 permit 10.1.1.0
(config)# router eigrp 1
(config-router)# offset-list 11 out 3 Serial0/2

….. 

加快收斂 

指派eigrp stub router
(config-router)#eigrp stub [option]
option有以下,預設使用connected,summary,也就是不會將學來的路徑在通告給鄰居 
 connected:default,只通告與network指令相符的介面直連路徑,包括null0介面 
 summary:default,只通告自動匯整或手動匯整的路徑 
 static: 若有設定redistribute static指令,則通告靜態路徑
 redistributed: 若有設定redistribution,則通告redistribute 
 receive-only:不得與其他選項一起使用
  1.會接受其他eigrp router的query,但不會主動傳送query
  2.不通告任何路徑 
由於eigrp router不會傳送query訊息給stub router,因此可減緩active status時大量query的範圍

設定active timer
(config-router)# timers active-time < time>  
在active status下,指定發出query訊息後等待reply訊息的時間

… 

負載共享
1先設定目地允許的最大路徑數量 
(config-router)# maximum-paths < number>
2透過EIGRP variance(變異值),決定那些feasible successor的路徑要一起放入route table
(config-router)# variance < 1-128>
當feasible successor的FD若小於或等於successor的FD*variance,則在目地允許的最大路徑數量內都會被加入route table
ps:路徑的FD越高,傳送的封包也會越多 

… 

路徑匯整 
一般建議設在autonomous system boundary routers上

手動匯整route
(config-if)#ip summary-address eigrp < as> < net/mask> [ ad]
執行後該介面會先進入down狀態,在回復到up狀態,並忘記之前所學到的拓樸
不會通告subordinate route(次級路徑),因為已經包含在匯整route內 
產生的route,其ad(administrative distance)預設為5,metric會使用所有子網路中最低的權值   
彙整的net/mask route會以null0介面新增在route table
ps:
null0介面僅為了通告用,實際上進來該介面的封包都會被drop 
ps:
使用手動匯整時,最好執行no auto-summary
ps:
eigrp支援在任一位置設定summary route 

自動匯整
(config-router)#auto-summary
預設使用該功能
會將原本路徑換成分級式網路
ex:原本route為10.0.0.0/24走fa0/1,在auto-summary下會變成10.0.0.0/8走fa0/1 
ps:
EIGRP的自動匯整無法支援不連續的網路,若有出現不連續網路時不要自動匯整

設定default route
主要有2種做法

方法1:
Advertising Static Default Routes
(config)# ip route 0.0.0.0 0.0.0.0 < int>
(config)# router eigrp < as>
(config-router)# network 0.0.0.0  //將0.0.0.0路由放入eigrp中,並公告出去
該router會自己增加一筆0.0.0.0的route,然後透過eigrp公告出去
ps:也可以對此static route執行redistribute

方法2:
Configuring a Default Network
(config)# router eigrp < as>
(config-router)# network < net> 
(config)#ip default-network < net> //將net設為default network
該router會將default network設為candidate default route(候選預設路徑),並以eigrp公告出去
其他router會學到該default network,若學到超過一筆以上時,則以AD及metric權值決定最佳route
ps:
學到該路徑的route會顯示gateway of last resort is x.x.x.x to network y.y.y.y
其中y.y.y.y表示ip default-network定義的網路

…….

ps:
(config-router)#?
exit   Exit from routing protocol configuration mode
network   Enable routing on an IP network
auto-summary   Enable automatic network number summarization
redistribute   Redistribute information from another routing protocol
default-metric   Set metric of redistributed routes
distribute-list   Filter networks in routing updates
default-information   Control distribution of default information
distance   Control distribution of default information
passive-interface   Suppress routing updates on an interface 

………………………………………………………..

顯示eigrp收送訊息的統計
#show ip eigrp traffic
顯示內容包括hello,update,queries,replies,ack,…等Router# show ip eigrp traffic
畫面大致如下
IP-EIGRP Traffic Statistics for process 77
Hellos sent/received: 218/205 // hello封包會不斷送出
Updates sent/received: 7/23
Queries sent/received: 2/0  //未發現path時,query數量會增加 
Replies sent/received: 0/2
Acks sent/received: 21/14

顯示eigrp上使用的ip介面有那些
#show ip eigrp interface [detail [int]]
畫面大致如下
IP-EIGRP interfaces for process 10
     Xmit Queue Mean Pacing Time Multicast Pending
Interface Peers Un/Reliable SRTT Un/Reliable Flow Timer Routes
Se0 1 0/0 1968 0/10 0 0           
Et0 1 0/0 1968 0/10 0 0
ps:不會列出fail or passive interface 
若指定detail參數,會多出如下畫面 
Hello interval is 2 sec  //hello間隔時間
Next xmit serial
Un/reliable mcasts: 0/1 Un/reliable ucasts: 4/9
Mcast exceptions: 1 CR packets: 1 ACKs suppressed: 1
Retransmissions sent: 2 Out-of-sequence rcvd: 0
Authentication mode is not set
Use multicast

顯示所有eigrp鄰居
#show ip eigrp neighbors
畫面大致如下
IP-EIGRP neighbors for process 10 //以下鄰居在10的process id
H Address Interface Hold Uptime SRTT RTO Q Seq
0 24.17.2.18 Se0 9 04:15:56 1123 6738 0 2
0 24.17.2.2 Et0 8 04:15:56 1123 6738 0 2
h表示鄰居被發現的順序
hold表示router願意等待多久來接收鄰居的hello封包
uptime表示鄰居己建立多久,時間單位是
srtt(smooth round-trip timer,平順來回逾時計時器),顯示往返鄰居時間
rto(retransmission time out,重送逾時),重送佇列中封包給鄰居的間隔時間
q表示佇列中是否還有訊息,若值一直很大表示有問題
seq維持同步提供可靠用,和tcp的seq欄位功能類似

顯示拓樸表內容
#show ip eigrp topology [network| all-links | active]
畫面大致如下
IP-EIGRP Topology Table for process 10   //area 10
Codes: P – Passive, A – Active, U – Update, Q – Query, R – Reply,r – Reply status
P 10.1.1.0/24, 1 successors, FD is 281600  //到達10.1.1.0/24的網路有一條successors
  Connected, Ethernet0
P 10.1.2.1/24, 1 successors, FD is 28160
  via 192.168.3.0 (28160/21640) Connected, Serial0 //21640是RD,且FD最小,此為successor 
  via 192.168.3.0 (28161/21640) Connected, Serial0 //FD不是最小,此為feasible successor  
//passive表示惰性狀態,這是最好的路徑
//active表示進展中的狀態,因通往該網路的路徑失效,router正在搜尋替代路徑中
[network]
若指定參數network
畫面大致如下
# show ip eigrp topology 10.1.1.0/24
IP-EIGRP (AS 1): Topology entry for 10.1.1.0/24
State is Passive, Query origin flag is 1, 1 Successor(s), FD is 28160
Routing Descriptor Blocks:
0.0.0.0 (FastEthernet0/0), from Connected, Send flag is 0x0
 Composite metric is (28160/0), Route is Internal  //FD=28160,RD=0
 Vector metric:
  Minimum bandwidth is 10000 Kbit   //k值中的頻寬,代表從該設備到10.1.1.0網路中,會經過的最低頻寬 
  Total delay is 200 microseconds  //k值中的delay,代表從該設備到10.1.1.0網路中,所有delay值的加總
  Reliability is 255/255
  Load is 1/255
  Minimum MTU is 1500
  Hop count is 1     //k值中的hop count,代表從該設備到10.1.1.0網路中,會經過幾個介面
 exterior flag is set   //此網路為default network 
[all-links] 
若指定參數all-link,則會顯示所有路徑 
畫面大致如下
#show ip eigrp topology all-links
…omitted
P 10.1.1.0/24, 1 successors, FD is 2172416, serno 45
 via 10.1.2.1 (2172416/28160), Serial0/0/0.1  //為successor 
 via 10.1.3.1 (2172516/2172316), Serial0/0/0.1 //為feasible successor,因RD < sucessor的FD  
   via 10.1.4.1 (2174976/2172416), FastEthernet0/0 //非feasible successor,因為RD沒有< successor的FD 
[active]
顯示正在尋找的route 
IP EIGRP Topology Table for process 1
Codes: P Passive, A Active, U Update,
Q Query, R Reply, r Reply status
A 10.1.2.0 255.255.255.0, 1 successors, FD is 2733056 1 replies,
active 0:00:38, query origin: Multiple  //進入active狀態38秒
 via 10.1.4.3 (Infinity/Infinity), r, Serial0, serno 1232 //r表示還在等待reply
 via 10.1.6.5 (Infinity/Infinity),R, Serial1, serno 1227  //R表示已收到reply

顯示eigrp相關狀態與參數
#show ip protocols
畫面大致如下
Routing Protocol is “eigrp 10” //使用as為10
Outgoing update filter list for all interfaces is
Incoming update filter list for all interfaces is
Default networks flagged in outgoing updates
Default networks accepted from incoming updates
EIGRP metric weight K1=1, K2=0, K3=1, K4=0, K5=0  //k值
 EIGRP maximum hopcount 100
EIGRP maximum metric variance 1
Redistributing: eigrp 10
Routing for Networks:
 24.0.0.0
Passive Interface(s):
 FastEthernet0/0     //被動介面 
Routing Information Sources:
 24.17.2.2 90 00:00:00
Distance: internal 90 external 170 //ad值

顯示eigrp路由表
#show ip route [eigrp|neighbors]
畫面大致如下
…omitted
gateway of last resort is 10.1.1.1 to network 192.168.1.0    //到default network192.168.1.0的nexthop為10.1.1.1
…omitted 
C 24.17.2.0 is directly connected, Ethernet0
D 24.17.2.16 [90/471040] via 24.17.2.1, 00:03:29, Ethernet0 //metric471040=FD
 24.17.2.16 [90/471041] via 24.17.3.1, 00:03:30, Ethernet1 //設定variance,所以24.17.2.16有2個路徑  
D*EX 0.0.0.0 [170/481040] via 10.1.1.2, 00:02:12, serial0/1 //從外部路徑學到default route 

顯示EIGRP的DEBUG訊息
# debug eigrp packet
畫面大致如下
EIGRP Packets debugging is on
(UPDATE, REQUEST, QUERY, REPLY, HELLO, IPXSAP, PROBE, ACK, STUB, SIAQUERY,SIAREPLY)

鄰居驗證相關訊息 
R1#
Apr 1 09:08:01.951: EIGRP: Sending HELLO on FastEthernet0/1
Apr 1 09:08:01.951: AS 1, Flags 0x0, Seq 0/0 idbQ 0/0 iidbQ un/rely 0/0
Apr 1 09:08:01.967: EIGRP: pkt key id = 2, authentication mismatch
Apr 1 09:08:01.967: EIGRP: FastEthernet0/1: ignored packet from 10.1.1.2,
opcode = 5 (invalid authentication)
Apr 1 09:08:02.287: EIGRP: FastEthernet0/1: ignored packet from 10.1.1.3,
opcode = 5 (missing authentication)
其中
invalid authentication表示有使用md5,但無效
missing authentication表示尚未使用md5

dual相關訊息
DEC 20 12:12:06: %DUAL-5-NBRCHANGE: IP EIGRP 1: Neighbor 10.1.4.3 (Serial0) is down: stuck in active //兩邊鄰居關係重置
DEC 20 12:15:23: %DUAL-3-SIA: Route 10.1.2.0/24 stuck in active state in IP EIGRP 1.Cleaning up // active route的SIA狀態清除 

…………………………

啟用ipv6 eigrp
(config)# ipv6 router eigrp < as>
ps:運作ripng前,ipv6 unicast-routing指令需要被執行
(config-if)# ipv6 eigrp < as>
ps:介面啟用ipv6 eigrp前,介面需先啟用ipv6
(config-if)# no shutdown
ps:
運作時要有eigrp rid,預設在有ipv4位址的情況下會自動選出,
若無ipv4位址,則不會自動選出,需以指令eigrp router-id手動指派rid


# show ipv6 route 2099::/64
Routing entry for 2099::/64
 Known via “eigrp 9”, distance 90, metric 2174976, type internal //使用as 9
 Route count is 2/2, share count 0
 Routing paths:
  FE80::22FF:FE22:2222, Serial0/0/0.2 //到達2099::/64的NEXT HOP為FE80::22FF:FE22:2222(fe80表示為link local ipv6)
   Last updated 00:24:32 ago
  FE80::11FF:FE11:1111, Serial0/0/0.1
   Last updated 00:07:51 ago

# show ipv6 route eigrp
IPv6 Routing Table – Default – 19 entries
Codes: C – Connected, L – Local, S – Static, U – Per-user Static route
B – BGP, M – MIPv6, R – RIP, I1 – ISIS L1
I2 – ISIS L2, IA – ISIS interarea, IS – ISIS summary, D – EIGRP
[omit] 
D 2099::/64 [90/2174976]
 via FE80::22FF:FE22:2222, Serial0/0/0.2 //到達2099::/64的NEXT HOP為FE80::22FF:FE22:2222(fe80表示為link local ipv6)
 via FE80::11FF:FE11:1111, Serial0/0/0.1


# show ipv6 protocols
IPv6 Routing Protocol is “eigrp 9”
 EIGRP metric weight K1=1, K2=0, K3=1, K4=0, K5=0 //eigrp metric
 EIGRP maximum hopcount 100
 EIGRP maximum metric variance 1  //variance=1
 Interfaces: //啟用eigrp的介面
  FastEthernet0/0
  Serial0/0/0.1
  Serial0/0/0.2
 Redistribution:
  None
 Maximum path: 16 //限制同目地最多16個相同權值的路徑
 Distance: internal 90 external 170 


# show ipv6 eigrp neighbors
IPv6-EIGRP neighbors for process 9
H Address Interface Hold Uptime SRTT RTO Q Seq
(sec) (ms) Cnt Num
1 Link-local address: Se0/0/0.2 14 01:50:51 3 200 0 82
 FE80::22FF:FE22:2222
0 Link-local address: Se0/0/0.1 13 01:50:52 14 200 0 90
 FE80::11FF:FE11:1111


# show ipv6 eigrp topology
IPv6-EIGRP Topology Table for AS(9)/ID(10.10.34.3)
Codes: P – Passive, A – Active, U – Update, Q – Query, R – Reply,r – reply Status, s – sia Status
P 2099::/64, 2 successors, FD is 2174976          //2個successor,fd=2174976
 via FE80::11FF:FE11:1111 (2174976/30720), Serial0/0/0.1
 via FE80::22FF:FE22:2222 (2174976/30720), Serial0/0/0.2

# show cdp entry R1
————-
Device ID: R1     //鄰居r1
Entry address(es):
 IP address: 10.10.13.1  //鄰居r1的ipv4位址
 IPv6 address: 2013::1 (global unicast) //鄰居r1的public ipv6
 IPv6 address: FE80::11FF:FE11:1111 (link-local)  //鄰居r1的link local ipv6
Platform: Cisco 1841, Capabilities: Router Switch IGMP
Interface: Serial0/0/0.1, Port ID (outgoing port): Serial0/0/0.3