Creating Device configuration snippets [CREATED] h1: initial,routing [CREATED] h2: initial,routing [CREATED] h3: initial,routing [CREATED] h4: initial,routing [CREATED] h5: initial,routing [CREATED] h6: initial,routing [CREATED] dut_s1: initial,vlan [CREATED] s2: normalize,initial,vlan Checking Are lab devices ready to be configured? [INFO] Checking SSH server(s) on s2 Config Normalizing device configurations [INFO] Executing normalize configuration for node s2 Config Deploying device configurations [INFO] Executing initial configuration for node h1 (namespace clab- ml-17-h1) [INFO] Executing initial configuration for node h2 (namespace clab- ml-17-h2) [INFO] Executing initial configuration for node h3 (namespace clab- ml-17-h3) [INFO] Executing initial configuration for node h4 (namespace clab- ml-17-h4) [INFO] Executing initial configuration for node h5 (namespace clab- ml-17-h5) [INFO] Executing initial configuration for node h6 (namespace clab- ml-17-h6) [INFO] Executing initial configuration for node s2 [INFO] Executing routing configuration for node h1 (namespace clab- ml-17-h1) [INFO] Executing routing configuration for node h2 (namespace clab- ml-17-h2) [INFO] Executing routing configuration for node h5 (namespace clab- ml-17-h5) [INFO] Executing routing configuration for node h3 (namespace clab- ml-17-h3) [INFO] Executing routing configuration for node h6 (namespace clab- ml-17-h6) [INFO] Executing routing configuration for node h4 (namespace clab- ml-17-h4) [INFO] Executing vlan configuration for node s2 [INFO] Starting Ansible playbook to deploy the rest of the configurations [WARNING]: Found variable using reserved name: hosts PLAY [Deploy initial device configuration] ************************************* TASK [Set variables that cannot be set with VARS] ****************************** ok: [dut_s1] TASK [Deploy initial configuration] ******************************************** included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for dut_s1 TASK [Figure out whether to deploy the module initial on current device] ******* ok: [dut_s1] TASK [Find configuration template for initial] ********************************* ok: [dut_s1] TASK [fail] ******************************************************************** skipping: [dut_s1] TASK [Find configuration deployment deploy_script for initial] ***************** ok: [dut_s1] TASK [Print deployed configuration when running in verbose mode] *************** ok: [dut_s1] => { "msg": "initial configuration for dut_s1\n=========================================\n#!/bin/sh\n\nset -e # Exit immediately when any command fails\nset -x # Track commands for troubleshooting\n\nhostname dut-s1\n#\n# Build hosts file\n#\n#\ncat <<'SCRIPT' >/tmp/hosts\n#\n# Created by netlab initial\n#\n10.0.0.7 dut-s1 dut_s1\n172.31.1.1 h1 eth1.h1\n172.31.1.2 h2 eth1.h2\n172.31.1.3 h3 eth1.h3\n172.31.1.4 h4 eth1.h4\n172.31.1.5 h5 eth1.h5\n172.31.1.6 h6 eth1.h6\n10.0.0.8 s2\nSCRIPT\ngrep \"Created by netlab\" /etc/hosts || uniq /tmp/hosts >>/etc/hosts\n\n#\n# Enable forwarding\n#\nsysctl net.inet.ip.forwarding=1\nsysctl net.inet6.ip6.forwarding=1\necho -n > /etc/rad.conf\n\n#\n# Interface configuration\n#\nifconfig lo0 inet 10.0.0.7/32 alias\nifconfig lo0 up\n\n#!/bin/sh\n\nset -e # Exit immediately when any command fails\nset -x # Track commands for troubleshooting\n\nifconfig vlan7011 parent vio1 vnetid 701\nifconfig vlan7001 parent vio1 vnetid 700\n\n\n\nifconfig vio1 -inet\nifconfig vio1 -inet6\nifconfig vio1 mtu 1500\nifconfig vio1 description \"dut_s1 -> s2\"\nifconfig vio1 up\n\nifconfig vio2 -inet\nifconfig vio2 -inet6\nifconfig vio2 mtu 1500\nifconfig vio2 description \"[Access VLAN red] dut_s1 -> h1\"\nifconfig vio2 up\n\nifconfig vio3 -inet\nifconfig vio3 -inet6\nifconfig vio3 mtu 1500\nifconfig vio3 description \"[Access VLAN blue] dut_s1 -> h3\"\nifconfig vio3 up\n\nifconfig vio4 -inet\nifconfig vio4 -inet6\nifconfig vio4 mtu 1500\nifconfig vio4 description \"[Access VLAN untagged] dut_s1 -> h5\"\nifconfig vio4 up\n\nifconfig vlan7011 -inet\nifconfig vlan7011 -inet6\nifconfig vlan7011 description \"[SubIf VLAN blue] dut_s1 -> s2\"\nifconfig vlan7011 up\n\nifconfig vlan7001 -inet\nifconfig vlan7001 -inet6\nifconfig vlan7001 description \"[SubIf VLAN red] dut_s1 -> s2\"\nifconfig vlan7001 up\n\nifconfig vport700 -inet\nifconfig vport700 -inet6\nifconfig vport700 description \"VLAN red (700) -> [h1,h2,s2]\"\nifconfig vport700 up\n\nifconfig vport701 -inet\nifconfig vport701 -inet6\nifconfig vport701 description \"VLAN blue (701) -> [h3,h4,s2]\"\nifconfig vport701 up\n\nifconfig vport1 -inet\nifconfig vport1 -inet6\nifconfig vport1 description \"VLAN untagged (1) -> [h5,h6,s2]\"\nifconfig vport1 up\n\n\n#\n# (re-)start RA daemon\n#\npkill -q rad || true\nrad\n" } TASK [Deploy initial configuration] ******************************************** included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-config/openbsd.yml for dut_s1 TASK [template] **************************************************************** changed: [dut_s1] TASK [Execute /tmp/config.sh to deploy initial config from /work/netlab_cicd/node_files/dut_s1/initial] *** changed: [dut_s1] PLAY [Deploy module-specific configurations] *********************************** TASK [Set variables that cannot be set with VARS] ****************************** ok: [dut_s1] TASK [Deploy individual configuration modules] ********************************* included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for dut_s1 => (item=vlan) included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-module.yml for dut_s1 => (item=routing) TASK [Figure out whether to deploy the module vlan on current device] ********** ok: [dut_s1] TASK [Find configuration template for vlan] ************************************ ok: [dut_s1] TASK [fail] ******************************************************************** skipping: [dut_s1] TASK [Find configuration deployment deploy_script for vlan] ******************** ok: [dut_s1] TASK [Print deployed configuration when running in verbose mode] *************** ok: [dut_s1] => { "msg": "vlan configuration for dut_s1\n=========================================\n#!/bin/sh\n\nset -e # Exit immediately when any command fails\nset -x # Track commands for troubleshooting\n\nifconfig veb700 add vio2 up\nifconfig veb701 add vio3 up\nifconfig veb1 add vio4 up\nifconfig veb701 add vlan7011 up\nifconfig veb700 add vlan7001 up\nifconfig veb700 add vport700 up\nifconfig veb701 add vport701 up\nifconfig veb1 add vport1 up\n" } TASK [Deploy vlan configuration] *********************************************** included: /home/pipi/netlab_gh/netsim/ansible/tasks/deploy-config/openbsd.yml for dut_s1 TASK [template] **************************************************************** changed: [dut_s1] TASK [Execute /tmp/config.sh to deploy vlan config from /work/netlab_cicd/node_files/dut_s1/vlan] *** changed: [dut_s1] TASK [Figure out whether to deploy the module routing on current device] ******* ok: [dut_s1] TASK [Find configuration template for routing] ********************************* skipping: [dut_s1] TASK [fail] ******************************************************************** skipping: [dut_s1] TASK [Find configuration deployment deploy_script for routing] ***************** skipping: [dut_s1] TASK [Print deployed configuration when running in verbose mode] *************** skipping: [dut_s1] TASK [Deploy routing configuration] ******************************************** skipping: [dut_s1] PLAY [Deploy custom deployment templates] ************************************** skipping: no hosts matched PLAY RECAP ********************************************************************* dut_s1 : ok=20 changed=4 unreachable=0 failed=0 skipped=7 rescued=0 ignored=0 Results of configuration script deployments ================================================================================ h1 Script: initial,routing h2 Script: initial,routing h3 Script: initial,routing h4 Script: initial,routing h5 Script: initial,routing h6 Script: initial,routing s2 Script: normalize,initial,vlan The devices under test are simple bridges with a VLAN trunk between them. Both VLANs are using the same IP prefix to identify potential inter-VLAN leaking. * h1 and h2 should be able to ping each other * h3 and h4 should be able to ping each other * h1 should not be able to reach h3 * h5 should not be able to reach h6 over its untagged native vlan Please note it might take a while for the lab to work due to STP learning phase