Difference between revisions of "Cisco EIGRP"

From HackerNet
Jump to: navigation, search
Line 5: Line 5:
  
 
'''Topology table''' innehåller alla tillgängliga routes kända av EIGRP.  
 
'''Topology table''' innehåller alla tillgängliga routes kända av EIGRP.  
 
  
 
'''Routing (Forwarding) table''', ej EIGRP-specifik utan den globala.
 
'''Routing (Forwarding) table''', ej EIGRP-specifik utan den globala.
  
 
==Adjacency==
 
==Adjacency==
* Hello packet - Multicast 224.0.0.10, every 5 seconds.  
+
EIGRP upptäcker grannar dynamiskt. Så fort man slår på EIGRP på ett interface börjar det skickas Hello-paket till multicast 224.0.0.10/FF02::A var 5:e sekund. Så fort ett Hello har tagits emot sätts grannen i pending state för att man inte ska acceptera routing-uppdateringar innan man är säker på att det finns bidirectional connectivity. Om det finns en EIGRP-router på andra sidan kommer den att svara med ett Hello, sedan skickas en null update som har satt initialization bit för att signalera att dra igång initialization process. Då kommer en null update med init bit skickas tillbaka som även ackar den första. När sedan den andra updaten har ackats går grannskapet till "Up" och databassynkroniseringen drar igång. När den är klar kommer endast inkrementella uppdateringar att skickas i fortsättningen.
* AS nummer måste vara samma på alla routrar.
+
 
* K values need to match in EIGRP AS domain in order for neighbours to form
+
Det går även att ändra timers per interface. Hold time säger hur länge en router maximalt ska vänta mellan två EIGRP-paket från en granne. Kommer inget paket blir grannen unreachable och DUAL informeras. Default är denna tid tre gånger Hello interval, dvs 15 eller 180 sekunder beroende på interfacetyp. Hold time ändras dock inte automatiskt ifall man ändrar Hello time. Notera att om man sätter hold time lägre än hello time kommer grannar att flappa.
 +
 
 +
int gi0/0
 +
  ip hello-interval eigrp 10 <sekunder>
 +
  ip hold-time eigrp 10 <sekunder>
 +
 
 +
Vissa nätverk stödjer inte broadcast eller multicast då måste man manuellt konfigurera grannar och unicast används. När man konfigurerar en granne så disableas multicast på det interfacet som används för unicasten. Det går därför inte att kombinera unicast- och multicastgrannskap på ett delat segment. 
 +
router eigrp 10
 +
  neighbor 10.1.0.20 gi0/0
 +
 
 +
'''Verify'''
 +
show ip eigrp neighbor
 +
Outputen innehåller flera tal.
 +
* H (Handle): lokalt löpnummer för grannar.
 +
* SRTT (Smooth Round Trip Time): tid det tar att få tillbaka en ACK från granne, i millisekunder.
 +
* RTO (Retransmit Time Out): hur länge eigrp väntar innan ett packet i kön skickas om, i millisekunder.
 +
* Q Cnt Num: packet som inte har ackats hamnar i kön, är 0 i ett stabilt nätverk.
 +
 
 +
'''Troubleshoot'''
 +
* Uncommon subnet: de sitter inte i samma subnät.
 +
* K value mismatch: måste vara samma på båda sidor.
 +
* AS mismatch: måste vara samma på båda sidor.
 +
* Layer 2 issues.
 +
* Access-list issues.
 +
* NBMA.
 +
* Authentication issues.
 +
* Secondary addresses.
  
 
==Metric==
 
==Metric==

Revision as of 16:12, 20 March 2016

EIGRP är ett distance vector routing protokoll med en del karaktär av link state protocol. Det är protokoll utvecklat av Cisco, det har varit properitärt men är sedan 2013 släppt, dock bara som Informational RFC. EIGRP använder ett eget IP-protokoll (88) på lager 4, Reliable Transport Protocol. Det används båda för unicast och multicast. För topologiuträkningar används DUAL.

Databaser

Neighbor table

Topology table innehåller alla tillgängliga routes kända av EIGRP.

Routing (Forwarding) table, ej EIGRP-specifik utan den globala.

Adjacency

EIGRP upptäcker grannar dynamiskt. Så fort man slår på EIGRP på ett interface börjar det skickas Hello-paket till multicast 224.0.0.10/FF02::A var 5:e sekund. Så fort ett Hello har tagits emot sätts grannen i pending state för att man inte ska acceptera routing-uppdateringar innan man är säker på att det finns bidirectional connectivity. Om det finns en EIGRP-router på andra sidan kommer den att svara med ett Hello, sedan skickas en null update som har satt initialization bit för att signalera att dra igång initialization process. Då kommer en null update med init bit skickas tillbaka som även ackar den första. När sedan den andra updaten har ackats går grannskapet till "Up" och databassynkroniseringen drar igång. När den är klar kommer endast inkrementella uppdateringar att skickas i fortsättningen.

Det går även att ändra timers per interface. Hold time säger hur länge en router maximalt ska vänta mellan två EIGRP-paket från en granne. Kommer inget paket blir grannen unreachable och DUAL informeras. Default är denna tid tre gånger Hello interval, dvs 15 eller 180 sekunder beroende på interfacetyp. Hold time ändras dock inte automatiskt ifall man ändrar Hello time. Notera att om man sätter hold time lägre än hello time kommer grannar att flappa.

int gi0/0
 ip hello-interval eigrp 10 <sekunder> 
 ip hold-time eigrp 10 <sekunder>

Vissa nätverk stödjer inte broadcast eller multicast då måste man manuellt konfigurera grannar och unicast används. När man konfigurerar en granne så disableas multicast på det interfacet som används för unicasten. Det går därför inte att kombinera unicast- och multicastgrannskap på ett delat segment.

router eigrp 10
 neighbor 10.1.0.20 gi0/0 

Verify

show ip eigrp neighbor

Outputen innehåller flera tal.

  • H (Handle): lokalt löpnummer för grannar.
  • SRTT (Smooth Round Trip Time): tid det tar att få tillbaka en ACK från granne, i millisekunder.
  • RTO (Retransmit Time Out): hur länge eigrp väntar innan ett packet i kön skickas om, i millisekunder.
  • Q Cnt Num: packet som inte har ackats hamnar i kön, är 0 i ett stabilt nätverk.

Troubleshoot

  • Uncommon subnet: de sitter inte i samma subnät.
  • K value mismatch: måste vara samma på båda sidor.
  • AS mismatch: måste vara samma på båda sidor.
  • Layer 2 issues.
  • Access-list issues.
  • NBMA.
  • Authentication issues.
  • Secondary addresses.

Metric

  • k1 = bandwidth
  • k2 = load
  • k3 = delay
  • k4 = reliability
  • k5 = MTU

Simplified default metric = bandwidth + delay

Distances

Computed Distance: den totala metricen för att nå destination via en särskild granne, dvs reported distance från granne plus distance till grannen.

Feasible Distance: en "notering" av den lägsta kända computed distance sedan routens senaste övergång från Active till Passive. FD behöver med andra ord inte nödvändigtvis vara samma som nuvarande CD. FD har routrarna koll på lokalt för att säkerställa loopfria vägar, det skickas aldrig till någon annan.

Advertised/Reported Distance: hur långt en granne rapporterar (metric) att det är till en destination router, dvs grannens bästa väg.

Feasibility Condition: Om FD är satt till t.ex. 2000 så vet routern att någongång fanns det en gångbar och loopfri väg till destination med distance så lågt som 2000. Det betyder att alla grannar som tillhandahöll denna väg måste ha varit ännu närmare destinationen, dvs RD måste ha varit lägre än 2000. Alla grannar som hade distance 2000 eller lägre måste ha varit säkra att använda eftersom de aldrig skulle skicka tillbaka det, varken direkt eller via någon annan. Om RD är mindre än FD så vet man att det är en loopfri väg. Detta är en requirement som måste uppfyllas för att en route ska kunna hamna i routingtabellen.

Successor: de bästa routesen och som hamnar i routingtabellen. Default är detta de med lägst metric och som uppfyller feasibility condition.

Feasible Successor: alternativa (inte de bästa) routes som uppfyller feasibility condition. EIGRP får använda dessa men gör inte det default.

Kolla CD, FD och RD.

show ip eigrp topology

Kolla grannar som inte uppfyller feasibility condition.

show ip eigrp topology all-links

Konfiguration

router eigrp [ASN]
eigrp router-id 1.1.1.1
no auto-summary

Disable automatic route summarization (Default sedan IOS 15)

Neighbor

Interface vars IP-adress träffas av network-kommandot blir EIGRP-enabled.

network [ip-address] [wildcard-mask]

Designate passive interfaces.

passive-interface default
no passive-interface gi2

Statically identify neighoring routers. Kan behövas på vissa nätverkstyper.

neighbor [ip-address] [interface]

Max antal prefix från granne.

neighbor 10.0.1.1 maximum-prefix 100

Verify

show ip eigrp neighbors 

Authentication

MD5 authentication måste matcha för grannskap.

interface [interface]
ip authentication mode eigrp md5
ip authentication key-chain eigrp [ASN] [name-of-chain]

Default route

router eigrp 100
 ip default-network 10.0.0.0
default-information allowed

Skicka endast en default route ut på ett interface.

int gi2
 ip summary-address eigrp 100 0.0.0.0 0.0.0.0 5

Summarization

Med EIGRP kan man summera var som helst.

ip eigrp summary-address 192.168.0.0 255.255.0.0

Filtering

Router-id kan användas för att filtrera bort routes från en viss granne.

Per prefix filtering med AD

access-list 7 permit 20.0.0.0
router eigrp 100
 distance 255 0.0.0.0 255.255.255.255 7

Träffar alla grannar

Logging

Others

4 paths default, 16 maximum

maximum-paths 12

Receive updates only

eigrp stub receive-only

BFD

router eigrp 100
 bfd interface gi2

Stänga av split horizon

int gi2
 no ip split-horizon eigrp 100

10% EIGRP-trafik

ip bandwidth-percent eigrp 100 10
timers graceful-restart purge-time 60

Adjust hop-count limit

metric maximum-hops 2

Stuck in active?

debug eigrp packet terse

offset-lists

Redistribution

Default seed metric: infinity

Static

redistribute static

RIP

redistribute rip metric 1500 100 255 1 1500

OSPF

redistribute ospf 1

Named mode

Address Family section

router eigrp TEST
 address-family ipv4 unicast autonomous-system 100
  eigrp router-id 1.1.1.1

Per-AF-interface section

 af-interface Gi3
  authentication mode md5
  authentication key-chain cisco
 exit-af-interface

Per-AF-topology section

 topology base
  redistribute connected
 exit-af-topology

Show

show ip eigrp interfaces detail
show ip eigrp traffic
show ip protocols
show eigrp plugins