Thursday, February 6, 2014

NTS: EIGRP

EIGRP




EIGRP (Enhanced Interior Gateway Routing Protocol) is described in draft-savage-eigrp.



EIGRP is protocol number 88.

Packets are sent to multicast 224.0.0.10 (IPv4) or FF02::A (IPv6).



Metrics

  • bandwidth
    • minimum bandwidth (kbps) => 10^7 / bandwidth
  • delay
    • total route delay (tens of microseconds) => delay/10
  • reliability
    • likelihood of successful packet transmission (0-255)
  • load
    • effective load of the route (0-255)
  • mtu
    • minimum MTU size (bytes)

All metrics are calculated from the outgoing interface towards the destination.

metric = [K1 * bandwidth + (K2 * bandwidth) / (256 - load) + K3 * delay] * [K5 / (reliability + K4)]


Default
  • K1=K3=1
  • K2=K4=K5=0
Bandwidth and Delay are the ones used by default.

metric = (10^7/bandwidth + delay/10) x 256

Example
  • minimum bandwidth = 100 Kbps
  • total delay = 20000 + 5000 = 25000 usec
  • metric = (10^7/100 + 25000/10 ) x 256 = 26240000

Mismatched K values (weights for EIGRP metrics) can prevent neighbor relationships.


IOS
router eigrp 1
 metric weights 0 1 0 1 0 0


IOS-XR
router eigrp 1
 address-family ipv4
  metric weights 0 1 0 1 0 0





Route Selection
  • The lowest calculated metric from a router to a destination is called the feasible distance (FD) of that destination
  • If a neighbor's advertised distance to a destination is lower than router's FD, then that neighbor becomes a feasible successor (FS) to the specific destination
  • Every destination for which there is at least one FS, will be installed in the router's EIGRP topology
  • For every destination in the router's EIGRP topology, the route with the lowest metric will be installed in the RIB
  • The neighbor advertising that route will be successor for that destination



Load Balancing

By default traffic to equal cost paths (up to 4) is load balanced.


Unequal-Cost Load Balancing

You can use a variance as a multiplier to determine which routes are feasible for unequal-cost load balancing, according to the following condition:

route metric < lowest cost metric * variance

Routes that follow the above rule are installed into RIB as long as maximum-paths (default=4) is not exceeded.


Traffic Sharing
  • balanced (default)
    • traffic is distributed proportionately to the ratios of the route metrics 
  • minimum
    • traffic is distributed equally across all paths that have a cost equal to the minimum cost path


In general:
  • variance
    • affects what non-lowest cost routes are installed into RIB
  • traffic-share
    • affects how traffic is distributed across best routes

In order to use only one path for traffic forwarding, but install more different-cost paths into RIB (for faster convergence), you can use a combination of both features.

IOS
router eigrp 1
 traffic-share min across-interfaces
 variance x


IOS-XR
router eigrp 1
 address-family ipv4
  variance x




Traffic-share is not supported in IOS-XR.



Stub Routing

A router that is configured as a stub with the "eigrp stub" command cannot be used as transit and shares connected and summary routing information with all neighbor routers by default. Generally, the following can be permitted/denied explicitly :

  • connected
  • static
  • summary
  • redistributed
  • leak-map
  • receive-only

Stub routing also minimizes the exchange of queries.



Route Summarization


IOS
interface X
 ip summary-address eigrp 100 x.x.x.x y.y.y.y



IOS-XR
router eigrp 100
 address-family ipv4
  interface X
   summary-address x.x.x.x/y



Default route can be originated the same way



Split-horizon

Split horizon blocks route information from being advertised by a router out of any interface from which that information originated. With non-broadcast networks (such as Frame Relay multipoint), you may want to disable it with "no ip split-horizon eigrp x".

An alternative is poison-reverse:  Once you learn of a route through an interface, advertise it as unreachable back through that same interface.



Configuration


IOS
router eigrp 1
 network 1.1.1.0 0.0.0.255

!
ipv6 router eigrp 1
!
interface X
 ipv6 eigrp 1


IOS-XR
router eigrp 1
 address-family ipv4
  interface X

!
 address-family ipv6
  interface X



"ip hello-interval eigrp x" and "ip hold-time eigrp x" under an interface can be used to tune the convergence time.



Authentication


IOS
interface X
 ip authentication mode eigrp 1 md5
 ip authentication key-chain eigrp 1 KEYCHAIN

!
key chain KEYCHAIN
 key 1
  key-string TESTPASS



IOS-XR
router eigrp 1
 address-family ipv4
  interface X

   authentication keychain KEYCHAIN
!
key chain KEYCHAIN
 key 1
  key-string TESTPASS

  send-lifetime 1:00:00 february 01 2014 infinite
  accept-lifetime 1:00:00 february 01 2014 infinite



Only MD5 is supported.

Key-chains in IOS-XR might require the use of lifetimes.



PE-CE


R1 (CE)

IOS
router eigrp 1
 network 1.1.1.0 0.0.0.255


IOS-XR
router eigrp 1
 address-family ipv4
  interface X



R2 (PE)

IOS
router eigrp 100
 address-family ipv4 vrf VPN autonomous-system 1
  network 1.1.1.0 0.0.0.255
 exit-address-family


IOS-XR
router eigrp 100
 vrf VPN
  address-family ipv4
   autonomous-system 1
   interface X



CE EIGRP process number and PE EIGRP autonomous-system must match.

Some software releases require the manual addition of "no auto-summary" under the EIGRP process.

EIGRP adjacency might not get established in IOS devices if you initially forget to add the autonomous-system number and add it later. Try to remove the whole EIGRP config and then reapply it if this is the case.

For IPv6 VRFs you have to use the named configuration on IOS (see below).



Verification

IOS
R1#sh ip eigrp neighbors
EIGRP-IPv4 Neighbors for AS(1)
H   Address                 Interface       Hold Uptime   SRTT   RTO  Q  Seq
                                            (sec)         (ms)       Cnt Num
0   10.1.2.2                Fa0/0             14 00:32:28 1280  5000  0  4


R2#sh ip eigrp vrf VPN_A neighbors
EIGRP-IPv4 Neighbors for AS(1) VRF(VPN)
H   Address                 Interface       Hold Uptime   SRTT   RTO  Q  Seq
                                            (sec)         (ms)       Cnt Num
0   10.1.2.1                Fa1/0             13 00:32:47   54   324  0  4



IOS-XR
GSR#sh eigrp vrf VNP neighbors

Sun Jan 12 19:23:12.845 UTC

IPv4-EIGRP neighbors for AS(1) vrf VPN

H   Address                 Interface       Hold Uptime   SRTT   RTO  Q  Seq
                                            (sec)         (ms)       Cnt Num
0   10.1.0.10               Gi0/1/0/1.1019    13 00:01:10    8   200  0  4



IOS
R1#sh ip eigrp topology
EIGRP-IPv4 Topology Table for AS(1)/ID(1.1.1.1)
Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply,
       r - reply Status, s - sia Status

P 10.5.8.0/24, 1 successors, FD is 30720
        via 10.1.2.2 (30720/28160), FastEthernet0/0
P 8.8.8.8/32, 1 successors, FD is 158720
        via 10.1.2.2 (158720/156160), FastEthernet0/0
P 10.1.2.0/24, 1 successors, FD is 28160
        via Connected, FastEthernet0/0
P 1.1.1.1/32, 1 successors, FD is 128256
        via Connected, Loopback0


R2#sh ip eigrp vrf VPN topology
EIGRP-IPv4 Topology Table for AS(1)/ID(10.1.2.2) VRF(VPN)
Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply,
       r - reply Status, s - sia Status

P 10.5.8.0/24, 1 successors, FD is 28160
        via VPNv4 Sourced (28160/0)
P 8.8.8.8/32, 1 successors, FD is 156160
        via VPNv4 Sourced (156160/0)
P 10.1.2.0/24, 1 successors, FD is 28160
        via Connected, FastEthernet1/0
P 1.1.1.1/32, 1 successors, FD is 156160
        via 10.1.2.1 (156160/128256), FastEthernet1/0



IOS-XR
GSR#sh eigrp vrf VPN topology

Sun Jan 12 19:30:02.425 UTC

IPv4-EIGRP Topology Table for AS(1)/ID(19.19.19.19) VRF: VPN

Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply,
       r - reply Status, s - sia Status

P 10.10.10.10/32, 1 successors, FD is 130816
        via 10.1.0.10 (130816/128256), GigabitEthernet0/1/0/1.1019
P 10.9.9.9/32, 1 successors, FD is 130816
        via VPNv4 Sourced (130816/0)
P 10.0.0.0/24, 1 successors, FD is 2816
        via VPNv4 Sourced (2816/0)
P 10.1.0.0/24, 1 successors, FD is 2816
        via Connected, GigabitEthernet0/1/0/1.1019




EIGRP route attributes are transferred as extended communities, EIGRP metric is transferred as BGP MED.

IOS
R2#sh bgp vpnv4 unicast vrf VPN 8.8.8.8/32
BGP routing table entry for 100:1:8.8.8.8/32, version 10
Paths: (1 available, best #1, table VPN)
  Not advertised to any peer
  Local
    5.5.5.5 (metric 3) from 3.3.3.3 (3.3.3.3)
      Origin incomplete, metric 156160, localpref 100, valid, internal, best
      Extended Community: RT:100:1 Cost:pre-bestpath:128:156160
        0x8800:32768:0 0x8801:1:130560 0x8802:65281:25600 0x8803:65281:1500
        0x8806:0:0

      Originator: 5.5.5.5, Cluster list: 3.3.3.3
      mpls labels in/out nolabel/23





Named vs AS

The following is applicable only to IOS.
  • Named (new)
    • supports VRFs under IPv4 and IPv6
    • supports IPv6 VRF-Lite
    • interface configuration goes under the af-interface under the address-family
  • AS (old)
    • supports VRFs under IPv4 only
    • interface configuration goes under the physical interface


Named Configuration (new)

IOS
interface POS2/0
 ip address 10.10.10.1 255.255.255.0
 ipv6 address 2001:20:20:20::1/64
 ipv6 eigrp 2

!

router eigrp EIGRP1
 !
 address-family ipv4 unicast autonomous-system 1
  !
  af-interface POS2/0
   hello-interval 20
   hold-time 60
  exit-af-interface
  !
  network 10.10.10.0 0.0.0.255
 exit-address-family

 !
 address-family ipv6 unicast autonomous-system 2
  !
  af-interface POS2/0
   authentication mode md5
   authentication key-chain KEYCHAIN
  exit-af-interface
  !
 exit-address-family



AS Configuration (old)

IOS
interface POS2/0
 ip address 10.10.10.2 255.255.255.0
 ip hello-interval eigrp 1 20
 ip hold-time eigrp 1 60

 ipv6 address 2001:20:20:20::2/64
 ipv6 eigrp 2
 ipv6 authentication mode eigrp 2 md5
 ipv6 authentication key-chain eigrp 2 KEYCHAIN

!

router eigrp 1
 network 10.10.10.0 0.0.0.255

!
ipv6 router eigrp 2



IOS
R1#sh eigrp address-family ipv4 neighbors
EIGRP-IPv4 VR(EIGRP1) Address-Family Neighbors for AS(1)
H   Address                 Interface       Hold Uptime   SRTT   RTO  Q  Seq
                                            (sec)         (ms)       Cnt Num
0   10.10.10.2              PO2/0             45 00:56:05   46   276  0  30


R2#sh ip eigrp neighbors
EIGRP-IPv4 Neighbors for AS(1)
H   Address                 Interface       Hold Uptime   SRTT   RTO  Q  Seq
                                            (sec)         (ms)       Cnt Num
0   10.10.10.1              PO2/0             43 00:56:23   42   252  0  29



R1#sh eigrp address-family ipv6 int det
EIGRP-IPv6 VR(EIGRP1) Address-Family Interfaces for AS(2)
                        Xmit Queue   Mean   Pacing Time   Multicast    Pending
Interface        Peers  Un/Reliable  SRTT   Un/Reliable   Flow Timer   Routes
PO2/0              1        0/0      1601       0/1         7969           0
  Hello-interval is 5, Hold-time is 15
  Split-horizon is enabled
  Next xmit serial <none>
  Un/reliable mcasts: 0/0  Un/reliable ucasts: 4/8
  Mcast exceptions: 0  CR packets: 0  ACKs suppressed: 0
  Retransmissions sent: 3  Out-of-sequence rcvd: 2
  Topology-ids on interface - 0
  Authentication mode is md5,  key-chain is "KEYCHAIN"


R2#sh ipv6 eigrp int det
EIGRP-IPv6 Interfaces for AS(2)
                        Xmit Queue   Mean   Pacing Time   Multicast    Pending
Interface        Peers  Un/Reliable  SRTT   Un/Reliable   Flow Timer   Routes
PO2/0              1        0/0        32       0/1           50           0
  Hello-interval is 5, Hold-time is 15
  Split-horizon is enabled
  Next xmit serial <none>
  Un/reliable mcasts: 0/0  Un/reliable ucasts: 3/6
  Mcast exceptions: 0  CR packets: 0  ACKs suppressed: 0
  Retransmissions sent: 2  Out-of-sequence rcvd: 1
  Topology-ids on interface - 0
  Authentication mode is md5,  key-chain is "KEYCHAIN"





No comments:

Post a Comment