Juniper EX Switches
Juniper EX Series switches are enterprise-class Ethernet switches running Junos OS, providing robust Layer 2/3 switching with advanced features and high reliability. The rXg integrates with Juniper EX switches via NETCONF over SSH, providing configuration synchronization, VLAN management, and 802.1X/MAC-RADIUS authentication support.
Supported Models
| Model/Series | Notes |
|---|---|
| EX2300 Series | Compact, fanless access switches |
| EX3400 Series | Enterprise access switches |
| EX4300 Series | Stackable access/aggregation switches |
| EX4400 Series | High-performance access switches |
| EX4600 Series | Data center switches |
All models running Junos OS with NETCONF support are compatible.
Features Supported
| Feature | Supported | Description |
|---|---|---|
| Config Sync | Yes | Automatic configuration synchronization via NETCONF |
| Auto Bootstrap | Yes | Bootstrap configuration generation for initial setup |
| SNMP Monitoring | Yes | CPU, memory, and port statistics collection |
| LLDP Neighbor Discovery | Yes | Automatic detection of connected devices |
| LLDP Management Address | Yes | Automatic LLDP management address synchronization |
| Switch Port Import | Yes | Automatic import and management of switch ports |
| Port Descriptions | Yes | Sync port descriptions/names from rXg |
| 802.1X Authentication | Yes | Port-based network access control via dot1x |
| MAC-RADIUS Authentication | Yes | MAC-based authentication for non-802.1X devices |
| Dynamic VLAN Assignment | Yes | RADIUS-assigned VLAN based on authentication |
| DHCP Snooping | No | Not currently implemented |
| Firmware Management | No | Manual firmware upgrades required |
| SPB-m Fabric | No | Not supported |
Prerequisites
Firmware Requirements
- Junos OS 18.2R4 or later recommended
- NETCONF over SSH enabled (port 830 default for Junos 18.2R4+)
- SSH enabled with root login allowed
Network Requirements
- Management IP connectivity to rXg
- NETCONF/SSH access (TCP port 830 or 22)
- SNMP access (UDP port 161)
- RADIUS connectivity (UDP ports 1812, 1813) - for 802.1X/MAC-RADIUS
- NTP connectivity (UDP port 123) - recommended
Onboarding Process
Automatic Onboarding
Juniper EX switches support bootstrap configuration generation. The rXg can generate a complete bootstrap script that configures the switch for management.
Prerequisites for Bootstrap:
- Console access or existing network access to the switch
- A switch record must exist in rXg with management IP configured
- SSH/NETCONF credentials configured
Bootstrap Process:
- Create switch record in rXg with target management IP
- Generate bootstrap configuration from rXg
- Apply bootstrap commands via console or existing SSH
- Switch connects to rXg via NETCONF on management IP
Manual Onboarding
For manual configuration, connect to the switch via console and apply the bootstrap commands below.
Bootstrap Commands
Enter CLI and Configuration Mode:
cli
configure
Set Root Password:
set system root-authentication plain-text-password
<enter-password>
<confirm-password>
Disable Auto Image Upgrade:
delete chassis auto-image-upgrade
Enable NETCONF and SSH:
set system services netconf ssh
set system services ssh root-login allow
Configure Management Interface:
delete interfaces irb unit 0 family inet dhcp
set interfaces irb unit 0 family inet address <switch-ip>/<prefix-length>
set routing-options static route 0.0.0.0/0 next-hop <gateway-ip>
Configure Management VLAN:
set vlans vlan<vlan-id> vlan-id <vlan-id>
set vlans vlan<vlan-id> l3-interface irb.0
Configure Uplink Ports for Management VLAN:
set interface <port> native-vlan-id <vlan-id>
set interface <port> unit 0 family ethernet-switching interface-mode trunk
set interface <port> unit 0 family ethernet-switching vlan members <vlan-id>
Enable LLDP:
set protocols lldp interface all
set protocols lldp management-address <rxg-ip>
Configure NTP:
set system ntp server <rxg-ip>
set system ntp boot-server <rxg-ip>
Configure DNS:
set system name-server <rxg-ip>
Configure SNMP:
set snmp community <community-string> authorization read-only
Commit Configuration:
commit
Configuration
Connection Settings
Configure the switch in the Network::Wired::Switches scaffold with:
- Host: Management IP address
- Username/Password: SSH/NETCONF credentials (typically root)
- Port: NETCONF port (830 for Junos 18.2R4+, or 22)
- Management VLAN: VLAN for management traffic
- SNMP Community: Community string for monitoring (default: public)
NETCONF Configuration
The rXg uses NETCONF over SSH for configuration management. Ensure NETCONF is enabled on the switch:
set system services netconf ssh port 830
For older Junos versions that default to port 22:
set system services netconf ssh
RADIUS / AAA Configuration
When a RADIUS Server Option is active in rXg, the system configures RADIUS servers and profiles:
RADIUS Server Configuration:
set access radius-server <rxg-ip> port 1812 secret <radius-secret>
RADIUS Profile Configuration:
set access profile radius-auth-profile authentication-order radius
set access profile radius-auth-profile radius authentication-server <rxg-ip>
802.1X Port Configuration:
set protocols dot1x authenticator authentication-profile-name radius-auth-profile
set protocols dot1x authenticator interface <port>.0
MAC-RADIUS Port Configuration:
set protocols dot1x authenticator interface <port>.0 mac-radius restrict
VLAN Configuration
VLANs are automatically managed through Switch Port Profiles:
- VLANs created:
set vlans vlan<id> vlan-id <id> - Tagged ports:
set interfaces <port> unit 0 family ethernet-switching vlan members vlan<id> - Native VLAN:
set interfaces <port> native-vlan-id <id> - Trunk mode:
set interfaces <port> unit 0 family ethernet-switching interface-mode trunk
Note: Ports with 802.1X or MAC-RADIUS authentication are automatically configured as access ports (interface-mode removed).
Port Management
Port enable/disable is managed via NETCONF:
- Enable port: Remove
disablestatement - Disable port: Add
disablestatement to interface
Port descriptions are synchronized from switch port names in rXg.
Monitoring Capabilities
| Metric | Collection Method | Notes |
|---|---|---|
| CPU Usage | SNMP | Collected at configured monitoring interval |
| Memory Usage | SNMP | Collected at configured monitoring interval |
| Port Statistics | SNMP | Packets in/out, errors, discards |
| Port Status | NETCONF | Up/down via get-interface-information RPC |
| Port Speed/Duplex | NETCONF | Via interface information RPC |
| MAC Address Table | NETCONF | Via get-ethernet-switching-table-information RPC |
| LLDP Neighbors | SNMP | Connected device discovery |
| Device Info | NETCONF | Model, serial via get-chassis-inventory RPC |
| Junos Version | NETCONF | Via configuration XML |
Troubleshooting
Common Issues
Issue: Switch shows offline in rXg
Symptom: Switch appears offline despite being reachable via ping
Cause: NETCONF connectivity issues or credential mismatch
Resolution:
- Verify SSH/NETCONF credentials match switch configuration
- Ensure NETCONF is enabled: show system services netconf
- Check correct port (830 for Junos 18.2R4+, 22 for older)
- Verify root login is allowed for SSH
Issue: Config sync fails with lock error
Symptom: "LockError" during configuration sync
Cause: Another session has the configuration locked
Resolution:
- Check for other active configuration sessions: show system users
- Clear locked sessions: request system logout user <user>
- Wait for other sessions to complete
Issue: NETCONF connection refused
Symptom: Cannot establish NETCONF session
Cause: NETCONF not enabled or wrong port
Resolution:
- Enable NETCONF: set system services netconf ssh
- For Junos 18.2R4+, ensure port 830 is configured
- Verify firewall allows NETCONF port
Issue: VLAN changes not applying
Symptom: VLAN configuration shows in diff but doesn't apply Cause: Commit validation error or conflicting configuration Resolution: - Check for commit errors in sync output - Verify VLAN doesn't conflict with existing configuration - Ensure interface-mode is compatible with VLAN membership
Issue: 802.1X/MAC-RADIUS ports not authenticating
Symptom: Devices not authenticating on configured ports
Cause: RADIUS server or profile misconfiguration
Resolution:
- Verify RADIUS server is reachable from switch
- Check authentication profile is assigned to dot1x authenticator
- Verify port interface includes .0 unit suffix
- Check RADIUS logs on rXg for authentication attempts
Diagnostic Commands
General:
show system information
show version
show configuration
show interfaces terse
show vlans
NETCONF:
show system services netconf
show system connections | match 830
Authentication:
show dot1x interface
show dot1x interface detail
show authentication-session
RADIUS:
show access profile
show access radius-server
VLANs and MAC Table:
show vlans
show ethernet-switching table
show ethernet-switching interface
LLDP:
show lldp neighbors
show lldp local-information
Known Limitations
- Firmware upgrades not supported via rXg (manual upgrade required)
- DHCP snooping not implemented
- Only trunk interface-mode supported for tagged VLANs
- 802.1X/MAC-RADIUS ports must be access ports (no tagged VLANs)
Operational Caveats
- NETCONF Protocol: The rXg uses NETCONF over SSH for all configuration changes. This provides atomic configuration with automatic validation and rollback on failure.
- Commit Model: Junos requires explicit commits. Config sync locks the candidate configuration, applies changes, validates, and commits atomically.
- Configuration Locking: Only one session can modify configuration at a time. Config sync will fail if another session holds the lock.
- NETCONF Port: Junos 18.2R4+ defaults NETCONF to port 830. Older versions may use port 22. Ensure the correct port is configured in rXg.
- Root Login: SSH root login must be allowed for NETCONF access with root credentials.
- Interface Units: Junos uses unit numbers for interfaces. The rXg automatically appends
.0for dot1x interface configuration. - VLAN Names: VLANs are created with names in format
vlan<id>(e.g.,vlan100). - RADIUS Secret Encryption: Junos encrypts RADIUS secrets in configuration. The rXg decrypts them for comparison during config sync.
- LLDP Management Address: The rXg synchronizes LLDP management-address to ensure proper device identification.
- Auto Image Upgrade: Bootstrap automatically disables chassis auto-image-upgrade to prevent unexpected firmware changes.