Common Routing Protocol Parameters¶
Most routing protocol modules support the following parameters:
Router ID¶
Router ID is configured with router_id node parameter (applies to all routing protocols) or with protocol.router_id node parameter (applies to the selected routing protocol). Router ID can be configured as an IPv4 address or as an integer.
The default router_id is taken from the IPv4 address of the loopback interface or the router_id address pool if there’s no usable IPv4 address on the loopback interface.
Example:
modules: [ ospf, bgp ]
nodes:
r1:
router_id: 10.0.0.1
r2:
ospf.router_id: 10.0.0.2
bgp.router_id: 10.0.1.2
r3:
Router ID for R1 is configured for the whole device and used for OSPFv2/OSPFv3 and BGP
OSPFv2/OSPFv3 router ID for R2 is 10.0.0.2. BGP router ID for R2 is 10.0.1.2
Node ID for R3 is 3 (the third node in the nodes dictionary). The router ID for R3 is taken from the loopback interface (10.0.0.3 unless you changed the loopback address pool) or from the router_id address pool (10.0.0.3).
Address Families¶
Configuration modules for all IGP routing protocols that support multiple address families (IS-IS, EIGRP) or multiple protocol instances (OSPFv2, OSPFv3) support protocol.af global- or node-level module parameter. The af parameter can be a list- or a dictionary of address families.
The default value of the af parameter is set based on address families configured on loopback- or physical interfaces – an address family is enabled within an IGP configuration on a device if at least one interface on that device has an IP address from that address family.
Example:
module: [ isis,ospf ]
isis.af.ipv6: True
nodes:
r1:
isis.af: [ ipv4, ipv6 ]
r2:
isis.af.ipv4: True
r3:
isis.af:
ipv4: True
ipv6: False
r4:
isis.af:
r5:
IS-IS address families are enabled based on configured isis.af parameters
ospf.af parameter is not set – OSPFv2 or OSPFv3 are enabled based on address families used on individual nodes
The following IS-IS address families are configured on individual routers:
R1: IPv4 and IPv6. The configured list of address families overrides the topology defaults
R2: IPv4 and IPv6. Node- and global parameters are dictionaries and can be merged.
R3: IPv4 only. The isis.af parameter is fully specified within the node data and explicitly disables IPv6 AF.
R4: The isis.af parameter is set to an empty value and is, therefore, calculated from the address families.
R5: IPv6 only (global default)
Passive Interfaces¶
An interface is configured as a passive interface (when supported by the routing protocol implementation) if:
protocol.passive parameter is set to
True
on a link or interface.The link type is set to stub (a single device is attached to the link)
The link role is set to passive
A single router or routing protocol daemon is attached to the link.
This parameter applies to IGP protocols.
Example:
module: [ ospf ]
nodes: [ r1, r2 ]
links:
- r1:
r2:
- r1:
- r1:
r2:
role: passive
- r1:
r2:
ospf.passive: True
- r1:
r2:
ospf.passive: False
role: passive
The first link is a transit link
The second link is a stub link (single node attached to the link) ⇨ The corresponding interface on R1 is passive
The third link has a passive role ⇨ passive interfaces on R1 and R2
The fourth link is a transit link, but the ospf.passive value is set on R2 interface ⇨ regular interface on R1, passive interface on R2
The last link has passive role, but the ospf.passive value is set to False on R2 interface ⇨ passive interface on R1, regular interface on R2.
External Interfaces¶
Links with role: external are not included in the IGP routing processes. The external role can be set with a link parameter or by the BGP module.
BGP module sets link role specified in defaults.bgp.ebgp_role on links connecting devices with different AS numbers. The system default value of that parameter is external, excluding inter-AS links from the IGP processes.
If you want to include external subnets into your IGP (and disable BGP next_hop_self processing), set defaults.bgp.ebgp_role to passive.
Disabling a Routing Protocol on a Link/Interface¶
IGP protocols are usually configured on all internal interfaces (see External Interfaces for more details). You can disable an IGP protocol on a link or an individual interface with the protocol: False attribute, for example:
module: [ ospf ]
nodes:
r1:
r2:
links:
- r1:
r2:
ospf: False # Disable OSPF on R1 and R2 interfaces
- r1:
ospf: False # Disable OSPF on R1 interface
r2: # OSPF is still enabled on R2 interface
You can also disable EBGP sessions on a link or an individual interface with the bgp: False attribute, for example:
module: [ bgp ]
defaults.device: iosv
nodes:
r1:
bgp.as: 65000
r2:
bgp.as: 65101
links:
- r1:
r2:
name: Regular EBGP
- r1:
r2:
bgp: False
name: No EBGP session
You cannot influence IBGP sessions with interface- or link attributes; you must use advanced BGP node parameters.
Disabling a Routing Protocol in VRF¶
You can disable a VRF instance of OSPF or BGP with ospf: False or bgp: False VRF parameter.
In the following example, OSPF will be configured in o_1
but not in o_2
:
module: [ ospf, vrf ]
defaults.device: eos
vrfs:
o_1:
o_2:
ospf: False
nodes:
r1:
r2:
links:
- r1:
r2:
vrf: o_1 # VRF OSPF is active between r1 and r2
- r1:
r2:
vrf: o_2 # No OSPF instance in o_2