Warning in ansible: You're using Ansible version 12.x or higher; netlab might not work correctly ... Ansible core version 2.19 introduced breaking changes in templates and playbooks ... We tested netlab core with Ansible version 12.x but not every device template ... You might want to downgrade Ansible to version 11.10 or lower. ... Use 'netlab install ansible' on Ubuntu to do that ... Finally, please open a GitHub issue if you experience errors/crashes ... Set defaults.ansible.warnings.ver12 to False to hide this warning [INFO] Checking for updates in configuration templates [INFO] Creating configuration snippets [WARNING]: Could not match supplied host pattern, ignoring: unprovisioned [WARNING]: Found variable using reserved name 'hosts'. Origin: /work/netlab_cicd/hogs/group_vars/all/topology.yml:158:1 156 ipv4: 10.2.0.0/24 157 prefix: 32 158 hosts: ^ column 1 PLAY [Deploy initial device configuration] ************************************* TASK [Set variables that cannot be set with VARS] ****************************** ok: [r1] ok: [r2] ok: [dut] ok: [r3] ok: [r4] TASK [Generic readiness tests] ************************************************* included: /home/pipi/netlab_gh/netsim/ansible/tasks/readiness-check/ssh.yml for r1, r2, r3, r4, dut => (item=ssh) TASK [Check if 'sshpass' is installed] ***************************************** ok: [r1 -> localhost] TASK [Check for 'timeout' command] ********************************************* ok: [dut -> localhost] ok: [r3 -> localhost] ok: [r1 -> localhost] ok: [r2 -> localhost] ok: [r4 -> localhost] TASK [Execute local ssh command to check ssh readiness] ************************ FAILED - RETRYING: [r1 -> localhost]: Execute local ssh command to check ssh readiness (20 retries left). FAILED - RETRYING: [r4 -> localhost]: Execute local ssh command to check ssh readiness (20 retries left). FAILED - RETRYING: [r2 -> localhost]: Execute local ssh command to check ssh readiness (20 retries left). FAILED - RETRYING: [r3 -> localhost]: Execute local ssh command to check ssh readiness (20 retries left). FAILED - RETRYING: [r2 -> localhost]: Execute local ssh command to check ssh readiness (19 retries left). ok: [r1 -> localhost] ok: [r4 -> localhost] ok: [r3 -> localhost] FAILED - RETRYING: [dut -> localhost]: Execute local ssh command to check ssh readiness (40 retries left). ok: [r2 -> localhost] FAILED - RETRYING: [dut -> localhost]: Execute local ssh command to check ssh readiness (39 retries left). FAILED - RETRYING: [dut -> localhost]: Execute local ssh command to check ssh readiness (38 retries left). FAILED - RETRYING: [dut -> localhost]: Execute local ssh command to check ssh readiness (37 retries left). FAILED - RETRYING: [dut -> localhost]: Execute local ssh command to check ssh readiness (36 retries left). FAILED - RETRYING: [dut -> localhost]: Execute local ssh command to check ssh readiness (35 retries left). FAILED - RETRYING: [dut -> localhost]: Execute local ssh command to check ssh readiness (34 retries left). ok: [dut -> localhost] TASK [Confirm r1 SSH server works] ********************************************* ok: [r1] => { "msg": "Node r1 is ready." } ok: [dut] => { "msg": "Node dut is ready." } ok: [r3] => { "msg": "Node r3 is ready." } ok: [r4] => { "msg": "Node r4 is ready." } ok: [r2] => { "msg": "Node r2 is ready." } TASK [Find device readiness script] ******************************************** ok: [dut] ok: [r1] ok: [r2] ok: [r3] ok: [r4] TASK [Wait for device to become ready] ***************************************** skipping: [r1] skipping: [r2] skipping: [r3] skipping: [r4] included: /home/pipi/netlab_gh/netsim/ansible/tasks/readiness-check/junos.yml for dut TASK [set_fact] **************************************************************** ok: [dut] TASK [Wait for first interface (ge-0/0/0)] ************************************* ok: [dut] TASK [Normalize config on bridge-like devices] ********************************* included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for r1 included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for r2 included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for r3 included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for r4 included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for dut TASK [Figure out whether to deploy the module normalize on current device] ***** ok: [r1] TASK [Find configuration template for normalize] ******************************* ok: [r1] TASK [fail] ******************************************************************** skipping: [r1] TASK [Find configuration deployment deploy_script for normalize] *************** ok: [r1] TASK [Print deployed configuration when running in verbose mode] *************** ok: [r1] => { "msg": "normalize configuration for r1\n=========================================\n!\ninterface Ethernet1\n shutdown\n" } TASK [Deploy normalize configuration] ****************************************** included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-config/eos.yml for r1 TASK [eos_config: deploying normalize from /work/netlab_cicd/hogs/node_files/r1/normalize] *** [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 [WARNING]: Task result `warnings` was instead of . changed: [r1] TASK [Figure out whether to deploy the module normalize on current device] ***** ok: [r2] TASK [Find configuration template for normalize] ******************************* ok: [r2] TASK [fail] ******************************************************************** skipping: [r2] TASK [Find configuration deployment deploy_script for normalize] *************** ok: [r2] TASK [Print deployed configuration when running in verbose mode] *************** ok: [r2] => { "msg": "normalize configuration for r2\n=========================================\n!\ninterface Ethernet1\n shutdown\n" } TASK [Deploy normalize configuration] ****************************************** included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-config/eos.yml for r2 TASK [eos_config: deploying normalize from /work/netlab_cicd/hogs/node_files/r2/normalize] *** changed: [r2] TASK [Figure out whether to deploy the module normalize on current device] ***** ok: [r3] TASK [Find configuration template for normalize] ******************************* ok: [r3] TASK [fail] ******************************************************************** skipping: [r3] TASK [Find configuration deployment deploy_script for normalize] *************** ok: [r3] TASK [Print deployed configuration when running in verbose mode] *************** ok: [r3] => { "msg": "normalize configuration for r3\n=========================================\n!\ninterface Ethernet1\n shutdown\n" } TASK [Deploy normalize configuration] ****************************************** included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-config/eos.yml for r3 TASK [eos_config: deploying normalize from /work/netlab_cicd/hogs/node_files/r3/normalize] *** changed: [r3] TASK [Figure out whether to deploy the module normalize on current device] ***** ok: [r4] TASK [Find configuration template for normalize] ******************************* ok: [r4] TASK [fail] ******************************************************************** skipping: [r4] TASK [Find configuration deployment deploy_script for normalize] *************** ok: [r4] TASK [Print deployed configuration when running in verbose mode] *************** ok: [r4] => { "msg": "normalize configuration for r4\n=========================================\n!\ninterface Ethernet1\n shutdown\n" } TASK [Deploy normalize configuration] ****************************************** included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-config/eos.yml for r4 TASK [eos_config: deploying normalize from /work/netlab_cicd/hogs/node_files/r4/normalize] *** changed: [r4] TASK [Figure out whether to deploy the module normalize on current device] ***** ok: [dut] TASK [Find configuration template for normalize] ******************************* ok: [dut] TASK [fail] ******************************************************************** skipping: [dut] TASK [Find configuration deployment deploy_script for normalize] *************** ok: [dut] TASK [Print deployed configuration when running in verbose mode] *************** skipping: [dut] TASK [Deploy normalize configuration] ****************************************** skipping: [dut] TASK [Deploy initial configuration] ******************************************** included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for r1 included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for r2 included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for r3 included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for r4 included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for dut TASK [Figure out whether to deploy the module initial on current device] ******* ok: [r1] TASK [Find configuration template for initial] ********************************* ok: [r1] TASK [fail] ******************************************************************** skipping: [r1] TASK [Find configuration deployment deploy_script for initial] ***************** ok: [r1] TASK [Print deployed configuration when running in verbose mode] *************** ok: [r1] => { "msg": "initial configuration for r1\n=========================================\nhostname r1\n!\nlogging monitor debugging\naaa authorization exec default local\n!\nlldp run\nip routing\nipv6 unicast-routing\n!\n!\nip host dut 10.0.0.1\nip host dut-red 10.1.0.1 10.1.0.5\nip host dut-blue 10.1.0.9 10.1.0.13\nip host r2 10.0.0.12 10.1.0.6\nip host r3 10.0.0.23 10.1.0.10\nip host r4 10.0.0.24 10.1.0.14\nipv6 host dut 2001:db8:1:1::1\nipv6 host r2 2001:db8:1:c::1\nipv6 host r3 2001:db8:1:17::1\nipv6 host r4 2001:db8:1:18::1\n!\ninterface Management0\n no lldp transmit\n no lldp receive\n!\ninterface Loopback0\n ip address 10.0.0.11/32\n ipv6 nd ra interval 5\n ipv6 address 2001:db8:1:b::1/64\n!\ninterface Ethernet1\n no switchport\n platform tfa phy control-frame disabled\n description r1 -> dut [external]\n ip address 10.1.0.2/30\n mac-address caf0.000b.0001\n!\n no shutdown\n!\n" } TASK [Deploy initial configuration] ******************************************** included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-config/eos.yml for r1 TASK [eos_config: deploying initial from /work/netlab_cicd/hogs/node_files/r1/initial] *** changed: [r1] TASK [Figure out whether to deploy the module initial on current device] ******* ok: [r2] TASK [Find configuration template for initial] ********************************* ok: [r2] TASK [fail] ******************************************************************** skipping: [r2] TASK [Find configuration deployment deploy_script for initial] ***************** ok: [r2] TASK [Print deployed configuration when running in verbose mode] *************** ok: [r2] => { "msg": "initial configuration for r2\n=========================================\nhostname r2\n!\nlogging monitor debugging\naaa authorization exec default local\n!\nlldp run\nip routing\nipv6 unicast-routing\n!\n!\nip host dut 10.0.0.1\nip host dut-red 10.1.0.1 10.1.0.5\nip host dut-blue 10.1.0.9 10.1.0.13\nip host r1 10.0.0.11 10.1.0.2\nip host r3 10.0.0.23 10.1.0.10\nip host r4 10.0.0.24 10.1.0.14\nipv6 host dut 2001:db8:1:1::1\nipv6 host r1 2001:db8:1:b::1\nipv6 host r3 2001:db8:1:17::1\nipv6 host r4 2001:db8:1:18::1\n!\ninterface Management0\n no lldp transmit\n no lldp receive\n!\ninterface Loopback0\n ip address 10.0.0.12/32\n ipv6 nd ra interval 5\n ipv6 address 2001:db8:1:c::1/64\n!\ninterface Ethernet1\n no switchport\n platform tfa phy control-frame disabled\n description r2 -> dut [external]\n ip address 10.1.0.6/30\n mac-address caf0.000c.0001\n!\n no shutdown\n!\n" } TASK [Deploy initial configuration] ******************************************** included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-config/eos.yml for r2 TASK [eos_config: deploying initial from /work/netlab_cicd/hogs/node_files/r2/initial] *** changed: [r2] TASK [Figure out whether to deploy the module initial on current device] ******* ok: [r3] TASK [Find configuration template for initial] ********************************* ok: [r3] TASK [fail] ******************************************************************** skipping: [r3] TASK [Find configuration deployment deploy_script for initial] ***************** ok: [r3] TASK [Print deployed configuration when running in verbose mode] *************** ok: [r3] => { "msg": "initial configuration for r3\n=========================================\nhostname r3\n!\nlogging monitor debugging\naaa authorization exec default local\n!\nlldp run\nip routing\nipv6 unicast-routing\n!\n!\nip host dut 10.0.0.1\nip host dut-red 10.1.0.1 10.1.0.5\nip host dut-blue 10.1.0.9 10.1.0.13\nip host r1 10.0.0.11 10.1.0.2\nip host r2 10.0.0.12 10.1.0.6\nip host r4 10.0.0.24 10.1.0.14\nipv6 host dut 2001:db8:1:1::1\nipv6 host r1 2001:db8:1:b::1\nipv6 host r2 2001:db8:1:c::1\nipv6 host r4 2001:db8:1:18::1\n!\ninterface Management0\n no lldp transmit\n no lldp receive\n!\ninterface Loopback0\n ip address 10.0.0.23/32\n ipv6 nd ra interval 5\n ipv6 address 2001:db8:1:17::1/64\n!\ninterface Ethernet1\n no switchport\n platform tfa phy control-frame disabled\n description r3 -> dut [external]\n ip address 10.1.0.10/30\n mac-address caf0.0017.0001\n!\n no shutdown\n!\n" } TASK [Deploy initial configuration] ******************************************** included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-config/eos.yml for r3 TASK [eos_config: deploying initial from /work/netlab_cicd/hogs/node_files/r3/initial] *** changed: [r3] TASK [Figure out whether to deploy the module initial on current device] ******* ok: [r4] TASK [Find configuration template for initial] ********************************* ok: [r4] TASK [fail] ******************************************************************** skipping: [r4] TASK [Find configuration deployment deploy_script for initial] ***************** ok: [r4] TASK [Print deployed configuration when running in verbose mode] *************** ok: [r4] => { "msg": "initial configuration for r4\n=========================================\nhostname r4\n!\nlogging monitor debugging\naaa authorization exec default local\n!\nlldp run\nip routing\nipv6 unicast-routing\n!\n!\nip host dut 10.0.0.1\nip host dut-red 10.1.0.1 10.1.0.5\nip host dut-blue 10.1.0.9 10.1.0.13\nip host r1 10.0.0.11 10.1.0.2\nip host r2 10.0.0.12 10.1.0.6\nip host r3 10.0.0.23 10.1.0.10\nipv6 host dut 2001:db8:1:1::1\nipv6 host r1 2001:db8:1:b::1\nipv6 host r2 2001:db8:1:c::1\nipv6 host r3 2001:db8:1:17::1\n!\ninterface Management0\n no lldp transmit\n no lldp receive\n!\ninterface Loopback0\n ip address 10.0.0.24/32\n ipv6 nd ra interval 5\n ipv6 address 2001:db8:1:18::1/64\n!\ninterface Ethernet1\n no switchport\n platform tfa phy control-frame disabled\n description r4 -> dut [external]\n ip address 10.1.0.14/30\n mac-address caf0.0018.0001\n!\n no shutdown\n!\n" } TASK [Deploy initial configuration] ******************************************** included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-config/eos.yml for r4 TASK [eos_config: deploying initial from /work/netlab_cicd/hogs/node_files/r4/initial] *** changed: [r4] TASK [Figure out whether to deploy the module initial on current device] ******* ok: [dut] TASK [Find configuration template for initial] ********************************* ok: [dut] TASK [fail] ******************************************************************** skipping: [dut] TASK [Find configuration deployment deploy_script for initial] ***************** ok: [dut] TASK [Print deployed configuration when running in verbose mode] *************** ok: [dut] => { "msg": "initial configuration for dut\n=========================================\nsystem {\n host-name dut;\n static-host-mapping {\n r1 inet 10.0.0.11;\n r2 inet 10.0.0.12;\n r3 inet 10.0.0.23;\n r4 inet 10.0.0.24;\n }\n}\n\n\n\n\npolicy-options {\n community tg_65000_1 members target:65000:1;\n community tg_65000_2 members target:65000:2;\n}\n\n\n\npolicy-options {\n policy-statement vrf-red-rt-export {\n term 1 {\n then {\n community add tg_65000_1;\n accept;\n }\n }\n }\n\n\n policy-statement vrf-red-rt-import {\n term 1 {\n from community [ tg_65000_1 ];\n then accept;\n }\n term default {\n then reject;\n }\n }\n policy-statement vrf-blue-rt-export {\n term 1 {\n then {\n community add tg_65000_2;\n accept;\n }\n }\n }\n\n\n policy-statement vrf-blue-rt-import {\n term 1 {\n from community [ tg_65000_2 ];\n then accept;\n }\n term default {\n then reject;\n }\n }\n}\n\nrouting-instances {\n\n red {\n instance-type vrf;\n route-distinguisher 65000:1;\n\n vrf-import vrf-red-rt-import;\n vrf-export vrf-red-rt-export;\n\n routing-options {\n auto-export;\n }\n\n interface ge-0/0/0.0;\n interface ge-0/0/1.0;\n\n }\n\n\n blue {\n instance-type vrf;\n route-distinguisher 65000:2;\n\n vrf-import vrf-blue-rt-import;\n vrf-export vrf-blue-rt-export;\n\n routing-options {\n auto-export;\n }\n\n interface ge-0/0/2.0;\n interface ge-0/0/3.0;\n\n }\n\n}\ninterfaces {\n ge-0/0/0 {\n mtu 1514;\n }\n ge-0/0/1 {\n mtu 1514;\n }\n ge-0/0/2 {\n mtu 1514;\n }\n ge-0/0/3 {\n mtu 1514;\n }\n\n lo0.0 {\n \n family inet {\n address 10.0.0.1/32;\n }\n family inet6 {\n address 2001:db8:1:1::1/64;\n }\n \n }\n ge-0/0/0.0 {\n description \"dut -> r1 [external]\";\n \n family inet {\n address 10.1.0.1/30;\n }\n \n }\n ge-0/0/1.0 {\n description \"dut -> r2 [external]\";\n \n family inet {\n address 10.1.0.5/30;\n }\n \n }\n ge-0/0/2.0 {\n description \"dut -> r3 [external]\";\n \n family inet {\n address 10.1.0.9/30;\n }\n \n }\n ge-0/0/3.0 {\n description \"dut -> r4 [external]\";\n \n family inet {\n address 10.1.0.13/30;\n }\n \n }\n}\nprotocols {\n lldp {\n interface fxp0 {\n disable;\n }\n interface all;\n }\n}\n" } TASK [Deploy initial configuration] ******************************************** included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-config/junos.yml for dut TASK [junos_config: deploying initial from /work/netlab_cicd/hogs/node_files/dut/initial] *** changed: [dut] PLAY [Deploy module-specific configurations] *********************************** TASK [Set variables that cannot be set with VARS] ****************************** ok: [dut] ok: [r3] ok: [r2] ok: [r1] ok: [r4] TASK [Deploy individual configuration modules] ********************************* included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for r1 => (item=bgp) included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for r1 => (item=vrf) included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for r2 => (item=bgp) included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for r2 => (item=vrf) included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for r3 => (item=bgp) included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for r3 => (item=vrf) included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for r4 => (item=bgp) included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for r4 => (item=vrf) included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for dut => (item=bgp) included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for dut => (item=vrf) TASK [Figure out whether to deploy the module bgp on current device] *********** ok: [r1] TASK [Find configuration template for bgp] ************************************* ok: [r1] TASK [fail] ******************************************************************** skipping: [r1] TASK [Find configuration deployment deploy_script for bgp] ********************* ok: [r1] TASK [Print deployed configuration when running in verbose mode] *************** ok: [r1] => { "msg": "bgp configuration for r1\n=========================================\n!\n!\nrouter bgp 65101\n bgp advertise-inactive\n bgp log-neighbor-changes\n no bgp default ipv4-unicast\n no bgp default ipv6-unicast\n router-id 10.0.0.11\n!\n neighbor 10.1.0.1 remote-as 65000\n neighbor 10.1.0.1 description dut\n neighbor 10.1.0.1 send-community standard large \n!\n!\n address-family ipv4\n\n!\n!\n! Originate networks from connected subnets\n!\n network 10.0.0.11/32\n!\n!\n neighbor 10.1.0.1 activate\n neighbor 10.1.0.1 next-hop-self\n!\n address-family ipv6\n\n!\n!\n! Originate networks from connected subnets\n!\n network 2001:db8:1:b::/64\n!\n!\n!\n" } TASK [Deploy bgp configuration] ************************************************ included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-config/eos.yml for r1 TASK [eos_config: deploying bgp from /work/netlab_cicd/hogs/node_files/r1/bgp] *** changed: [r1] TASK [Figure out whether to deploy the module vrf on current device] *********** ok: [r1] TASK [Find configuration template for vrf] ************************************* skipping: [r1] TASK [fail] ******************************************************************** skipping: [r1] TASK [Find configuration deployment deploy_script for vrf] ********************* skipping: [r1] TASK [Print deployed configuration when running in verbose mode] *************** skipping: [r1] TASK [Deploy vrf configuration] ************************************************ skipping: [r1] TASK [Figure out whether to deploy the module bgp on current device] *********** ok: [r2] TASK [Find configuration template for bgp] ************************************* ok: [r2] TASK [fail] ******************************************************************** skipping: [r2] TASK [Find configuration deployment deploy_script for bgp] ********************* ok: [r2] TASK [Print deployed configuration when running in verbose mode] *************** ok: [r2] => { "msg": "bgp configuration for r2\n=========================================\n!\n!\nrouter bgp 65102\n bgp advertise-inactive\n bgp log-neighbor-changes\n no bgp default ipv4-unicast\n no bgp default ipv6-unicast\n router-id 10.0.0.12\n!\n neighbor 10.1.0.5 remote-as 65000\n neighbor 10.1.0.5 description dut\n neighbor 10.1.0.5 send-community standard large \n!\n!\n address-family ipv4\n\n!\n!\n! Originate networks from connected subnets\n!\n network 10.0.0.12/32\n!\n!\n neighbor 10.1.0.5 activate\n neighbor 10.1.0.5 next-hop-self\n!\n address-family ipv6\n\n!\n!\n! Originate networks from connected subnets\n!\n network 2001:db8:1:c::/64\n!\n!\n!\n" } TASK [Deploy bgp configuration] ************************************************ included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-config/eos.yml for r2 TASK [eos_config: deploying bgp from /work/netlab_cicd/hogs/node_files/r2/bgp] *** changed: [r2] TASK [Figure out whether to deploy the module vrf on current device] *********** ok: [r2] TASK [Find configuration template for vrf] ************************************* skipping: [r2] TASK [fail] ******************************************************************** skipping: [r2] TASK [Find configuration deployment deploy_script for vrf] ********************* skipping: [r2] TASK [Print deployed configuration when running in verbose mode] *************** skipping: [r2] TASK [Deploy vrf configuration] ************************************************ skipping: [r2] TASK [Figure out whether to deploy the module bgp on current device] *********** ok: [r3] TASK [Find configuration template for bgp] ************************************* ok: [r3] TASK [fail] ******************************************************************** skipping: [r3] TASK [Find configuration deployment deploy_script for bgp] ********************* ok: [r3] TASK [Print deployed configuration when running in verbose mode] *************** ok: [r3] => { "msg": "bgp configuration for r3\n=========================================\n!\n!\nrouter bgp 65103\n bgp advertise-inactive\n bgp log-neighbor-changes\n no bgp default ipv4-unicast\n no bgp default ipv6-unicast\n router-id 10.0.0.23\n!\n neighbor 10.1.0.9 remote-as 65000\n neighbor 10.1.0.9 description dut\n neighbor 10.1.0.9 send-community standard large \n!\n!\n address-family ipv4\n\n!\n!\n! Originate networks from connected subnets\n!\n network 10.0.0.23/32\n!\n!\n neighbor 10.1.0.9 activate\n neighbor 10.1.0.9 next-hop-self\n!\n address-family ipv6\n\n!\n!\n! Originate networks from connected subnets\n!\n network 2001:db8:1:17::/64\n!\n!\n!\n" } TASK [Deploy bgp configuration] ************************************************ included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-config/eos.yml for r3 TASK [eos_config: deploying bgp from /work/netlab_cicd/hogs/node_files/r3/bgp] *** changed: [r3] TASK [Figure out whether to deploy the module vrf on current device] *********** ok: [r3] TASK [Find configuration template for vrf] ************************************* skipping: [r3] TASK [fail] ******************************************************************** skipping: [r3] TASK [Find configuration deployment deploy_script for vrf] ********************* skipping: [r3] TASK [Print deployed configuration when running in verbose mode] *************** skipping: [r3] TASK [Deploy vrf configuration] ************************************************ skipping: [r3] TASK [Figure out whether to deploy the module bgp on current device] *********** ok: [r4] TASK [Find configuration template for bgp] ************************************* ok: [r4] TASK [fail] ******************************************************************** skipping: [r4] TASK [Find configuration deployment deploy_script for bgp] ********************* ok: [r4] TASK [Print deployed configuration when running in verbose mode] *************** ok: [r4] => { "msg": "bgp configuration for r4\n=========================================\n!\n!\nrouter bgp 65104\n bgp advertise-inactive\n bgp log-neighbor-changes\n no bgp default ipv4-unicast\n no bgp default ipv6-unicast\n router-id 10.0.0.24\n!\n neighbor 10.1.0.13 remote-as 65000\n neighbor 10.1.0.13 description dut\n neighbor 10.1.0.13 send-community standard large \n!\n!\n address-family ipv4\n\n!\n!\n! Originate networks from connected subnets\n!\n network 10.0.0.24/32\n!\n!\n neighbor 10.1.0.13 activate\n neighbor 10.1.0.13 next-hop-self\n!\n address-family ipv6\n\n!\n!\n! Originate networks from connected subnets\n!\n network 2001:db8:1:18::/64\n!\n!\n!\n" } TASK [Deploy bgp configuration] ************************************************ included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-config/eos.yml for r4 TASK [eos_config: deploying bgp from /work/netlab_cicd/hogs/node_files/r4/bgp] *** changed: [r4] TASK [Figure out whether to deploy the module vrf on current device] *********** ok: [r4] TASK [Find configuration template for vrf] ************************************* skipping: [r4] TASK [fail] ******************************************************************** skipping: [r4] TASK [Find configuration deployment deploy_script for vrf] ********************* skipping: [r4] TASK [Print deployed configuration when running in verbose mode] *************** skipping: [r4] TASK [Deploy vrf configuration] ************************************************ skipping: [r4] TASK [Figure out whether to deploy the module bgp on current device] *********** ok: [dut] TASK [Find configuration template for bgp] ************************************* ok: [dut] TASK [fail] ******************************************************************** skipping: [dut] TASK [Find configuration deployment deploy_script for bgp] ********************* ok: [dut] TASK [Print deployed configuration when running in verbose mode] *************** ok: [dut] => { "msg": "bgp configuration for dut\n=========================================\n\nrouting-options {\n autonomous-system 65000;\n router-id 10.0.0.1\n}\n\n\npolicy-options community x-route-permit-mark members large:65535:0:65536;\n\npolicy-options {\n delete: policy-statement bgp-advertise;\n delete: policy-statement bgp-redistribute;\n delete: policy-statement next-hop-ebgp-ipv4;\n delete: policy-statement next-hop-all-ipv4;\n delete: policy-statement next-hop-ebgp-ipv6;\n delete: policy-statement next-hop-all-ipv6;\n delete: route-filter-list bgp-announce;\n}\n\npolicy-options {\n\n route-filter-list bgp-announce {\n }\n\n policy-statement next-hop-ebgp-ipv4 {\n term next-hop-self-ipv4 {\n from {\n family inet;\n route-type external;\n }\n then {\n next-hop self;\n }\n }\n }\n\n policy-statement next-hop-all-ipv4 {\n term next-hop-self-ipv4 {\n from {\n family inet;\n }\n then {\n next-hop self;\n }\n }\n }\n\n policy-statement next-hop-ebgp-ipv6 {\n term next-hop-self-ipv6 {\n from {\n family inet6;\n route-type external;\n }\n then {\n next-hop self;\n }\n }\n }\n\n policy-statement next-hop-all-ipv6 {\n term next-hop-self-ipv6 {\n from {\n family inet6;\n }\n then {\n next-hop self;\n }\n }\n }\n\n\n policy-statement bgp-advertise {\n term advertise {\n from {\n protocol direct;\n interface [ \n lo0.0 ];\n }\n then {\n community add x-route-permit-mark;\n next policy;\n }\n }\n\n term originate {\n from {\n protocol static;\n route-filter-list bgp-announce;\n }\n then {\n community add x-route-permit-mark;\n next policy;\n }\n }\n\n }\n\n policy-statement bgp-redistribute {\n term redis_bgp {\n from protocol bgp;\n then {\n community add x-route-permit-mark;\n next policy;\n }\n }\n }\n\n policy-statement bgp-final {\n term final-option {\n from community x-route-permit-mark;\n then {\n community delete x-route-permit-mark;\n accept;\n }\n }\n term default-reject {\n then reject;\n }\n }\n\n policy-statement bgp-initial {\n term initial-cleanup {\n from community x-route-permit-mark;\n then {\n community delete x-route-permit-mark;\n next policy;\n }\n }\n }\n\n}\nprotocols {\n delete: bgp;\n}\nprotocols {\n bgp {\n group ibgp-peers-ipv4 {\n type internal;\n export [ \n next-hop-ebgp-ipv4 next-hop-ebgp-ipv6 bgp-advertise bgp-redistribute bgp-final\n ];\n advertise-inactive;\n }\n group ibgp-peers-ipv6 {\n type internal;\n export [ \n next-hop-ebgp-ipv4 next-hop-ebgp-ipv6 bgp-advertise bgp-redistribute bgp-final\n ];\n advertise-inactive;\n }\n group ebgp-peers {\n export [ \n bgp-advertise bgp-redistribute bgp-final\n ];\n advertise-inactive;\n }\n }\n}\n" } TASK [Deploy bgp configuration] ************************************************ included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-config/junos.yml for dut TASK [junos_config: deploying bgp from /work/netlab_cicd/hogs/node_files/dut/bgp] *** [WARNING]: statement not found changed: [dut] TASK [Figure out whether to deploy the module vrf on current device] *********** ok: [dut] TASK [Find configuration template for vrf] ************************************* ok: [dut] TASK [fail] ******************************************************************** skipping: [dut] TASK [Find configuration deployment deploy_script for vrf] ********************* ok: [dut] TASK [Print deployed configuration when running in verbose mode] *************** ok: [dut] => { "msg": "vrf configuration for dut\n=========================================\n\n\npolicy-options {\n community x-route-permit-mark members large:65535:0:65536;\n\n policy-statement vrf-red-bgp-export {\n term redis_bgp {\n from {\n protocol bgp;\n }\n then {\n community add x-route-permit-mark;\n next policy;\n }\n }\n term redis_direct {\n from {\n protocol direct;\n }\n then {\n community add x-route-permit-mark;\n next policy;\n }\n }\n term redis_ospf {\n from {\n protocol ospf;\n }\n then {\n community add x-route-permit-mark;\n next policy;\n }\n }\n term redis_ospf3 {\n from {\n protocol ospf3;\n }\n then {\n community add x-route-permit-mark;\n next policy;\n }\n }\n }\n\n\n policy-statement vrf-blue-bgp-export {\n term redis_bgp {\n from {\n protocol bgp;\n }\n then {\n community add x-route-permit-mark;\n next policy;\n }\n }\n term redis_direct {\n from {\n protocol direct;\n }\n then {\n community add x-route-permit-mark;\n next policy;\n }\n }\n term redis_ospf {\n from {\n protocol ospf;\n }\n then {\n community add x-route-permit-mark;\n next policy;\n }\n }\n term redis_ospf3 {\n from {\n protocol ospf3;\n }\n then {\n community add x-route-permit-mark;\n next policy;\n }\n }\n }\n\n}\n\n\nrouting-instances {\n\n red {\n routing-options {\n autonomous-system 65000;\n router-id 10.0.0.1\n }\n\n protocols {\n bgp {\n\n group ebgp-peers {\n export [ vrf-red-bgp-export bgp-final ];\n advertise-inactive;\n neighbor 10.1.0.2 {\n\n peer-as 65101;\n description r1;\n }\n neighbor 10.1.0.6 {\n\n peer-as 65102;\n description r2;\n }\n }\n }\n }\n }\n\n\n blue {\n routing-options {\n autonomous-system 65000;\n router-id 10.0.0.1\n }\n\n protocols {\n bgp {\n\n group ebgp-peers {\n export [ vrf-blue-bgp-export bgp-final ];\n advertise-inactive;\n neighbor 10.1.0.10 {\n\n peer-as 65103;\n description r3;\n }\n neighbor 10.1.0.14 {\n\n peer-as 65104;\n description r4;\n }\n }\n }\n }\n }\n\n}\n" } TASK [Deploy vrf configuration] ************************************************ included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-config/junos.yml for dut TASK [junos_config: deploying vrf from /work/netlab_cicd/hogs/node_files/dut/vrf] *** changed: [dut] PLAY [Deploy custom deployment templates] ************************************** TASK [Run custom configuration deployment scripts] ***************************** included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-custom-config.yml for r1, r2, r3, r4 => (item=bgp-xact) TASK [Find configuration template] ********************************************* ok: [r1] ok: [r2] ok: [r4] ok: [r3] TASK [fail] ******************************************************************** skipping: [r1] skipping: [r2] skipping: [r3] skipping: [r4] TASK [Check is the configuration template is a file] *************************** ok: [r1 -> localhost] ok: [r2 -> localhost] ok: [r4 -> localhost] ok: [r3 -> localhost] TASK [fail] ******************************************************************** skipping: [r1] skipping: [r2] skipping: [r3] skipping: [r4] TASK [Process template /work/netlab_cicd/hogs/node_files/r1/bgp-xact for r1] *** skipping: [r1] skipping: [r3] skipping: [r2] skipping: [r4] TASK [Find custom configuration deployment script] ***************************** ok: [r1] ok: [r3] ok: [r2] ok: [r4] TASK [Run the configuration deployment script] ********************************* included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-config/eos.yml for r1, r2, r3, r4 TASK [eos_config: deploying bgp-xact from /work/netlab_cicd/hogs/node_files/r1/bgp-xact] *** changed: [r3] changed: [r1] changed: [r4] changed: [r2] PLAY RECAP ********************************************************************* dut : ok=35 changed=3 unreachable=0 failed=0 skipped=6 rescued=0 ignored=0 r1 : ok=37 changed=4 unreachable=0 failed=0 skipped=12 rescued=0 ignored=0 r2 : ok=36 changed=4 unreachable=0 failed=0 skipped=12 rescued=0 ignored=0 r3 : ok=36 changed=4 unreachable=0 failed=0 skipped=12 rescued=0 ignored=0 r4 : ok=36 changed=4 unreachable=0 failed=0 skipped=12 rescued=0 ignored=0 Warning: The following warnings were generated during the 'netlab initial' processing Warning: ansible: You're using Ansible version 12.x or higher; netlab might not work correctly [CREATED] r1: normalize,initial,bgp,bgp-xact [CREATED] r2: normalize,initial,bgp,bgp-xact [CREATED] r3: normalize,initial,bgp,bgp-xact [CREATED] r4: normalize,initial,bgp,bgp-xact [CREATED] dut: initial,bgp,vrf The device under test has two VRFs with two interfaces in each VRF. Routers are attached to those interfaces and run BGP with device under test. Assuming the multi-vrf test case succeeded, this one adds BGP routing with CE routers. * r1 and r2 should be able to ping each other * r3 and r4 should be able to ping each other * r1 should not be able to reach r3 The test also checks whether DUT unnecessarily enables IPv6 AF over IPv4 EBGP sessions