/home/pipi/.local/lib/python3.10/site-packages/paramiko/pkey.py:100: CryptographyDeprecationWarning: TripleDES has been moved to cryptography.hazmat.decrepit.ciphers.algorithms.TripleDES and will be removed from cryptography.hazmat.primitives.ciphers.algorithms in 48.0.0. "cipher": algorithms.TripleDES, /home/pipi/.local/lib/python3.10/site-packages/paramiko/transport.py:259: CryptographyDeprecationWarning: TripleDES has been moved to cryptography.hazmat.decrepit.ciphers.algorithms.TripleDES and will be removed from cryptography.hazmat.primitives.ciphers.algorithms in 48.0.0. "class": algorithms.TripleDES, [WARNING]: Could not match supplied host pattern, ignoring: unprovisioned [WARNING]: Found variable using reserved name: hosts PLAY [Deploy initial device configuration] ************************************* TASK [Set variables that cannot be set with VARS] ****************************** ok: [h1] ok: [h2] ok: [h3] ok: [s1] ok: [h4] ok: [s2] TASK [Find device readiness script] ******************************************** ok: [h1] ok: [h2] ok: [h3] ok: [h4] ok: [s1] ok: [s2] TASK [Wait for device to become ready] ***************************************** skipping: [h1] skipping: [h2] skipping: [h3] skipping: [h4] included: /home/pipi/net101/tools/netsim/ansible/tasks/readiness-check/eos-clab.yml for s1, s2 TASK [Wait for cEOS SSH daemon to start] *************************************** ok: [s2] ok: [s1] TASK [Normalize config on bridge-like devices] ********************************* included: /home/pipi/net101/tools/netsim/ansible/tasks/deploy-module.yml for s1, s2, h1, h2, h3, h4 TASK [Figure out whether to deploy the module normalize on current device] ***** ok: [h1] ok: [h2] ok: [h3] ok: [h4] ok: [s1] ok: [s2] TASK [Find configuration template for normalize] ******************************* ok: [h1] ok: [h2] ok: [h4] ok: [h3] ok: [s1] ok: [s2] TASK [fail] ******************************************************************** skipping: [s1] skipping: [s2] skipping: [h1] skipping: [h2] skipping: [h3] skipping: [h4] TASK [Find configuration deployment deploy_script for normalize] *************** ok: [h1] ok: [h2] ok: [h3] ok: [h4] ok: [s1] ok: [s2] TASK [Print deployed configuration when running in verbose mode] *************** skipping: [h1] skipping: [h2] skipping: [h3] skipping: [h4] ok: [s1] => msg: |- normalize configuration for s1 ========================================= ! interface Ethernet1 shutdown mac-address 52dc.cafe.0101 ! interface Ethernet2 shutdown mac-address 52dc.cafe.0102 ! interface Ethernet3 shutdown mac-address 52dc.cafe.0103 ok: [s2] => msg: |- normalize configuration for s2 ========================================= ! interface Ethernet1 shutdown mac-address 52dc.cafe.0201 ! interface Ethernet2 shutdown mac-address 52dc.cafe.0202 ! interface Ethernet3 shutdown mac-address 52dc.cafe.0203 TASK [Deploy normalize configuration] ****************************************** skipping: [h1] skipping: [h2] skipping: [h3] skipping: [h4] included: /home/pipi/net101/tools/netsim/ansible/tasks/deploy-config/eos.yml for s1, s2 TASK [eos_config: deploying normalize from /home/pipi/net101/tools/netsim/ansible/templates/normalize/eos.j2] *** [WARNING]: To ensure idempotency and correct diff the input configuration lines should be similar to how they appear if present in the running configuration on device including the indentation changed: [s2] changed: [s1] TASK [Deploy initial configuration] ******************************************** included: /home/pipi/net101/tools/netsim/ansible/tasks/deploy-module.yml for s1, s2, h1, h2, h3, h4 TASK [Figure out whether to deploy the module initial on current device] ******* ok: [h1] ok: [h2] ok: [h3] ok: [s1] ok: [h4] ok: [s2] TASK [Find configuration template for initial] ********************************* ok: [h1] ok: [h2] ok: [h4] ok: [h3] ok: [s1] ok: [s2] TASK [fail] ******************************************************************** skipping: [s1] skipping: [s2] skipping: [h1] skipping: [h2] skipping: [h3] skipping: [h4] TASK [Find configuration deployment deploy_script for initial] ***************** ok: [h1] ok: [h2] ok: [h3] ok: [h4] ok: [s1] ok: [s2] TASK [Print deployed configuration when running in verbose mode] *************** ok: [h1] => msg: |- initial configuration for h1 ========================================= #!/bin/bash # # This script contains the 'ip' commands needed to set up container # interfaces and route table. It's executed within the container # network namespace on the container host. # # /etc/hosts file is generated as a clab bind. # set -e ### One-Shot configuration (non-Ubuntu VM or container) # # Send ARP requests from a sane source IP address sysctl -w net.ipv4.conf.all.arp_announce=2 # # Disable IPv4 and IPv6 forwarding # sysctl -w net.ipv4.ip_forward=0 sysctl -w net.ipv6.conf.all.forwarding=0 # # Interface addressing, create any bond devices # ip link set dev eth1 up set +e ip addr del 172.16.0.3/24 dev eth1 2>/dev/null set -e ip addr add 172.16.0.3/24 dev eth1 sysctl -w net.ipv6.conf.eth1.disable_ipv6=1 ip link set dev eth1 mtu 1500 ok: [h2] => msg: |- initial configuration for h2 ========================================= #!/bin/bash # # This script contains the 'ip' commands needed to set up container # interfaces and route table. It's executed within the container # network namespace on the container host. # # /etc/hosts file is generated as a clab bind. # set -e ### One-Shot configuration (non-Ubuntu VM or container) # # Send ARP requests from a sane source IP address sysctl -w net.ipv4.conf.all.arp_announce=2 # # Disable IPv4 and IPv6 forwarding # sysctl -w net.ipv4.ip_forward=0 sysctl -w net.ipv6.conf.all.forwarding=0 # # Interface addressing, create any bond devices # ip link set dev eth1 up set +e ip addr del 172.16.1.4/24 dev eth1 2>/dev/null set -e ip addr add 172.16.1.4/24 dev eth1 sysctl -w net.ipv6.conf.eth1.disable_ipv6=1 ip link set dev eth1 mtu 1500 ok: [h3] => msg: |- initial configuration for h3 ========================================= #!/bin/bash # # This script contains the 'ip' commands needed to set up container # interfaces and route table. It's executed within the container # network namespace on the container host. # # /etc/hosts file is generated as a clab bind. # set -e ### One-Shot configuration (non-Ubuntu VM or container) # # Send ARP requests from a sane source IP address sysctl -w net.ipv4.conf.all.arp_announce=2 # # Disable IPv4 and IPv6 forwarding # sysctl -w net.ipv4.ip_forward=0 sysctl -w net.ipv6.conf.all.forwarding=0 # # Interface addressing, create any bond devices # ip link set dev eth1 up set +e ip addr del 172.16.2.5/24 dev eth1 2>/dev/null set -e ip addr add 172.16.2.5/24 dev eth1 sysctl -w net.ipv6.conf.eth1.disable_ipv6=1 ip link set dev eth1 mtu 1500 ok: [h4] => msg: |- initial configuration for h4 ========================================= #!/bin/bash # # This script contains the 'ip' commands needed to set up container # interfaces and route table. It's executed within the container # network namespace on the container host. # # /etc/hosts file is generated as a clab bind. # set -e ### One-Shot configuration (non-Ubuntu VM or container) # # Send ARP requests from a sane source IP address sysctl -w net.ipv4.conf.all.arp_announce=2 # # Disable IPv4 and IPv6 forwarding # sysctl -w net.ipv4.ip_forward=0 sysctl -w net.ipv6.conf.all.forwarding=0 # # Interface addressing, create any bond devices # ip link set dev eth1 up set +e ip addr del 172.16.3.6/24 dev eth1 2>/dev/null set -e ip addr add 172.16.3.6/24 dev eth1 sysctl -w net.ipv6.conf.eth1.disable_ipv6=1 ip link set dev eth1 mtu 1500 ok: [s1] => msg: |- initial configuration for s1 ========================================= hostname s1 ! logging monitor debugging aaa authorization exec default local ! lldp run ip routing no ipv6 unicast-routing ! vrf instance tenant rd 65000:1 ! ip routing vrf tenant ! ! ip host s1-tenant 172.16.0.1 172.16.2.1 172.16.1.1 ip host s2 10.0.0.2 10.1.0.2 ip host s2-tenant 172.16.1.2 172.16.3.2 172.16.0.2 ip host h1 172.16.0.3 ip host h2 172.16.1.4 ip host h3 172.16.2.5 ip host h4 172.16.3.6 ! interface Management0 no lldp transmit no lldp receive ! interface Loopback0 ip address 10.0.0.1/32 ! interface Ethernet1 no switchport mtu 1600 description s1 -> s2 ip address 10.1.0.1/30 ! mac-address 52dc.cafe.0101 no shutdown ! interface Ethernet2 no switchport description [Access VLAN red] s1 -> h1 ! mac-address 52dc.cafe.0102 no shutdown ! interface Ethernet3 no switchport description [Access VLAN green] s1 -> h3 ! mac-address 52dc.cafe.0103 no shutdown ! interface Vlan1000 vrf tenant description VLAN red (1000) -> [h1,s2] ip address 172.16.0.1/24 ! interface Vlan1002 vrf tenant description VLAN green (1002) -> [h3] [stub] ip address 172.16.2.1/24 ! interface Vlan1001 vrf tenant description VLAN blue (1001) -> [h2,s2] ip address 172.16.1.1/24 ! ok: [s2] => msg: |- initial configuration for s2 ========================================= hostname s2 ! logging monitor debugging aaa authorization exec default local ! lldp run ip routing no ipv6 unicast-routing ! vrf instance tenant rd 65000:1 ! ip routing vrf tenant ! ! ip host s1 10.0.0.1 10.1.0.1 ip host s1-tenant 172.16.0.1 172.16.2.1 172.16.1.1 ip host s2-tenant 172.16.1.2 172.16.3.2 172.16.0.2 ip host h1 172.16.0.3 ip host h2 172.16.1.4 ip host h3 172.16.2.5 ip host h4 172.16.3.6 ! interface Management0 no lldp transmit no lldp receive ! interface Loopback0 ip address 10.0.0.2/32 ! interface Ethernet1 no switchport mtu 1600 description s2 -> s1 ip address 10.1.0.2/30 ! mac-address 52dc.cafe.0201 no shutdown ! interface Ethernet2 no switchport description [Access VLAN blue] s2 -> h2 ! mac-address 52dc.cafe.0202 no shutdown ! interface Ethernet3 no switchport description [Access VLAN purple] s2 -> h4 ! mac-address 52dc.cafe.0203 no shutdown ! interface Vlan1001 vrf tenant description VLAN blue (1001) -> [s1,h2] ip address 172.16.1.2/24 ! interface Vlan1003 vrf tenant description VLAN purple (1003) -> [h4] [stub] ip address 172.16.3.2/24 ! interface Vlan1000 vrf tenant description VLAN red (1000) -> [h1,s1] ip address 172.16.0.2/24 ! TASK [Deploy initial configuration] ******************************************** included: /home/pipi/net101/tools/netsim/ansible/tasks/deploy-config/eos.yml for s1, s2 included: /home/pipi/net101/tools/netsim/ansible/tasks/deploy-config/linux-clab.yml for h1, h2, h3, h4 TASK [eos_config: deploying initial from /home/pipi/net101/tools/netsim/ansible/templates/initial/eos.j2] *** changed: [s1] changed: [s2] TASK [Define script filename and determine whether to execute in netns] ******** ok: [h1] ok: [h2] ok: [h3] ok: [h4] TASK [Create a temporary file for the rendered script] ************************* changed: [h4 -> localhost] changed: [h2 -> localhost] changed: [h1 -> localhost] changed: [h3 -> localhost] TASK [Create container setup script from /home/pipi/net101/tools/netsim/ansible/templates/initial/linux-clab.j2] *** changed: [h2 -> localhost] changed: [h3 -> localhost] changed: [h1 -> localhost] changed: [h4 -> localhost] TASK [Copy script into running container at /tmp/config-h1_initial.sh] ********* skipping: [h1] skipping: [h2] skipping: [h3] skipping: [h4] TASK [Execute /tmp/config-h1_initial.sh to deploy initial config based on /home/pipi/net101/tools/netsim/ansible/templates/initial/linux-clab.j2] *** skipping: [h1] skipping: [h2] skipping: [h3] skipping: [h4] TASK [Container configuration for initial based on /home/pipi/net101/tools/netsim/ansible/templates/initial/linux-clab.j2 executed in netns] *** changed: [h2 -> localhost] changed: [h3 -> localhost] changed: [h1 -> localhost] changed: [h4 -> localhost] TASK [Remove temporary file /tmp/h1_initial-ihh2ze80.sh] *********************** changed: [h2 -> localhost] changed: [h3 -> localhost] changed: [h1 -> localhost] changed: [h4 -> localhost] PLAY [Deploy module-specific configurations] *********************************** TASK [Set variables that cannot be set with VARS] ****************************** ok: [h1] ok: [h2] ok: [h3] ok: [h4] ok: [s1] ok: [s2] TASK [Deploy individual configuration modules] ********************************* included: /home/pipi/net101/tools/netsim/ansible/tasks/deploy-module.yml for s1, s2, h1, h2, h3, h4 => (item=vlan) included: /home/pipi/net101/tools/netsim/ansible/tasks/deploy-module.yml for s1, s2, h1, h2, h3, h4 => (item=routing) included: /home/pipi/net101/tools/netsim/ansible/tasks/deploy-module.yml for s1, s2, h1, h2, h3, h4 => (item=ospf) included: /home/pipi/net101/tools/netsim/ansible/tasks/deploy-module.yml for s1, s2, h1, h2, h3, h4 => (item=bgp) included: /home/pipi/net101/tools/netsim/ansible/tasks/deploy-module.yml for s1, s2, h1, h2, h3, h4 => (item=vrf) included: /home/pipi/net101/tools/netsim/ansible/tasks/deploy-module.yml for s1, s2, h1, h2, h3, h4 => (item=vxlan) included: /home/pipi/net101/tools/netsim/ansible/tasks/deploy-module.yml for s1, s2, h1, h2, h3, h4 => (item=evpn) TASK [Figure out whether to deploy the module vlan on current device] ********** ok: [h1] ok: [h2] ok: [h3] ok: [h4] ok: [s1] ok: [s2] TASK [Find configuration template for vlan] ************************************ skipping: [h1] skipping: [h2] skipping: [h3] skipping: [h4] ok: [s1] ok: [s2] TASK [fail] ******************************************************************** skipping: [s1] skipping: [s2] skipping: [h1] skipping: [h2] skipping: [h3] skipping: [h4] TASK [Find configuration deployment deploy_script for vlan] ******************** skipping: [h1] skipping: [h2] skipping: [h3] skipping: [h4] ok: [s1] ok: [s2] TASK [Print deployed configuration when running in verbose mode] *************** skipping: [h1] skipping: [h2] skipping: [h3] skipping: [h4] ok: [s1] => msg: |- vlan configuration for s1 ========================================= vlan 1000 name red ! vlan 1001 name blue ! vlan 1002 name green ! ! interface Ethernet2 switchport switchport access vlan 1000 ! interface Ethernet3 switchport switchport access vlan 1002 ! interface Vlan1000 ! interface Vlan1002 ! interface Vlan1001 ok: [s2] => msg: |- vlan configuration for s2 ========================================= vlan 1000 name red ! vlan 1001 name blue ! vlan 1003 name purple ! ! interface Ethernet2 switchport switchport access vlan 1001 ! interface Ethernet3 switchport switchport access vlan 1003 ! interface Vlan1001 ! interface Vlan1003 ! interface Vlan1000 TASK [Deploy vlan configuration] *********************************************** skipping: [h1] skipping: [h2] skipping: [h3] skipping: [h4] included: /home/pipi/net101/tools/netsim/ansible/tasks/deploy-config/eos.yml for s1, s2 TASK [eos_config: deploying vlan from /home/pipi/net101/tools/netsim/ansible/templates/vlan/eos.j2] *** changed: [s2] changed: [s1] TASK [Figure out whether to deploy the module routing on current device] ******* ok: [h1] ok: [h2] ok: [h3] ok: [h4] ok: [s1] ok: [s2] TASK [Find configuration template for routing] ********************************* skipping: [s1] skipping: [s2] ok: [h1] ok: [h2] ok: [h3] ok: [h4] TASK [fail] ******************************************************************** skipping: [s1] skipping: [s2] skipping: [h1] skipping: [h2] skipping: [h3] skipping: [h4] TASK [Find configuration deployment deploy_script for routing] ***************** skipping: [s1] skipping: [s2] ok: [h1] ok: [h2] ok: [h3] ok: [h4] TASK [Print deployed configuration when running in verbose mode] *************** skipping: [s1] skipping: [s2] ok: [h1] => msg: |- routing configuration for h1 ========================================= #!/bin/bash # # Add static routes (usually IPv4 routes pointing to the first usable gateway) # # echo Removing existing IPv4 routes while ip route del 172.16.0.0/16 2>/dev/null; do : ; done while ip route del 10.0.0.0/24 2>/dev/null; do : ; done while ip route del 10.1.0.0/16 2>/dev/null; do : ; done while ip route del 10.2.0.0/24 2>/dev/null; do : ; done # # # echo Adding direct static routes ip route add 172.16.0.0/16 via 172.16.0.1 dev eth1 protocol static ip route add 10.0.0.0/24 via 172.16.0.1 dev eth1 protocol static ip route add 10.1.0.0/16 via 172.16.0.1 dev eth1 protocol static ip route add 10.2.0.0/24 via 172.16.0.1 dev eth1 protocol static # # Print the final routing table ip route ok: [h2] => msg: |- routing configuration for h2 ========================================= #!/bin/bash # # Add static routes (usually IPv4 routes pointing to the first usable gateway) # # echo Removing existing IPv4 routes while ip route del 172.16.0.0/16 2>/dev/null; do : ; done while ip route del 10.0.0.0/24 2>/dev/null; do : ; done while ip route del 10.1.0.0/16 2>/dev/null; do : ; done while ip route del 10.2.0.0/24 2>/dev/null; do : ; done # # # echo Adding direct static routes ip route add 172.16.0.0/16 via 172.16.1.1 dev eth1 protocol static ip route add 10.0.0.0/24 via 172.16.1.1 dev eth1 protocol static ip route add 10.1.0.0/16 via 172.16.1.1 dev eth1 protocol static ip route add 10.2.0.0/24 via 172.16.1.1 dev eth1 protocol static # # Print the final routing table ip route ok: [h3] => msg: |- routing configuration for h3 ========================================= #!/bin/bash # # Add static routes (usually IPv4 routes pointing to the first usable gateway) # # echo Removing existing IPv4 routes while ip route del 172.16.0.0/16 2>/dev/null; do : ; done while ip route del 10.0.0.0/24 2>/dev/null; do : ; done while ip route del 10.1.0.0/16 2>/dev/null; do : ; done while ip route del 10.2.0.0/24 2>/dev/null; do : ; done # # # echo Adding direct static routes ip route add 172.16.0.0/16 via 172.16.2.1 dev eth1 protocol static ip route add 10.0.0.0/24 via 172.16.2.1 dev eth1 protocol static ip route add 10.1.0.0/16 via 172.16.2.1 dev eth1 protocol static ip route add 10.2.0.0/24 via 172.16.2.1 dev eth1 protocol static # # Print the final routing table ip route ok: [h4] => msg: |- routing configuration for h4 ========================================= #!/bin/bash # # Add static routes (usually IPv4 routes pointing to the first usable gateway) # # echo Removing existing IPv4 routes while ip route del 172.16.0.0/16 2>/dev/null; do : ; done while ip route del 10.0.0.0/24 2>/dev/null; do : ; done while ip route del 10.1.0.0/16 2>/dev/null; do : ; done while ip route del 10.2.0.0/24 2>/dev/null; do : ; done # # # echo Adding direct static routes ip route add 172.16.0.0/16 via 172.16.3.2 dev eth1 protocol static ip route add 10.0.0.0/24 via 172.16.3.2 dev eth1 protocol static ip route add 10.1.0.0/16 via 172.16.3.2 dev eth1 protocol static ip route add 10.2.0.0/24 via 172.16.3.2 dev eth1 protocol static # # Print the final routing table ip route TASK [Deploy routing configuration] ******************************************** skipping: [s1] skipping: [s2] included: /home/pipi/net101/tools/netsim/ansible/tasks/deploy-config/linux-clab.yml for h1, h2, h3, h4 TASK [Define script filename and determine whether to execute in netns] ******** ok: [h1] ok: [h2] ok: [h3] ok: [h4] TASK [Create a temporary file for the rendered script] ************************* changed: [h1 -> localhost] changed: [h2 -> localhost] changed: [h3 -> localhost] changed: [h4 -> localhost] TASK [Create container setup script from /home/pipi/net101/tools/netsim/ansible/templates/routing/linux-clab.j2] *** changed: [h1 -> localhost] changed: [h2 -> localhost] changed: [h4 -> localhost] changed: [h3 -> localhost] TASK [Copy script into running container at /tmp/config-h1_routing.sh] ********* skipping: [h1] skipping: [h2] skipping: [h3] skipping: [h4] TASK [Execute /tmp/config-h1_routing.sh to deploy routing config based on /home/pipi/net101/tools/netsim/ansible/templates/routing/linux-clab.j2] *** skipping: [h1] skipping: [h2] skipping: [h3] skipping: [h4] TASK [Container configuration for routing based on /home/pipi/net101/tools/netsim/ansible/templates/routing/linux-clab.j2 executed in netns] *** changed: [h2 -> localhost] changed: [h1 -> localhost] changed: [h4 -> localhost] changed: [h3 -> localhost] TASK [Remove temporary file /tmp/h1_routing-u2_a5u1f.sh] *********************** changed: [h1 -> localhost] changed: [h2 -> localhost] changed: [h3 -> localhost] changed: [h4 -> localhost] TASK [Figure out whether to deploy the module ospf on current device] ********** ok: [h1] ok: [h2] ok: [h4] ok: [h3] ok: [s1] ok: [s2] TASK [Find configuration template for ospf] ************************************ skipping: [h1] skipping: [h2] skipping: [h3] skipping: [h4] ok: [s1] ok: [s2] TASK [fail] ******************************************************************** skipping: [s1] skipping: [s2] skipping: [h1] skipping: [h2] skipping: [h3] skipping: [h4] TASK [Find configuration deployment deploy_script for ospf] ******************** skipping: [h1] skipping: [h2] skipping: [h3] skipping: [h4] ok: [s1] ok: [s2] TASK [Print deployed configuration when running in verbose mode] *************** skipping: [h1] skipping: [h2] skipping: [h3] skipping: [h4] ok: [s1] => msg: |- ospf configuration for s1 ========================================= ! ! OSPFv2 configuration ! router ospf 1 router-id 10.0.0.1 interface unnumbered hello mask tx 0.0.0.0 timers spf delay initial 100 200 500 timers lsa rx min interval 100 timers lsa tx delay initial 100 200 500 ! interface Loopback0 ! ip ospf area 0.0.0.0 ! interface Ethernet1 ! s1 -> s2 ip ospf area 0.0.0.0 ip ospf network point-to-point ! ok: [s2] => msg: |- ospf configuration for s2 ========================================= ! ! OSPFv2 configuration ! router ospf 1 router-id 10.0.0.2 interface unnumbered hello mask tx 0.0.0.0 timers spf delay initial 100 200 500 timers lsa rx min interval 100 timers lsa tx delay initial 100 200 500 ! interface Loopback0 ! ip ospf area 0.0.0.0 ! interface Ethernet1 ! s2 -> s1 ip ospf area 0.0.0.0 ip ospf network point-to-point ! TASK [Deploy ospf configuration] *********************************************** skipping: [h1] skipping: [h2] skipping: [h3] skipping: [h4] included: /home/pipi/net101/tools/netsim/ansible/tasks/deploy-config/eos.yml for s1, s2 TASK [eos_config: deploying ospf from /home/pipi/net101/tools/netsim/ansible/templates/ospf/eos.j2] *** changed: [s2] changed: [s1] TASK [Figure out whether to deploy the module bgp on current device] *********** ok: [h1] ok: [h2] ok: [h3] ok: [h4] ok: [s1] ok: [s2] TASK [Find configuration template for bgp] ************************************* skipping: [h1] skipping: [h2] skipping: [h3] skipping: [h4] ok: [s1] ok: [s2] TASK [fail] ******************************************************************** skipping: [s1] skipping: [s2] skipping: [h1] skipping: [h2] skipping: [h3] skipping: [h4] TASK [Find configuration deployment deploy_script for bgp] ********************* skipping: [h1] skipping: [h2] skipping: [h3] skipping: [h4] ok: [s1] ok: [s2] TASK [Print deployed configuration when running in verbose mode] *************** skipping: [h1] skipping: [h2] skipping: [h3] skipping: [h4] ok: [s1] => msg: |- bgp configuration for s1 ========================================= ! route-map next-hop-self-ipv4 permit 10 match route-type external set ip next-hop peer-address ! route-map next-hop-self-ipv4 permit 20 ! ! router bgp 65000 bgp advertise-inactive bgp log-neighbor-changes no bgp default ipv4-unicast no bgp default ipv6-unicast router-id 10.0.0.1 ! neighbor 10.0.0.2 remote-as 65000 neighbor 10.0.0.2 description s2 neighbor 10.0.0.2 update-source Loopback0 neighbor 10.0.0.2 send-community standard extended large ! ! address-family ipv4 network 10.0.0.1/32 ! ! ! neighbor 10.0.0.2 activate neighbor 10.0.0.2 route-map next-hop-self-ipv4 out ! ok: [s2] => msg: |- bgp configuration for s2 ========================================= ! route-map next-hop-self-ipv4 permit 10 match route-type external set ip next-hop peer-address ! route-map next-hop-self-ipv4 permit 20 ! ! router bgp 65000 bgp advertise-inactive bgp log-neighbor-changes no bgp default ipv4-unicast no bgp default ipv6-unicast router-id 10.0.0.2 ! neighbor 10.0.0.1 remote-as 65000 neighbor 10.0.0.1 description s1 neighbor 10.0.0.1 update-source Loopback0 neighbor 10.0.0.1 send-community standard extended large ! ! address-family ipv4 network 10.0.0.2/32 ! ! ! neighbor 10.0.0.1 activate neighbor 10.0.0.1 route-map next-hop-self-ipv4 out ! TASK [Deploy bgp configuration] ************************************************ skipping: [h1] skipping: [h2] skipping: [h3] skipping: [h4] included: /home/pipi/net101/tools/netsim/ansible/tasks/deploy-config/eos.yml for s1, s2 TASK [eos_config: deploying bgp from /home/pipi/net101/tools/netsim/ansible/templates/bgp/eos.j2] *** changed: [s1] changed: [s2] TASK [Figure out whether to deploy the module vrf on current device] *********** ok: [h1] ok: [h2] ok: [h3] ok: [s1] ok: [h4] ok: [s2] TASK [Find configuration template for vrf] ************************************* skipping: [h1] skipping: [h2] skipping: [h3] skipping: [h4] ok: [s1] ok: [s2] TASK [fail] ******************************************************************** skipping: [s1] skipping: [s2] skipping: [h1] skipping: [h2] skipping: [h3] skipping: [h4] TASK [Find configuration deployment deploy_script for vrf] ********************* skipping: [h1] skipping: [h2] skipping: [h3] skipping: [h4] ok: [s1] ok: [s2] TASK [Print deployed configuration when running in verbose mode] *************** skipping: [h1] skipping: [h2] skipping: [h3] skipping: [h4] ok: [s2] => msg: |- vrf configuration for s2 ========================================= ! mpls ip ! router bgp 65000 ! vrf tenant router-id 10.0.0.2 rd 65000:1 ! address-family ipv4 redistribute connected redistribute ospf ! ! OSPFv2 configuration ! router ospf 100 vrf tenant router-id 10.0.0.2 interface unnumbered hello mask tx 0.0.0.0 timers spf delay initial 100 200 500 timers lsa rx min interval 100 timers lsa tx delay initial 100 200 500 redistribute bgp include leaked redistribute connected include leaked passive-interface Vlan1003 ! interface Vlan1001 ! VLAN blue (1001) -> [s1,h2] ip ospf area 0.0.0.0 ! interface Vlan1003 ! VLAN purple (1003) -> [h4] ip ospf area 0.0.0.0 ip ospf network point-to-point ! interface Vlan1000 ! VLAN red (1000) -> [h1,s1] ip ospf area 0.0.0.0 ! ok: [s1] => msg: |- vrf configuration for s1 ========================================= ! mpls ip ! router bgp 65000 ! vrf tenant router-id 10.0.0.1 rd 65000:1 ! address-family ipv4 redistribute connected redistribute ospf ! ! OSPFv2 configuration ! router ospf 100 vrf tenant router-id 10.0.0.1 interface unnumbered hello mask tx 0.0.0.0 timers spf delay initial 100 200 500 timers lsa rx min interval 100 timers lsa tx delay initial 100 200 500 redistribute bgp include leaked redistribute connected include leaked passive-interface Vlan1002 ! interface Vlan1000 ! VLAN red (1000) -> [h1,s2] ip ospf area 0.0.0.0 ! interface Vlan1002 ! VLAN green (1002) -> [h3] ip ospf area 0.0.0.0 ip ospf network point-to-point ! interface Vlan1001 ! VLAN blue (1001) -> [h2,s2] ip ospf area 0.0.0.0 ! TASK [Deploy vrf configuration] ************************************************ skipping: [h1] skipping: [h2] skipping: [h3] skipping: [h4] included: /home/pipi/net101/tools/netsim/ansible/tasks/deploy-config/eos.yml for s1, s2 TASK [eos_config: deploying vrf from /home/pipi/net101/tools/netsim/ansible/templates/vrf/eos.j2] *** changed: [s1] changed: [s2] TASK [Figure out whether to deploy the module vxlan on current device] ********* ok: [h1] ok: [h2] ok: [h3] ok: [s1] ok: [h4] ok: [s2] TASK [Find configuration template for vxlan] *********************************** skipping: [h1] skipping: [h2] skipping: [h3] skipping: [h4] ok: [s1] ok: [s2] TASK [fail] ******************************************************************** skipping: [s1] skipping: [s2] skipping: [h1] skipping: [h2] skipping: [h3] skipping: [h4] TASK [Find configuration deployment deploy_script for vxlan] ******************* skipping: [h1] skipping: [h2] skipping: [h3] skipping: [h4] ok: [s1] ok: [s2] TASK [Print deployed configuration when running in verbose mode] *************** skipping: [h1] skipping: [h2] skipping: [h3] skipping: [h4] ok: [s1] => msg: |- vxlan configuration for s1 ========================================= interface vxlan 1 vxlan source-interface Loopback0 vxlan vlan 1000 vni 21000 vxlan vlan 1001 vni 21001 ok: [s2] => msg: |- vxlan configuration for s2 ========================================= interface vxlan 1 vxlan source-interface Loopback0 vxlan vlan 1000 vni 21000 vxlan vlan 1001 vni 21001 TASK [Deploy vxlan configuration] ********************************************** skipping: [h1] skipping: [h2] skipping: [h3] skipping: [h4] included: /home/pipi/net101/tools/netsim/ansible/tasks/deploy-config/eos.yml for s1, s2 TASK [eos_config: deploying vxlan from /home/pipi/net101/tools/netsim/ansible/templates/vxlan/eos.j2] *** changed: [s2] changed: [s1] TASK [Figure out whether to deploy the module evpn on current device] ********** ok: [h1] ok: [h2] ok: [h3] ok: [s1] ok: [h4] ok: [s2] TASK [Find configuration template for evpn] ************************************ skipping: [h1] skipping: [h2] skipping: [h3] skipping: [h4] ok: [s1] ok: [s2] TASK [fail] ******************************************************************** skipping: [s1] skipping: [s2] skipping: [h1] skipping: [h2] skipping: [h3] skipping: [h4] TASK [Find configuration deployment deploy_script for evpn] ******************** skipping: [h1] skipping: [h2] skipping: [h3] skipping: [h4] ok: [s1] ok: [s2] TASK [Print deployed configuration when running in verbose mode] *************** skipping: [h1] skipping: [h2] skipping: [h3] skipping: [h4] ok: [s1] => msg: |- evpn configuration for s1 ========================================= ! router bgp 65000 address-family evpn ! neighbor 10.0.0.2 activate ! vlan 1000 rd 10.0.0.1:1000 route-target import 65000:1000 route-target export 65000:1000 redistribute learned ! vlan 1001 rd 10.0.0.1:1001 route-target import 65000:1001 route-target export 65000:1001 redistribute learned ! vrf tenant rd 65000:1 route-target import evpn 65000:1 route-target export evpn 65000:1 redistribute connected ok: [s2] => msg: |- evpn configuration for s2 ========================================= ! router bgp 65000 address-family evpn ! neighbor 10.0.0.1 activate ! vlan 1000 rd 10.0.0.2:1000 route-target import 65000:1000 route-target export 65000:1000 redistribute learned ! vlan 1001 rd 10.0.0.2:1001 route-target import 65000:1001 route-target export 65000:1001 redistribute learned ! vrf tenant rd 65000:1 route-target import evpn 65000:1 route-target export evpn 65000:1 redistribute connected TASK [Deploy evpn configuration] *********************************************** skipping: [h1] skipping: [h2] skipping: [h3] skipping: [h4] included: /home/pipi/net101/tools/netsim/ansible/tasks/deploy-config/eos.yml for s1, s2 TASK [eos_config: deploying evpn from /home/pipi/net101/tools/netsim/ansible/templates/evpn/eos.j2] *** changed: [s1] changed: [s2] PLAY [Deploy custom deployment templates] ************************************** skipping: no hosts matched PLAY RECAP ********************************************************************* h1 : ok=41 changed=8 unreachable=0 failed=0 skipped=40 rescued=0 ignored=0 h2 : ok=41 changed=8 unreachable=0 failed=0 skipped=40 rescued=0 ignored=0 h3 : ok=41 changed=8 unreachable=0 failed=0 skipped=40 rescued=0 ignored=0 h4 : ok=41 changed=8 unreachable=0 failed=0 skipped=40 rescued=0 ignored=0 s1 : ok=63 changed=8 unreachable=0 failed=0 skipped=13 rescued=0 ignored=0 s2 : ok=63 changed=8 unreachable=0 failed=0 skipped=13 rescued=0 ignored=0 The devices under test are VLAN-to-VXLAN routers using asymmetric IRB with EVPN control plane and running OSPF within the VRF (across VXLAN segments) to exchange information about non-EVPN subnets. All hosts should be able to ping each other