Configuring Dynamic List Next Hop
The routing table on a remote PE has a next hop entry for Ethernet segment identifier (ESI) routes with multiple next-hop elements for multihomed PE devices. For EVPN active-active multihoming device, the ESI route points to two next hop elements. Prior to dynamic list next hop, the routing protocol process (rpd) removed the next-hop entry for the ESI route when the link between the CE device and a multihome PE device goes down. The rpd would then create a new next hop entry for the ESI causing mass MAC route withdrawals and additions.
Starting in Junos OS Release 17.4R1, Junos OS supports the dynamic list next-hop feature in an EVPN network. Now when the link between the CE device and a multihomed PE device goes down, rather than removing the entire next hop and creating a new next hop for the ESI , the rpd removes the affected next hop element from the dynamic list next-hop entry for the ESI route. Dynamic list next hop provides the benefit of reducing mass MAC route withdrawals, improving the device performance, and reducing network convergence time.
To enable the dynamic list next-hop feature, include the dynamic-list-next-hop
statement in the [edit routing-options
forwarding-table]
hierarchy.
If you are performing an unified in-service software upgrade (ISSU) to upgrade your device from a Junos OS release prior to Junos OS Release 17.4R1, you must upgrade both the primary Routing Engine and the backup Routing Engine before enabling the dynamic list next-hop feature.
To disable the dynamic list next-hop feature when it is enabled,
use the delete routing-options forwarding-table dynamic-list-next-hop
statement.
To display the next-hop elements from the Routing Engine’s
forwarding table, use the show route label
and show
route forwarding-table
commands.
The following sample output from the show route label detail
command shows two indirect next hops for an ESI with the dynamic
list next-hop feature enabled.
user@host> show route label 299952 detail mpls.0: 14 destinations, 14 routes (14 active, 0 holddown, 0 hidden) 299952 (1 entry, 1 announced) TSI: KRT in-kernel 299952 /52 -> {Dyn list:indirect(1048577), indirect(1048574)} *EVPN Preference: 7 Next hop type: Dynamic List, Next hop index: 1048575 Address: 0x13f497fc Next-hop reference count: 5 Next hop: ELNH Address 0xb7a3d90 uflags EVPN data Next hop type: Indirect, Next hop index: 0 Address: 0xb7a3d90 Next-hop reference count: 3 Protocol next hop: 10.255.255.2 Label operation: Push 301344 Indirect next hop: 0x135b5c00 1048577 INH Session ID: 0x181 Next hop type: Router, Next hop index: 619 Address: 0xb7a3d30 Next-hop reference count: 4 Next hop: 1.0.0.4 via ge-0/0/1.0 Label operation: Push 301344, Push 299792(top) Label TTL action: no-prop-ttl, no-prop-ttl(top) Load balance label: Label 301344: None; Label 299792: None; Label element ptr: 0xb7a3cc0 Label parent element ptr: 0xb7a34e0 Label element references: 1 Label element child references: 0 Label element lsp id: 0 Next hop: ELNH Address 0xb7a37f0 uflags EVPN data Next hop type: Indirect, Next hop index: 0 Address: 0xb7a37f0 Next-hop reference count: 3 Protocol next hop: 10.255.255.3 Label operation: Push 301632 Indirect next hop: 0x135b5480 1048574 INH Session ID: 0x180 Next hop type: Router, Next hop index: 600 Address: 0xb7a3790 Next-hop reference count: 4 Next hop: 1.0.0.4 via ge-0/0/1.0 Label operation: Push 301632, Push 299776(top) Label TTL action: no-prop-ttl, no-prop-ttl(top) Load balance label: Label 301632: None; Label 299776: None; Label element ptr: 0xb7a3720 Label parent element ptr: 0xb7a3420 Label element references: 1 Label element child references: 0 Label element lsp id: 0 State: <Active Int> Age: 1:18 Validation State: unverified Task: evpn global task Announcement bits (2): 1-KRT 2-evpn global task AS path: I Routing Instance blue, Route Type Egress-MAC, ESI 00:11:22:33:44:55:66:77:88:99
The following sample output from the show route forwarding
table
command shows two next-hop entries for a destination
with a multihomed route.
user@host> show route forwarding-table label 299952 extensive MPLS: Destination: 299952 Route type: user Route reference: 0 Route interface-index: 0 Multicast RPF nh index: 0 P2mpidx: 0 Flags: sent to PFE, rt nh decoupled Next-hop type: indirect Index: 1048575 Reference: 2 Nexthop: Next-hop type: composite Index: 601 Reference: 2 Next-hop type: indirect Index: 1048574 Reference: 3 Nexthop: 1.0.0.4 Next-hop type: Push 301632, Push 299776(top) Index: 600 Reference: 2 Load Balance Label: None Next-hop interface: ge-0/0/1.0 Next-hop type: indirect Index: 1048577 Reference: 3 Nexthop: 1.0.0.4 Next-hop type: Push 301344, Push 299792(top) Index: 619 Reference: 2 Load Balance Label: None Next-hop interface: ge-0/0/1.0
The following sample shows the show route forwarding table
command output after one of the PE devices has been disabled. It
shows one next-hop element and one empty next-hop element.
user@host> show route forwarding-table label 299952 extensive Routing table: default.mpls [Index 0] MPLS: Destination: 299952 Route type: user Route reference: 0 Route interface-index: 0 Multicast RPF nh index: 0 P2mpidx: 0 Flags: sent to PFE, rt nh decoupled Next-hop type: indirect Index: 1048575 Reference: 2 Nexthop: Next-hop type: composite Index: 601 Reference: 2 Next-hop type: indirect Index: 1048577 Reference: 3 Nexthop: 1.0.0.4 Next-hop type: Push 301344, Push 299792(top) Index: 619 Reference: 2 Load Balance Label: None Next-hop interface: ge-0/0/1.0