From cf08a2ba5b76b22b2df897f11bd7c4f0c63adee5 Mon Sep 17 00:00:00 2001 From: Andre Kostur Date: Fri, 20 Jun 2025 17:48:05 +0000 Subject: [PATCH] Update cEOS configuration to use next-hop-self The upgraded cEOS instance also changes from single-agent to multi-agent mode. This includes a behaviour change around the next-hop-self feature. --- ansible/roles/eos/templates/dpu-tor.j2 | 1 + ansible/roles/eos/templates/m0-mx.j2 | 1 + ansible/roles/eos/templates/t0-8-lag-leaf.j2 | 1 + ansible/roles/eos/templates/t0-backend-leaf.j2 | 1 + ansible/roles/eos/templates/t0-leaf-lag-2.j2 | 1 + ansible/roles/eos/templates/t0-leaf.j2 | 1 + ansible/roles/eos/templates/t0-mclag-leaf.j2 | 1 + ansible/roles/eos/templates/t0-v6-leaf.j2 | 1 + ansible/roles/eos/templates/t1-28-lag-spine.j2 | 1 + ansible/roles/eos/templates/t1-28-lag-tor.j2 | 1 + ansible/roles/eos/templates/t1-56-lag-tor.j2 | 1 + ansible/roles/eos/templates/t1-64-lag-tor.j2 | 1 + ansible/roles/eos/templates/t1-8-lag-spine.j2 | 1 + ansible/roles/eos/templates/t1-8-lag-tor.j2 | 1 + ansible/roles/eos/templates/t1-backend-tor.j2 | 1 + ansible/roles/eos/templates/t1-lag-spine.j2 | 1 + ansible/roles/eos/templates/t1-lag-tor.j2 | 1 + ansible/roles/eos/templates/t2-core.j2 | 1 + ansible/roles/eos/templates/t2-leaf.j2 | 1 + ansible/roles/eos/templates/t2-vs-core.j2 | 1 + ansible/roles/eos/templates/t2-vs-leaf.j2 | 1 + 21 files changed, 21 insertions(+) diff --git a/ansible/roles/eos/templates/dpu-tor.j2 b/ansible/roles/eos/templates/dpu-tor.j2 index 0b6ec97538..ca998aed03 100644 --- a/ansible/roles/eos/templates/dpu-tor.j2 +++ b/ansible/roles/eos/templates/dpu-tor.j2 @@ -106,6 +106,7 @@ router bgp {{ host['bgp']['asn'] }} {% for remote_ip in remote_ips %} neighbor {{ remote_ip }} remote-as {{ asn }} neighbor {{ remote_ip }} description {{ asn }} + neighbor {{ remote_ip }} next-hop-self {% if remote_ip | ipv6 %} address-family ipv6 neighbor {{ remote_ip }} activate diff --git a/ansible/roles/eos/templates/m0-mx.j2 b/ansible/roles/eos/templates/m0-mx.j2 index 641059da5d..f1b924dbe2 100644 --- a/ansible/roles/eos/templates/m0-mx.j2 +++ b/ansible/roles/eos/templates/m0-mx.j2 @@ -102,6 +102,7 @@ router bgp {{ host['bgp']['asn'] }} {% for remote_ip in remote_ips %} neighbor {{ remote_ip }} remote-as {{ asn }} neighbor {{ remote_ip }} description {{ asn }} + neighbor {{ remote_ip }} next-hop-self {% if remote_ip | ipv6 %} address-family ipv6 neighbor {{ remote_ip }} activate diff --git a/ansible/roles/eos/templates/t0-8-lag-leaf.j2 b/ansible/roles/eos/templates/t0-8-lag-leaf.j2 index 3e1d0f62d6..246cb22c6b 100644 --- a/ansible/roles/eos/templates/t0-8-lag-leaf.j2 +++ b/ansible/roles/eos/templates/t0-8-lag-leaf.j2 @@ -106,6 +106,7 @@ router bgp {{ host['bgp']['asn'] }} {% for remote_ip in remote_ips %} neighbor {{ remote_ip }} remote-as {{ asn }} neighbor {{ remote_ip }} description {{ asn }} + neighbor {{ remote_ip }} next-hop-self {% if remote_ip | ipv6 %} address-family ipv6 neighbor {{ remote_ip }} activate diff --git a/ansible/roles/eos/templates/t0-backend-leaf.j2 b/ansible/roles/eos/templates/t0-backend-leaf.j2 index 7f5b0e9e8d..0240dfcdf0 100644 --- a/ansible/roles/eos/templates/t0-backend-leaf.j2 +++ b/ansible/roles/eos/templates/t0-backend-leaf.j2 @@ -136,6 +136,7 @@ router bgp {{ host['bgp']['asn'] }} {% for remote_ip in remote_ips %} neighbor {{ remote_ip }} remote-as {{ asn }} neighbor {{ remote_ip }} description {{ asn }} + neighbor {{ remote_ip }} next-hop-self {% if remote_ip | ipv6 %} address-family ipv6 neighbor {{ remote_ip }} activate diff --git a/ansible/roles/eos/templates/t0-leaf-lag-2.j2 b/ansible/roles/eos/templates/t0-leaf-lag-2.j2 index 3e1d0f62d6..246cb22c6b 100644 --- a/ansible/roles/eos/templates/t0-leaf-lag-2.j2 +++ b/ansible/roles/eos/templates/t0-leaf-lag-2.j2 @@ -106,6 +106,7 @@ router bgp {{ host['bgp']['asn'] }} {% for remote_ip in remote_ips %} neighbor {{ remote_ip }} remote-as {{ asn }} neighbor {{ remote_ip }} description {{ asn }} + neighbor {{ remote_ip }} next-hop-self {% if remote_ip | ipv6 %} address-family ipv6 neighbor {{ remote_ip }} activate diff --git a/ansible/roles/eos/templates/t0-leaf.j2 b/ansible/roles/eos/templates/t0-leaf.j2 index b13781177c..f8483454ab 100644 --- a/ansible/roles/eos/templates/t0-leaf.j2 +++ b/ansible/roles/eos/templates/t0-leaf.j2 @@ -106,6 +106,7 @@ router bgp {{ host['bgp']['asn'] }} {% for remote_ip in remote_ips %} neighbor {{ remote_ip }} remote-as {{ asn }} neighbor {{ remote_ip }} description {{ asn }} + neighbor {{ remote_ip }} next-hop-self {% if remote_ip | ipv6 %} address-family ipv6 neighbor {{ remote_ip }} activate diff --git a/ansible/roles/eos/templates/t0-mclag-leaf.j2 b/ansible/roles/eos/templates/t0-mclag-leaf.j2 index 0b6ec97538..ca998aed03 100644 --- a/ansible/roles/eos/templates/t0-mclag-leaf.j2 +++ b/ansible/roles/eos/templates/t0-mclag-leaf.j2 @@ -106,6 +106,7 @@ router bgp {{ host['bgp']['asn'] }} {% for remote_ip in remote_ips %} neighbor {{ remote_ip }} remote-as {{ asn }} neighbor {{ remote_ip }} description {{ asn }} + neighbor {{ remote_ip }} next-hop-self {% if remote_ip | ipv6 %} address-family ipv6 neighbor {{ remote_ip }} activate diff --git a/ansible/roles/eos/templates/t0-v6-leaf.j2 b/ansible/roles/eos/templates/t0-v6-leaf.j2 index 36239e2839..0b3838eace 100644 --- a/ansible/roles/eos/templates/t0-v6-leaf.j2 +++ b/ansible/roles/eos/templates/t0-v6-leaf.j2 @@ -106,6 +106,7 @@ router bgp {{ host['bgp']['asn'] }} {% for remote_ip in remote_ips %} neighbor {{ remote_ip }} remote-as {{ asn }} neighbor {{ remote_ip }} description {{ asn }} + neighbor {{ remote_ip }} next-hop-self {% if remote_ip | ipv6 %} address-family ipv6 neighbor {{ remote_ip }} activate diff --git a/ansible/roles/eos/templates/t1-28-lag-spine.j2 b/ansible/roles/eos/templates/t1-28-lag-spine.j2 index 3e1d0f62d6..246cb22c6b 100644 --- a/ansible/roles/eos/templates/t1-28-lag-spine.j2 +++ b/ansible/roles/eos/templates/t1-28-lag-spine.j2 @@ -106,6 +106,7 @@ router bgp {{ host['bgp']['asn'] }} {% for remote_ip in remote_ips %} neighbor {{ remote_ip }} remote-as {{ asn }} neighbor {{ remote_ip }} description {{ asn }} + neighbor {{ remote_ip }} next-hop-self {% if remote_ip | ipv6 %} address-family ipv6 neighbor {{ remote_ip }} activate diff --git a/ansible/roles/eos/templates/t1-28-lag-tor.j2 b/ansible/roles/eos/templates/t1-28-lag-tor.j2 index 5424ca361d..37199ff648 100644 --- a/ansible/roles/eos/templates/t1-28-lag-tor.j2 +++ b/ansible/roles/eos/templates/t1-28-lag-tor.j2 @@ -110,6 +110,7 @@ router bgp {{ host['bgp']['asn'] }} {% for remote_ip in remote_ips %} neighbor {{ remote_ip }} remote-as {{ asn }} neighbor {{ remote_ip }} description {{ asn }} + neighbor {{ remote_ip }} next-hop-self {% if remote_ip | ipv6 %} address-family ipv6 neighbor {{ remote_ip }} activate diff --git a/ansible/roles/eos/templates/t1-56-lag-tor.j2 b/ansible/roles/eos/templates/t1-56-lag-tor.j2 index be3dcc6439..c1010d108f 100644 --- a/ansible/roles/eos/templates/t1-56-lag-tor.j2 +++ b/ansible/roles/eos/templates/t1-56-lag-tor.j2 @@ -110,6 +110,7 @@ router bgp {{ host['bgp']['asn'] }} {% for remote_ip in remote_ips %} neighbor {{ remote_ip }} remote-as {{ asn }} neighbor {{ remote_ip }} description {{ asn }} + neighbor {{ remote_ip }} next-hop-self {% if remote_ip | ipv6 %} address-family ipv6 neighbor {{ remote_ip }} activate diff --git a/ansible/roles/eos/templates/t1-64-lag-tor.j2 b/ansible/roles/eos/templates/t1-64-lag-tor.j2 index be3dcc6439..c1010d108f 100644 --- a/ansible/roles/eos/templates/t1-64-lag-tor.j2 +++ b/ansible/roles/eos/templates/t1-64-lag-tor.j2 @@ -110,6 +110,7 @@ router bgp {{ host['bgp']['asn'] }} {% for remote_ip in remote_ips %} neighbor {{ remote_ip }} remote-as {{ asn }} neighbor {{ remote_ip }} description {{ asn }} + neighbor {{ remote_ip }} next-hop-self {% if remote_ip | ipv6 %} address-family ipv6 neighbor {{ remote_ip }} activate diff --git a/ansible/roles/eos/templates/t1-8-lag-spine.j2 b/ansible/roles/eos/templates/t1-8-lag-spine.j2 index b156e6d51d..b83ca6a0db 100644 --- a/ansible/roles/eos/templates/t1-8-lag-spine.j2 +++ b/ansible/roles/eos/templates/t1-8-lag-spine.j2 @@ -104,6 +104,7 @@ router bgp {{ host['bgp']['asn'] }} {% for remote_ip in remote_ips %} neighbor {{ remote_ip }} remote-as {{ asn }} neighbor {{ remote_ip }} description {{ asn }} + neighbor {{ remote_ip }} next-hop-self {% if remote_ip | ipv6 %} address-family ipv6 neighbor {{ remote_ip }} activate diff --git a/ansible/roles/eos/templates/t1-8-lag-tor.j2 b/ansible/roles/eos/templates/t1-8-lag-tor.j2 index 0becdfa222..e84ecb6709 100644 --- a/ansible/roles/eos/templates/t1-8-lag-tor.j2 +++ b/ansible/roles/eos/templates/t1-8-lag-tor.j2 @@ -108,6 +108,7 @@ router bgp {{ host['bgp']['asn'] }} {% for remote_ip in remote_ips %} neighbor {{ remote_ip }} remote-as {{ asn }} neighbor {{ remote_ip }} description {{ asn }} + neighbor {{ remote_ip }} next-hop-self {% if remote_ip | ipv6 %} address-family ipv6 neighbor {{ remote_ip }} activate diff --git a/ansible/roles/eos/templates/t1-backend-tor.j2 b/ansible/roles/eos/templates/t1-backend-tor.j2 index 7f5b0e9e8d..0240dfcdf0 100644 --- a/ansible/roles/eos/templates/t1-backend-tor.j2 +++ b/ansible/roles/eos/templates/t1-backend-tor.j2 @@ -136,6 +136,7 @@ router bgp {{ host['bgp']['asn'] }} {% for remote_ip in remote_ips %} neighbor {{ remote_ip }} remote-as {{ asn }} neighbor {{ remote_ip }} description {{ asn }} + neighbor {{ remote_ip }} next-hop-self {% if remote_ip | ipv6 %} address-family ipv6 neighbor {{ remote_ip }} activate diff --git a/ansible/roles/eos/templates/t1-lag-spine.j2 b/ansible/roles/eos/templates/t1-lag-spine.j2 index c7f006de7c..1e133ab3dd 100644 --- a/ansible/roles/eos/templates/t1-lag-spine.j2 +++ b/ansible/roles/eos/templates/t1-lag-spine.j2 @@ -106,6 +106,7 @@ router bgp {{ host['bgp']['asn'] }} {% for remote_ip in remote_ips %} neighbor {{ remote_ip }} remote-as {{ asn }} neighbor {{ remote_ip }} description {{ asn }} + neighbor {{ remote_ip }} next-hop-self {% if remote_ip | ipv6 %} address-family ipv6 neighbor {{ remote_ip }} activate diff --git a/ansible/roles/eos/templates/t1-lag-tor.j2 b/ansible/roles/eos/templates/t1-lag-tor.j2 index 5b85edc34a..48793369bc 100644 --- a/ansible/roles/eos/templates/t1-lag-tor.j2 +++ b/ansible/roles/eos/templates/t1-lag-tor.j2 @@ -103,6 +103,7 @@ router bgp {{ host['bgp']['asn'] }} router-id {{ host['bgp']['router-id'] if host['bgp']['router-id'] is defined else host['interfaces']['Loopback0']['ipv4'] | ipaddr('address') }} neighbor {{ remote_ip }} remote-as {{ asn }} neighbor {{ remote_ip }} description {{ asn }} + neighbor {{ remote_ip }} next-hop-self {% if remote_ip | ipv6 %} address-family ipv6 neighbor {{ remote_ip }} activate diff --git a/ansible/roles/eos/templates/t2-core.j2 b/ansible/roles/eos/templates/t2-core.j2 index 50f4438687..b1d7490e90 100644 --- a/ansible/roles/eos/templates/t2-core.j2 +++ b/ansible/roles/eos/templates/t2-core.j2 @@ -113,6 +113,7 @@ router bgp {{ host['bgp']['asn'] }} neighbor {{ remote_ip }} remote-as {{ asn }} neighbor {{ remote_ip }} maximum-routes 0 neighbor {{ remote_ip }} description {{ asn }} + neighbor {{ remote_ip }} next-hop-self {% if remote_ip | ipv6 %} address-family ipv6 neighbor {{ remote_ip }} activate diff --git a/ansible/roles/eos/templates/t2-leaf.j2 b/ansible/roles/eos/templates/t2-leaf.j2 index 37da63bb63..a26f83451b 100644 --- a/ansible/roles/eos/templates/t2-leaf.j2 +++ b/ansible/roles/eos/templates/t2-leaf.j2 @@ -113,6 +113,7 @@ router bgp {{ host['bgp']['asn'] }} neighbor {{ remote_ip }} remote-as {{ asn }} neighbor {{ remote_ip }} maximum-routes 0 neighbor {{ remote_ip }} description {{ asn }} + neighbor {{ remote_ip }} next-hop-self neighbor {{ remote_ip }} allowas-in {% if remote_ip | ipv6 %} address-family ipv6 diff --git a/ansible/roles/eos/templates/t2-vs-core.j2 b/ansible/roles/eos/templates/t2-vs-core.j2 index 76b6ee32fb..12829bcfb8 100644 --- a/ansible/roles/eos/templates/t2-vs-core.j2 +++ b/ansible/roles/eos/templates/t2-vs-core.j2 @@ -113,6 +113,7 @@ router bgp {{ host['bgp']['asn'] }} neighbor {{ remote_ip }} remote-as {{ asn }} neighbor {{ remote_ip }} maximum-routes 0 neighbor {{ remote_ip }} description {{ asn }} + neighbor {{ remote_ip }} next-hop-self {% if remote_ip | ipv6 %} address-family ipv6 neighbor {{ remote_ip }} activate diff --git a/ansible/roles/eos/templates/t2-vs-leaf.j2 b/ansible/roles/eos/templates/t2-vs-leaf.j2 index 76b6ee32fb..12829bcfb8 100644 --- a/ansible/roles/eos/templates/t2-vs-leaf.j2 +++ b/ansible/roles/eos/templates/t2-vs-leaf.j2 @@ -113,6 +113,7 @@ router bgp {{ host['bgp']['asn'] }} neighbor {{ remote_ip }} remote-as {{ asn }} neighbor {{ remote_ip }} maximum-routes 0 neighbor {{ remote_ip }} description {{ asn }} + neighbor {{ remote_ip }} next-hop-self {% if remote_ip | ipv6 %} address-family ipv6 neighbor {{ remote_ip }} activate