EIGRP
*****

EIGRP -- Routing Information Protocol is widely deployed interior gateway routing protocol.  EIGRP was developed in the 1990's.  EIGRP is a distance-vector protocol and is based on the dual algorithms. As a distance-vector protocol, the EIGRP router send updates to its neighbors as networks change, thus allowing the convergence to a known topology.

eigrpd supports EIGRP as described in RFC7868

Starting and Stopping eigrpd
============================

The default configuration file name of eigrpd's is eigrpd.conf.  When invocation eigrpd searches directory INSTALL_PREFIX_ETC.  If eigrpd.conf is not there next search current directory.  If an integrated config is specified configuration is written into frr.conf

The EIGRP protocol requires interface information maintained by zebra daemon.  So running zebra is mandatory to run eigrpd.  Thus minimum sequence for running EIGRP is like below:

     # zebra -d
     # eigrpd -d

Please note that zebra must be invoked before eigrpd.

To stop eigrpd.  Please use kill `cat /var/run/eigrpd.pid`.  Certain signals have special meanings to eigrpd.

SIGHUP

SIGUSR1
     Rotate eigrpd Rotate the logfile.

SIGINT
SIGTERM
     eigrpd sweeps all installed EIGRP routes then terminates properly.

eigrpd invocation options.  Common options that can be specified (see Common Invocation Options).

-r
--retain
     When the program terminates, retain routes added by eigrpd.

EIGRP Configuration
===================

 -- Command: router eigrp (1-65535)
     The router eigrp command is necessary to enable EIGRP.  To disable EIGRP, use the no router eigrp (1-65535) command.  EIGRP must be enabled before carrying out any of the EIGRP commands.

 -- Command: no router eigrp (1-65535)
     Disable EIGRP.

 -- EIGRP Command: network NETWORK
 -- EIGRP Command: no network NETWORK
     Set the EIGRP enable interface by NETWORK.  The interfaces which have addresses matching with NETWORK are enabled.

     This group of commands either enables or disables EIGRP interfaces between certain numbers of a specified network address.  For example, if the network for 10.0.0.0/24 is EIGRP enabled, this would result in all the addresses from 10.0.0.0 to 10.0.0.255 being enabled for EIGRP.  The no network command will disable EIGRP for the specified network.

Below is very simple EIGRP configuration.  Interface eth0 and interface which address match to 10.0.0.0/8 are EIGRP enabled.

     !
     router eigrp 1
      network 10.0.0.0/8
     !

Passive interface

 -- EIGRP command: passive-interface (IFNAME|default)
 -- EIGRP command: no passive-interface IFNAME
     This command sets the specified interface to passive mode.  On passive mode interface, all receiving packets are ignored and eigrpd does not send either multicast or unicast EIGRP packets except to EIGRP neighbors specified with neighbor command. The interface may be specified as DEFAULT to make eigrpd default to passive on all interfaces.

     The default is to be passive on all interfaces.

How to Announce EIGRP route
===========================

 -- EIGRP command: redistribute kernel
 -- EIGRP command: redistribute kernel metric (1-4294967295) (0-4294967295) (0-255) (1-255) (1-65535)
 -- EIGRP command: no redistribute kernel
     redistribute kernel redistributes routing information from kernel route entries into the EIGRP tables. no redistribute kernel disables the routes.

 -- EIGRP command: redistribute static
 -- EIGRP command: redistribute static metric (1-4294967295) (0-4294967295) (0-255) (1-255) (1-65535)
 -- EIGRP command: no redistribute static
     redistribute static redistributes routing information from static route entries into the EIGRP tables. no redistribute static disables the routes.

 -- EIGRP command: redistribute connected
 -- EIGRP command: redistribute connected metric (1-4294967295) (0-4294967295) (0-255) (1-255) (1-65535)
 -- EIGRP command: no redistribute connected
     Redistribute connected routes into the EIGRP tables.  no redistribute connected disables the connected routes in the EIGRP tables. This command redistribute connected of the interface which EIGRP disabled. The connected route on EIGRP enabled interface is announced by default.

 -- EIGRP command: redistribute ospf
 -- EIGRP command: redistribute ospf metric (1-4294967295) (0-4294967295) (0-255) (1-255) (1-65535)
 -- EIGRP command: no redistribute ospf
     redistribute ospf redistributes routing information from ospf route entries into the EIGRP tables. no redistribute ospf disables the routes.

 -- EIGRP command: redistribute bgp
 -- EIGRP command: redistribute bgp metric  (1-4294967295) (0-4294967295) (0-255) (1-255) (1-65535)
 -- EIGRP command: no redistribute bgp
     redistribute bgp redistributes routing information from bgp route entries into the EIGRP tables. no redistribute bgp disables the routes.

Show EIGRP Information
======================

To display EIGRP routes.

 -- Command: show ip eigrp topology
     Show EIGRP routes.

The command displays all EIGRP routes.

 -- Command: show ip eigrp topology
     The command displays current EIGRP status

     eigrpd> show ip eigrp topology
     # show ip eigrp topo

     EIGRP Topology Table for AS(4)/ID(0.0.0.0)

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

     P  10.0.2.0/24, 1 successors, FD is 256256, serno: 0
            via Connected, enp0s3

EIGRP Debug Commands
====================

Debug for EIGRP protocol.

 -- Command: debug eigrp packets
     Debug eigrp packets

debug eigrp will show EIGRP packets that are sent and recevied.

 -- Command: debug eigrp transmit
     Debug eigrp transmit events

debug eigrp transmit will display detailed information about the EIGRP transmit events.

 -- Command: show debugging eigrp
     Display eigrpd's debugging option.

show debugging eigrp will show all information currently set for eigrpd debug.