Switch Configuration for VyOS Integration
1. Overview
This runbook configures Catalyst switches to support VyOS HA deployment:
-
LAB-3560CX-01 (10.50.1.10) - Access switch with IBNS 2.0
-
C9300-01 (10.50.1.11) - Core switch (similar configuration)
|
TRUNK CONFIGURATION - READ THIS FIRST
|
2. Phase 1: Document Current State
2.1. 1.1 Capture Running Config (Pre-Change)
# From workstation - backup current configs
ssh 3560-cx.inside.domusdigitalis.dev "show running-config" > /tmp/3560cx-pre-vyos.txt
ssh c9300-01.inside.domusdigitalis.dev "show running-config" > /tmp/c9300-pre-vyos.txt
2.2. 1.2 Current VLAN Database (LAB-3560CX-01)
| VLAN | Name | Purpose |
|---|---|---|
10 |
Data |
User workstations |
20 |
Voice |
VoIP phones (switchport voice vlan) |
30 |
Guest |
Guest network |
40 |
IoT |
IoT devices |
100 |
Management |
Infrastructure management (SVI: 10.50.1.10) |
666 |
Native |
Native VLAN (unused, shutdown) |
999 |
Critical Auth |
Auth-fail / AAA timeout remediation |
2.3. 1.3 Current Trunk Ports (LAB-3560CX-01)
| Interface | Connected To | Allowed VLANs |
|---|---|---|
Te1/0/1 |
TRUNK-TO-SUPERMICRO-KVM-02 (vyos-02) |
10,20,30,40,100,999 |
Te1/0/2 |
TRUNK-TO-SUPERMICRO-KVM-01 (vyos-01) |
10,20,30,40,100,999 |
| KVM trunk ports already have all required VLANs. No trunk changes needed for VyOS migration. |
3. Phase 2: VLAN Database Updates
3.1. 2.1 VLANs for VyOS Migration
Review if additional VLANs needed for VyOS features:
| VLAN | Name | Purpose | Status |
|---|---|---|---|
110 |
SECURITY |
ISE, Vault, security services |
Add if needed |
120 |
SERVICES |
Application services |
Add if needed |
configure terminal
! Only add if not already present
vlan 110
name SECURITY
!
vlan 120
name SERVICES
!
end
! Verify
show vlan brief | include SECURITY|SERVICES
3.2. 2.2 Add VLANs to KVM Trunks (if added)
|
Use |
configure terminal
interface TenGigabitEthernet1/0/1
switchport trunk allowed vlan add 110,120
!
interface TenGigabitEthernet1/0/2
switchport trunk allowed vlan add 110,120
!
end
! Verify - new VLANs added to existing list
show interfaces trunk | include Te1/0/1|Te1/0/2
4. Phase 3: RADIUS Configuration
4.1. 3.1 RADIUS Server Group
The switch uses ISE-RADIUS server group for 802.1X authentication:
aaa group server radius ISE-RADIUS
server name ISE-01
server name ISE-02
ip radius source-interface Vlan100
deadtime 15
5. Phase 4: IBNS 2.0 / C3PL Policy Configuration
5.1. 4.1 Device Sensor Filters
Device sensor collects endpoint profiling data:
device-sensor filter-list dhcp list DHCP-SENSOR
option name host-name
option name requested-address
option name parameter-request-list
option name class-identifier
option name client-identifier
device-sensor filter-list cdp list CDP-SENSOR
tlv name device-name
tlv name capabilities-type
tlv name platform-type
device-sensor filter-list lldp list LLDP-SENSOR
tlv name port-id
tlv name system-name
tlv name system-description
tlv name system-capabilities
device-sensor filter-spec dhcp include list DHCP-SENSOR
device-sensor filter-spec lldp include list LLDP-SENSOR
device-sensor filter-spec cdp include list CDP-SENSOR
device-sensor notify all-changes
5.2. 4.2 Class Maps (C3PL Conditions)
Class maps define the conditions for policy actions:
! AAA server timeout - used for critical auth
class-map type control subscriber match-all AAA_SVR_DOWN
match authorization-status unauthorized
match result-type aaa-timeout
! DOT1X authentication method
class-map type control subscriber match-all DOT1X
match method dot1x
! DOT1X failed with authoritative response (reject)
class-map type control subscriber match-all DOT1X_FAILED
match method dot1x
match result-type method dot1x authoritative
! DOT1X no response (no supplicant)
class-map type control subscriber match-all DOT1X_NO_RESP
match method dot1x
match result-type method dot1x agent-not-found
! Check if in critical auth mode
class-map type control subscriber match-all IN_CRITICAL_AUTH
match activated-service-template DefaultCriticalAuthVlan_SRV_TEMPLATE
! MAB authentication method
class-map type control subscriber match-all MAB
match method mab
! MAB failed with authoritative response (reject)
class-map type control subscriber match-all MAB_FAILED
match method mab
match result-type method mab authoritative
! NOT in critical auth (for recovery)
class-map type control subscriber match-all NOT_IN_CRITICAL_AUTH
match activated-service-template DefaultCriticalAuthVlan_SRV_TEMPLATE
5.3. 4.3 Service Templates
Service templates define authorization results:
! Critical authentication - VLAN 999 with limited access
service-template DefaultCriticalAuthVlan_SRV_TEMPLATE
description Critical Auth VLAN
access-group ACL_CRITICAL_AUTH
vlan 999
! Critical voice - maintains voice VLAN during AAA outage
service-template DefaultCriticalVoice_SRV_TEMPLATE
description Critical Voice VLAN
voice vlan
! Voice VLAN template
service-template DEFAULT_CRITICAL_VOICE_TEMPLATE
voice vlan
5.4. 4.4 Critical Auth ACL
Allows limited access during AAA server outage:
ip access-list extended ACL_CRITICAL_AUTH
permit udp any any eq domain ! DNS
permit udp any any eq bootpc ! DHCP client
permit icmp any any ! ICMP for troubleshooting
permit ip any host 10.50.1.20 ! Allow ISE for recovery
deny ip any any log ! Deny all else
5.5. 4.5 Policy Map - Concurrent DOT1X + MAB
This is the core IBNS 2.0 policy for concurrent authentication:
policy-map type control subscriber PMAP_DefaultWiredDot1xClosedAuth_1X_MAB
!
! === SESSION STARTED ===
! Try BOTH dot1x AND mab simultaneously (concurrent)
! dot1x has priority 10 (higher), MAB has priority 20 (lower)
event session-started match-all
10 class always do-all
10 authenticate using dot1x retries 2 retry-time 0 priority 10
20 authenticate using mab priority 20
!
! === AUTHENTICATION FAILURE ===
! Handle failures based on type - match-first stops at first match
event authentication-failure match-first
!
! DOT1X explicitly rejected - fall back to MAB
5 class DOT1X_FAILED do-until-failure
10 terminate dot1x
20 authenticate using mab priority 20
!
! AAA server unreachable - enter critical auth mode
10 class AAA_SVR_DOWN do-until-failure
10 activate service-template DefaultCriticalAuthVlan_SRV_TEMPLATE
20 activate service-template DefaultCriticalVoice_SRV_TEMPLATE
30 authorize
40 pause reauthentication
!
! No DOT1X supplicant - try MAB
20 class DOT1X_NO_RESP do-until-failure
10 terminate dot1x
20 authenticate using mab priority 20
!
! MAB rejected - restart auth after 60 seconds
30 class MAB_FAILED do-until-failure
10 terminate mab
20 authentication-restart 60
!
! === AAA AVAILABLE (Recovery from outage) ===
event aaa-available match-all
! If in critical auth, clear session to re-authenticate
10 class IN_CRITICAL_AUTH do-until-failure
10 clear-session
! If not in critical auth, resume normal reauth
20 class NOT_IN_CRITICAL_AUTH do-until-failure
10 resume reauthentication
!
! === AGENT FOUND (Supplicant appeared during MAB) ===
! If MAB was running and supplicant appears, switch to dot1x
event agent-found match-all
10 class always do-until-failure
10 terminate mab
20 authenticate using dot1x retries 2 retry-time 0 priority 10
!
! === AUTHENTICATION SUCCESS ===
event authentication-success match-all
10 class always do-until-failure
10 authorize
5.6. 4.6 Interface Templates
Templates for consistent interface configuration:
5.6.1. DefaultWiredDot1xClosedAuth (Access Ports)
template DefaultWiredDot1xClosedAuth
dot1x pae authenticator
dot1x timeout tx-period 7
spanning-tree portfast edge
spanning-tree bpduguard enable
switchport access vlan 10
switchport mode access
switchport nonegotiate
switchport voice vlan 20
mab
access-session control-direction in
access-session closed
access-session port-control auto
authentication periodic
authentication timer reauthenticate server
service-policy type control subscriber PMAP_DefaultWiredDot1xClosedAuth_1X_MAB
5.7. 4.7 Interface Application Examples
Current interface configurations:
! DOT1X Access Port with template
interface GigabitEthernet1/0/2
description [DOT1X] Research Access Port
ip arp inspection trust
source template DefaultWiredDot1xClosedAuth
spanning-tree portfast edge
! AP Port with template
interface GigabitEthernet1/0/3
description Catalyst 9120 AP
switchport access vlan 10
switchport mode access
ip arp inspection trust
source template DefaultWiredDot1xClosedAuth
spanning-tree portfast edge
! KVM Trunk Port (VyOS)
interface TenGigabitEthernet1/0/2
description TRUNK-TO-SUPERMICRO-KVM-01
switchport trunk allowed vlan 10,20,30,40,100,999
switchport trunk native vlan 100
switchport mode trunk
ip arp inspection trust
spanning-tree portfast edge trunk
ip dhcp snooping trust
6. Phase 5: Verification
6.2. 5.2 Verify Trunk Ports
ssh 3560-cx.inside.domusdigitalis.dev "show interfaces trunk"
Expected output for Te1/0/1 and Te1/0/2:
Port Mode Encapsulation Status Native vlan
Te1/0/1 on 802.1q trunking 100
Te1/0/2 on 802.1q trunking 100
Port Vlans allowed on trunk
Te1/0/1 10,20,30,40,100,999
Te1/0/2 10,20,30,40,100,999
7. Phase 6: VyOS Migration Specific
7.1. 6.1 Default Gateway Update
The switch default gateway points to VyOS VIP (same IP as pfSense):
ip default-gateway 10.50.1.1
| No change required - VyOS VIP (10.50.1.1) is same as current pfSense IP. |