CommunityCloudEnterprise
SNMP Discovery
The SNMP discovery backend leverages SNMP (Simple Network Management Protocol) to connect to network devices and collect network information.
Diode Entities
The SNMP discovery backend uses Diode Go SDK to ingest the following entities:
Configuration
The snmp_discovery backend does not require any special configuration in the backends section. The backend will use the diode settings specified in the common subsection to forward discovery results.
orb:
  backends:
    common:
      diode:
        target: grpc://127.0.0.1:8080/diode
        client_id: ${DIODE_CLIENT_ID}
        client_secret: ${DIODE_CLIENT_SECRET}
        agent_name: agent01
    snmp_discovery:
Policy
SNMP discovery policies are broken down into two subsections: config and scope.
Configuration Parameters
Config Section
| Parameter | Type | Required | Description | 
|---|---|---|---|
| schedule | cron format | no | Cron expression for scheduling (e.g., "*/5 * * * *") | 
| timeout | integer | no | Timeout for whole policy in seconds (defaults to 120) | 
| snmp_timeout | integer | no | Timeout for SNMP operations in seconds for SNMP operations (defaults to 5) | 
| retries | integer | no | Number of retries for SNMP operations (defaults to 0) | 
| lookup_extensions_dir | string | no | Directory containing device model lookup files | 
| defaults | map | no | Default values for entities (description, comments, tags, etc.) | 
Defaults Parameters
| Parameter | Type | Required | Description | 
|---|---|---|---|
| tags | list | no | List of tags to apply to all discovered entities | 
| site | string | no | Default site name for discovered devices | 
| location | string | no | Default location for discovered devices | 
| role | string | no | Default role for discovered devices | 
| ip_address | map | no | Default values for discovered IP addresses | 
| interface | map | no | Default values for discovered interfaces | 
| device | map | no | Default values for discovered devices | 
IP Address Defaults Parameters
| Parameter | Type | Required | Description | 
|---|---|---|---|
| description | string | no | Description for discovered IP addresses | 
| role | string | no | Role for discovered IP addresses (e.g. "management") | 
| tenant | string | no | Tenant name for discovered IP addresses | 
| vrf | string | no | VRF name for discovered IP addresses | 
Interface Defaults Parameters
| Parameter | Type | Required | Description | 
|---|---|---|---|
| description | string | no | Description for discovered interfaces | 
| if_type | string | no | Interface type (e.g. "ethernet", "virtual") | 
Device Defaults Parameters
| Parameter | Type | Required | Description | 
|---|---|---|---|
| description | string | no | Description for discovered devices | 
| comments | string | no | Comments for discovered devices | 
Scope Section
| Parameter | Type | Required | Description | 
|---|---|---|---|
| targets | list | yes | List of SNMP targets to discover | 
| authentication | map | yes | SNMP authentication settings | 
Authentication Parameters
| Parameter | Type | Required | Description | 
|---|---|---|---|
| protocol_version | string | yes | SNMP protocol version ("SNMPv1", "SNMPv2c", or "SNMPv3") | 
| community | string | yes* | SNMP community string for v1/v2c authentication | 
| username | string | no | SNMPv3 username | 
| security_level | string | no | SNMPv3 security level ("NoAuthNoPriv", "AuthNoPriv", "AuthPriv") | 
| auth_protocol | string | no | SNMPv3 authentication protocol ("SHA", "MD5") | 
| auth_passphrase | string | no | SNMPv3 authentication passphrase | 
| priv_protocol | string | no | SNMPv3 privacy protocol ("AES", "DES") | 
| priv_passphrase | string | no | SNMPv3 privacy passphrase | 
*Required for SNMPv1/v2c, optional for SNMPv3
Sample
A sample policy including all parameters supported by the SNMP discovery backend.
config:
  schedule: "0 */6 * * *" # Cron expression - every 6 hours
  timeout: 300 # Timeout for policy in seconds (default 2 minutes)
  snmp_timeout: 10 # Timeout for SNMP operations in seconds (default 5 seconds)
  retries: 3 # Number of retries
  defaults:
    tags: ["snmp-discovery", "orb"]
    site: "datacenter-01"
    location: "rack-42"
    role: "network"
    ip_address:
      description: "SNMP discovered IP"
      role: "management"
      tenant: "network-ops"
      vrf: "management"
    interface:
      description: "Auto-discovered interface"
      if_type: "ethernet"
    device:
      description: "SNMP discovered device"
      comments: "Automatically discovered via SNMP"
  lookup_extensions_dir: "/opt/orb/snmp-extensions" # Specifies a directory containing device data yaml files (see below)
scope:
  targets:
    - host: "192.168.1.1"
    - host: "192.168.1.254"
    - host: "10.0.0.1"
      port: 162  # Non-standard SNMP port
  authentication:
    protocol_version: "SNMPv2c"
    community: "public"