🖧 Dell EMC OS10 CLI Reference Guide

Complete Command Reference with Cisco IOS & Linux Comparisons

For Linux System Administrators Transitioning to Network Engineering

Dell OS10 Commands
Cisco IOS Commands
Linux Commands (OS10 Shell)
🐧 The Linux Advantage:

Dell OS10 is built on Debian Linux, giving you full shell access with start-shell. This means you have native Python, tcpdump, awk, sed, grep, and all your favorite Linux tools available on your switch!

Introduction to Dell EMC OS10

Dell EMC OS10 is a modern, Linux-based network operating system designed for Dell's 10th generation switches. Unlike traditional proprietary network OSes, OS10 provides:

💡 Key Difference: Unlike Cisco IOS which is a monolithic embedded OS, OS10 runs as applications on top of Linux. You can literally SSH into the switch and drop to a bash shell with full Linux capabilities!

Basic CLI Navigation

Accessing the CLI

Dell OS10:
# SSH to the switch
ssh admin@192.168.1.1

# Console access (default credentials)
Username: admin
Password: admin

# Enable privileged mode (similar to Cisco)
OS10> enable
OS10#

# Enter configuration mode
OS10# configure terminal
OS10(config)#
Cisco IOS:
# SSH to device
ssh admin@192.168.1.1

# Enable mode
Router> enable
Router#

# Configuration mode
Router# configure terminal
Router(config)#
Linux Shell Access (OS10 Unique Feature):
# Drop to Linux shell from OS10 CLI
OS10# start-shell

# You now have full Debian Linux access!
admin@OS10:~$ uname -a
Linux OS10 4.9.0-8-amd64 #1 SMP Debian

admin@OS10:~$ which python
/usr/bin/python

admin@OS10:~$ python --version
Python 2.7.13

# Return to OS10 CLI
admin@OS10:~$ exit
OS10#

Basic Navigation Commands

Task Dell OS10 Cisco IOS Linux (OS10 Shell)
Show running config show running-configuration show running-config cat /etc/sonic/config_db.json
Show startup config show startup-configuration show startup-config cat /etc/sonic/config_db.json.bak
Show version show version show version uname -a
Show interfaces show interface status show ip interface brief ip addr show
Show IP routing show ip route show ip route ip route show
Show ARP table show arp show arp arp -n
Show MAC table show mac address-table show mac address-table bridge fdb show
Clear screen clear clear clear

Command History & Editing

Dell OS10:
# Show command history
OS10# show history

# Use up/down arrows for previous commands
# Ctrl+A - Beginning of line
# Ctrl+E - End of line
# Ctrl+K - Delete to end of line
# Ctrl+U - Delete entire line
# Tab - Command completion

# Show available commands
OS10# ?
OS10(config)# ?

# Show options for partial command
OS10# show ?
Cisco IOS:
# Show command history
Router# show history

# Same keyboard shortcuts work
# Tab completion available
Linux Shell (OS10):
admin@OS10:~$ history
admin@OS10:~$ !100        # Run command 100 from history
admin@OS10:~$ !!          # Run previous command
admin@OS10:~$ !ssh        # Run last command starting with 'ssh'
admin@OS10:~$ history | grep config

Command Modes

Dell OS10 Command Modes:
# User EXEC Mode (limited commands)
OS10>

# Privileged EXEC Mode (view configurations)
OS10> enable
OS10#

# Global Configuration Mode
OS10# configure terminal
OS10(config)#

# Interface Configuration Mode
OS10(config)# interface ethernet 1/1/1
OS10(conf-if-eth1/1/1)#

# VLAN Configuration Mode
OS10(config)# interface vlan 100
OS10(conf-if-vl-100)#

# Router Configuration Mode (OSPF example)
OS10(config)# router ospf 1
OS10(conf-router-ospf-1)#

# Line Configuration Mode
OS10(config)# line vty 0 9
OS10(conf-line-vty-0-9)#

# Exit modes
OS10(conf-if-eth1/1/1)# exit          # Go back one level
OS10(config)# exit
OS10# exit                              # Logout

# Quick exit to privileged mode from any config mode
OS10(config)# end
OS10#

# Or use Ctrl+Z
OS10(config)# [Ctrl+Z]
OS10#
Cisco IOS Command Modes:
# Very similar structure
Router> enable
Router# configure terminal
Router(config)# interface gi0/0
Router(config-if)# exit
Router(config)# end
Router#

Initial Configuration

Basic System Configuration

Dell OS10:
# Set hostname
OS10# configure terminal
OS10(config)# hostname DELL-CORE-01
DELL-CORE-01(config)#

# Set domain name
DELL-CORE-01(config)# ip domain-name example.com

# Configure DNS servers
DELL-CORE-01(config)# ip name-server 8.8.8.8
DELL-CORE-01(config)# ip name-server 8.8.4.4

# Set timezone
DELL-CORE-01(config)# clock timezone EST -5 0

# Configure NTP
DELL-CORE-01(config)# ntp server 0.pool.ntp.org
DELL-CORE-01(config)# ntp server 1.pool.ntp.org

# Set system time manually (if no NTP)
DELL-CORE-01# clock set 14:30:00 31 Oct 2025

# Configure login banner
DELL-CORE-01(config)# banner login "
*************************************************
*  AUTHORIZED ACCESS ONLY                       *
*  Unauthorized access is prohibited            *
*  All activities are logged and monitored      *
*************************************************
"

# Configure MOTD banner
DELL-CORE-01(config)# banner motd "Welcome to DELL-CORE-01"

# Disable unused services
DELL-CORE-01(config)# no ip http server
DELL-CORE-01(config)# no ip telnet server
Cisco IOS:
Router(config)# hostname CISCO-CORE-01
CISCO-CORE-01(config)# ip domain-name example.com
CISCO-CORE-01(config)# ip name-server 8.8.8.8
CISCO-CORE-01(config)# clock timezone EST -5
CISCO-CORE-01(config)# ntp server 0.pool.ntp.org
CISCO-CORE-01(config)# banner login ^C Authorized Access Only ^C
CISCO-CORE-01(config)# no ip http server

Saving Configuration

Dell OS10:
# Save running config to startup config
OS10# write memory
OS10# copy running-configuration startup-configuration

# Simplified command (similar to Cisco 'wr')
OS10# write

# Show configuration differences (unsaved changes)
OS10# show configuration diff

# OS10 has transactional commits with descriptions!
OS10(config)# commit description "Added VLAN 100 and configured trunk ports"

# View configuration history (rollback points)
OS10# show configuration history

# Rollback to previous configuration
OS10# rollback configuration
OS10# rollback configuration to 1    # Rollback to specific version
Cisco IOS:
# Save configuration
Router# copy running-config startup-config
Router# write memory
Router# wr

# Cisco IOS doesn't have built-in rollback
# (unless using archive feature)
Linux Shell Backup (OS10):
# From Linux shell - manual config backup
admin@OS10:~$ sudo cp /etc/sonic/config_db.json /home/admin/config-backup-$(date +%Y%m%d).json

# Create tar archive of all configs
admin@OS10:~$ sudo tar czf /home/admin/full-backup.tar.gz /etc/sonic/

# Copy to remote server
admin@OS10:~$ scp config-backup-*.json user@backup-server:/backups/
🎯 OS10 Advantage: Configuration rollback and versioning is built-in! You can track every configuration change with descriptions and roll back easily if something breaks.

User Management & Security

Creating Users

Dell OS10:
# Create local user with privilege level 15 (full admin)
OS10(config)# username netadmin password MyP@ssw0rd! role sysadmin

# User roles in OS10:
# - sysadmin: Full administrative access (like privilege 15)
# - secadmin: Security administration
# - netadmin: Network administration
# - netoperator: Read-only network access

# Create read-only user
OS10(config)# username readonly password View0nly! role netoperator

# Enable password for privilege mode
OS10(config)# enable password MyEn@blePass!

# Show users
OS10# show running-configuration users

# Change user password
OS10(config)# username netadmin password NewP@ss123!
Cisco IOS:
# Create local user with privilege 15
Router(config)# username admin privilege 15 secret MyP@ssw0rd!

# Create read-only user (privilege 1)
Router(config)# username readonly privilege 1 secret View0nly!

# Enable password
Router(config)# enable secret MyEn@blePass!

# Show users
Router# show running-config | include username
Linux Shell User Management (OS10):
# Add Linux system user
admin@OS10:~$ sudo adduser newadmin

# Add user to sudo group
admin@OS10:~$ sudo usermod -aG sudo newadmin

# Set password
admin@OS10:~$ sudo passwd newadmin

# View all users
admin@OS10:~$ cat /etc/passwd

# View sudo users
admin@OS10:~$ getent group sudo

SSH Configuration

Dell OS10:
# Enable SSH (usually enabled by default)
OS10(config)# ip ssh server enable

# Configure SSH version 2 only
OS10(config)# ip ssh server version 2

# Set SSH idle timeout (in seconds)
OS10(config)# ip ssh server idle-timeout 600

# Generate SSH keys
OS10# crypto key generate rsa

# Show SSH configuration
OS10# show ip ssh

# Show active SSH sessions
OS10# show ssh

# Configure SSH on specific VTY lines
OS10(config)# line vty 0 9
OS10(config-line-vty)# transport input ssh
OS10(config-line-vty)# exit
Cisco IOS:
# Configure hostname and domain (required for SSH)
Router(config)# hostname CISCO-R1
Router(config)# ip domain-name example.com

# Generate RSA keys
Router(config)# crypto key generate rsa
How many bits in the modulus [512]: 2048

# Enable SSH version 2
Router(config)# ip ssh version 2

# Configure VTY lines for SSH
Router(config)# line vty 0 4
Router(config-line)# transport input ssh
Router(config-line)# login local
Linux Shell SSH (OS10):
# View SSH configuration
admin@OS10:~$ sudo cat /etc/ssh/sshd_config

# Edit SSH config
admin@OS10:~$ sudo nano /etc/ssh/sshd_config

# Restart SSH service
admin@OS10:~$ sudo systemctl restart ssh

# View active SSH connections
admin@OS10:~$ who

# View SSH logs
admin@OS10:~$ sudo tail -f /var/log/auth.log | grep ssh

Access Control Lists for Management

Dell OS10:
# Create management ACL to restrict SSH/Telnet access
OS10(config)# ip access-list management-acl
OS10(config-ipv4-acl)# permit tcp 192.168.1.0/24 any eq ssh
OS10(config-ipv4-acl)# permit tcp 10.0.0.0/8 any eq ssh
OS10(config-ipv4-acl)# deny tcp any any eq ssh
OS10(config-ipv4-acl)# exit

# Apply to VTY lines
OS10(config)# line vty 0 9
OS10(config-line-vty)# access-class management-acl in
OS10(config-line-vty)# exit
Cisco IOS:
# Create access list
Router(config)# access-list 10 permit 192.168.1.0 0.0.0.255
Router(config)# access-list 10 permit 10.0.0.0 0.255.255.255
Router(config)# access-list 10 deny any

# Apply to VTY lines
Router(config)# line vty 0 4
Router(config-line)# access-class 10 in

Interface Configuration

Physical Interface Configuration

Dell OS10:
# Configure interface
OS10(config)# interface ethernet 1/1/1
OS10(conf-if-eth1/1/1)# description Uplink-to-Core
OS10(conf-if-eth1/1/1)# no shutdown
OS10(conf-if-eth1/1/1)# mtu 9000
OS10(conf-if-eth1/1/1)# speed 10000
OS10(conf-if-eth1/1/1)# flowcontrol receive on tx on
OS10(conf-if-eth1/1/1)# exit

# Configure Layer 3 interface (routed port)
OS10(config)# interface ethernet 1/1/10
OS10(conf-if-eth1/1/10)# no switchport
OS10(conf-if-eth1/1/10)# ip address 192.168.1.1/24
OS10(conf-if-eth1/1/10)# no shutdown
OS10(conf-if-eth1/1/10)# exit

# Configure port ranges
OS10(config)# interface range ethernet 1/1/1-1/1/10
OS10(conf-if-range-eth1/1/1-1/1/10)# description Access-Ports
OS10(conf-if-range-eth1/1/1-1/1/10)# switchport mode access
OS10(conf-if-range-eth1/1/1-1/1/10)# switchport access vlan 10
OS10(conf-if-range-eth1/1/1-1/1/10)# no shutdown
OS10(conf-if-range-eth1/1/1-1/1/10)# exit

# Show interface status
OS10# show interface status
OS10# show interface ethernet 1/1/1
OS10# show interface ethernet 1/1/1 statistics
OS10# show interface ethernet 1/1/1 transceiver
Cisco IOS:
# Configure interface
Router(config)# interface gi0/1
Router(config-if)# description Uplink-to-Core
Router(config-if)# no shutdown
Router(config-if)# mtu 9000
Router(config-if)# speed 1000
Router(config-if)# duplex full

# Configure IP address
Router(config-if)# ip address 192.168.1.1 255.255.255.0
Router(config-if)# no shutdown

# Configure interface range
Router(config)# interface range gi0/1-10
Router(config-if-range)# switchport mode access
Router(config-if-range)# switchport access vlan 10

# Show interfaces
Router# show ip interface brief
Router# show interface gi0/1
Linux Shell Interface Management (OS10):
# View all interfaces
admin@OS10:~$ ip link show

# View interface details
admin@OS10:~$ ip addr show e101-001-0

# View interface statistics
admin@OS10:~$ ip -s link show e101-001-0

# Bring interface up/down (requires privileges)
admin@OS10:~$ sudo ip link set e101-001-0 up
admin@OS10:~$ sudo ip link set e101-001-0 down

# View ethtool info
admin@OS10:~$ ethtool e101-001-0

# Monitor interface in real-time
admin@OS10:~$ watch -n 1 'ip -s link show e101-001-0'

Interface Naming Convention

📝 OS10 Interface Naming:

OS10 uses the format: ethernet <unit>/<module>/<port>

  • ethernet 1/1/1 = Unit 1, Module 1, Port 1
  • ethernet 1/1/48 = Unit 1, Module 1, Port 48
  • In Linux shell, interfaces appear as: e101-001-0 (e = ethernet, 101 = unit/module, 001 = port)

Layer 2 Switching

VLAN Configuration

Dell OS10:
# Create VLAN
OS10(config)# interface vlan 10
OS10(conf-if-vl-10)# description Sales-Department
OS10(conf-if-vl-10)# no shutdown
OS10(conf-if-vl-10)# exit

# Create multiple VLANs
OS10(config)# interface vlan 20
OS10(conf-if-vl-20)# description Engineering
OS10(conf-if-vl-20)# exit

OS10(config)# interface vlan 30
OS10(conf-if-vl-30)# description Guest-WiFi
OS10(conf-if-vl-30)# exit

# Assign interface to VLAN (access mode)
OS10(config)# interface ethernet 1/1/5
OS10(conf-if-eth1/1/5)# switchport mode access
OS10(conf-if-eth1/1/5)# switchport access vlan 10
OS10(conf-if-eth1/1/5)# no shutdown
OS10(conf-if-eth1/1/5)# exit

# Configure trunk port
OS10(config)# interface ethernet 1/1/48
OS10(conf-if-eth1/1/48)# description Trunk-to-Access-Switch
OS10(conf-if-eth1/1/48)# switchport mode trunk
OS10(conf-if-eth1/1/48)# switchport trunk allowed vlan 10,20,30
OS10(conf-if-eth1/1/48)# no shutdown
OS10(conf-if-eth1/1/48)# exit

# Configure native VLAN on trunk
OS10(conf-if-eth1/1/48)# switchport trunk native vlan 1

# Show VLAN information
OS10# show vlan
OS10# show vlan id 10
OS10# show interface switchport
Cisco IOS:
# Create VLAN
Switch(config)# vlan 10
Switch(config-vlan)# name Sales-Department
Switch(config-vlan)# exit

# Assign interface to VLAN
Switch(config)# interface gi0/5
Switch(config-if)# switchport mode access
Switch(config-if)# switchport access vlan 10
Switch(config-if)# no shutdown

# Configure trunk
Switch(config)# interface gi0/48
Switch(config-if)# switchport trunk encapsulation dot1q
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan 10,20,30
Switch(config-if)# switchport trunk native vlan 1

# Show VLANs
Switch# show vlan brief
Switch# show interfaces trunk
Linux Shell VLAN Management (OS10):
# View VLAN database (SONiC uses config_db.json)
admin@OS10:~$ sudo cat /etc/sonic/config_db.json | grep -A 10 VLAN

# View bridge/VLAN info
admin@OS10:~$ bridge vlan show

# View VLAN interfaces
admin@OS10:~$ ip link show | grep Vlan

Link Aggregation (Port Channels / LAG)

Dell OS10:
# Create port-channel (LAG)
OS10(config)# interface port-channel 1
OS10(conf-if-po-1)# description LAG-to-Server
OS10(conf-if-po-1)# switchport mode trunk
OS10(conf-if-po-1)# switchport trunk allowed vlan 10,20,30
OS10(conf-if-po-1)# no shutdown
OS10(conf-if-po-1)# exit

# Add physical interfaces to port-channel
OS10(config)# interface ethernet 1/1/1
OS10(conf-if-eth1/1/1)# channel-group 1 mode active
OS10(conf-if-eth1/1/1)# no shutdown
OS10(conf-if-eth1/1/1)# exit

OS10(config)# interface ethernet 1/1/2
OS10(conf-if-eth1/1/2)# channel-group 1 mode active
OS10(conf-if-eth1/1/2)# no shutdown
OS10(conf-if-eth1/1/2)# exit

# LACP modes:
# - active: Actively sends LACP packets
# - passive: Responds to LACP packets
# - on: Forces port-channel without LACP (static)

# Show port-channel status
OS10# show interface port-channel 1
OS10# show interface port-channel summary
OS10# show lacp interface port-channel 1
Cisco IOS:
# Create port-channel
Switch(config)# interface port-channel 1
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan 10,20,30

# Add interfaces to port-channel
Switch(config)# interface range gi0/1-2
Switch(config-if-range)# channel-group 1 mode active
Switch(config-if-range)# no shutdown

# Show port-channel
Switch# show etherchannel summary
Switch# show interfaces port-channel 1
Linux Shell Bond/Team Management (OS10):
# View bonding/team information
admin@OS10:~$ cat /proc/net/bonding/PortChannel1

# View team configuration
admin@OS10:~$ teamdctl PortChannel1 state

# Monitor LACP
admin@OS10:~$ sudo tcpdump -i e101-001-0 -nn ether proto 0x8809

Spanning Tree Protocol (STP)

Dell OS10:
# Enable Spanning Tree globally
OS10(config)# spanning-tree mode rstp

# STP modes available:
# - rstp (Rapid Spanning Tree Protocol - 802.1w)
# - mst (Multiple Spanning Tree - 802.1s)
# - pvst (Per-VLAN Spanning Tree)

# Set bridge priority (lower = better)
OS10(config)# spanning-tree priority 4096

# Configure per-VLAN priority (PVST mode)
OS10(config)# spanning-tree vlan 10 priority 4096

# Configure interface STP settings
OS10(config)# interface ethernet 1/1/48
OS10(conf-if-eth1/1/48)# spanning-tree port-priority 16
OS10(conf-if-eth1/1/48)# spanning-tree cost 19
OS10(conf-if-eth1/1/48)# spanning-tree portfast
OS10(conf-if-eth1/1/48)# spanning-tree bpduguard enable
OS10(conf-if-eth1/1/48)# exit

# Enable PortFast on access ports (skip listening/learning)
OS10(config)# interface range ethernet 1/1/1-1/1/10
OS10(conf-if-range-eth1/1/1-1/1/10)# spanning-tree portfast
OS10(conf-if-range-eth1/1/1-1/1/10)# exit

# Enable BPDU Guard (shuts down port if BPDU received)
OS10(config)# spanning-tree bpduguard enable

# Show STP status
OS10# show spanning-tree
OS10# show spanning-tree vlan 10
OS10# show spanning-tree interface ethernet 1/1/1
OS10# show spanning-tree summary
Cisco IOS:
# Enable Spanning Tree
Switch(config)# spanning-tree mode rapid-pvst

# Set priority
Switch(config)# spanning-tree vlan 10 priority 4096

# Configure interface
Switch(config)# interface gi0/1
Switch(config-if)# spanning-tree portfast
Switch(config-if)# spanning-tree bpduguard enable
Switch(config-if)# spanning-tree cost 19

# Show STP
Switch# show spanning-tree
Switch# show spanning-tree vlan 10

Storm Control

Dell OS10:
# Configure broadcast storm control
OS10(config)# interface ethernet 1/1/5
OS10(conf-if-eth1/1/5)# storm-control broadcast level 10
OS10(conf-if-eth1/1/5)# storm-control multicast level 10
OS10(conf-if-eth1/1/5)# storm-control unicast level 10
OS10(conf-if-eth1/1/5)# exit

# Level is percentage of bandwidth (10 = 10%)
Cisco IOS:
Switch(config)# interface gi0/5
Switch(config-if)# storm-control broadcast level 10
Switch(config-if)# storm-control multicast level 10

Layer 3 Routing

Static Routing

Dell OS10:
# Enable IP routing
OS10(config)# ip routing

# Configure static route
OS10(config)# ip route 10.0.0.0/8 192.168.1.254

# Default route
OS10(config)# ip route 0.0.0.0/0 192.168.1.1

# Static route with administrative distance
OS10(config)# ip route 172.16.0.0/12 192.168.1.253 distance 5

# Static route via interface
OS10(config)# ip route 10.10.0.0/16 ethernet 1/1/10

# Show routing table
OS10# show ip route
OS10# show ip route static
OS10# show ip route 10.0.0.0/8
Cisco IOS:
# Enable IP routing (enabled by default on routers)
Router(config)# ip routing

# Configure static route
Router(config)# ip route 10.0.0.0 255.0.0.0 192.168.1.254

# Default route
Router(config)# ip route 0.0.0.0 0.0.0.0 192.168.1.1

# Show routing table
Router# show ip route
Router# show ip route static
Linux Shell Routing (OS10):
# View routing table
admin@OS10:~$ ip route show
admin@OS10:~$ route -n

# Add static route (requires privileges)
admin@OS10:~$ sudo ip route add 10.0.0.0/8 via 192.168.1.254

# Delete route
admin@OS10:~$ sudo ip route del 10.0.0.0/8

# Add default route
admin@OS10:~$ sudo ip route add default via 192.168.1.1

Dynamic Routing - OSPF

Dell OS10:
# Enable OSPF
OS10(config)# router ospf 1
OS10(config-router-ospf-1)# router-id 1.1.1.1

# Configure OSPF networks
OS10(config-router-ospf-1)# network 192.168.1.0/24 area 0
OS10(config-router-ospf-1)# network 10.0.0.0/8 area 0

# Configure passive interface
OS10(config-router-ospf-1)# passive-interface default
OS10(config-router-ospf-1)# no passive-interface ethernet 1/1/1

# Configure OSPF on specific interface
OS10(config)# interface ethernet 1/1/1
OS10(conf-if-eth1/1/1)# ip ospf 1 area 0
OS10(conf-if-eth1/1/1)# ip ospf cost 100
OS10(conf-if-eth1/1/1)# ip ospf hello-interval 10
OS10(conf-if-eth1/1/1)# ip ospf dead-interval 40
OS10(conf-if-eth1/1/1)# exit

# Show OSPF information
OS10# show ip ospf
OS10# show ip ospf neighbor
OS10# show ip ospf interface
OS10# show ip ospf database
OS10# show ip route ospf
Cisco IOS:
# Enable OSPF
Router(config)# router ospf 1
Router(config-router)# router-id 1.1.1.1
Router(config-router)# network 192.168.1.0 0.0.0.255 area 0
Router(config-router)# network 10.0.0.0 0.255.255.255 area 0
Router(config-router)# passive-interface default
Router(config-router)# no passive-interface gi0/1

# Show OSPF
Router# show ip ospf neighbor
Router# show ip ospf interface
Linux Shell OSPF Monitoring (OS10):
# Monitor OSPF packets
admin@OS10:~$ sudo tcpdump -i e101-001-0 proto ospf

# View FRRouting OSPF (OS10 uses FRR for routing)
admin@OS10:~$ vtysh
OS10# show ip ospf neighbor
OS10# show ip ospf database
OS10# exit

Dynamic Routing - BGP

Dell OS10:
# Configure BGP
OS10(config)# router bgp 65001
OS10(config-router-bgp-65001)# router-id 1.1.1.1

# Configure BGP neighbor
OS10(config-router-bgp-65001)# neighbor 192.168.1.2 remote-as 65002
OS10(config-router-bgp-65001)# neighbor 192.168.1.2 description ISP-Router
OS10(config-router-bgp-65001)# neighbor 192.168.1.2 ebgp-multihop 2

# iBGP neighbor
OS10(config-router-bgp-65001)# neighbor 10.0.0.2 remote-as 65001
OS10(config-router-bgp-65001)# neighbor 10.0.0.2 update-source loopback 0

# Advertise networks
OS10(config-router-bgp-65001)# address-family ipv4 unicast
OS10(config-router-bgp-65001-af)# network 10.0.0.0/8
OS10(config-router-bgp-65001-af)# network 172.16.0.0/16
OS10(config-router-bgp-65001-af)# exit

# BGP peer groups
OS10(config-router-bgp-65001)# neighbor PEER-GROUP peer-group
OS10(config-router-bgp-65001)# neighbor PEER-GROUP remote-as 65002
OS10(config-router-bgp-65001)# neighbor 192.168.1.2 peer-group PEER-GROUP

# Show BGP information
OS10# show ip bgp summary
OS10# show ip bgp neighbors
OS10# show ip bgp
OS10# show ip route bgp
Cisco IOS:
# Configure BGP
Router(config)# router bgp 65001
Router(config-router)# bgp router-id 1.1.1.1
Router(config-router)# neighbor 192.168.1.2 remote-as 65002
Router(config-router)# neighbor 192.168.1.2 description ISP-Router
Router(config-router)# network 10.0.0.0 mask 255.0.0.0

# Show BGP
Router# show ip bgp summary
Router# show ip bgp neighbors

Inter-VLAN Routing (SVI)

Dell OS10:
# Enable IP routing
OS10(config)# ip routing

# Create VLANs
OS10(config)# interface vlan 10
OS10(conf-if-vl-10)# description Sales-VLAN
OS10(conf-if-vl-10)# exit

OS10(config)# interface vlan 20
OS10(conf-if-vl-20)# description Engineering-VLAN
OS10(conf-if-vl-20)# exit

# Configure SVI (Switched Virtual Interface) with IP addresses
OS10(config)# interface vlan 10
OS10(conf-if-vl-10)# ip address 192.168.10.1/24
OS10(conf-if-vl-10)# no shutdown
OS10(conf-if-vl-10)# exit

OS10(config)# interface vlan 20
OS10(conf-if-vl-20)# ip address 192.168.20.1/24
OS10(conf-if-vl-20)# no shutdown
OS10(conf-if-vl-20)# exit

# Show SVIs
OS10# show interface vlan 10
OS10# show ip interface brief
Cisco IOS:
# Enable IP routing
Switch(config)# ip routing

# Create VLANs
Switch(config)# vlan 10
Switch(config-vlan)# name Sales-VLAN
Switch(config-vlan)# exit

# Configure SVI
Switch(config)# interface vlan 10
Switch(config-if)# ip address 192.168.10.1 255.255.255.0
Switch(config-if)# no shutdown

# Show SVIs
Switch# show ip interface brief

Access Control Lists (ACLs)

Standard ACLs

Dell OS10:
# Create standard IPv4 ACL (match source IP only)
OS10(config)# ip access-list standard BLOCK-10NET
OS10(config-ipv4-acl)# deny 10.0.0.0/8
OS10(config-ipv4-acl)# permit any
OS10(config-ipv4-acl)# exit

# Apply ACL to interface (inbound)
OS10(config)# interface ethernet 1/1/5
OS10(conf-if-eth1/1/5)# ip access-group BLOCK-10NET in
OS10(conf-if-eth1/1/5)# exit

# Show ACLs
OS10# show ip access-lists
OS10# show ip access-lists BLOCK-10NET
Cisco IOS:
# Create standard ACL
Router(config)# access-list 10 deny 10.0.0.0 0.255.255.255
Router(config)# access-list 10 permit any

# Or named standard ACL
Router(config)# ip access-list standard BLOCK-10NET
Router(config-std-nacl)# deny 10.0.0.0 0.255.255.255
Router(config-std-nacl)# permit any

# Apply to interface
Router(config)# interface gi0/1
Router(config-if)# ip access-group 10 in

# Show ACLs
Router# show access-lists

Extended ACLs

Dell OS10:
# Create extended IPv4 ACL
OS10(config)# ip access-list extended WEB-FILTER
OS10(config-ipv4-acl)# permit tcp 192.168.1.0/24 any eq 80
OS10(config-ipv4-acl)# permit tcp 192.168.1.0/24 any eq 443
OS10(config-ipv4-acl)# permit tcp 192.168.1.0/24 any eq 22
OS10(config-ipv4-acl)# deny tcp 192.168.1.0/24 any
OS10(config-ipv4-acl)# permit ip any any
OS10(config-ipv4-acl)# exit

# More complex example
OS10(config)# ip access-list extended SECURITY-POLICY
OS10(config-ipv4-acl)# remark Allow HTTP/HTTPS from internal network
OS10(config-ipv4-acl)# permit tcp 10.0.0.0/8 any eq 80
OS10(config-ipv4-acl)# permit tcp 10.0.0.0/8 any eq 443
OS10(config-ipv4-acl)# remark Allow DNS
OS10(config-ipv4-acl)# permit udp any any eq 53
OS10(config-ipv4-acl)# remark Block specific host
OS10(config-ipv4-acl)# deny ip host 10.0.0.100 any
OS10(config-ipv4-acl)# remark Allow everything else
OS10(config-ipv4-acl)# permit ip any any
OS10(config-ipv4-acl)# exit

# Apply ACL to interface
OS10(config)# interface ethernet 1/1/10
OS10(conf-if-eth1/1/10)# ip access-group WEB-FILTER in
OS10(conf-if-eth1/1/10)# exit

# Apply ACL to VLAN interface
OS10(config)# interface vlan 100
OS10(conf-if-vl-100)# ip access-group SECURITY-POLICY in
OS10(conf-if-vl-100)# exit

# Show ACL statistics
OS10# show ip access-lists WEB-FILTER
OS10# show running-configuration ip access-list
Cisco IOS:
# Create extended ACL
Router(config)# ip access-list extended WEB-FILTER
Router(config-ext-nacl)# permit tcp 192.168.1.0 0.0.0.255 any eq 80
Router(config-ext-nacl)# permit tcp 192.168.1.0 0.0.0.255 any eq 443
Router(config-ext-nacl)# permit tcp 192.168.1.0 0.0.0.255 any eq 22
Router(config-ext-nacl)# deny tcp 192.168.1.0 0.0.0.255 any
Router(config-ext-nacl)# permit ip any any

# Apply to interface
Router(config)# interface gi0/1
Router(config-if)# ip access-group WEB-FILTER in

# Show ACLs
Router# show access-lists
Router# show ip access-lists WEB-FILTER

Port Security

Dell OS10:
# Enable port security on an interface
OS10(config)# interface ethernet 1/1/5
OS10(conf-if-eth1/1/5)# switchport mode access
OS10(conf-if-eth1/1/5)# switchport access vlan 10
OS10(conf-if-eth1/1/5)# switchport port-security
OS10(conf-if-eth1/1/5)# switchport port-security maximum 2
OS10(conf-if-eth1/1/5)# switchport port-security mac-address sticky
OS10(conf-if-eth1/1/5)# switchport port-security violation shutdown
OS10(conf-if-eth1/1/5)# exit

# Violation modes:
# - shutdown: Disables port (default)
# - restrict: Drops packets from unauthorized MACs
# - protect: Drops packets silently

# Manually specify allowed MAC address
OS10(config)# interface ethernet 1/1/6
OS10(conf-if-eth1/1/6)# switchport port-security mac-address aa:bb:cc:dd:ee:ff
OS10(conf-if-eth1/1/6)# exit

# Show port security
OS10# show port-security
OS10# show port-security interface ethernet 1/1/5
OS10# show port-security address
Cisco IOS:
# Enable port security
Switch(config)# interface gi0/5
Switch(config-if)# switchport mode access
Switch(config-if)# switchport port-security
Switch(config-if)# switchport port-security maximum 2
Switch(config-if)# switchport port-security mac-address sticky
Switch(config-if)# switchport port-security violation shutdown

# Show port security
Switch# show port-security
Switch# show port-security interface gi0/5

Quality of Service (QoS)

Dell OS10:
# Enable QoS globally
OS10(config)# qos enable

# Create class-map to classify traffic
OS10(config)# class-map match-any VOICE-TRAFFIC
OS10(config-classmap)# match ip dscp ef
OS10(config-classmap)# match ip protocol 17
OS10(config-classmap)# exit

OS10(config)# class-map match-any VIDEO-TRAFFIC
OS10(config-classmap)# match ip dscp af41
OS10(config-classmap)# exit

# Create policy-map to define QoS actions
OS10(config)# policy-map QOS-POLICY
OS10(config-policymap)# class VOICE-TRAFFIC
OS10(config-policymap-class)# set dscp ef
OS10(config-policymap-class)# priority level 1
OS10(config-policymap-class)# exit
OS10(config-policymap)# class VIDEO-TRAFFIC
OS10(config-policymap-class)# set dscp af41
OS10(config-policymap-class)# bandwidth percent 30
OS10(config-policymap-class)# exit
OS10(config-policymap)# exit

# Apply policy to interface
OS10(config)# interface ethernet 1/1/1
OS10(conf-if-eth1/1/1)# service-policy input QOS-POLICY
OS10(conf-if-eth1/1/1)# exit

# Show QoS configuration
OS10# show qos
OS10# show policy-map interface ethernet 1/1/1
Cisco IOS:
# Create class-map
Router(config)# class-map match-any VOICE-TRAFFIC
Router(config-cmap)# match ip dscp ef
Router(config-cmap)# exit

# Create policy-map
Router(config)# policy-map QOS-POLICY
Router(config-pmap)# class VOICE-TRAFFIC
Router(config-pmap-c)# priority 1000
Router(config-pmap-c)# exit
Router(config-pmap)# exit

# Apply to interface
Router(config)# interface gi0/1
Router(config-if)# service-policy input QOS-POLICY

# Show QoS
Router# show policy-map interface gi0/1

Monitoring & Troubleshooting

System Information

Dell OS10:
# Show system version and hardware
OS10# show version
OS10# show system
OS10# show inventory
OS10# show environment

# Show CPU usage
OS10# show processes cpu

# Show memory usage
OS10# show processes memory

# Show uptime
OS10# show uptime

# Show temperature and fans
OS10# show environment temperature
OS10# show environment fans
OS10# show environment power-supply

# Show system logs
OS10# show logging
OS10# show logging | grep error
OS10# show logging reverse
Cisco IOS:
# Show version
Router# show version
Router# show inventory

# Show processes
Router# show processes cpu
Router# show processes memory

# Show environment
Router# show environment all

# Show logs
Router# show logging
Linux Shell System Monitoring (OS10):
# System information
admin@OS10:~$ uname -a
admin@OS10:~$ lsb_release -a
admin@OS10:~$ cat /proc/version

# CPU information
admin@OS10:~$ lscpu
admin@OS10:~$ cat /proc/cpuinfo
admin@OS10:~$ top
admin@OS10:~$ htop

# Memory information
admin@OS10:~$ free -h
admin@OS10:~$ cat /proc/meminfo
admin@OS10:~$ vmstat 1

# Disk usage
admin@OS10:~$ df -h
admin@OS10:~$ du -sh /var/log/*

# Uptime and load
admin@OS10:~$ uptime
admin@OS10:~$ w

# Temperature sensors (if available)
admin@OS10:~$ sensors

# View system logs
admin@OS10:~$ sudo tail -f /var/log/syslog
admin@OS10:~$ sudo journalctl -f
admin@OS10:~$ sudo dmesg | tail -20

Connectivity Testing

Dell OS10:
# Ping
OS10# ping 8.8.8.8
OS10# ping 8.8.8.8 count 100
OS10# ping 8.8.8.8 size 1500
OS10# ping 8.8.8.8 source 192.168.1.1

# Traceroute
OS10# traceroute 8.8.8.8

# Telnet to test port connectivity
OS10# telnet 192.168.1.100 80

# Test DNS resolution
OS10# ping google.com
Cisco IOS:
# Ping
Router# ping 8.8.8.8
Router# ping 8.8.8.8 repeat 100
Router# ping 8.8.8.8 size 1500

# Traceroute
Router# traceroute 8.8.8.8

# Telnet
Router# telnet 192.168.1.100 80
Linux Shell Network Testing (OS10):
# Advanced ping options
admin@OS10:~$ ping -c 100 -i 0.2 8.8.8.8
admin@OS10:~$ ping -c 10 -s 1500 8.8.8.8
admin@OS10:~$ ping -f 8.8.8.8  # Flood ping (be careful!)

# MTR (Better than traceroute)
admin@OS10:~$ mtr 8.8.8.8
admin@OS10:~$ mtr -n -c 100 8.8.8.8

# Traceroute with options
admin@OS10:~$ traceroute -n 8.8.8.8
admin@OS10:~$ traceroute -I 8.8.8.8  # Use ICMP

# Test TCP port connectivity
admin@OS10:~$ nc -zv 192.168.1.100 80
admin@OS10:~$ telnet 192.168.1.100 80

# Test UDP port
admin@OS10:~$ nc -zvu 192.168.1.100 53

# Curl to test HTTP/HTTPS
admin@OS10:~$ curl -I http://192.168.1.100
admin@OS10:~$ curl -k https://192.168.1.100

# DNS testing
admin@OS10:~$ nslookup google.com
admin@OS10:~$ dig google.com
admin@OS10:~$ dig @8.8.8.8 google.com

Packet Capture

🎯 HUGE OS10 Advantage - Native Packet Capture!

Because OS10 runs on Linux, you have full access to tcpdump and wireshark-cli for packet captures directly on the switch!

Dell OS10 (Linux Shell):
# Start packet capture on interface
admin@OS10:~$ sudo tcpdump -i e101-001-0

# Capture with filters
admin@OS10:~$ sudo tcpdump -i e101-001-0 host 192.168.1.100
admin@OS10:~$ sudo tcpdump -i e101-001-0 port 80
admin@OS10:~$ sudo tcpdump -i e101-001-0 icmp
admin@OS10:~$ sudo tcpdump -i e101-001-0 'tcp port 22 or tcp port 23'

# Capture and save to file
admin@OS10:~$ sudo tcpdump -i e101-001-0 -w /home/admin/capture.pcap

# Capture with detailed output
admin@OS10:~$ sudo tcpdump -i e101-001-0 -vv -n

# Capture limited number of packets
admin@OS10:~$ sudo tcpdump -i e101-001-0 -c 1000 -w capture.pcap

# Read captured file
admin@OS10:~$ tcpdump -r capture.pcap

# Capture VLAN traffic
admin@OS10:~$ sudo tcpdump -i e101-001-0 vlan 100

# Capture with timestamp
admin@OS10:~$ sudo tcpdump -i e101-001-0 -tttt

# Capture ARP
admin@OS10:~$ sudo tcpdump -i e101-001-0 arp

# Capture OSPF
admin@OS10:~$ sudo tcpdump -i e101-001-0 proto ospf

# Capture BGP
admin@OS10:~$ sudo tcpdump -i e101-001-0 'tcp port 179'

# Capture spanning-tree (BPDU)
admin@OS10:~$ sudo tcpdump -i e101-001-0 '(ether[0:2] & 0xFFFF) = 0x0180'

# Monitor in real-time with ASCII output
admin@OS10:~$ sudo tcpdump -i e101-001-0 -A

# Copy capture file to remote server
admin@OS10:~$ scp capture.pcap user@server:/captures/
Cisco IOS:
# Cisco requires SPAN/RSPAN or embedded packet capture
# Much more limited than OS10's tcpdump!

# Configure SPAN (port mirroring)
Switch(config)# monitor session 1 source interface gi0/1
Switch(config)# monitor session 1 destination interface gi0/24

# Embedded packet capture (newer IOS)
Router# monitor capture CAP interface gi0/1 both
Router# monitor capture CAP match ipv4 any any
Router# monitor capture CAP start
Router# monitor capture CAP stop
Router# monitor capture CAP export tftp://192.168.1.100/cap.pcap

Interface Statistics & Errors

Dell OS10:
# Show interface statistics
OS10# show interface ethernet 1/1/1 statistics

# Show interface counters
OS10# show interface ethernet 1/1/1 counters

# Show errors
OS10# show interface ethernet 1/1/1 errors

# Clear interface counters
OS10# clear interface ethernet 1/1/1 counters

# Show transceiver info (SFP/QSFP)
OS10# show interface ethernet 1/1/1 transceiver
Cisco IOS:
# Show interface stats
Router# show interface gi0/1
Router# show interface gi0/1 stats
Router# clear counters gi0/1
Linux Shell Interface Stats (OS10):
# Show detailed interface stats
admin@OS10:~$ ip -s link show e101-001-0

# Continuous monitoring
admin@OS10:~$ watch -n 1 'ip -s link show e101-001-0'

# Using ifconfig
admin@OS10:~$ ifconfig e101-001-0

# Show packet stats
admin@OS10:~$ netstat -i

# Advanced interface monitoring with ethtool
admin@OS10:~$ sudo ethtool -S e101-001-0

MAC Address Table

Dell OS10:
# Show MAC address table
OS10# show mac address-table

# Show MACs on specific interface
OS10# show mac address-table interface ethernet 1/1/1

# Show MACs in specific VLAN
OS10# show mac address-table vlan 10

# Show dynamic MACs
OS10# show mac address-table dynamic

# Show static MACs
OS10# show mac address-table static

# Clear MAC table
OS10# clear mac address-table dynamic

# Set MAC aging time
OS10(config)# mac address-table aging-time 300
Cisco IOS:
# Show MAC table
Switch# show mac address-table
Switch# show mac address-table interface gi0/1
Switch# show mac address-table vlan 10
Switch# clear mac address-table dynamic
Linux Shell MAC Table (OS10):
# Show bridge forwarding database
admin@OS10:~$ bridge fdb show

# Show for specific interface
admin@OS10:~$ bridge fdb show dev e101-001-0

File System Operations

Dell OS10:
# List files
OS10# dir
OS10# show file-systems

# Change directory
OS10# cd flash:

# Show current directory
OS10# pwd

# View file contents
OS10# more flash:startup-config

# Copy files
OS10# copy flash:config.txt flash:config-backup.txt

# Delete file
OS10# delete flash:old-config.txt

# Create directory
OS10# mkdir flash:backups

# Upload/download files (SCP)
OS10# copy scp://user@192.168.1.100/config.txt flash:config.txt
OS10# copy flash:config.txt scp://user@192.168.1.100/backups/
Cisco IOS:
# List files
Router# dir
Router# dir flash:

# View file
Router# more flash:startup-config

# Copy files
Router# copy flash:old flash:new
Router# delete flash:old

# Upload/download via TFTP
Router# copy tftp: flash:
Router# copy flash: tftp:
Linux Shell File Operations (OS10):
# Standard Linux file operations
admin@OS10:~$ ls -lah
admin@OS10:~$ cd /mnt/flash
admin@OS10:~$ pwd

# Copy files
admin@OS10:~$ cp file1.txt file2.txt
admin@OS10:~$ cp -r /etc/sonic /home/admin/backup/

# Move/rename
admin@OS10:~$ mv old.txt new.txt

# Delete
admin@OS10:~$ rm old.txt
admin@OS10:~$ rm -rf old-directory/

# View file contents
admin@OS10:~$ cat config.txt
admin@OS10:~$ less config.txt
admin@OS10:~$ head -20 config.txt
admin@OS10:~$ tail -50 config.txt
admin@OS10:~$ tail -f /var/log/syslog

# Search in files
admin@OS10:~$ grep "interface" config.txt
admin@OS10:~$ grep -r "error" /var/log/

# File permissions
admin@OS10:~$ chmod 644 config.txt
admin@OS10:~$ chown admin:admin config.txt

# Create archives
admin@OS10:~$ tar czf backup.tar.gz /etc/sonic/
admin@OS10:~$ tar xzf backup.tar.gz

# SCP file transfer
admin@OS10:~$ scp config.txt user@server:/backups/
admin@OS10:~$ scp user@server:/configs/new-config.txt .

# SFTP
admin@OS10:~$ sftp user@server

Backup & Restore

Dell OS10:
# Save running config to startup
OS10# write memory

# Backup config to remote server (SCP)
OS10# copy running-configuration scp://admin@192.168.1.100/backups/switch-config-$(date).txt

# Backup to USB (if available)
OS10# copy running-configuration usb:backup-config.txt

# View configuration history (for rollback)
OS10# show configuration history

# Restore from backup
OS10# copy scp://admin@192.168.1.100/backups/switch-config.txt running-configuration

# Software upgrade
OS10# image install ftp://user:pass@192.168.1.100/PKGS_OS10-Enterprise-10.5.3.4.bin
OS10# image boot

# Show installed images
OS10# show image status
OS10# show boot system

# Set boot image
OS10# boot system standby
Cisco IOS:
# Backup config
Router# copy running-config tftp:
Router# copy startup-config tftp:

# Restore config
Router# copy tftp: running-config

# Backup IOS image
Router# copy flash:ios.bin tftp:

# Show boot config
Router# show boot
Router# show version
Linux Shell Comprehensive Backup (OS10):
# Full system configuration backup
admin@OS10:~$ sudo tar czf /tmp/full-backup-$(date +%Y%m%d-%H%M%S).tar.gz \
    /etc/sonic/ \
    /home/admin/ \
    /etc/network/ \
    /etc/ssh/

# Backup specific configs
admin@OS10:~$ sudo cp /etc/sonic/config_db.json /home/admin/config-backup.json

# Automated backup script
admin@OS10:~$ cat > /home/admin/backup.sh << 'EOF'
#!/bin/bash
BACKUP_DIR="/home/admin/backups"
DATE=$(date +%Y%m%d-%H%M%S)
mkdir -p $BACKUP_DIR

# Backup configuration
sudo tar czf $BACKUP_DIR/config-$DATE.tar.gz /etc/sonic/

# Copy to remote server
scp $BACKUP_DIR/config-$DATE.tar.gz user@backup-server:/backups/

# Keep only last 7 days
find $BACKUP_DIR -name "config-*.tar.gz" -mtime +7 -delete
EOF

admin@OS10:~$ chmod +x /home/admin/backup.sh

# Schedule with cron (run daily at 2 AM)
admin@OS10:~$ crontab -e
# Add line: 0 2 * * * /home/admin/backup.sh

# Restore from backup
admin@OS10:~$ sudo tar xzf /home/admin/backups/config-20251031.tar.gz -C /

Automation & Scripting

🤖 Automation Powerhouse!

OS10's Linux foundation makes it incredibly automation-friendly. You have Python, Ansible, REST APIs, and standard Linux tools all available!

Python Scripting on OS10

Python Scripts (OS10 Linux Shell):
# Python is pre-installed on OS10!
admin@OS10:~$ python --version
Python 2.7.13

admin@OS10:~$ python3 --version
Python 3.5.3

# Simple interface monitoring script
admin@OS10:~$ cat > monitor_interface.py << 'EOF'
#!/usr/bin/env python3
import subprocess
import time

def get_interface_stats(interface):
    cmd = f"ip -s link show {interface}"
    result = subprocess.run(cmd, shell=True, capture_output=True, text=True)
    return result.stdout

def main():
    interface = "e101-001-0"
    while True:
        print(f"\n=== Interface {interface} Statistics ===")
        print(get_interface_stats(interface))
        time.sleep(5)

if __name__ == "__main__":
    main()
EOF

admin@OS10:~$ chmod +x monitor_interface.py
admin@OS10:~$ python3 monitor_interface.py

# Configuration backup script
admin@OS10:~$ cat > backup_config.py << 'EOF'
#!/usr/bin/env python3
import subprocess
import datetime

def backup_config():
    timestamp = datetime.datetime.now().strftime("%Y%m%d-%H%M%S")
    backup_file = f"/home/admin/config-backup-{timestamp}.json"
    
    # Copy configuration
    cmd = f"sudo cp /etc/sonic/config_db.json {backup_file}"
    subprocess.run(cmd, shell=True)
    
    print(f"Configuration backed up to: {backup_file}")
    
    # Optional: Copy to remote server
    remote_cmd = f"scp {backup_file} user@backup-server:/backups/"
    # subprocess.run(remote_cmd, shell=True)

if __name__ == "__main__":
    backup_config()
EOF

admin@OS10:~$ chmod +x backup_config.py
admin@OS10:~$ python3 backup_config.py

# VLAN reporting script
admin@OS10:~$ cat > vlan_report.py << 'EOF'
#!/usr/bin/env python3
import subprocess
import json

def get_vlans():
    # Read configuration
    with open('/etc/sonic/config_db.json', 'r') as f:
        config = json.load(f)
    
    vlans = config.get('VLAN', {})
    
    print("=== VLAN Report ===")
    for vlan_name, vlan_data in vlans.items():
        vlan_id = vlan_name.replace('Vlan', '')
        print(f"VLAN {vlan_id}: {vlan_data}")

if __name__ == "__main__":
    get_vlans()
EOF

admin@OS10:~$ sudo python3 vlan_report.py
Note:

Cisco IOS doesn't have native Python support in the same way. You would need to use EEM (Embedded Event Manager) scripts or external tools.

REST API

Dell OS10 REST API:
# Enable REST API
OS10(config)# rest-server enable

# Configure HTTPS
OS10(config)# rest-server https enable

# Set port (default is 8090 for HTTP, 443 for HTTPS)
OS10(config)# rest-server port 8090
Using REST API (from Linux shell or external system):
# Get system information
curl -u admin:password -k https://192.168.1.1/restconf/data/system

# Get interfaces
curl -u admin:password -k https://192.168.1.1/restconf/data/interfaces

# Get VLANs
curl -u admin:password -k https://192.168.1.1/restconf/data/vlans

# Create VLAN via REST
curl -u admin:password -k -X PUT \
  https://192.168.1.1/restconf/data/vlans/vlan=100 \
  -H 'Content-Type: application/json' \
  -d '{
    "vlan": {
      "vlan-id": 100,
      "name": "Production"
    }
  }'

# Configure interface
curl -u admin:password -k -X PUT \
  https://192.168.1.1/restconf/data/interfaces/interface=ethernet1/1/1 \
  -H 'Content-Type: application/json' \
  -d '{
    "interface": {
      "name": "ethernet1/1/1",
      "description": "Configured via REST API",
      "enabled": true
    }
  }'

Ansible Automation

Ansible Playbook for OS10:
# Install Ansible on management station
sudo apt-get install ansible

# Install Dell OS10 Ansible modules
ansible-galaxy collection install dellemc.os10

# Create inventory file
cat > inventory.ini << EOF
[dell_switches]
switch01 ansible_host=192.168.1.10
switch02 ansible_host=192.168.1.11

[dell_switches:vars]
ansible_network_os=dellemc.os10.os10
ansible_user=admin
ansible_password=admin
ansible_connection=network_cli
EOF

# Sample playbook: Configure VLANs
cat > configure_vlans.yml << 'EOF'
---
- name: Configure VLANs on Dell OS10 Switches
  hosts: dell_switches
  gather_facts: no
  
  tasks:
    - name: Create VLANs
      dellemc.os10.os10_vlan:
        vlan_id: "{{ item.id }}"
        name: "{{ item.name }}"
        state: present
      loop:
        - { id: 10, name: "Sales" }
        - { id: 20, name: "Engineering" }
        - { id: 30, name: "Guest" }

    - name: Configure interface as access port
      dellemc.os10.os10_interface:
        name: ethernet1/1/5
        description: "Sales Department"
        mode: access
        access_vlan: 10
        state: up

    - name: Configure trunk port
      dellemc.os10.os10_interface:
        name: ethernet1/1/48
        description: "Trunk to Access Switch"
        mode: trunk
        trunk_vlans: "10,20,30"
        state: up

    - name: Save configuration
      dellemc.os10.os10_config:
        save: yes
EOF

# Run playbook
ansible-playbook -i inventory.ini configure_vlans.yml

# Playbook: Backup configurations
cat > backup_configs.yml << 'EOF'
---
- name: Backup Dell OS10 Configurations
  hosts: dell_switches
  gather_facts: no
  
  tasks:
    - name: Backup running configuration
      dellemc.os10.os10_config:
        backup: yes
        backup_options:
          filename: "{{ inventory_hostname }}_{{ ansible_date_time.date }}.cfg"
          dir_path: ./backups/
EOF

# Run backup playbook
ansible-playbook -i inventory.ini backup_configs.yml

Zero Touch Provisioning (ZTP)

Dell OS10 ZTP:
# Enable ZTP
OS10(config)# ztp enable

# Configure DHCP to provide ZTP script URL
# DHCP server provides: dhcp-option=43,http://192.168.1.100/ztp-script.sh

# Show ZTP status
OS10# show ztp status
OS10# show ztp log
Sample ZTP Script:
#!/bin/bash
# Sample ZTP provisioning script

# Configure hostname based on MAC or serial
SERIAL=$(decode-syseeprom | grep "Serial Number" | awk '{print $4}')
HOSTNAME="DELL-SW-${SERIAL}"

# Apply basic configuration
cat > /tmp/ztp-config.txt << EOF
configure terminal
hostname ${HOSTNAME}
ip name-server 8.8.8.8
ntp server 0.pool.ntp.org
username admin password MySecurePass! role sysadmin
!
interface vlan 1
ip address dhcp
no shutdown
!
end
write memory
EOF

# Apply configuration
vtysh < /tmp/ztp-config.txt

# Download and apply specific configuration from server
curl -o /tmp/switch-config.txt http://192.168.1.100/configs/${HOSTNAME}.cfg
vtysh < /tmp/switch-config.txt

exit 0

Advanced Features

VRF (Virtual Routing and Forwarding)

Dell OS10:
# Create VRF
OS10(config)# ip vrf management
OS10(config-vrf)# exit

OS10(config)# ip vrf customer-a
OS10(config-vrf)# exit

# Assign interface to VRF
OS10(config)# interface ethernet 1/1/10
OS10(conf-if-eth1/1/10)# no switchport
OS10(conf-if-eth1/1/10)# ip vrf forwarding customer-a
OS10(conf-if-eth1/1/10)# ip address 10.1.1.1/24
OS10(conf-if-eth1/1/10)# no shutdown
OS10(conf-if-eth1/1/10)# exit

# Static route in VRF
OS10(config)# ip route vrf customer-a 10.2.0.0/16 10.1.1.254

# OSPF in VRF
OS10(config)# router ospf 100 vrf customer-a
OS10(config-router-ospf-100)# router-id 1.1.1.1
OS10(config-router-ospf-100)# network 10.1.1.0/24 area 0
OS10(config-router-ospf-100)# exit

# Show VRF
OS10# show ip vrf
OS10# show ip route vrf customer-a
Cisco IOS:
# Very similar syntax
Router(config)# ip vrf customer-a
Router(config-vrf)# exit

Router(config)# interface gi0/1
Router(config-if)# ip vrf forwarding customer-a
Router(config-if)# ip address 10.1.1.1 255.255.255.0

Router# show ip vrf
Router# show ip route vrf customer-a

VLT (Virtual Link Trunking)

📝 VLT:

VLT is Dell's technology similar to Cisco's vPC (Virtual PortChannel). It allows two switches to appear as one logical switch for redundancy and load balancing.

Dell OS10 VLT Configuration:
# On both VLT peer switches:

# Create VLT domain
OS10(config)# vlt domain 1
OS10(conf-vlt-1)# peer-routing
OS10(conf-vlt-1)# back-up destination 192.168.100.2
OS10(conf-vlt-1)# primary-priority 1      # Lower on primary
OS10(conf-vlt-1)# vlt-mac aa:bb:cc:dd:ee:ff
OS10(conf-vlt-1)# exit

# Configure VLT interconnect (ICL)
OS10(config)# interface port-channel 100
OS10(conf-if-po-100)# mode L2
OS10(conf-if-po-100)# vlt-port-channel 100
OS10(conf-if-po-100)# no shutdown
OS10(conf-if-po-100)# exit

# Add physical interfaces to ICL
OS10(config)# interface range ethernet 1/1/47-1/1/48
OS10(conf-if-range)# channel-group 100 mode active
OS10(conf-if-range)# exit

# Configure VLT LAG to downstream device
OS10(config)# interface port-channel 10
OS10(conf-if-po-10)# switchport mode trunk
OS10(conf-if-po-10)# switchport trunk allowed vlan 10,20,30
OS10(conf-if-po-10)# vlt-port-channel 10
OS10(conf-if-po-10)# exit

# Add physical interfaces
OS10(config)# interface ethernet 1/1/1
OS10(conf-if-eth1/1/1)# channel-group 10 mode active
OS10(conf-if-eth1/1/1)# exit

# Show VLT status
OS10# show vlt 1
OS10# show vlt backup-link

Logging & SNMP

Dell OS10:
# Configure syslog server
OS10(config)# logging server 192.168.1.50

# Set logging level
OS10(config)# logging level 6    # Informational

# Logging to console
OS10(config)# logging console

# Logging to buffer
OS10(config)# logging buffered 32768

# Show logs
OS10# show logging
OS10# show logging | grep error

# SNMP configuration
OS10(config)# snmp-server community public ro
OS10(config)# snmp-server community private rw
OS10(config)# snmp-server location "Data Center A"
OS10(config)# snmp-server contact "admin@example.com"
OS10(config)# snmp-server host 192.168.1.100 traps version 2c public

# Show SNMP
OS10# show snmp community
OS10# show snmp host
Cisco IOS:
# Configure syslog
Router(config)# logging 192.168.1.50
Router(config)# logging trap informational

# SNMP
Router(config)# snmp-server community public RO
Router(config)# snmp-server location "Data Center A"
Router(config)# snmp-server host 192.168.1.100 traps version 2c public
Linux Shell Logging (OS10):
# View system logs
admin@OS10:~$ sudo tail -f /var/log/syslog
admin@OS10:~$ sudo tail -f /var/log/messages

# View journald logs
admin@OS10:~$ sudo journalctl -f
admin@OS10:~$ sudo journalctl -u sonic.service
admin@OS10:~$ sudo journalctl --since "1 hour ago"
admin@OS10:~$ sudo journalctl -p err

# Search logs
admin@OS10:~$ sudo grep -i error /var/log/syslog
admin@OS10:~$ sudo zgrep error /var/log/syslog.*.gz

# Configure rsyslog
admin@OS10:~$ sudo nano /etc/rsyslog.conf
# Add: *.* @192.168.1.50:514
admin@OS10:~$ sudo systemctl restart rsyslog

Access Control & AAA

Dell OS10 TACACS+:
# Configure TACACS+ server
OS10(config)# tacacs-server host 192.168.1.200
OS10(config)# tacacs-server key MySecretKey

# Enable TACACS+ authentication
OS10(config)# aaa authentication login default group tacacs+ local
OS10(config)# aaa authorization exec default group tacacs+ local

# Show TACACS+
OS10# show tacacs
Dell OS10 RADIUS:
# Configure RADIUS server
OS10(config)# radius-server host 192.168.1.201
OS10(config)# radius-server key MyRadiusKey

# Enable RADIUS authentication
OS10(config)# aaa authentication login default group radius local
OS10(config)# aaa authorization exec default group radius local

# Show RADIUS
OS10# show radius-server
💡 Pro Tips for OS10:
  • Use the Linux shell! - Drop to shell with start-shell for advanced troubleshooting
  • Leverage Python - Write automation scripts directly on the switch
  • tcpdump is your friend - Capture packets directly on switch interfaces
  • Configuration rollback - Always commit with descriptions for easy rollback
  • REST API - Use APIs for integration with monitoring and orchestration tools
  • Ansible ready - Dell provides excellent Ansible modules for OS10
  • Standard Linux tools - grep, awk, sed, systemctl all work normally
  • ZTP - Use Zero Touch Provisioning for large deployments
⚠️ Important Differences from Cisco IOS:
  • OS10 uses / notation for interfaces (1/1/1) vs Cisco's slot/port notation
  • No do command needed - just use full commands from any mode
  • Configuration is transactional - you can commit with descriptions
  • Some syntax differences (e.g., no switchport for L3 interfaces)
  • VLT instead of vPC, but similar concepts
  • Built-in Python and Linux tools make troubleshooting very different

Quick Reference Tables

Common Tasks - Three-Way Comparison

Task Dell OS10 Cisco IOS Linux (OS10 Shell)
View config show running-configuration show running-config cat /etc/sonic/config_db.json
Save config write memory write memory sudo sonic-cfggen -y /etc/sonic/config_db.json -a
View interfaces show interface status show ip interface brief ip addr show
View routes show ip route show ip route ip route show
View ARP show arp show arp arp -n
View MAC table show mac address-table show mac address-table bridge fdb show
Ping ping 8.8.8.8 ping 8.8.8.8 ping 8.8.8.8
Traceroute traceroute 8.8.8.8 traceroute 8.8.8.8 traceroute 8.8.8.8 or mtr
Packet capture start-shell then tcpdump SPAN/RSPAN required sudo tcpdump -i e101-001-0
View logs show logging show logging tail -f /var/log/syslog
View CPU show processes cpu show processes cpu top or htop
View memory show processes memory show processes memory free -h
Reboot reload reload sudo reboot
🎓 Final Thoughts:

Dell OS10 brings the power of Linux to network switches. As a Linux system administrator, you'll find OS10 incredibly familiar and powerful. The ability to drop into a Linux shell, use Python for automation, capture packets with tcpdump, and leverage all your favorite Linux tools makes OS10 a unique and powerful platform.

While the CLI is similar to Cisco IOS for basic operations, OS10's Linux foundation opens up possibilities that traditional network operating systems simply can't match. You're not just configuring a switch - you're working with a full-featured Linux system that happens to also be an enterprise-grade network switch!

Dell EMC OS10 CLI Reference Guide
Created: October 31, 2025
For Linux System Administrators

Happy Switching! 🚀

← Back to Network Index ↑ Back to EXPANDED