annotations: []
smart_annotations: []
nodes:
- boot_disk_size: null
  configuration:
  - name: ios_config.txt
    content: |-
      hostname R1
      no ip domain lookup
      ip domain name pinglabz.lab
      username pinglabz privilege 15 secret PingLabz!23
      username admin privilege 15 secret Cisco@123
      username sysadmin privilege 15 secret Cisco@123
      enable secret Cisco@123
      !
      interface Loopback0
       description Router-ID / management loopback
       ip address 10.255.0.1 255.255.255.255
      !
      interface Ethernet0/0
       description LAN to SW1 (10.20.0.0/24)
       ip address 10.20.0.1 255.255.255.0
       no shutdown
      !
      banner motd ^
      *****************************************************
      * PingLabz CCNA Automation Lab  - R1                  *
      * https://www.pinglabz.com/automation-labs/               *
      * Authorized practice use only                      *
      *****************************************************
      ^
      !
      line con 0
       login local
       logging synchronous
       exec-timeout 0 0
      line vty 0 4
       login local
       transport input telnet ssh
      !
      end
  cpu_limit: null
  cpus: null
  data_volume: null
  hide_links: false
  id: n0
  image_definition: null
  label: R1
  node_definition: iol-xe
  parameters: {}
  ram: null
  tags: []
  x: -200
  y: -50
  interfaces:
  - id: i0
    label: Loopback0
    mac_address: null
    type: loopback
  - id: i1
    label: Ethernet0/0
    mac_address: null
    type: physical
    slot: 0
  - id: i2
    label: Ethernet0/1
    mac_address: null
    type: physical
    slot: 1
  - id: i3
    label: Ethernet0/2
    mac_address: null
    type: physical
    slot: 2
  - id: i4
    label: Ethernet0/3
    mac_address: null
    type: physical
    slot: 3
- boot_disk_size: null
  configuration:
  - name: ios_config.txt
    content: |-
      hostname R2
      no ip domain lookup
      ip domain name pinglabz.lab
      username pinglabz privilege 15 secret PingLabz!23
      username admin privilege 15 secret Cisco@123
      username sysadmin privilege 15 secret Cisco@123
      enable secret Cisco@123
      !
      interface Loopback0
       description Router-ID / management loopback
       ip address 10.255.0.2 255.255.255.255
      !
      interface Ethernet0/0
       description LAN to SW1 (10.20.0.0/24)
       ip address 10.20.0.2 255.255.255.0
       no shutdown
      !
      interface Ethernet0/1
       description P2P to R3 (10.30.30.0/30)
       ip address 10.30.30.1 255.255.255.252
       no shutdown
      !
      banner motd ^
      *****************************************************
      * PingLabz CCNA Automation Lab  - R2                  *
      * https://www.pinglabz.com/automation-labs/               *
      * Authorized practice use only                      *
      *****************************************************
      ^
      !
      line con 0
       login local
       logging synchronous
       exec-timeout 0 0
      line vty 0 4
       login local
       transport input telnet ssh
      !
      end
  cpu_limit: null
  cpus: null
  data_volume: null
  hide_links: false
  id: n1
  image_definition: null
  label: R2
  node_definition: iol-xe
  parameters: {}
  ram: null
  tags: []
  x: 200
  y: -50
  interfaces:
  - id: i0
    label: Loopback0
    mac_address: null
    type: loopback
  - id: i1
    label: Ethernet0/0
    mac_address: null
    type: physical
    slot: 0
  - id: i2
    label: Ethernet0/1
    mac_address: null
    type: physical
    slot: 1
  - id: i3
    label: Ethernet0/2
    mac_address: null
    type: physical
    slot: 2
  - id: i4
    label: Ethernet0/3
    mac_address: null
    type: physical
    slot: 3
- boot_disk_size: null
  configuration:
  - name: ios_config.txt
    content: |-
      hostname R3
      no ip domain lookup
      ip domain name pinglabz.lab
      username pinglabz privilege 15 secret PingLabz!23
      username admin privilege 15 secret Cisco@123
      username sysadmin privilege 15 secret Cisco@123
      enable secret Cisco@123
      !
      interface Loopback0
       description Router-ID / management loopback
       ip address 10.255.0.3 255.255.255.255
      !
      interface Ethernet0/0
       description P2P to R2 (10.30.30.0/30)
       ip address 10.30.30.2 255.255.255.252
       no shutdown
      !
      interface Ethernet0/1
       description Spare LAN via SW2 (10.20.1.0/24)
       no shutdown
      !
      ip route 10.20.0.0 255.255.255.0 10.30.30.1
      !
      banner motd ^
      *****************************************************
      * PingLabz CCNA Automation Lab  - R3                  *
      * https://www.pinglabz.com/automation-labs/               *
      * Authorized practice use only                      *
      *****************************************************
      ^
      !
      line con 0
       login local
       logging synchronous
       exec-timeout 0 0
      line vty 0 4
       login local
       transport input telnet ssh
      !
      end
  cpu_limit: null
  cpus: null
  data_volume: null
  hide_links: false
  id: n2
  image_definition: null
  label: R3
  node_definition: iol-xe
  parameters: {}
  ram: null
  tags: []
  x: 450
  y: -50
  interfaces:
  - id: i0
    label: Loopback0
    mac_address: null
    type: loopback
  - id: i1
    label: Ethernet0/0
    mac_address: null
    type: physical
    slot: 0
  - id: i2
    label: Ethernet0/1
    mac_address: null
    type: physical
    slot: 1
  - id: i3
    label: Ethernet0/2
    mac_address: null
    type: physical
    slot: 2
  - id: i4
    label: Ethernet0/3
    mac_address: null
    type: physical
    slot: 3
- boot_disk_size: null
  configuration: []
  cpu_limit: null
  cpus: null
  data_volume: null
  hide_links: false
  id: n3
  image_definition: null
  label: HOST1
  node_definition: alpine
  parameters: {}
  ram: null
  tags: []
  x: 0
  y: 150
  interfaces:
  - id: i0
    label: eth0
    mac_address: null
    type: physical
    slot: 0
  - id: i1
    label: eth1
    mac_address: null
    type: physical
    slot: 1
- boot_disk_size: null
  configuration: []
  cpu_limit: null
  cpus: null
  data_volume: null
  hide_links: false
  id: n4
  image_definition: null
  label: SW2
  node_definition: unmanaged_switch
  parameters: {}
  ram: null
  tags: []
  x: 650
  y: -50
  interfaces:
  - id: i0
    label: port0
    mac_address: null
    type: physical
    slot: 0
  - id: i1
    label: port1
    mac_address: null
    type: physical
    slot: 1
  - id: i2
    label: port2
    mac_address: null
    type: physical
    slot: 2
  - id: i3
    label: port3
    mac_address: null
    type: physical
    slot: 3
  - id: i4
    label: port4
    mac_address: null
    type: physical
    slot: 4
  - id: i5
    label: port5
    mac_address: null
    type: physical
    slot: 5
  - id: i6
    label: port6
    mac_address: null
    type: physical
    slot: 6
  - id: i7
    label: port7
    mac_address: null
    type: physical
    slot: 7
- boot_disk_size: null
  configuration:
  - name: ios_config.txt
    content: |-
      hostname SW1
      no ip domain lookup
      ip domain name pinglabz.lab
      username pinglabz privilege 15 secret PingLabz!23
      username admin privilege 15 secret Cisco@123
      username sysadmin privilege 15 secret Cisco@123
      enable secret Cisco@123
      !
      spanning-tree mode rapid-pvst
      spanning-tree extend system-id
      !
      vlan 1
       name DEFAULT
      !
      interface Vlan1
       description Management SVI
       ip address 10.20.0.10 255.255.255.0
       no shutdown
      !
      ip default-gateway 10.20.0.1
      !
      interface range Ethernet0/0 - 3
       description LAN access port
       switchport mode access
       switchport access vlan 1
       spanning-tree portfast
       no shutdown
      !
      banner motd ^
      *****************************************************
      * PingLabz CCNA Automation Lab  - SW1 (managed)       *
      * https://www.pinglabz.com/automation-labs/               *
      * Authorized practice use only                      *
      *****************************************************
      ^
      !
      line con 0
       login local
       logging synchronous
       exec-timeout 0 0
      line vty 0 4
       login local
       transport input telnet ssh
      !
      end
  cpu_limit: null
  cpus: null
  data_volume: null
  hide_links: false
  id: n5
  image_definition: null
  label: SW1
  node_definition: ioll2-xe
  parameters: {}
  ram: null
  tags: []
  x: 0
  y: -50
  interfaces:
  - id: i0
    label: Loopback0
    mac_address: null
    type: loopback
  - id: i1
    label: Ethernet0/0
    mac_address: null
    type: physical
    slot: 0
  - id: i2
    label: Ethernet0/1
    mac_address: null
    type: physical
    slot: 1
  - id: i3
    label: Ethernet0/2
    mac_address: null
    type: physical
    slot: 2
  - id: i4
    label: Ethernet0/3
    mac_address: null
    type: physical
    slot: 3
- boot_disk_size: null
  configuration: []
  cpu_limit: null
  cpus: null
  data_volume: null
  hide_links: false
  id: n6
  image_definition: null
  label: EXT-NAT
  node_definition: external_connector
  parameters: {}
  ram: null
  tags: []
  x: 0
  y: 300
  interfaces:
  - id: i0
    label: port
    mac_address: null
    type: physical
    slot: 0
links:
- id: l0
  n1: n1
  n2: n2
  i1: i2
  i2: i1
  conditioning: {}
  label: R2-Ethernet0/1<->R3-Ethernet0/0
- id: l1
  n1: n2
  n2: n4
  i1: i2
  i2: i0
  conditioning: {}
  label: R3-Ethernet0/1<->SW2-port0
- id: l2
  n1: n0
  n2: n5
  i1: i1
  i2: i1
  conditioning: {}
  label: R1-Ethernet0/0<->SW1-Ethernet0/0
- id: l3
  n1: n1
  n2: n5
  i1: i1
  i2: i2
  conditioning: {}
  label: R2-Ethernet0/0<->SW1-Ethernet0/1
- id: l4
  n1: n3
  n2: n5
  i1: i0
  i2: i3
  conditioning: {}
  label: HOST1-eth0<->SW1-Ethernet0/2
- id: l5
  n1: n3
  n2: n6
  i1: i1
  i2: i0
  conditioning: {}
  label: HOST1-eth1<->EXT-NAT-port
lab:
  description: '5-node CML Free topology for the PingLabz CCNA Automation Labs (auto series). Same wiring as the CCNA Base Topology v3: R1/R2/R3 (iol-xe) + SW1 (ioll2-xe) + HOST1 (alpine, boots default config - login cisco/cisco) + SW2 + EXT-NAT connector (neither counted). HOST1 becomes the automation host: python3 + Netmiko + Ansible against the routers over SSH, RESTCONF in auto-05.'
  notes: |-
    PingLabz CCNA Automation Lab (v1)
    =================================

    PURPOSE
    Automation host topology for the PingLabz CCNA Automation Labs (Domain 6).
    https://www.pinglabz.com/automation-labs/

    TOPOLOGY (identical wiring to CCNA Base Topology v3)
       R1 (iol-xe) --e0/0-- e0/0 [SW1 ioll2-xe] e0/1 --e0/0-- R2 (iol-xe) --e0/1-- e0/0-- R3 (iol-xe) --e0/1-- [SW2 unmanaged]
                                  | e0/2
                                  |
                              HOST1 (alpine) eth0   <- the automation host

    NODE INVENTORY (5 counted + 1 unmanaged = fits CML Free)
    - R1     iol-xe              LAN gateway (10.20.0.1) (COUNTED)
    - R2     iol-xe              Transit router (COUNTED)
    - R3     iol-xe              Remote router (COUNTED)
    - HOST1  alpine              AUTOMATION HOST - boots DEFAULT config (COUNTED)
    - SW1    ioll2-xe            Managed L2 switch, Vlan1 SVI 10.20.0.10 (COUNTED)
    - SW2    unmanaged_switch    Spare broadcast domain (NOT counted)
    - EXT-NAT external_connector NAT internet for HOST1 eth1 (NOT counted)

    CREDENTIALS
    - Routers/switch reader login: pinglabz / PingLabz!23 (enable: Cisco@123)
    - Automation/PyATS user: admin / Cisco@123
    - HOST1 alpine: cisco / cisco (CML default - let it boot fully with the
      default config BEFORE logging in or changing anything)

    LAB SERIES SETUP (done by the reader in auto-01)
    - HOST1 eth1: ip link set eth1 up; udhcpc -i eth1 -n -q  (internet via EXT-NAT)
    - HOST1 eth0: ip 10.20.0.50/24; route 10.30.30.0/30 via 10.20.0.2
    - HOST1: apk add python3 py3-pip; python3 -m venv ~/autolab; pip install netmiko
    - R1-R3/SW1: crypto key generate rsa modulus 2048; ip ssh version 2
    - RESTCONF is OFF on purpose - auto-05 enables it

    PRESERVATION
    - Source-of-truth yaml: /labs/automation-series/yaml/ in the PingLabz workspace
    - CDN asset: /content/files/2026/MM/pinglabz-ccna-automation-lab.yaml
  title: PingLabz CCNA Automation Lab
  version: 0.3.0
