From 8c5d088a412a2c5108ca76b533601c97aa47687f Mon Sep 17 00:00:00 2001 From: gmuloc Date: Fri, 21 Jul 2023 09:05:08 +0200 Subject: [PATCH 1/6] Fix(eos_designs): Reproduce the issue --- .../fabric/DC1_FABRIC-documentation.md | 85 +----------- .../fabric/DC1_FABRIC-p2p-links.csv | 38 +----- .../fabric/DC1_FABRIC-topology.csv | 123 +----------------- .../structured_configs/DC1-SPINE5.yml | 42 ++++++ .../inventory/group_vars/DC1_FABRIC.yml | 11 +- 5 files changed, 61 insertions(+), 238 deletions(-) diff --git a/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/documentation/fabric/DC1_FABRIC-documentation.md b/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/documentation/fabric/DC1_FABRIC-documentation.md index a0600543116..02d5a4bd608 100644 --- a/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/documentation/fabric/DC1_FABRIC-documentation.md +++ b/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/documentation/fabric/DC1_FABRIC-documentation.md @@ -49,56 +49,10 @@ | Type | Node | Node Interface | Peer Type | Peer Node | Peer Interface | | ---- | ---- | -------------- | --------- | ----------| -------------- | -| l3leaf | DC1-BL1A | Ethernet1 | spine | DC1-SPINE1 | Ethernet6 | -| l3leaf | DC1-BL1A | Ethernet2 | spine | DC1-SPINE2 | Ethernet6 | -| l3leaf | DC1-BL1A | Ethernet3 | spine | DC1-SPINE3 | Ethernet6 | -| l3leaf | DC1-BL1A | Ethernet4 | spine | DC1-SPINE4 | Ethernet6 | -| l3leaf | DC1-BL1A | Ethernet9 | l3leaf | DC1-BL1B | Ethernet9 | -| l3leaf | DC1-BL1A | Ethernet10 | l3leaf | DC1-BL1B | Ethernet10 | -| l3leaf | DC1-BL1B | Ethernet1 | spine | DC1-SPINE1 | Ethernet7 | -| l3leaf | DC1-BL1B | Ethernet2 | spine | DC1-SPINE2 | Ethernet7 | -| l3leaf | DC1-BL1B | Ethernet3 | spine | DC1-SPINE3 | Ethernet7 | -| l3leaf | DC1-BL1B | Ethernet4 | spine | DC1-SPINE4 | Ethernet7 | -| l2leaf | DC1-L2LEAF1A | Ethernet1 | l3leaf | DC1-LEAF2A | Ethernet7 | -| l2leaf | DC1-L2LEAF1A | Ethernet2 | l3leaf | DC1-LEAF2B | Ethernet7 | -| l2leaf | DC1-L2LEAF2A | Ethernet1 | l3leaf | DC1-SVC3A | Ethernet7 | -| l2leaf | DC1-L2LEAF2A | Ethernet2 | l3leaf | DC1-SVC3B | Ethernet7 | -| l2leaf | DC1-L2LEAF2A | Ethernet3 | mlag_peer | DC1-L2LEAF2B | Ethernet3 | -| l2leaf | DC1-L2LEAF2A | Ethernet4 | mlag_peer | DC1-L2LEAF2B | Ethernet4 | -| l2leaf | DC1-L2LEAF2B | Ethernet1 | l3leaf | DC1-SVC3A | Ethernet8 | -| l2leaf | DC1-L2LEAF2B | Ethernet2 | l3leaf | DC1-SVC3B | Ethernet8 | -| l3leaf | DC1-LEAF1A | Ethernet1 | spine | DC1-SPINE1 | Ethernet1 | -| l3leaf | DC1-LEAF1A | Ethernet2 | spine | DC1-SPINE2 | Ethernet1 | -| l3leaf | DC1-LEAF1A | Ethernet3 | spine | DC1-SPINE3 | Ethernet1 | -| l3leaf | DC1-LEAF1A | Ethernet4 | spine | DC1-SPINE4 | Ethernet1 | -| l3leaf | DC1-LEAF2A | Ethernet1 | spine | DC1-SPINE1 | Ethernet2 | -| l3leaf | DC1-LEAF2A | Ethernet2 | spine | DC1-SPINE2 | Ethernet2 | -| l3leaf | DC1-LEAF2A | Ethernet3 | spine | DC1-SPINE3 | Ethernet2 | -| l3leaf | DC1-LEAF2A | Ethernet4 | spine | DC1-SPINE4 | Ethernet2 | -| l3leaf | DC1-LEAF2A | Ethernet5 | mlag_peer | DC1-LEAF2B | Ethernet5 | -| l3leaf | DC1-LEAF2A | Ethernet6 | mlag_peer | DC1-LEAF2B | Ethernet6 | -| l3leaf | DC1-LEAF2B | Ethernet1 | spine | DC1-SPINE1 | Ethernet3 | -| l3leaf | DC1-LEAF2B | Ethernet2 | spine | DC1-SPINE2 | Ethernet3 | -| l3leaf | DC1-LEAF2B | Ethernet3 | spine | DC1-SPINE3 | Ethernet3 | -| l3leaf | DC1-LEAF2B | Ethernet4 | spine | DC1-SPINE4 | Ethernet3 | -| l3leaf | DC1-LEAF3A | Ethernet1 | spine | DC1-SPINE5 | Ethernet1 | -| l3leaf | DC1-LEAF3A | Ethernet5 | mlag_peer | DC1-LEAF3B | Ethernet5 | -| l3leaf | DC1-LEAF3A | Ethernet6 | mlag_peer | DC1-LEAF3B | Ethernet6 | -| l3leaf | DC1-LEAF3B | Ethernet1 | spine | DC1-SPINE5 | Ethernet2 | -| l3leaf | DC1-LEAF4A | Ethernet1 | spine | DC1-SPINE6 | Ethernet1 | -| l3leaf | DC1-LEAF4A | Ethernet5 | mlag_peer | DC1-LEAF4B | Ethernet5 | -| l3leaf | DC1-LEAF4A | Ethernet6 | mlag_peer | DC1-LEAF4B | Ethernet6 | -| l3leaf | DC1-LEAF4B | Ethernet1 | spine | DC1-SPINE6 | Ethernet2 | -| spine | DC1-SPINE1 | Ethernet4 | l3leaf | DC1-SVC3A | Ethernet1 | -| spine | DC1-SPINE1 | Ethernet5 | l3leaf | DC1-SVC3B | Ethernet1 | -| spine | DC1-SPINE2 | Ethernet4 | l3leaf | DC1-SVC3A | Ethernet2 | -| spine | DC1-SPINE2 | Ethernet5 | l3leaf | DC1-SVC3B | Ethernet2 | -| spine | DC1-SPINE3 | Ethernet4 | l3leaf | DC1-SVC3A | Ethernet3 | -| spine | DC1-SPINE3 | Ethernet5 | l3leaf | DC1-SVC3B | Ethernet3 | -| spine | DC1-SPINE4 | Ethernet4 | l3leaf | DC1-SVC3A | Ethernet4 | -| spine | DC1-SPINE4 | Ethernet5 | l3leaf | DC1-SVC3B | Ethernet4 | -| l3leaf | DC1-SVC3A | Ethernet5 | mlag_peer | DC1-SVC3B | Ethernet5 | -| l3leaf | DC1-SVC3A | Ethernet6 | mlag_peer | DC1-SVC3B | Ethernet6 | +| spine | DC1-SPINE5 | Ethernet1 | l3leaf | DC1-LEAF3A | Ethernet1 | +| spine | DC1-SPINE5 | Ethernet2 | l3leaf | DC1-LEAF3B | Ethernet1 | +| spine | DC1-SPINE5 | Ethernet3 | l3leaf | DC1-LEAF3A | Ethernet2 | +| spine | DC1-SPINE5 | Ethernet4 | l3leaf | DC1-LEAF3B | Ethernet2 | ## Fabric IP Allocation @@ -116,48 +70,21 @@ | Loopback Pool | Available Addresses | Assigned addresses | Assigned Address % | | ------------- | ------------------- | ------------------ | ------------------ | -| 192.168.255.0/24 | 256 | 17 | 6.65 % | +| 192.168.255.0/24 | 256 | 1 | 0.4 % | ### Loopback0 Interfaces Node Allocation | POD | Node | Loopback0 | | --- | ---- | --------- | -| DC1_FABRIC | DC1-BL1A | 192.168.255.10/32 | -| DC1_FABRIC | DC1-BL1B | 192.168.255.11/32 | -| DC1_FABRIC | DC1-LEAF1A | 192.168.255.5/32 | -| DC1_FABRIC | DC1-LEAF2A | 192.168.255.6/32 | -| DC1_FABRIC | DC1-LEAF2B | 192.168.255.7/32 | -| DC1_FABRIC | DC1-LEAF3A | 192.168.255.12/32 | -| DC1_FABRIC | DC1-LEAF3B | 192.168.255.13/32 | -| DC1_FABRIC | DC1-LEAF4A | 192.168.255.14/32 | -| DC1_FABRIC | DC1-LEAF4B | 192.168.255.15/32 | -| DC1_FABRIC | DC1-SPINE1 | 192.168.255.1/32 | -| DC1_FABRIC | DC1-SPINE2 | 192.168.255.2/32 | -| DC1_FABRIC | DC1-SPINE3 | 192.168.255.3/32 | -| DC1_FABRIC | DC1-SPINE4 | 192.168.255.4/32 | | DC1_FABRIC | DC1-SPINE5 | 192.168.255.5/32 | -| DC1_FABRIC | DC1-SPINE6 | 192.168.255.6/32 | -| DC1_FABRIC | DC1-SVC3A | 192.168.255.8/32 | -| DC1_FABRIC | DC1-SVC3B | 192.168.255.9/32 | ### VTEP Loopback VXLAN Tunnel Source Interfaces (VTEPs Only) | VTEP Loopback Pool | Available Addresses | Assigned addresses | Assigned Address % | | --------------------- | ------------------- | ------------------ | ------------------ | -| 192.168.254.0/24 | 256 | 11 | 4.3 % | +| 192.168.254.0/24 | 256 | 0 | 0.0 % | ### VTEP Loopback Node allocation | POD | Node | Loopback1 | | --- | ---- | --------- | -| DC1_FABRIC | DC1-BL1A | 192.168.254.10/32 | -| DC1_FABRIC | DC1-BL1B | 192.168.254.11/32 | -| DC1_FABRIC | DC1-LEAF1A | 192.168.254.5/32 | -| DC1_FABRIC | DC1-LEAF2A | 192.168.254.6/32 | -| DC1_FABRIC | DC1-LEAF2B | 192.168.254.6/32 | -| DC1_FABRIC | DC1-LEAF3A | 192.168.254.12/32 | -| DC1_FABRIC | DC1-LEAF3B | 192.168.254.12/32 | -| DC1_FABRIC | DC1-LEAF4A | 192.168.254.14/32 | -| DC1_FABRIC | DC1-LEAF4B | 192.168.254.14/32 | -| DC1_FABRIC | DC1-SVC3A | 192.168.254.8/32 | -| DC1_FABRIC | DC1-SVC3B | 192.168.254.8/32 | diff --git a/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/documentation/fabric/DC1_FABRIC-p2p-links.csv b/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/documentation/fabric/DC1_FABRIC-p2p-links.csv index f4fe9c50a7d..cef023400df 100644 --- a/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/documentation/fabric/DC1_FABRIC-p2p-links.csv +++ b/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/documentation/fabric/DC1_FABRIC-p2p-links.csv @@ -1,35 +1,5 @@ Type,Node,Node Interface,Leaf IP Address,Peer Type,Peer Node,Peer Interface,Peer IP Address -l3leaf,DC1-BL1A,Ethernet1,,spine,DC1-SPINE1,Ethernet6, -l3leaf,DC1-BL1A,Ethernet2,,spine,DC1-SPINE2,Ethernet6, -l3leaf,DC1-BL1A,Ethernet3,,spine,DC1-SPINE3,Ethernet6, -l3leaf,DC1-BL1A,Ethernet4,,spine,DC1-SPINE4,Ethernet6, -l3leaf,DC1-BL1A,Ethernet9,,l3leaf,DC1-BL1B,Ethernet9, -l3leaf,DC1-BL1A,Ethernet10,,l3leaf,DC1-BL1B,Ethernet10, -l3leaf,DC1-BL1B,Ethernet1,,spine,DC1-SPINE1,Ethernet7, -l3leaf,DC1-BL1B,Ethernet2,,spine,DC1-SPINE2,Ethernet7, -l3leaf,DC1-BL1B,Ethernet3,,spine,DC1-SPINE3,Ethernet7, -l3leaf,DC1-BL1B,Ethernet4,,spine,DC1-SPINE4,Ethernet7, -l3leaf,DC1-LEAF1A,Ethernet1,,spine,DC1-SPINE1,Ethernet1, -l3leaf,DC1-LEAF1A,Ethernet2,,spine,DC1-SPINE2,Ethernet1, -l3leaf,DC1-LEAF1A,Ethernet3,,spine,DC1-SPINE3,Ethernet1, -l3leaf,DC1-LEAF1A,Ethernet4,,spine,DC1-SPINE4,Ethernet1, -l3leaf,DC1-LEAF2A,Ethernet1,,spine,DC1-SPINE1,Ethernet2, -l3leaf,DC1-LEAF2A,Ethernet2,,spine,DC1-SPINE2,Ethernet2, -l3leaf,DC1-LEAF2A,Ethernet3,,spine,DC1-SPINE3,Ethernet2, -l3leaf,DC1-LEAF2A,Ethernet4,,spine,DC1-SPINE4,Ethernet2, -l3leaf,DC1-LEAF2B,Ethernet1,,spine,DC1-SPINE1,Ethernet3, -l3leaf,DC1-LEAF2B,Ethernet2,,spine,DC1-SPINE2,Ethernet3, -l3leaf,DC1-LEAF2B,Ethernet3,,spine,DC1-SPINE3,Ethernet3, -l3leaf,DC1-LEAF2B,Ethernet4,,spine,DC1-SPINE4,Ethernet3, -l3leaf,DC1-LEAF3A,Ethernet1,,spine,DC1-SPINE5,Ethernet1, -l3leaf,DC1-LEAF3B,Ethernet1,,spine,DC1-SPINE5,Ethernet2, -l3leaf,DC1-LEAF4A,Ethernet1,,spine,DC1-SPINE6,Ethernet1, -l3leaf,DC1-LEAF4B,Ethernet1,,spine,DC1-SPINE6,Ethernet2, -spine,DC1-SPINE1,Ethernet4,,l3leaf,DC1-SVC3A,Ethernet1, -spine,DC1-SPINE1,Ethernet5,,l3leaf,DC1-SVC3B,Ethernet1, -spine,DC1-SPINE2,Ethernet4,,l3leaf,DC1-SVC3A,Ethernet2, -spine,DC1-SPINE2,Ethernet5,,l3leaf,DC1-SVC3B,Ethernet2, -spine,DC1-SPINE3,Ethernet4,,l3leaf,DC1-SVC3A,Ethernet3, -spine,DC1-SPINE3,Ethernet5,,l3leaf,DC1-SVC3B,Ethernet3, -spine,DC1-SPINE4,Ethernet4,,l3leaf,DC1-SVC3A,Ethernet4, -spine,DC1-SPINE4,Ethernet5,,l3leaf,DC1-SVC3B,Ethernet4, +spine,DC1-SPINE5,Ethernet1,,l3leaf,DC1-LEAF3A,Ethernet1, +spine,DC1-SPINE5,Ethernet2,,l3leaf,DC1-LEAF3B,Ethernet1, +spine,DC1-SPINE5,Ethernet3,,l3leaf,DC1-LEAF3A,Ethernet2, +spine,DC1-SPINE5,Ethernet4,,l3leaf,DC1-LEAF3B,Ethernet2, diff --git a/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/documentation/fabric/DC1_FABRIC-topology.csv b/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/documentation/fabric/DC1_FABRIC-topology.csv index 0fa8df760dc..10ff2c16d7b 100644 --- a/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/documentation/fabric/DC1_FABRIC-topology.csv +++ b/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/documentation/fabric/DC1_FABRIC-topology.csv @@ -1,124 +1,5 @@ Node Type,Node,Node Interface,Peer Type,Peer Node,Peer Interface,Node Interface Enabled -l3leaf,DC1-BL1A,Ethernet1,spine,DC1-SPINE1,Ethernet6,True -l3leaf,DC1-BL1A,Ethernet2,spine,DC1-SPINE2,Ethernet6,True -l3leaf,DC1-BL1A,Ethernet3,spine,DC1-SPINE3,Ethernet6,True -l3leaf,DC1-BL1A,Ethernet4,spine,DC1-SPINE4,Ethernet6,True -l3leaf,DC1-BL1A,Ethernet9,l3leaf,DC1-BL1B,Ethernet9,True -l3leaf,DC1-BL1A,Ethernet10,l3leaf,DC1-BL1B,Ethernet10,True -l3leaf,DC1-BL1A,Ethernet4000,my_precious,MY-own-peer,Ethernet123,True -l3leaf,DC1-BL1B,Ethernet1,spine,DC1-SPINE1,Ethernet7,True -l3leaf,DC1-BL1B,Ethernet2,spine,DC1-SPINE2,Ethernet7,True -l3leaf,DC1-BL1B,Ethernet3,spine,DC1-SPINE3,Ethernet7,True -l3leaf,DC1-BL1B,Ethernet4,spine,DC1-SPINE4,Ethernet7,True -l3leaf,DC1-BL1B,Ethernet9,l3leaf,DC1-BL1A,Ethernet9,True -l3leaf,DC1-BL1B,Ethernet10,l3leaf,DC1-BL1A,Ethernet10,True -l3leaf,DC1-BL1B,Ethernet4000,my_precious,MY-own-peer,Ethernet123,True -l2leaf,DC1-L2LEAF1A,Ethernet1,l3leaf,DC1-LEAF2A,Ethernet7,True -l2leaf,DC1-L2LEAF1A,Ethernet2,l3leaf,DC1-LEAF2B,Ethernet7,True -l2leaf,DC1-L2LEAF2A,Ethernet1,l3leaf,DC1-SVC3A,Ethernet7,True -l2leaf,DC1-L2LEAF2A,Ethernet2,l3leaf,DC1-SVC3B,Ethernet7,True -l2leaf,DC1-L2LEAF2A,Ethernet3,mlag_peer,DC1-L2LEAF2B,Ethernet3,True -l2leaf,DC1-L2LEAF2A,Ethernet4,mlag_peer,DC1-L2LEAF2B,Ethernet4,True -l2leaf,DC1-L2LEAF2B,Ethernet1,l3leaf,DC1-SVC3A,Ethernet8,True -l2leaf,DC1-L2LEAF2B,Ethernet2,l3leaf,DC1-SVC3B,Ethernet8,True -l2leaf,DC1-L2LEAF2B,Ethernet3,mlag_peer,DC1-L2LEAF2A,Ethernet3,True -l2leaf,DC1-L2LEAF2B,Ethernet4,mlag_peer,DC1-L2LEAF2A,Ethernet4,True -l3leaf,DC1-LEAF1A,Ethernet1,spine,DC1-SPINE1,Ethernet1,True -l3leaf,DC1-LEAF1A,Ethernet2,spine,DC1-SPINE2,Ethernet1,True -l3leaf,DC1-LEAF1A,Ethernet3,spine,DC1-SPINE3,Ethernet1,True -l3leaf,DC1-LEAF1A,Ethernet4,spine,DC1-SPINE4,Ethernet1,True -l3leaf,DC1-LEAF1A,Ethernet6,server,server02_SINGLE_NODE_TRUNK,Eth1,True -l3leaf,DC1-LEAF1A,Ethernet7,server,server02_SINGLE_NODE,Eth1,True -l3leaf,DC1-LEAF2A,Ethernet1,spine,DC1-SPINE1,Ethernet2,True -l3leaf,DC1-LEAF2A,Ethernet2,spine,DC1-SPINE2,Ethernet2,True -l3leaf,DC1-LEAF2A,Ethernet3,spine,DC1-SPINE3,Ethernet2,True -l3leaf,DC1-LEAF2A,Ethernet4,spine,DC1-SPINE4,Ethernet2,True -l3leaf,DC1-LEAF2A,Ethernet5,mlag_peer,DC1-LEAF2B,Ethernet5,True -l3leaf,DC1-LEAF2A,Ethernet6,mlag_peer,DC1-LEAF2B,Ethernet6,True -l3leaf,DC1-LEAF2A,Ethernet7,l2leaf,DC1-L2LEAF1A,Ethernet1,True -l3leaf,DC1-LEAF2A,Ethernet10,server,server01_MLAG,Eth2,True -l3leaf,DC1-LEAF2A,Ethernet11,server,server01_MTU_PROFILE_MLAG,Eth4,True -l3leaf,DC1-LEAF2A,Ethernet12,server,server01_MTU_ADAPTOR_MLAG,Eth6,True -l3leaf,DC1-LEAF2B,Ethernet1,spine,DC1-SPINE1,Ethernet3,True -l3leaf,DC1-LEAF2B,Ethernet2,spine,DC1-SPINE2,Ethernet3,True -l3leaf,DC1-LEAF2B,Ethernet3,spine,DC1-SPINE3,Ethernet3,True -l3leaf,DC1-LEAF2B,Ethernet4,spine,DC1-SPINE4,Ethernet3,True -l3leaf,DC1-LEAF2B,Ethernet5,mlag_peer,DC1-LEAF2A,Ethernet5,True -l3leaf,DC1-LEAF2B,Ethernet6,mlag_peer,DC1-LEAF2A,Ethernet6,True -l3leaf,DC1-LEAF2B,Ethernet7,l2leaf,DC1-L2LEAF1A,Ethernet2,True -l3leaf,DC1-LEAF2B,Ethernet10,server,server01_MLAG,Eth3,True -l3leaf,DC1-LEAF2B,Ethernet11,server,server01_MTU_PROFILE_MLAG,Eth5,True -l3leaf,DC1-LEAF2B,Ethernet12,server,server01_MTU_ADAPTOR_MLAG,Eth7,True -l3leaf,DC1-LEAF3A,Ethernet1,spine,DC1-SPINE5,Ethernet1,True -l3leaf,DC1-LEAF3A,Ethernet5,mlag_peer,DC1-LEAF3B,Ethernet5,True -l3leaf,DC1-LEAF3A,Ethernet6,mlag_peer,DC1-LEAF3B,Ethernet6,True -l3leaf,DC1-LEAF3B,Ethernet1,spine,DC1-SPINE5,Ethernet2,True -l3leaf,DC1-LEAF3B,Ethernet5,mlag_peer,DC1-LEAF3A,Ethernet5,True -l3leaf,DC1-LEAF3B,Ethernet6,mlag_peer,DC1-LEAF3A,Ethernet6,True -l3leaf,DC1-LEAF4A,Ethernet1,spine,DC1-SPINE6,Ethernet1,True -l3leaf,DC1-LEAF4A,Ethernet5,mlag_peer,DC1-LEAF4B,Ethernet5,True -l3leaf,DC1-LEAF4A,Ethernet6,mlag_peer,DC1-LEAF4B,Ethernet6,True -l3leaf,DC1-LEAF4B,Ethernet1,spine,DC1-SPINE6,Ethernet2,True -l3leaf,DC1-LEAF4B,Ethernet5,mlag_peer,DC1-LEAF4A,Ethernet5,True -l3leaf,DC1-LEAF4B,Ethernet6,mlag_peer,DC1-LEAF4A,Ethernet6,True -spine,DC1-SPINE1,Ethernet1,l3leaf,DC1-LEAF1A,Ethernet1,True -spine,DC1-SPINE1,Ethernet2,l3leaf,DC1-LEAF2A,Ethernet1,True -spine,DC1-SPINE1,Ethernet3,l3leaf,DC1-LEAF2B,Ethernet1,True -spine,DC1-SPINE1,Ethernet4,l3leaf,DC1-SVC3A,Ethernet1,True -spine,DC1-SPINE1,Ethernet5,l3leaf,DC1-SVC3B,Ethernet1,True -spine,DC1-SPINE1,Ethernet6,l3leaf,DC1-BL1A,Ethernet1,True -spine,DC1-SPINE1,Ethernet7,l3leaf,DC1-BL1B,Ethernet1,True -spine,DC1-SPINE2,Ethernet1,l3leaf,DC1-LEAF1A,Ethernet2,True -spine,DC1-SPINE2,Ethernet2,l3leaf,DC1-LEAF2A,Ethernet2,True -spine,DC1-SPINE2,Ethernet3,l3leaf,DC1-LEAF2B,Ethernet2,True -spine,DC1-SPINE2,Ethernet4,l3leaf,DC1-SVC3A,Ethernet2,True -spine,DC1-SPINE2,Ethernet5,l3leaf,DC1-SVC3B,Ethernet2,True -spine,DC1-SPINE2,Ethernet6,l3leaf,DC1-BL1A,Ethernet2,True -spine,DC1-SPINE2,Ethernet7,l3leaf,DC1-BL1B,Ethernet2,True -spine,DC1-SPINE3,Ethernet1,l3leaf,DC1-LEAF1A,Ethernet3,True -spine,DC1-SPINE3,Ethernet2,l3leaf,DC1-LEAF2A,Ethernet3,True -spine,DC1-SPINE3,Ethernet3,l3leaf,DC1-LEAF2B,Ethernet3,True -spine,DC1-SPINE3,Ethernet4,l3leaf,DC1-SVC3A,Ethernet3,True -spine,DC1-SPINE3,Ethernet5,l3leaf,DC1-SVC3B,Ethernet3,True -spine,DC1-SPINE3,Ethernet6,l3leaf,DC1-BL1A,Ethernet3,True -spine,DC1-SPINE3,Ethernet7,l3leaf,DC1-BL1B,Ethernet3,True -spine,DC1-SPINE4,Ethernet1,l3leaf,DC1-LEAF1A,Ethernet4,True -spine,DC1-SPINE4,Ethernet2,l3leaf,DC1-LEAF2A,Ethernet4,True -spine,DC1-SPINE4,Ethernet3,l3leaf,DC1-LEAF2B,Ethernet4,True -spine,DC1-SPINE4,Ethernet4,l3leaf,DC1-SVC3A,Ethernet4,True -spine,DC1-SPINE4,Ethernet5,l3leaf,DC1-SVC3B,Ethernet4,True -spine,DC1-SPINE4,Ethernet6,l3leaf,DC1-BL1A,Ethernet4,True -spine,DC1-SPINE4,Ethernet7,l3leaf,DC1-BL1B,Ethernet4,True spine,DC1-SPINE5,Ethernet1,l3leaf,DC1-LEAF3A,Ethernet1,True spine,DC1-SPINE5,Ethernet2,l3leaf,DC1-LEAF3B,Ethernet1,True -spine,DC1-SPINE6,Ethernet1,l3leaf,DC1-LEAF4A,Ethernet1,True -spine,DC1-SPINE6,Ethernet2,l3leaf,DC1-LEAF4B,Ethernet1,True -l3leaf,DC1-SVC3A,Ethernet1,spine,DC1-SPINE1,Ethernet4,True -l3leaf,DC1-SVC3A,Ethernet2,spine,DC1-SPINE2,Ethernet4,True -l3leaf,DC1-SVC3A,Ethernet3,spine,DC1-SPINE3,Ethernet4,True -l3leaf,DC1-SVC3A,Ethernet4,spine,DC1-SPINE4,Ethernet4,True -l3leaf,DC1-SVC3A,Ethernet5,mlag_peer,DC1-SVC3B,Ethernet5,True -l3leaf,DC1-SVC3A,Ethernet6,mlag_peer,DC1-SVC3B,Ethernet6,True -l3leaf,DC1-SVC3A,Ethernet7,l2leaf,DC1-L2LEAF2A,Ethernet1,True -l3leaf,DC1-SVC3A,Ethernet8,l2leaf,DC1-L2LEAF2B,Ethernet1,True -l3leaf,DC1-SVC3A,Ethernet10,server,server03_ESI,Eth1,True -l3leaf,DC1-SVC3A,Ethernet11,server,server04_inherit_all_from_profile,Eth1,True -l3leaf,DC1-SVC3A,Ethernet12,server,server05_no_profile,Eth1,True -l3leaf,DC1-SVC3A,Ethernet13,server,server06_override_profile,Eth1,True -l3leaf,DC1-SVC3A,Ethernet14,server,server07_inherit_all_from_profile_port_channel,Eth1,True -l3leaf,DC1-SVC3A,Ethernet15,server,server08_no_profile_port_channel,Eth1,True -l3leaf,DC1-SVC3A,Ethernet16,server,server09_override_profile_no_port_channel,Eth1,True -l3leaf,DC1-SVC3B,Ethernet1,spine,DC1-SPINE1,Ethernet5,True -l3leaf,DC1-SVC3B,Ethernet2,spine,DC1-SPINE2,Ethernet5,True -l3leaf,DC1-SVC3B,Ethernet3,spine,DC1-SPINE3,Ethernet5,True -l3leaf,DC1-SVC3B,Ethernet4,spine,DC1-SPINE4,Ethernet5,True -l3leaf,DC1-SVC3B,Ethernet5,mlag_peer,DC1-SVC3A,Ethernet5,True -l3leaf,DC1-SVC3B,Ethernet6,mlag_peer,DC1-SVC3A,Ethernet6,True -l3leaf,DC1-SVC3B,Ethernet7,l2leaf,DC1-L2LEAF2A,Ethernet2,True -l3leaf,DC1-SVC3B,Ethernet8,l2leaf,DC1-L2LEAF2B,Ethernet2,True -l3leaf,DC1-SVC3B,Ethernet11,server,server04_inherit_all_from_profile,Eth2,True -l3leaf,DC1-SVC3B,Ethernet12,server,server05_no_profile,Eth2,True -l3leaf,DC1-SVC3B,Ethernet13,server,server06_override_profile,Eth2,True -l3leaf,DC1-SVC3B,Ethernet14,server,server07_inherit_all_from_profile_port_channel,Eth2,True -l3leaf,DC1-SVC3B,Ethernet15,server,server08_no_profile_port_channel,Eth2,True -l3leaf,DC1-SVC3B,Ethernet16,server,server09_override_profile_no_port_channel,Eth2,True +spine,DC1-SPINE5,Ethernet3,l3leaf,DC1-LEAF3A,Ethernet2,True +spine,DC1-SPINE5,Ethernet4,l3leaf,DC1-LEAF3B,Ethernet2,True diff --git a/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/intended/structured_configs/DC1-SPINE5.yml b/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/intended/structured_configs/DC1-SPINE5.yml index 57adebe9c92..a7fe44bb684 100644 --- a/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/intended/structured_configs/DC1-SPINE5.yml +++ b/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/intended/structured_configs/DC1-SPINE5.yml @@ -49,10 +49,34 @@ router_bgp: peer_group: UNDERLAY_PEERS remote_as: '65106' description: DC1-LEAF3A_Ethernet1 + - name: Ethernet1 + peer_group: UNDERLAY_PEERS + remote_as: '65106' + description: DC1-LEAF3A_Ethernet1 + - name: Ethernet2 + peer_group: UNDERLAY_PEERS + remote_as: '65106' + description: DC1-LEAF3B_Ethernet1 - name: Ethernet2 peer_group: UNDERLAY_PEERS remote_as: '65106' description: DC1-LEAF3B_Ethernet1 + - name: Ethernet3 + peer_group: UNDERLAY_PEERS + remote_as: '65106' + description: DC1-LEAF3A_Ethernet2 + - name: Ethernet3 + peer_group: UNDERLAY_PEERS + remote_as: '65106' + description: DC1-LEAF3A_Ethernet2 + - name: Ethernet4 + peer_group: UNDERLAY_PEERS + remote_as: '65106' + description: DC1-LEAF3B_Ethernet2 + - name: Ethernet4 + peer_group: UNDERLAY_PEERS + remote_as: '65106' + description: DC1-LEAF3B_Ethernet2 address_family_evpn: peer_groups: - name: EVPN-OVERLAY-PEERS @@ -138,6 +162,24 @@ ethernet_interfaces: mtu: 1500 type: routed ipv6_enable: true +- name: Ethernet3 + peer: DC1-LEAF3A + peer_interface: Ethernet2 + peer_type: l3leaf + description: P2P_LINK_TO_DC1-LEAF3A_Ethernet2 + shutdown: false + mtu: 1500 + type: routed + ipv6_enable: true +- name: Ethernet4 + peer: DC1-LEAF3B + peer_interface: Ethernet2 + peer_type: l3leaf + description: P2P_LINK_TO_DC1-LEAF3B_Ethernet2 + shutdown: false + mtu: 1500 + type: routed + ipv6_enable: true loopback_interfaces: - name: Loopback0 description: EVPN_Overlay_Peering diff --git a/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/inventory/group_vars/DC1_FABRIC.yml b/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/inventory/group_vars/DC1_FABRIC.yml index 3d47d5936c8..38148406390 100644 --- a/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/inventory/group_vars/DC1_FABRIC.yml +++ b/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/inventory/group_vars/DC1_FABRIC.yml @@ -156,8 +156,11 @@ l3leaf: - group: DC1_LEAF3 # Testing RFC5549 with IPv6 overlay peers only bgp_as: 65106 - uplink_interfaces: ['Ethernet1'] - uplink_switches: ['DC1-SPINE5'] + uplink_interfaces: ['Ethernet1', 'Ethernet2'] + # Twice same uplink switch to repro an issue where + # all the bgp neighbor_interfaces are rendered twice + # because each uplink peer is parsed twice. + uplink_switches: ['DC1-SPINE5', 'DC1-SPINE5'] loopback_ipv6_pool: 2001:1::/64 loopback_ipv6_offset: 4 nodes: @@ -165,11 +168,11 @@ l3leaf: id: 8 mgmt_ip: 192.168.200.106/24 mac_address: '0c:1d:c0:1d:62:01' - uplink_switch_interfaces: [ Ethernet1 ] + uplink_switch_interfaces: [ Ethernet1, Ethernet3 ] - name: DC1-LEAF3B id: 9 mgmt_ip: 192.168.200.107/24 - uplink_switch_interfaces: [ Ethernet2 ] + uplink_switch_interfaces: [ Ethernet2, Ethernet4 ] - group: DC1_LEAF4 # Testing underlay IPv6 peers bgp_as: 65107 From 75d44dbef467f2c1aeac4707fc95002e98855e54 Mon Sep 17 00:00:00 2001 From: gmuloc Date: Fri, 21 Jul 2023 09:10:42 +0200 Subject: [PATCH 2/6] Fix(eos_designs): Make sure uplink_peers are unique --- .../avd/plugins/plugin_utils/eos_designs_facts/uplinks.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/ansible_collections/arista/avd/plugins/plugin_utils/eos_designs_facts/uplinks.py b/ansible_collections/arista/avd/plugins/plugin_utils/eos_designs_facts/uplinks.py index a85f407cff8..7d1a40fe0bc 100644 --- a/ansible_collections/arista/avd/plugins/plugin_utils/eos_designs_facts/uplinks.py +++ b/ansible_collections/arista/avd/plugins/plugin_utils/eos_designs_facts/uplinks.py @@ -223,12 +223,13 @@ def uplink_peers(self: EosDesignsFacts) -> list: """ Exposed in avd_switch_facts - List of all uplink peers + List of all **unique** uplink peers These are used to generate the "avd_topology_peers" fact covering downlinks for all devices. """ uplink_switches = self.shared_utils.uplink_switches - return [uplink_switch for uplink_switch in uplink_switches if uplink_switch in self.shared_utils.all_fabric_devices] + # Making sure each peer is unique + return list({uplink_switch for uplink_switch in uplink_switches if uplink_switch in self.shared_utils.all_fabric_devices}) @cached_property def _default_downlink_interfaces(self: EosDesignsFacts) -> list: From 999a0f5bd0bb5116fedad7e273ff935297bb2b77 Mon Sep 17 00:00:00 2001 From: gmuloc Date: Fri, 21 Jul 2023 09:39:05 +0200 Subject: [PATCH 3/6] Test: Run molecule --- .../documentation/devices/DC1-SPINE5.md | 20 +++++++++++++++++++ .../intended/configs/DC1-SPINE5.cfg | 16 +++++++++++++++ .../structured_configs/DC1-SPINE5.yml | 16 --------------- 3 files changed, 36 insertions(+), 16 deletions(-) diff --git a/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/documentation/devices/DC1-SPINE5.md b/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/documentation/devices/DC1-SPINE5.md index 7b1da831465..594dd04e1a7 100644 --- a/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/documentation/devices/DC1-SPINE5.md +++ b/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/documentation/devices/DC1-SPINE5.md @@ -216,6 +216,8 @@ vlan internal order ascending range 1006 1199 | --------- | ----------- | ---- | --------------| ------------ | --- | --- | -------- | -------------- | -------------------| ----------- | ------------ | | Ethernet1 | P2P_LINK_TO_DC1-LEAF3A_Ethernet1 | routed | - | - | default | 1500 | False | - | - | - | - | | Ethernet2 | P2P_LINK_TO_DC1-LEAF3B_Ethernet1 | routed | - | - | default | 1500 | False | - | - | - | - | +| Ethernet3 | P2P_LINK_TO_DC1-LEAF3A_Ethernet2 | routed | - | - | default | 1500 | False | - | - | - | - | +| Ethernet4 | P2P_LINK_TO_DC1-LEAF3B_Ethernet2 | routed | - | - | default | 1500 | False | - | - | - | - | #### Ethernet Interfaces Device Configuration @@ -234,6 +236,20 @@ interface Ethernet2 mtu 1500 no switchport ipv6 enable +! +interface Ethernet3 + description P2P_LINK_TO_DC1-LEAF3A_Ethernet2 + no shutdown + mtu 1500 + no switchport + ipv6 enable +! +interface Ethernet4 + description P2P_LINK_TO_DC1-LEAF3B_Ethernet2 + no shutdown + mtu 1500 + no switchport + ipv6 enable ``` ### Loopback Interfaces @@ -373,6 +389,8 @@ ip route vrf MGMT 0.0.0.0/0 192.168.200.5 | ------------------ | --- | ---------- | --------- | ----------- | | Ethernet1 | default | UNDERLAY_PEERS | 65106 | - | | Ethernet2 | default | UNDERLAY_PEERS | 65106 | - | +| Ethernet3 | default | UNDERLAY_PEERS | 65106 | - | +| Ethernet4 | default | UNDERLAY_PEERS | 65106 | - | #### Router BGP EVPN Address Family @@ -406,6 +424,8 @@ router bgp 65001 neighbor UNDERLAY_PEERS maximum-routes 12000 neighbor interface Ethernet1 peer-group UNDERLAY_PEERS remote-as 65106 neighbor interface Ethernet2 peer-group UNDERLAY_PEERS remote-as 65106 + neighbor interface Ethernet3 peer-group UNDERLAY_PEERS remote-as 65106 + neighbor interface Ethernet4 peer-group UNDERLAY_PEERS remote-as 65106 neighbor 2001:1::c peer group EVPN-OVERLAY-PEERS neighbor 2001:1::c remote-as 65106 neighbor 2001:1::c description DC1-LEAF3A diff --git a/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/intended/configs/DC1-SPINE5.cfg b/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/intended/configs/DC1-SPINE5.cfg index 82d3f32952d..a441adba6fe 100644 --- a/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/intended/configs/DC1-SPINE5.cfg +++ b/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/intended/configs/DC1-SPINE5.cfg @@ -41,6 +41,20 @@ interface Ethernet2 no switchport ipv6 enable ! +interface Ethernet3 + description P2P_LINK_TO_DC1-LEAF3A_Ethernet2 + no shutdown + mtu 1500 + no switchport + ipv6 enable +! +interface Ethernet4 + description P2P_LINK_TO_DC1-LEAF3B_Ethernet2 + no shutdown + mtu 1500 + no switchport + ipv6 enable +! interface Loopback0 description EVPN_Overlay_Peering no shutdown @@ -95,6 +109,8 @@ router bgp 65001 neighbor UNDERLAY_PEERS maximum-routes 12000 neighbor interface Ethernet1 peer-group UNDERLAY_PEERS remote-as 65106 neighbor interface Ethernet2 peer-group UNDERLAY_PEERS remote-as 65106 + neighbor interface Ethernet3 peer-group UNDERLAY_PEERS remote-as 65106 + neighbor interface Ethernet4 peer-group UNDERLAY_PEERS remote-as 65106 neighbor 2001:1::c peer group EVPN-OVERLAY-PEERS neighbor 2001:1::c remote-as 65106 neighbor 2001:1::c description DC1-LEAF3A diff --git a/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/intended/structured_configs/DC1-SPINE5.yml b/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/intended/structured_configs/DC1-SPINE5.yml index a7fe44bb684..5320e783c4a 100644 --- a/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/intended/structured_configs/DC1-SPINE5.yml +++ b/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/intended/structured_configs/DC1-SPINE5.yml @@ -49,14 +49,6 @@ router_bgp: peer_group: UNDERLAY_PEERS remote_as: '65106' description: DC1-LEAF3A_Ethernet1 - - name: Ethernet1 - peer_group: UNDERLAY_PEERS - remote_as: '65106' - description: DC1-LEAF3A_Ethernet1 - - name: Ethernet2 - peer_group: UNDERLAY_PEERS - remote_as: '65106' - description: DC1-LEAF3B_Ethernet1 - name: Ethernet2 peer_group: UNDERLAY_PEERS remote_as: '65106' @@ -65,14 +57,6 @@ router_bgp: peer_group: UNDERLAY_PEERS remote_as: '65106' description: DC1-LEAF3A_Ethernet2 - - name: Ethernet3 - peer_group: UNDERLAY_PEERS - remote_as: '65106' - description: DC1-LEAF3A_Ethernet2 - - name: Ethernet4 - peer_group: UNDERLAY_PEERS - remote_as: '65106' - description: DC1-LEAF3B_Ethernet2 - name: Ethernet4 peer_group: UNDERLAY_PEERS remote_as: '65106' From 28d1cf7a42b6503fa3e5201b84b73e5bcb3d86f9 Mon Sep 17 00:00:00 2001 From: gmuloc Date: Fri, 21 Jul 2023 10:06:28 +0200 Subject: [PATCH 4/6] Test: Really run molecule --- .../documentation/devices/DC1-LEAF3A.md | 10 ++ .../documentation/devices/DC1-LEAF3B.md | 10 ++ .../fabric/DC1_FABRIC-documentation.md | 87 ++++++++++++- .../fabric/DC1_FABRIC-p2p-links.csv | 40 +++++- .../fabric/DC1_FABRIC-topology.csv | 123 ++++++++++++++++++ .../intended/configs/DC1-LEAF3A.cfg | 8 ++ .../intended/configs/DC1-LEAF3B.cfg | 8 ++ .../structured_configs/DC1-LEAF3A.yml | 13 ++ .../structured_configs/DC1-LEAF3B.yml | 13 ++ 9 files changed, 302 insertions(+), 10 deletions(-) diff --git a/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/documentation/devices/DC1-LEAF3A.md b/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/documentation/devices/DC1-LEAF3A.md index 39d4960f2ab..bec2cec2285 100644 --- a/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/documentation/devices/DC1-LEAF3A.md +++ b/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/documentation/devices/DC1-LEAF3A.md @@ -392,6 +392,7 @@ vlan 4094 | Interface | Description | Type | Channel Group | IPv6 Address | VRF | MTU | Shutdown | ND RA Disabled | Managed Config Flag | IPv6 ACL In | IPv6 ACL Out | | --------- | ----------- | ---- | --------------| ------------ | --- | --- | -------- | -------------- | -------------------| ----------- | ------------ | | Ethernet1 | P2P_LINK_TO_DC1-SPINE5_Ethernet1 | routed | - | - | default | 1500 | False | - | - | - | - | +| Ethernet2 | P2P_LINK_TO_DC1-SPINE5_Ethernet3 | routed | - | - | default | 1500 | False | - | - | - | - | #### Ethernet Interfaces Device Configuration @@ -404,6 +405,13 @@ interface Ethernet1 no switchport ipv6 enable ! +interface Ethernet2 + description P2P_LINK_TO_DC1-SPINE5_Ethernet3 + no shutdown + mtu 1500 + no switchport + ipv6 enable +! interface Ethernet5 description MLAG_PEER_DC1-LEAF3B_Ethernet5 no shutdown @@ -892,6 +900,7 @@ ip route vrf MGMT 0.0.0.0/0 192.168.200.5 | Neighbor Interface | VRF | Peer Group | Remote AS | Peer Filter | | ------------------ | --- | ---------- | --------- | ----------- | | Ethernet1 | default | UNDERLAY_PEERS | 65001 | - | +| Ethernet2 | default | UNDERLAY_PEERS | 65001 | - | | Vlan4093 | default | MLAG_PEER | 65106 | - | | Vlan3011 | Tenant_A_APP_Zone | MLAG_PEER | 65106 | - | | Vlan3012 | Tenant_A_DB_Zone | MLAG_PEER | 65106 | - | @@ -968,6 +977,7 @@ router bgp 65106 neighbor UNDERLAY_PEERS send-community neighbor UNDERLAY_PEERS maximum-routes 12000 neighbor interface Ethernet1 peer-group UNDERLAY_PEERS remote-as 65001 + neighbor interface Ethernet2 peer-group UNDERLAY_PEERS remote-as 65001 neighbor interface Vlan4093 peer-group MLAG_PEER remote-as 65106 neighbor 2001:1::5 peer group EVPN-OVERLAY-PEERS neighbor 2001:1::5 remote-as 65001 diff --git a/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/documentation/devices/DC1-LEAF3B.md b/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/documentation/devices/DC1-LEAF3B.md index cd7c526f26e..7feff269005 100644 --- a/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/documentation/devices/DC1-LEAF3B.md +++ b/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/documentation/devices/DC1-LEAF3B.md @@ -392,6 +392,7 @@ vlan 4094 | Interface | Description | Type | Channel Group | IPv6 Address | VRF | MTU | Shutdown | ND RA Disabled | Managed Config Flag | IPv6 ACL In | IPv6 ACL Out | | --------- | ----------- | ---- | --------------| ------------ | --- | --- | -------- | -------------- | -------------------| ----------- | ------------ | | Ethernet1 | P2P_LINK_TO_DC1-SPINE5_Ethernet2 | routed | - | - | default | 1500 | False | - | - | - | - | +| Ethernet2 | P2P_LINK_TO_DC1-SPINE5_Ethernet4 | routed | - | - | default | 1500 | False | - | - | - | - | #### Ethernet Interfaces Device Configuration @@ -404,6 +405,13 @@ interface Ethernet1 no switchport ipv6 enable ! +interface Ethernet2 + description P2P_LINK_TO_DC1-SPINE5_Ethernet4 + no shutdown + mtu 1500 + no switchport + ipv6 enable +! interface Ethernet5 description MLAG_PEER_DC1-LEAF3A_Ethernet5 no shutdown @@ -892,6 +900,7 @@ ip route vrf MGMT 0.0.0.0/0 192.168.200.5 | Neighbor Interface | VRF | Peer Group | Remote AS | Peer Filter | | ------------------ | --- | ---------- | --------- | ----------- | | Ethernet1 | default | UNDERLAY_PEERS | 65001 | - | +| Ethernet2 | default | UNDERLAY_PEERS | 65001 | - | | Vlan4093 | default | MLAG_PEER | 65106 | - | | Vlan3011 | Tenant_A_APP_Zone | MLAG_PEER | 65106 | - | | Vlan3012 | Tenant_A_DB_Zone | MLAG_PEER | 65106 | - | @@ -968,6 +977,7 @@ router bgp 65106 neighbor UNDERLAY_PEERS send-community neighbor UNDERLAY_PEERS maximum-routes 12000 neighbor interface Ethernet1 peer-group UNDERLAY_PEERS remote-as 65001 + neighbor interface Ethernet2 peer-group UNDERLAY_PEERS remote-as 65001 neighbor interface Vlan4093 peer-group MLAG_PEER remote-as 65106 neighbor 2001:1::5 peer group EVPN-OVERLAY-PEERS neighbor 2001:1::5 remote-as 65001 diff --git a/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/documentation/fabric/DC1_FABRIC-documentation.md b/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/documentation/fabric/DC1_FABRIC-documentation.md index 02d5a4bd608..8485ec94403 100644 --- a/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/documentation/fabric/DC1_FABRIC-documentation.md +++ b/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/documentation/fabric/DC1_FABRIC-documentation.md @@ -49,10 +49,58 @@ | Type | Node | Node Interface | Peer Type | Peer Node | Peer Interface | | ---- | ---- | -------------- | --------- | ----------| -------------- | -| spine | DC1-SPINE5 | Ethernet1 | l3leaf | DC1-LEAF3A | Ethernet1 | -| spine | DC1-SPINE5 | Ethernet2 | l3leaf | DC1-LEAF3B | Ethernet1 | -| spine | DC1-SPINE5 | Ethernet3 | l3leaf | DC1-LEAF3A | Ethernet2 | -| spine | DC1-SPINE5 | Ethernet4 | l3leaf | DC1-LEAF3B | Ethernet2 | +| l3leaf | DC1-BL1A | Ethernet1 | spine | DC1-SPINE1 | Ethernet6 | +| l3leaf | DC1-BL1A | Ethernet2 | spine | DC1-SPINE2 | Ethernet6 | +| l3leaf | DC1-BL1A | Ethernet3 | spine | DC1-SPINE3 | Ethernet6 | +| l3leaf | DC1-BL1A | Ethernet4 | spine | DC1-SPINE4 | Ethernet6 | +| l3leaf | DC1-BL1A | Ethernet9 | l3leaf | DC1-BL1B | Ethernet9 | +| l3leaf | DC1-BL1A | Ethernet10 | l3leaf | DC1-BL1B | Ethernet10 | +| l3leaf | DC1-BL1B | Ethernet1 | spine | DC1-SPINE1 | Ethernet7 | +| l3leaf | DC1-BL1B | Ethernet2 | spine | DC1-SPINE2 | Ethernet7 | +| l3leaf | DC1-BL1B | Ethernet3 | spine | DC1-SPINE3 | Ethernet7 | +| l3leaf | DC1-BL1B | Ethernet4 | spine | DC1-SPINE4 | Ethernet7 | +| l2leaf | DC1-L2LEAF1A | Ethernet1 | l3leaf | DC1-LEAF2A | Ethernet7 | +| l2leaf | DC1-L2LEAF1A | Ethernet2 | l3leaf | DC1-LEAF2B | Ethernet7 | +| l2leaf | DC1-L2LEAF2A | Ethernet1 | l3leaf | DC1-SVC3A | Ethernet7 | +| l2leaf | DC1-L2LEAF2A | Ethernet2 | l3leaf | DC1-SVC3B | Ethernet7 | +| l2leaf | DC1-L2LEAF2A | Ethernet3 | mlag_peer | DC1-L2LEAF2B | Ethernet3 | +| l2leaf | DC1-L2LEAF2A | Ethernet4 | mlag_peer | DC1-L2LEAF2B | Ethernet4 | +| l2leaf | DC1-L2LEAF2B | Ethernet1 | l3leaf | DC1-SVC3A | Ethernet8 | +| l2leaf | DC1-L2LEAF2B | Ethernet2 | l3leaf | DC1-SVC3B | Ethernet8 | +| l3leaf | DC1-LEAF1A | Ethernet1 | spine | DC1-SPINE1 | Ethernet1 | +| l3leaf | DC1-LEAF1A | Ethernet2 | spine | DC1-SPINE2 | Ethernet1 | +| l3leaf | DC1-LEAF1A | Ethernet3 | spine | DC1-SPINE3 | Ethernet1 | +| l3leaf | DC1-LEAF1A | Ethernet4 | spine | DC1-SPINE4 | Ethernet1 | +| l3leaf | DC1-LEAF2A | Ethernet1 | spine | DC1-SPINE1 | Ethernet2 | +| l3leaf | DC1-LEAF2A | Ethernet2 | spine | DC1-SPINE2 | Ethernet2 | +| l3leaf | DC1-LEAF2A | Ethernet3 | spine | DC1-SPINE3 | Ethernet2 | +| l3leaf | DC1-LEAF2A | Ethernet4 | spine | DC1-SPINE4 | Ethernet2 | +| l3leaf | DC1-LEAF2A | Ethernet5 | mlag_peer | DC1-LEAF2B | Ethernet5 | +| l3leaf | DC1-LEAF2A | Ethernet6 | mlag_peer | DC1-LEAF2B | Ethernet6 | +| l3leaf | DC1-LEAF2B | Ethernet1 | spine | DC1-SPINE1 | Ethernet3 | +| l3leaf | DC1-LEAF2B | Ethernet2 | spine | DC1-SPINE2 | Ethernet3 | +| l3leaf | DC1-LEAF2B | Ethernet3 | spine | DC1-SPINE3 | Ethernet3 | +| l3leaf | DC1-LEAF2B | Ethernet4 | spine | DC1-SPINE4 | Ethernet3 | +| l3leaf | DC1-LEAF3A | Ethernet1 | spine | DC1-SPINE5 | Ethernet1 | +| l3leaf | DC1-LEAF3A | Ethernet2 | spine | DC1-SPINE5 | Ethernet3 | +| l3leaf | DC1-LEAF3A | Ethernet5 | mlag_peer | DC1-LEAF3B | Ethernet5 | +| l3leaf | DC1-LEAF3A | Ethernet6 | mlag_peer | DC1-LEAF3B | Ethernet6 | +| l3leaf | DC1-LEAF3B | Ethernet1 | spine | DC1-SPINE5 | Ethernet2 | +| l3leaf | DC1-LEAF3B | Ethernet2 | spine | DC1-SPINE5 | Ethernet4 | +| l3leaf | DC1-LEAF4A | Ethernet1 | spine | DC1-SPINE6 | Ethernet1 | +| l3leaf | DC1-LEAF4A | Ethernet5 | mlag_peer | DC1-LEAF4B | Ethernet5 | +| l3leaf | DC1-LEAF4A | Ethernet6 | mlag_peer | DC1-LEAF4B | Ethernet6 | +| l3leaf | DC1-LEAF4B | Ethernet1 | spine | DC1-SPINE6 | Ethernet2 | +| spine | DC1-SPINE1 | Ethernet4 | l3leaf | DC1-SVC3A | Ethernet1 | +| spine | DC1-SPINE1 | Ethernet5 | l3leaf | DC1-SVC3B | Ethernet1 | +| spine | DC1-SPINE2 | Ethernet4 | l3leaf | DC1-SVC3A | Ethernet2 | +| spine | DC1-SPINE2 | Ethernet5 | l3leaf | DC1-SVC3B | Ethernet2 | +| spine | DC1-SPINE3 | Ethernet4 | l3leaf | DC1-SVC3A | Ethernet3 | +| spine | DC1-SPINE3 | Ethernet5 | l3leaf | DC1-SVC3B | Ethernet3 | +| spine | DC1-SPINE4 | Ethernet4 | l3leaf | DC1-SVC3A | Ethernet4 | +| spine | DC1-SPINE4 | Ethernet5 | l3leaf | DC1-SVC3B | Ethernet4 | +| l3leaf | DC1-SVC3A | Ethernet5 | mlag_peer | DC1-SVC3B | Ethernet5 | +| l3leaf | DC1-SVC3A | Ethernet6 | mlag_peer | DC1-SVC3B | Ethernet6 | ## Fabric IP Allocation @@ -70,21 +118,48 @@ | Loopback Pool | Available Addresses | Assigned addresses | Assigned Address % | | ------------- | ------------------- | ------------------ | ------------------ | -| 192.168.255.0/24 | 256 | 1 | 0.4 % | +| 192.168.255.0/24 | 256 | 17 | 6.65 % | ### Loopback0 Interfaces Node Allocation | POD | Node | Loopback0 | | --- | ---- | --------- | +| DC1_FABRIC | DC1-BL1A | 192.168.255.10/32 | +| DC1_FABRIC | DC1-BL1B | 192.168.255.11/32 | +| DC1_FABRIC | DC1-LEAF1A | 192.168.255.5/32 | +| DC1_FABRIC | DC1-LEAF2A | 192.168.255.6/32 | +| DC1_FABRIC | DC1-LEAF2B | 192.168.255.7/32 | +| DC1_FABRIC | DC1-LEAF3A | 192.168.255.12/32 | +| DC1_FABRIC | DC1-LEAF3B | 192.168.255.13/32 | +| DC1_FABRIC | DC1-LEAF4A | 192.168.255.14/32 | +| DC1_FABRIC | DC1-LEAF4B | 192.168.255.15/32 | +| DC1_FABRIC | DC1-SPINE1 | 192.168.255.1/32 | +| DC1_FABRIC | DC1-SPINE2 | 192.168.255.2/32 | +| DC1_FABRIC | DC1-SPINE3 | 192.168.255.3/32 | +| DC1_FABRIC | DC1-SPINE4 | 192.168.255.4/32 | | DC1_FABRIC | DC1-SPINE5 | 192.168.255.5/32 | +| DC1_FABRIC | DC1-SPINE6 | 192.168.255.6/32 | +| DC1_FABRIC | DC1-SVC3A | 192.168.255.8/32 | +| DC1_FABRIC | DC1-SVC3B | 192.168.255.9/32 | ### VTEP Loopback VXLAN Tunnel Source Interfaces (VTEPs Only) | VTEP Loopback Pool | Available Addresses | Assigned addresses | Assigned Address % | | --------------------- | ------------------- | ------------------ | ------------------ | -| 192.168.254.0/24 | 256 | 0 | 0.0 % | +| 192.168.254.0/24 | 256 | 11 | 4.3 % | ### VTEP Loopback Node allocation | POD | Node | Loopback1 | | --- | ---- | --------- | +| DC1_FABRIC | DC1-BL1A | 192.168.254.10/32 | +| DC1_FABRIC | DC1-BL1B | 192.168.254.11/32 | +| DC1_FABRIC | DC1-LEAF1A | 192.168.254.5/32 | +| DC1_FABRIC | DC1-LEAF2A | 192.168.254.6/32 | +| DC1_FABRIC | DC1-LEAF2B | 192.168.254.6/32 | +| DC1_FABRIC | DC1-LEAF3A | 192.168.254.12/32 | +| DC1_FABRIC | DC1-LEAF3B | 192.168.254.12/32 | +| DC1_FABRIC | DC1-LEAF4A | 192.168.254.14/32 | +| DC1_FABRIC | DC1-LEAF4B | 192.168.254.14/32 | +| DC1_FABRIC | DC1-SVC3A | 192.168.254.8/32 | +| DC1_FABRIC | DC1-SVC3B | 192.168.254.8/32 | diff --git a/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/documentation/fabric/DC1_FABRIC-p2p-links.csv b/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/documentation/fabric/DC1_FABRIC-p2p-links.csv index cef023400df..cc07e6ad176 100644 --- a/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/documentation/fabric/DC1_FABRIC-p2p-links.csv +++ b/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/documentation/fabric/DC1_FABRIC-p2p-links.csv @@ -1,5 +1,37 @@ Type,Node,Node Interface,Leaf IP Address,Peer Type,Peer Node,Peer Interface,Peer IP Address -spine,DC1-SPINE5,Ethernet1,,l3leaf,DC1-LEAF3A,Ethernet1, -spine,DC1-SPINE5,Ethernet2,,l3leaf,DC1-LEAF3B,Ethernet1, -spine,DC1-SPINE5,Ethernet3,,l3leaf,DC1-LEAF3A,Ethernet2, -spine,DC1-SPINE5,Ethernet4,,l3leaf,DC1-LEAF3B,Ethernet2, +l3leaf,DC1-BL1A,Ethernet1,,spine,DC1-SPINE1,Ethernet6, +l3leaf,DC1-BL1A,Ethernet2,,spine,DC1-SPINE2,Ethernet6, +l3leaf,DC1-BL1A,Ethernet3,,spine,DC1-SPINE3,Ethernet6, +l3leaf,DC1-BL1A,Ethernet4,,spine,DC1-SPINE4,Ethernet6, +l3leaf,DC1-BL1A,Ethernet9,,l3leaf,DC1-BL1B,Ethernet9, +l3leaf,DC1-BL1A,Ethernet10,,l3leaf,DC1-BL1B,Ethernet10, +l3leaf,DC1-BL1B,Ethernet1,,spine,DC1-SPINE1,Ethernet7, +l3leaf,DC1-BL1B,Ethernet2,,spine,DC1-SPINE2,Ethernet7, +l3leaf,DC1-BL1B,Ethernet3,,spine,DC1-SPINE3,Ethernet7, +l3leaf,DC1-BL1B,Ethernet4,,spine,DC1-SPINE4,Ethernet7, +l3leaf,DC1-LEAF1A,Ethernet1,,spine,DC1-SPINE1,Ethernet1, +l3leaf,DC1-LEAF1A,Ethernet2,,spine,DC1-SPINE2,Ethernet1, +l3leaf,DC1-LEAF1A,Ethernet3,,spine,DC1-SPINE3,Ethernet1, +l3leaf,DC1-LEAF1A,Ethernet4,,spine,DC1-SPINE4,Ethernet1, +l3leaf,DC1-LEAF2A,Ethernet1,,spine,DC1-SPINE1,Ethernet2, +l3leaf,DC1-LEAF2A,Ethernet2,,spine,DC1-SPINE2,Ethernet2, +l3leaf,DC1-LEAF2A,Ethernet3,,spine,DC1-SPINE3,Ethernet2, +l3leaf,DC1-LEAF2A,Ethernet4,,spine,DC1-SPINE4,Ethernet2, +l3leaf,DC1-LEAF2B,Ethernet1,,spine,DC1-SPINE1,Ethernet3, +l3leaf,DC1-LEAF2B,Ethernet2,,spine,DC1-SPINE2,Ethernet3, +l3leaf,DC1-LEAF2B,Ethernet3,,spine,DC1-SPINE3,Ethernet3, +l3leaf,DC1-LEAF2B,Ethernet4,,spine,DC1-SPINE4,Ethernet3, +l3leaf,DC1-LEAF3A,Ethernet1,,spine,DC1-SPINE5,Ethernet1, +l3leaf,DC1-LEAF3A,Ethernet2,,spine,DC1-SPINE5,Ethernet3, +l3leaf,DC1-LEAF3B,Ethernet1,,spine,DC1-SPINE5,Ethernet2, +l3leaf,DC1-LEAF3B,Ethernet2,,spine,DC1-SPINE5,Ethernet4, +l3leaf,DC1-LEAF4A,Ethernet1,,spine,DC1-SPINE6,Ethernet1, +l3leaf,DC1-LEAF4B,Ethernet1,,spine,DC1-SPINE6,Ethernet2, +spine,DC1-SPINE1,Ethernet4,,l3leaf,DC1-SVC3A,Ethernet1, +spine,DC1-SPINE1,Ethernet5,,l3leaf,DC1-SVC3B,Ethernet1, +spine,DC1-SPINE2,Ethernet4,,l3leaf,DC1-SVC3A,Ethernet2, +spine,DC1-SPINE2,Ethernet5,,l3leaf,DC1-SVC3B,Ethernet2, +spine,DC1-SPINE3,Ethernet4,,l3leaf,DC1-SVC3A,Ethernet3, +spine,DC1-SPINE3,Ethernet5,,l3leaf,DC1-SVC3B,Ethernet3, +spine,DC1-SPINE4,Ethernet4,,l3leaf,DC1-SVC3A,Ethernet4, +spine,DC1-SPINE4,Ethernet5,,l3leaf,DC1-SVC3B,Ethernet4, diff --git a/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/documentation/fabric/DC1_FABRIC-topology.csv b/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/documentation/fabric/DC1_FABRIC-topology.csv index 10ff2c16d7b..4160dd86990 100644 --- a/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/documentation/fabric/DC1_FABRIC-topology.csv +++ b/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/documentation/fabric/DC1_FABRIC-topology.csv @@ -1,5 +1,128 @@ Node Type,Node,Node Interface,Peer Type,Peer Node,Peer Interface,Node Interface Enabled +l3leaf,DC1-BL1A,Ethernet1,spine,DC1-SPINE1,Ethernet6,True +l3leaf,DC1-BL1A,Ethernet2,spine,DC1-SPINE2,Ethernet6,True +l3leaf,DC1-BL1A,Ethernet3,spine,DC1-SPINE3,Ethernet6,True +l3leaf,DC1-BL1A,Ethernet4,spine,DC1-SPINE4,Ethernet6,True +l3leaf,DC1-BL1A,Ethernet9,l3leaf,DC1-BL1B,Ethernet9,True +l3leaf,DC1-BL1A,Ethernet10,l3leaf,DC1-BL1B,Ethernet10,True +l3leaf,DC1-BL1A,Ethernet4000,my_precious,MY-own-peer,Ethernet123,True +l3leaf,DC1-BL1B,Ethernet1,spine,DC1-SPINE1,Ethernet7,True +l3leaf,DC1-BL1B,Ethernet2,spine,DC1-SPINE2,Ethernet7,True +l3leaf,DC1-BL1B,Ethernet3,spine,DC1-SPINE3,Ethernet7,True +l3leaf,DC1-BL1B,Ethernet4,spine,DC1-SPINE4,Ethernet7,True +l3leaf,DC1-BL1B,Ethernet9,l3leaf,DC1-BL1A,Ethernet9,True +l3leaf,DC1-BL1B,Ethernet10,l3leaf,DC1-BL1A,Ethernet10,True +l3leaf,DC1-BL1B,Ethernet4000,my_precious,MY-own-peer,Ethernet123,True +l2leaf,DC1-L2LEAF1A,Ethernet1,l3leaf,DC1-LEAF2A,Ethernet7,True +l2leaf,DC1-L2LEAF1A,Ethernet2,l3leaf,DC1-LEAF2B,Ethernet7,True +l2leaf,DC1-L2LEAF2A,Ethernet1,l3leaf,DC1-SVC3A,Ethernet7,True +l2leaf,DC1-L2LEAF2A,Ethernet2,l3leaf,DC1-SVC3B,Ethernet7,True +l2leaf,DC1-L2LEAF2A,Ethernet3,mlag_peer,DC1-L2LEAF2B,Ethernet3,True +l2leaf,DC1-L2LEAF2A,Ethernet4,mlag_peer,DC1-L2LEAF2B,Ethernet4,True +l2leaf,DC1-L2LEAF2B,Ethernet1,l3leaf,DC1-SVC3A,Ethernet8,True +l2leaf,DC1-L2LEAF2B,Ethernet2,l3leaf,DC1-SVC3B,Ethernet8,True +l2leaf,DC1-L2LEAF2B,Ethernet3,mlag_peer,DC1-L2LEAF2A,Ethernet3,True +l2leaf,DC1-L2LEAF2B,Ethernet4,mlag_peer,DC1-L2LEAF2A,Ethernet4,True +l3leaf,DC1-LEAF1A,Ethernet1,spine,DC1-SPINE1,Ethernet1,True +l3leaf,DC1-LEAF1A,Ethernet2,spine,DC1-SPINE2,Ethernet1,True +l3leaf,DC1-LEAF1A,Ethernet3,spine,DC1-SPINE3,Ethernet1,True +l3leaf,DC1-LEAF1A,Ethernet4,spine,DC1-SPINE4,Ethernet1,True +l3leaf,DC1-LEAF1A,Ethernet6,server,server02_SINGLE_NODE_TRUNK,Eth1,True +l3leaf,DC1-LEAF1A,Ethernet7,server,server02_SINGLE_NODE,Eth1,True +l3leaf,DC1-LEAF2A,Ethernet1,spine,DC1-SPINE1,Ethernet2,True +l3leaf,DC1-LEAF2A,Ethernet2,spine,DC1-SPINE2,Ethernet2,True +l3leaf,DC1-LEAF2A,Ethernet3,spine,DC1-SPINE3,Ethernet2,True +l3leaf,DC1-LEAF2A,Ethernet4,spine,DC1-SPINE4,Ethernet2,True +l3leaf,DC1-LEAF2A,Ethernet5,mlag_peer,DC1-LEAF2B,Ethernet5,True +l3leaf,DC1-LEAF2A,Ethernet6,mlag_peer,DC1-LEAF2B,Ethernet6,True +l3leaf,DC1-LEAF2A,Ethernet7,l2leaf,DC1-L2LEAF1A,Ethernet1,True +l3leaf,DC1-LEAF2A,Ethernet10,server,server01_MLAG,Eth2,True +l3leaf,DC1-LEAF2A,Ethernet11,server,server01_MTU_PROFILE_MLAG,Eth4,True +l3leaf,DC1-LEAF2A,Ethernet12,server,server01_MTU_ADAPTOR_MLAG,Eth6,True +l3leaf,DC1-LEAF2B,Ethernet1,spine,DC1-SPINE1,Ethernet3,True +l3leaf,DC1-LEAF2B,Ethernet2,spine,DC1-SPINE2,Ethernet3,True +l3leaf,DC1-LEAF2B,Ethernet3,spine,DC1-SPINE3,Ethernet3,True +l3leaf,DC1-LEAF2B,Ethernet4,spine,DC1-SPINE4,Ethernet3,True +l3leaf,DC1-LEAF2B,Ethernet5,mlag_peer,DC1-LEAF2A,Ethernet5,True +l3leaf,DC1-LEAF2B,Ethernet6,mlag_peer,DC1-LEAF2A,Ethernet6,True +l3leaf,DC1-LEAF2B,Ethernet7,l2leaf,DC1-L2LEAF1A,Ethernet2,True +l3leaf,DC1-LEAF2B,Ethernet10,server,server01_MLAG,Eth3,True +l3leaf,DC1-LEAF2B,Ethernet11,server,server01_MTU_PROFILE_MLAG,Eth5,True +l3leaf,DC1-LEAF2B,Ethernet12,server,server01_MTU_ADAPTOR_MLAG,Eth7,True +l3leaf,DC1-LEAF3A,Ethernet1,spine,DC1-SPINE5,Ethernet1,True +l3leaf,DC1-LEAF3A,Ethernet2,spine,DC1-SPINE5,Ethernet3,True +l3leaf,DC1-LEAF3A,Ethernet5,mlag_peer,DC1-LEAF3B,Ethernet5,True +l3leaf,DC1-LEAF3A,Ethernet6,mlag_peer,DC1-LEAF3B,Ethernet6,True +l3leaf,DC1-LEAF3B,Ethernet1,spine,DC1-SPINE5,Ethernet2,True +l3leaf,DC1-LEAF3B,Ethernet2,spine,DC1-SPINE5,Ethernet4,True +l3leaf,DC1-LEAF3B,Ethernet5,mlag_peer,DC1-LEAF3A,Ethernet5,True +l3leaf,DC1-LEAF3B,Ethernet6,mlag_peer,DC1-LEAF3A,Ethernet6,True +l3leaf,DC1-LEAF4A,Ethernet1,spine,DC1-SPINE6,Ethernet1,True +l3leaf,DC1-LEAF4A,Ethernet5,mlag_peer,DC1-LEAF4B,Ethernet5,True +l3leaf,DC1-LEAF4A,Ethernet6,mlag_peer,DC1-LEAF4B,Ethernet6,True +l3leaf,DC1-LEAF4B,Ethernet1,spine,DC1-SPINE6,Ethernet2,True +l3leaf,DC1-LEAF4B,Ethernet5,mlag_peer,DC1-LEAF4A,Ethernet5,True +l3leaf,DC1-LEAF4B,Ethernet6,mlag_peer,DC1-LEAF4A,Ethernet6,True +spine,DC1-SPINE1,Ethernet1,l3leaf,DC1-LEAF1A,Ethernet1,True +spine,DC1-SPINE1,Ethernet2,l3leaf,DC1-LEAF2A,Ethernet1,True +spine,DC1-SPINE1,Ethernet3,l3leaf,DC1-LEAF2B,Ethernet1,True +spine,DC1-SPINE1,Ethernet4,l3leaf,DC1-SVC3A,Ethernet1,True +spine,DC1-SPINE1,Ethernet5,l3leaf,DC1-SVC3B,Ethernet1,True +spine,DC1-SPINE1,Ethernet6,l3leaf,DC1-BL1A,Ethernet1,True +spine,DC1-SPINE1,Ethernet7,l3leaf,DC1-BL1B,Ethernet1,True +spine,DC1-SPINE2,Ethernet1,l3leaf,DC1-LEAF1A,Ethernet2,True +spine,DC1-SPINE2,Ethernet2,l3leaf,DC1-LEAF2A,Ethernet2,True +spine,DC1-SPINE2,Ethernet3,l3leaf,DC1-LEAF2B,Ethernet2,True +spine,DC1-SPINE2,Ethernet4,l3leaf,DC1-SVC3A,Ethernet2,True +spine,DC1-SPINE2,Ethernet5,l3leaf,DC1-SVC3B,Ethernet2,True +spine,DC1-SPINE2,Ethernet6,l3leaf,DC1-BL1A,Ethernet2,True +spine,DC1-SPINE2,Ethernet7,l3leaf,DC1-BL1B,Ethernet2,True +spine,DC1-SPINE3,Ethernet1,l3leaf,DC1-LEAF1A,Ethernet3,True +spine,DC1-SPINE3,Ethernet2,l3leaf,DC1-LEAF2A,Ethernet3,True +spine,DC1-SPINE3,Ethernet3,l3leaf,DC1-LEAF2B,Ethernet3,True +spine,DC1-SPINE3,Ethernet4,l3leaf,DC1-SVC3A,Ethernet3,True +spine,DC1-SPINE3,Ethernet5,l3leaf,DC1-SVC3B,Ethernet3,True +spine,DC1-SPINE3,Ethernet6,l3leaf,DC1-BL1A,Ethernet3,True +spine,DC1-SPINE3,Ethernet7,l3leaf,DC1-BL1B,Ethernet3,True +spine,DC1-SPINE4,Ethernet1,l3leaf,DC1-LEAF1A,Ethernet4,True +spine,DC1-SPINE4,Ethernet2,l3leaf,DC1-LEAF2A,Ethernet4,True +spine,DC1-SPINE4,Ethernet3,l3leaf,DC1-LEAF2B,Ethernet4,True +spine,DC1-SPINE4,Ethernet4,l3leaf,DC1-SVC3A,Ethernet4,True +spine,DC1-SPINE4,Ethernet5,l3leaf,DC1-SVC3B,Ethernet4,True +spine,DC1-SPINE4,Ethernet6,l3leaf,DC1-BL1A,Ethernet4,True +spine,DC1-SPINE4,Ethernet7,l3leaf,DC1-BL1B,Ethernet4,True spine,DC1-SPINE5,Ethernet1,l3leaf,DC1-LEAF3A,Ethernet1,True spine,DC1-SPINE5,Ethernet2,l3leaf,DC1-LEAF3B,Ethernet1,True spine,DC1-SPINE5,Ethernet3,l3leaf,DC1-LEAF3A,Ethernet2,True spine,DC1-SPINE5,Ethernet4,l3leaf,DC1-LEAF3B,Ethernet2,True +spine,DC1-SPINE6,Ethernet1,l3leaf,DC1-LEAF4A,Ethernet1,True +spine,DC1-SPINE6,Ethernet2,l3leaf,DC1-LEAF4B,Ethernet1,True +l3leaf,DC1-SVC3A,Ethernet1,spine,DC1-SPINE1,Ethernet4,True +l3leaf,DC1-SVC3A,Ethernet2,spine,DC1-SPINE2,Ethernet4,True +l3leaf,DC1-SVC3A,Ethernet3,spine,DC1-SPINE3,Ethernet4,True +l3leaf,DC1-SVC3A,Ethernet4,spine,DC1-SPINE4,Ethernet4,True +l3leaf,DC1-SVC3A,Ethernet5,mlag_peer,DC1-SVC3B,Ethernet5,True +l3leaf,DC1-SVC3A,Ethernet6,mlag_peer,DC1-SVC3B,Ethernet6,True +l3leaf,DC1-SVC3A,Ethernet7,l2leaf,DC1-L2LEAF2A,Ethernet1,True +l3leaf,DC1-SVC3A,Ethernet8,l2leaf,DC1-L2LEAF2B,Ethernet1,True +l3leaf,DC1-SVC3A,Ethernet10,server,server03_ESI,Eth1,True +l3leaf,DC1-SVC3A,Ethernet11,server,server04_inherit_all_from_profile,Eth1,True +l3leaf,DC1-SVC3A,Ethernet12,server,server05_no_profile,Eth1,True +l3leaf,DC1-SVC3A,Ethernet13,server,server06_override_profile,Eth1,True +l3leaf,DC1-SVC3A,Ethernet14,server,server07_inherit_all_from_profile_port_channel,Eth1,True +l3leaf,DC1-SVC3A,Ethernet15,server,server08_no_profile_port_channel,Eth1,True +l3leaf,DC1-SVC3A,Ethernet16,server,server09_override_profile_no_port_channel,Eth1,True +l3leaf,DC1-SVC3B,Ethernet1,spine,DC1-SPINE1,Ethernet5,True +l3leaf,DC1-SVC3B,Ethernet2,spine,DC1-SPINE2,Ethernet5,True +l3leaf,DC1-SVC3B,Ethernet3,spine,DC1-SPINE3,Ethernet5,True +l3leaf,DC1-SVC3B,Ethernet4,spine,DC1-SPINE4,Ethernet5,True +l3leaf,DC1-SVC3B,Ethernet5,mlag_peer,DC1-SVC3A,Ethernet5,True +l3leaf,DC1-SVC3B,Ethernet6,mlag_peer,DC1-SVC3A,Ethernet6,True +l3leaf,DC1-SVC3B,Ethernet7,l2leaf,DC1-L2LEAF2A,Ethernet2,True +l3leaf,DC1-SVC3B,Ethernet8,l2leaf,DC1-L2LEAF2B,Ethernet2,True +l3leaf,DC1-SVC3B,Ethernet11,server,server04_inherit_all_from_profile,Eth2,True +l3leaf,DC1-SVC3B,Ethernet12,server,server05_no_profile,Eth2,True +l3leaf,DC1-SVC3B,Ethernet13,server,server06_override_profile,Eth2,True +l3leaf,DC1-SVC3B,Ethernet14,server,server07_inherit_all_from_profile_port_channel,Eth2,True +l3leaf,DC1-SVC3B,Ethernet15,server,server08_no_profile_port_channel,Eth2,True +l3leaf,DC1-SVC3B,Ethernet16,server,server09_override_profile_no_port_channel,Eth2,True diff --git a/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/intended/configs/DC1-LEAF3A.cfg b/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/intended/configs/DC1-LEAF3A.cfg index e61898dcd20..e83832c7b0e 100644 --- a/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/intended/configs/DC1-LEAF3A.cfg +++ b/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/intended/configs/DC1-LEAF3A.cfg @@ -134,6 +134,13 @@ interface Ethernet1 no switchport ipv6 enable ! +interface Ethernet2 + description P2P_LINK_TO_DC1-SPINE5_Ethernet3 + no shutdown + mtu 1500 + no switchport + ipv6 enable +! interface Ethernet5 description MLAG_PEER_DC1-LEAF3B_Ethernet5 no shutdown @@ -403,6 +410,7 @@ router bgp 65106 neighbor UNDERLAY_PEERS send-community neighbor UNDERLAY_PEERS maximum-routes 12000 neighbor interface Ethernet1 peer-group UNDERLAY_PEERS remote-as 65001 + neighbor interface Ethernet2 peer-group UNDERLAY_PEERS remote-as 65001 neighbor interface Vlan4093 peer-group MLAG_PEER remote-as 65106 neighbor 2001:1::5 peer group EVPN-OVERLAY-PEERS neighbor 2001:1::5 remote-as 65001 diff --git a/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/intended/configs/DC1-LEAF3B.cfg b/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/intended/configs/DC1-LEAF3B.cfg index ed0216fc7b4..f0ae64a5c02 100644 --- a/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/intended/configs/DC1-LEAF3B.cfg +++ b/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/intended/configs/DC1-LEAF3B.cfg @@ -134,6 +134,13 @@ interface Ethernet1 no switchport ipv6 enable ! +interface Ethernet2 + description P2P_LINK_TO_DC1-SPINE5_Ethernet4 + no shutdown + mtu 1500 + no switchport + ipv6 enable +! interface Ethernet5 description MLAG_PEER_DC1-LEAF3A_Ethernet5 no shutdown @@ -403,6 +410,7 @@ router bgp 65106 neighbor UNDERLAY_PEERS send-community neighbor UNDERLAY_PEERS maximum-routes 12000 neighbor interface Ethernet1 peer-group UNDERLAY_PEERS remote-as 65001 + neighbor interface Ethernet2 peer-group UNDERLAY_PEERS remote-as 65001 neighbor interface Vlan4093 peer-group MLAG_PEER remote-as 65106 neighbor 2001:1::5 peer group EVPN-OVERLAY-PEERS neighbor 2001:1::5 remote-as 65001 diff --git a/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/intended/structured_configs/DC1-LEAF3A.yml b/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/intended/structured_configs/DC1-LEAF3A.yml index 2249bae0a81..8f1eb86cf07 100644 --- a/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/intended/structured_configs/DC1-LEAF3A.yml +++ b/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/intended/structured_configs/DC1-LEAF3A.yml @@ -66,6 +66,10 @@ router_bgp: peer_group: UNDERLAY_PEERS remote_as: '65001' description: DC1-SPINE5_Ethernet1 + - name: Ethernet2 + peer_group: UNDERLAY_PEERS + remote_as: '65001' + description: DC1-SPINE5_Ethernet3 redistribute_routes: - source_protocol: connected route_map: RM-CONN-2-BGP @@ -641,6 +645,15 @@ ethernet_interfaces: mtu: 1500 type: routed ipv6_enable: true +- name: Ethernet2 + peer: DC1-SPINE5 + peer_interface: Ethernet3 + peer_type: spine + description: P2P_LINK_TO_DC1-SPINE5_Ethernet3 + shutdown: false + mtu: 1500 + type: routed + ipv6_enable: true mlag_configuration: domain_id: DC1_LEAF3 local_interface: Vlan4094 diff --git a/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/intended/structured_configs/DC1-LEAF3B.yml b/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/intended/structured_configs/DC1-LEAF3B.yml index 6a2bc9a702b..06264ca2065 100644 --- a/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/intended/structured_configs/DC1-LEAF3B.yml +++ b/ansible_collections/arista/avd/molecule/evpn_underlay_rfc5549_overlay_ebgp/intended/structured_configs/DC1-LEAF3B.yml @@ -66,6 +66,10 @@ router_bgp: peer_group: UNDERLAY_PEERS remote_as: '65001' description: DC1-SPINE5_Ethernet2 + - name: Ethernet2 + peer_group: UNDERLAY_PEERS + remote_as: '65001' + description: DC1-SPINE5_Ethernet4 redistribute_routes: - source_protocol: connected route_map: RM-CONN-2-BGP @@ -641,6 +645,15 @@ ethernet_interfaces: mtu: 1500 type: routed ipv6_enable: true +- name: Ethernet2 + peer: DC1-SPINE5 + peer_interface: Ethernet4 + peer_type: spine + description: P2P_LINK_TO_DC1-SPINE5_Ethernet4 + shutdown: false + mtu: 1500 + type: routed + ipv6_enable: true mlag_configuration: domain_id: DC1_LEAF3 local_interface: Vlan4094 From 928b9afff287e32dec7db9392a7c52a25e23b70e Mon Sep 17 00:00:00 2001 From: gmuloc Date: Mon, 24 Jul 2023 11:00:54 +0200 Subject: [PATCH 5/6] Refactor: Use unique + natural_sort --- .../avd/plugins/plugin_utils/eos_designs_facts/uplinks.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/ansible_collections/arista/avd/plugins/plugin_utils/eos_designs_facts/uplinks.py b/ansible_collections/arista/avd/plugins/plugin_utils/eos_designs_facts/uplinks.py index 7d1a40fe0bc..1259bfa0cb4 100644 --- a/ansible_collections/arista/avd/plugins/plugin_utils/eos_designs_facts/uplinks.py +++ b/ansible_collections/arista/avd/plugins/plugin_utils/eos_designs_facts/uplinks.py @@ -6,8 +6,9 @@ from ansible_collections.arista.avd.plugins.filter.list_compress import list_compress from ansible_collections.arista.avd.plugins.filter.range_expand import range_expand +from ansible_collections.arista.avd.plugins.filter.natural_sort import natural_sort from ansible_collections.arista.avd.plugins.plugin_utils.errors import AristaAvdError, AristaAvdMissingVariableError -from ansible_collections.arista.avd.plugins.plugin_utils.utils import default, get +from ansible_collections.arista.avd.plugins.plugin_utils.utils import default, get, unique if TYPE_CHECKING: from .eos_designs_facts import EosDesignsFacts @@ -229,7 +230,7 @@ def uplink_peers(self: EosDesignsFacts) -> list: """ uplink_switches = self.shared_utils.uplink_switches # Making sure each peer is unique - return list({uplink_switch for uplink_switch in uplink_switches if uplink_switch in self.shared_utils.all_fabric_devices}) + return natural_sort(unique(uplink_switch for uplink_switch in uplink_switches if uplink_switch in self.shared_utils.all_fabric_devices)) @cached_property def _default_downlink_interfaces(self: EosDesignsFacts) -> list: From 9c803bf58f75c86ce4c78a0b1c1d2553783d0e9d Mon Sep 17 00:00:00 2001 From: gmuloc Date: Mon, 24 Jul 2023 15:23:38 +0200 Subject: [PATCH 6/6] ci: Make pre-commit happy again --- .../avd/plugins/plugin_utils/eos_designs_facts/uplinks.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ansible_collections/arista/avd/plugins/plugin_utils/eos_designs_facts/uplinks.py b/ansible_collections/arista/avd/plugins/plugin_utils/eos_designs_facts/uplinks.py index 1259bfa0cb4..dc154ca2353 100644 --- a/ansible_collections/arista/avd/plugins/plugin_utils/eos_designs_facts/uplinks.py +++ b/ansible_collections/arista/avd/plugins/plugin_utils/eos_designs_facts/uplinks.py @@ -5,8 +5,8 @@ from typing import TYPE_CHECKING from ansible_collections.arista.avd.plugins.filter.list_compress import list_compress -from ansible_collections.arista.avd.plugins.filter.range_expand import range_expand from ansible_collections.arista.avd.plugins.filter.natural_sort import natural_sort +from ansible_collections.arista.avd.plugins.filter.range_expand import range_expand from ansible_collections.arista.avd.plugins.plugin_utils.errors import AristaAvdError, AristaAvdMissingVariableError from ansible_collections.arista.avd.plugins.plugin_utils.utils import default, get, unique