How to configure snmp in community sonic

How to configure snmp in community sonic

SNMP 

Overview 

Simple Network Management Protocol (SNMP) is a widely used application-layer protocol that enables centralized monitoring and management of network devices such as switches, routers, and servers. It supports real-time alerts, performance tracking, and remote configuration, making it essential for network operations in enterprise and data center environments. 

 

Feature Description 

SNMP enables the following capabilities: 

Monitoring 

  • Query device/system information using SNMP GET or GETNEXT 

  • Monitor interface status, traffic statistics, and system uptime 

Configuration (if SET is enabled) 

  • Modify device parameters remotely (requires proper access controls) 

Event Notification 

  • Devices send asynchronous notifications (TRAP/INFORM) to SNMP managers when events like interface state changes occur 

NMS Integration 

  • Compatible with Network Management Systems (e.g., SolarWinds, Zabbix, LibreNMS) 

 

Prerequisites 

Hardware Requirements 

  • SONiC-supported switches (e.g., Edgecore, UfiSpace) 

Software Requirements 

  • Network OS: SONiC.master 

  • SNMP Daemon: snmpd must be installed and running 

Access Requirements 

  • Admin or root access via CLI/GUI 

  • SNMP utilities installed on management host: snmpwalk, snmpget, snmpset, snmptrap. 

 

Topology: 

                                  

 

Configuration Steps 

Note 1: Commands are to be executed in sudo mode  

1. Add SNMP Agent Address 

#syntax 
sudo config snmpagentaddress<add/del> <agent_IP_address> 

 
# Example: 
sudo config snmpagentaddress add 172.27.1.117 

 

2. Add SNMP Community 

sudo config snmp community [add/del] <community> (RO | RW) 

replace the community by the following command. 

sudo config snmp community replace <old_community> <new_commuity> 

 

Example: 

sudo config snmp community add test1 RO 

 

3. Set SNMP Location (optional but recommended) 

sudo config snmp location [add/del/modify] <location> 

Example: 

sudo config snmp location add DC_RACK 

 

4. Set SNMP Contact (optional) 

sudo config snmp contact [add/del/modify] <contact> <contact_email> 

Example: 

 

sudo config snmp contact add joe joe@contoso.com  

 

Verification Steps 

1. Verify SNMP Configuration 

admin@sonic:~$ show runningconfiguration snmp  

Location 

-------------------- 

DC_RACK 

 

SNMP_CONTACT SNMP_CONTACT_EMAIL 

-------------------   --------------------------- 

Joe                                    joe@contoso.com 

Community String Community Type 

-----------------------   ---------------------- 

test1                             RO 

 

User Permission Type Type Auth Type Auth Password Encryption Type Encryption Password 

 
 

2. View SNMP some other info using this command: 

admin@sonic:~$ show snmp ? 

Usage: show [OPTIONS] COMMAND [ARGS]... 

Try "show -h" for help. 

  

Error: Too many matches: snmpagentaddress, snmptrap 

 

3. SNMP Walk - Basic System Info on SNMP collector 

root@sonic:/#  snmpwalk -v2c -c test1 172.27.1.117 .1.3.6.1.2.1.1 

 
iso.3.6.1.2.1.1.1.0 = STRING: "SONiC Software Version: SONiC.master.838190-21255dffd - HwSku: UFISPACE-S9110-32X - Distribution: Debian 12.9 - Kernel: 6.1.0-22-2-amd64" 

iso.3.6.1.2.1.1.2.0 = OID: iso.3.6.1.4.1.8072.3.2.10 

iso.3.6.1.2.1.1.3.0 = Timeticks: (8473) 0:01:24.73 

iso.3.6.1.2.1.1.4.0 = STRING: "Azure Cloud Switch vteam <linuxnetdev@microsoft.com>" 

iso.3.6.1.2.1.1.5.0 = STRING: "sonic" 

iso.3.6.1.2.1.1.6.0 = STRING: "NotConfigured" 

iso.3.6.1.2.1.1.7.0 = INTEGER: 72 

iso.3.6.1.2.1.1.8.0 = Timeticks: (2) 0:00:00.02 

iso.3.6.1.2.1.1.9.1.2.1 = OID: iso.3.6.1.6.3.10.3.1.1 

iso.3.6.1.2.1.1.9.1.2.2 = OID: iso.3.6.1.6.3.11.3.1.1 

iso.3.6.1.2.1.1.9.1.2.3 = OID: iso.3.6.1.6.3.15.2.1.1 

iso.3.6.1.2.1.1.9.1.2.4 = OID: iso.3.6.1.6.3.1 

iso.3.6.1.2.1.1.9.1.2.5 = OID: iso.3.6.1.6.3.16.2.2.1 

iso.3.6.1.2.1.1.9.1.2.6 = OID: iso.3.6.1.2.1.49 

iso.3.6.1.2.1.1.9.1.2.7 = OID: iso.3.6.1.2.1.50 

iso.3.6.1.2.1.1.9.1.2.8 = OID: iso.3.6.1.6.3.13.3.1.3 

iso.3.6.1.2.1.1.9.1.2.9 = OID: iso.3.6.1.2.1.92 

iso.3.6.1.2.1.1.9.1.3.1 = STRING: "The SNMP Management Architecture MIB." 

iso.3.6.1.2.1.1.9.1.3.2 = STRING: "The MIB for Message Processing and Dispatching." 

iso.3.6.1.2.1.1.9.1.3.3 = STRING: "The management information definitions for the SNMP User-based Security Model." 

iso.3.6.1.2.1.1.9.1.3.4 = STRING: "The MIB module for SNMPv2 entities" 

iso.3.6.1.2.1.1.9.1.3.5 = STRING: "View-based Access Control Model for SNMP." 

iso.3.6.1.2.1.1.9.1.3.6 = STRING: "The MIB module for managing TCP implementations" 

iso.3.6.1.2.1.1.9.1.3.7 = STRING: "The MIB module for managing UDP implementations" 

iso.3.6.1.2.1.1.9.1.3.8 = STRING: "The MIB modules for managing SNMP Notification, plus filtering." 

iso.3.6.1.2.1.1.9.1.3.9 = STRING: "The MIB module for logging SNMP Notifications." 

iso.3.6.1.2.1.1.9.1.4.1 = Timeticks: (1) 0:00:00.01 

iso.3.6.1.2.1.1.9.1.4.2 = Timeticks: (1) 0:00:00.01 

iso.3.6.1.2.1.1.9.1.4.3 = Timeticks: (1) 0:00:00.01 

iso.3.6.1.2.1.1.9.1.4.4 = Timeticks: (1) 0:00:00.01 

iso.3.6.1.2.1.1.9.1.4.5 = Timeticks: (1) 0:00:00.01 

iso.3.6.1.2.1.1.9.1.4.6 = Timeticks: (1) 0:00:00.01 

iso.3.6.1.2.1.1.9.1.4.7 = Timeticks: (1) 0:00:00.01 

iso.3.6.1.2.1.1.9.1.4.8 = Timeticks: (2) 0:00:00.02 

iso.3.6.1.2.1.1.9.1.4.9 = Timeticks: (2) 0:00:00.02 

 

 
4. SNMP Get – SysName 

root@sonic:/#  snmpget -v2c -c test1 172.27.1.117 .1.3.6.1.2.1.1.5.0 
iso.3.6.1.2.1.1.5.0 = STRING: "sonic" 

 

Troubleshooting Tips 

  • Ensure SNMP daemon is running: 

docker exec -it snmp cat /etc/snmp/snmpd.conf 

 

  • Validate that snmp-server view is configured and used in the group 

  • Check firewall rules to ensure SNMP UDP port 161 is open 

  • Use tcpdump to confirm SNMP queries are reaching the device. 

 

SNMPv3 Configuration on SONiC  

Create SNMPv3 User with AuthPriv (secure mode) 

Syntax: 

sudo config snmp user <add|del> <snmp_user><noAuthNoPriv|AuthNoPriv|Priv> <RO|RW> 

                            <MD5|SHA|HMAC-SHA-2> <auth_password> <DES|AES> 

                            <encrypt_password> 

Example 

sudo config snmp user add test1 Priv RO SHA test1234 AES test5678 

 

Validate the user information: 

admin@sonic:~$ show runningconfiguration snmp user 

User    Permission Type    Type    Auth Type    Auth Password    Encryption Type    Encryption Password 

------  -----------------  ------  -----------  ---------------  -----------------  --------------------- 

test1   RO                 Priv    SHA          test1234         AES                test5678 

 

Test SNMPv3 from a Remote Client 

root@sonic:/# snmpwalk -v3 -u test1 -l authPriv -a SHA -A test1234 -x AES -X test5678 172.27.1.117 

iso.3.6.1.2.1.1.1.0 = STRING: "SONiC Software Version: SONiC.master.838190-21255dffd - HwSku: UFISPACE-S9110-32X - Distribution: Debian 12.9 - Kernel: 6.1.0-22-2-amd64" 

iso.3.6.1.2.1.1.2.0 = OID: iso.3.6.1.4.1.8072.3.2.10 

iso.3.6.1.2.1.1.3.0 = Timeticks: (15974) 0:02:39.74 

iso.3.6.1.2.1.1.4.0 = STRING: "Azure Cloud Switch vteam <linuxnetdev@microsoft.com>" 

iso.3.6.1.2.1.1.5.0 = STRING: "sonic" 

iso.3.6.1.2.1.1.6.0 = STRING: "NotConfigured" 

iso.3.6.1.2.1.1.7.0 = INTEGER: 72 

iso.3.6.1.2.1.1.8.0 = Timeticks: (2) 0:00:00.02 

iso.3.6.1.2.1.1.9.1.2.1 = OID: iso.3.6.1.6.3.10.3.1.1 

iso.3.6.1.2.1.1.9.1.2.2 = OID: iso.3.6.1.6.3.11.3.1.1 

iso.3.6.1.2.1.1.9.1.2.3 = OID: iso.3.6.1.6.3.15.2.1.1 

iso.3.6.1.2.1.1.9.1.2.4 = OID: iso.3.6.1.6.3.1 

iso.3.6.1.2.1.1.9.1.2.5 = OID: iso.3.6.1.6.3.16.2.2.1 

.............................................