สร้างรายการซับเน็ตบนสวิตช์โดยใช้ SNMP หรือไม่


9

มีใครบ้างที่คุ้นเคยกับวิธีการสร้างรายการซับเน็ตบนสวิตช์เฉพาะ (ลองเลือกซิสโก้ที่ได้รับความนิยมมากขึ้น) โดยใช้ SNMP รายการของ VLAN เป็นอย่างไร? ถ้าเป็นเช่นนั้นคุณช่วยชี้ทาง MIBs / OID ที่เกี่ยวข้องให้ฉันได้ไหม? (เครือข่ายมือใหม่ที่นี่)

คำตอบ:


8

การเชื่อมต่อ / ที่อยู่ IP:

หากคุณต้องการสำรวจที่อยู่ IP ของอุปกรณ์ซับเน็ตมาสก์และอินเทอร์เฟซที่เกี่ยวข้องคุณสามารถใช้ OID ต่อไปนี้จากIP-MIBและIF-MIB MIBs:

  • .1.3.6.1.2.1.4.20.1.1 - สามารถดูที่อยู่ IP ได้ที่ OID นี้

    ~]$ snmptranslate .1.3.6.1.2.1.4.20.1.1
    IP-MIB::ipAdEntAddr
    
    ~]$ snmpwalk -v2c -c cisco 10.30.46.1 .1.3.6.1.2.1.4.20.1.1
    IP-MIB::ipAdEntAddr.10.30.46.1 = IpAddress: 10.30.46.1
    IP-MIB::ipAdEntAddr.25.255.25.254 = IpAddress: 25.255.25.254
    IP-MIB::ipAdEntAddr.55.44.33.22 = IpAddress: 55.44.33.22
    IP-MIB::ipAdEntAddr.172.31.10.10 = IpAddress: 172.31.10.10
    


  • .1.3.6.1.2.1.4.20.1.3 - อ้อยซับมาสค์สามารถพบได้ที่ OID นี้

    ~]$ snmptranslate .1.3.6.1.2.1.4.20.1.3
    IP-MIB::ipAdEntNetMask
    
    ~]$ snmpwalk -v2c -c cisco 10.30.46.1 .1.3.6.1.2.1.4.20.1.3
    IP-MIB::ipAdEntNetMask.10.30.46.1 = IpAddress: 255.255.255.0
    IP-MIB::ipAdEntNetMask.25.255.25.254 = IpAddress: 255.255.255.0
    IP-MIB::ipAdEntNetMask.55.44.33.22 = IpAddress: 255.255.255.0
    IP-MIB::ipAdEntNetMask.172.31.10.10 = IpAddress: 255.255.255.0
    


  • .1.3.6.1.2.1.4.20.1.2- ดัชนีอินเทอร์เฟซ ( ifTable Indexes ) เป็นจำนวนเต็มเฉพาะสำหรับแต่ละอินเตอร์เฟส

    ~]$ snmptranslate .1.3.6.1.2.1.4.20.1.2
    IP-MIB::ipAdEntIfIndex
    
    ~]$ snmpwalk -v2c -c cisco 10.30.46.1 .1.3.6.1.2.1.4.20.1.2
    IP-MIB::ipAdEntIfIndex.10.30.46.1 = INTEGER: 1
    IP-MIB::ipAdEntIfIndex.25.255.25.254 = INTEGER: 5
    IP-MIB::ipAdEntIfIndex.55.44.33.22 = INTEGER: 6
    IP-MIB::ipAdEntIfIndex.172.31.10.10 = INTEGER: 7
    


  • .1.3.6.1.2.1.2.2.1.2- สามารถหาชื่อที่เป็นมิตรกับอินเตอร์เฟสได้ที่ OID นี้และดัชนี ifTable จะถูกต่อท้าย (เช่น...2.1.2.[INDEX]) สำหรับแต่ละอินเตอร์เฟส

    ~]$ snmptranslate .1.3.6.1.2.1.2.2.1.2
    IF-MIB::ifDescr
    
    ~]$ snmpwalk -v2c -c cisco 10.30.46.1 .1.3.6.1.2.1.2.2.1.2
    IF-MIB::ifDescr.1 = STRING: FastEthernet0/0
    IF-MIB::ifDescr.2 = STRING: FastEthernet0/1
    IF-MIB::ifDescr.4 = STRING: Null0
    IF-MIB::ifDescr.5 = STRING: Loopback0
    IF-MIB::ifDescr.6 = STRING: Tunnel10
    IF-MIB::ifDescr.7 = STRING: Dialer1
    IF-MIB::ifDescr.8 = STRING: Virtual-Access1
    

คุณสามารถดำเนินการ OID เหล่านี้ด้วยตนเองเขียนสคริปต์บางอย่างในภาษาที่คุณเลือกหรือใช้โปรแกรม / สคริปต์ที่ชาญฉลาดมากคล้ายกับที่กล่าวไว้ในคำตอบของ Tim Peck

ต่อไปนี้เป็นตัวอย่างเชลล์ (และสกปรก) ที่รวดเร็ว:

#!/bin/bash
# duct taped by one.time
# Basic interface information collector

##
# Set usage var and getoptions
usage="Usage: interface-info.sh -H <IP Address> -C <snmp community string>

OPTIONS:
  -H Hostname          set IP address or hostname
  -h Help              prints usage options

SNMPv2 OPTIONS:
  -C Community         set SNMPv2 community string
"

while getopts H:C:h option;
do
        case $option in
                H) ipaddress=$OPTARG;;
                C) community=$OPTARG;;
                h) echo "$usage"
                exit $invalid_result;;
        esac
done

##
# Prevent blank argvars
if [[ -z $ipaddress || -z $community ]]; then
  echo "$usage"
  exit 0
fi

## 
# Set field separator to new line
IFS=$'\n'

##
# Store our IP-MIB info in arrays
ipAdEntAddr=( $(snmpbulkwalk -v2c -c $community  $ipaddress .1.3.6.1.2.1.4.20.1.1 | awk -F ": " '{print $2}') )
ipAdEntNetMask=( $(snmpbulkwalk -v2c -c $community $ipaddress .1.3.6.1.2.1.4.20.1.3 | awk -F ": " '{print $2}') )
ipAdEntIfIndex=( $(snmpbulkwalk -v2c -c $community $ipaddress .1.3.6.1.2.1.4.20.1.2 | awk -F ": " '{print $2}') )

for ((i=0; i<${#ipAdEntAddr[@]}; i++)); do
  ifDescr[$i]=$(snmpwalk -v2c -c $community $ipaddress .1.3.6.1.2.1.2.2.1.2.${ipAdEntIfIndex[$i]} | awk -F ": " '{print $2}')
  echo "${ifDescr[$i]}: ${ipAdEntAddr[$i]} ${ipAdEntNetMask[$i]}"
done

ตัวอย่าง:

~]$ ./interface-info.sh -H 10.30.46.1 -C cisco
FastEthernet0/0: 10.30.46.1 255.255.255.0
Loopback0: 25.255.25.254 255.255.255.0
Tunnel10: 55.44.33.22 255.255.255.0
Dialer1: 172.31.10.10 255.255.255.0


VLANs:

หากคุณกำลังมองหา VLAN ID และชื่อ VLAN คุณสามารถใช้ OID ต่อไปนี้:

  • .1.3.6.1.4.1.9.9.46.1.3.1.1.4.1vtpVlanNameสามารถพบได้ (บนอุปกรณ์ Cisco) ที่ OID นี้และ VLAN-ID สามารถพบได้ต่อท้ายเช่น: ...1.4.1.[VLAN-ID](คล้ายกับ ifIndex และ ifDescr ตัวอย่างข้างต้น)

    ~]$ snmptranslate  .1.3.6.1.4.1.9.9.46.1.3.1.1.4.1
    SNMPv2-SMI::enterprises.9.9.46.1.3.1.1.4.1
    
    ~]$ snmpwalk -v2c -c cisco 192.168.0.8 SNMPv2-SMI::enterprises.9.9.46.1.3.1.1.4.1
    SNMPv2-SMI::enterprises.9.9.46.1.3.1.1.4.1.1 = STRING: "default"
    SNMPv2-SMI::enterprises.9.9.46.1.3.1.1.4.1.10 = STRING: "VLAN0010"
    SNMPv2-SMI::enterprises.9.9.46.1.3.1.1.4.1.21 = STRING: "VLAN0021"
    SNMPv2-SMI::enterprises.9.9.46.1.3.1.1.4.1.100 = STRING: "VLAN0100"
    SNMPv2-SMI::enterprises.9.9.46.1.3.1.1.4.1.344 = STRING: "VLAN0344"
    SNMPv2-SMI::enterprises.9.9.46.1.3.1.1.4.1.456 = STRING: "iSCSI-TRAFFIC"
    SNMPv2-SMI::enterprises.9.9.46.1.3.1.1.4.1.1002 = STRING: "fddi-default"
    SNMPv2-SMI::enterprises.9.9.46.1.3.1.1.4.1.1003 = STRING: "token-ring-default"
    SNMPv2-SMI::enterprises.9.9.46.1.3.1.1.4.1.1004 = STRING: "fddinet-default"
    SNMPv2-SMI::enterprises.9.9.46.1.3.1.1.4.1.1005 = STRING: "trnet-default"
    


ตัวอย่างการใช้ขูดของ VLAN IDs ด้วยตนเอง:

    ~]$ snmpbulkwalk -v2c -c cisco 192.168.0.8 1.3.6.1.4.1.9.9.46.1.3.1.1.4 | sed -e 's/.*4.1.\(.*\) =.*/\1/'
    1
    10
    21
    100
    344
    456
    1002
    1003
    1004
    1005

1

หากคุณต้องการรับข้อมูลเกี่ยวกับ IP ของอินเตอร์เฟสจากสวิตช์ / เราเตอร์ในรูปแบบที่คล้ายกับไฟล์โฮสต์คุณอาจใช้สคริปต์ทุบตีของฉัน ฉันต้องการมีข้อมูลจริงเกี่ยวกับที่อยู่ IP ทั้งหมดของอุปกรณ์เครือข่ายในเครือข่ายของเรา อุปกรณ์ทั้งหมดสามารถเข้าถึงได้ผ่าน SNMP ฉันไม่สามารถหาเครื่องมือหรือสคริปต์ที่สามารถทำได้ดังนั้นฉันจึงตัดสินใจเขียนเอง เอาต์พุตสามารถเพิ่มไปยังไฟล์โฮสต์ได้ง่าย คำอธิบายอินเตอร์เฟสหรือส่วนนำหน้าถูกเขียนเป็นความคิดเห็นดังนั้นจะแสดงตัวอย่างในเอาต์พุต traceroute ในขณะที่คุณสามารถค้นหาไฟล์โฮสต์เพื่อหาคำอธิบายอินเตอร์เฟส

เอาต์พุตอยู่ในรูปแบบนี้:

ABCD Device_hostname-Interface_name # / คำนำหน้า # คำอธิบายอินเทอร์เฟซ

10.1.1.1 เราเตอร์ _R01-Gi1 / 0/2 # 28

10.5.1.22 Beijing-router01-WAN-Tu611 # 24 # พอร์ตไปยังอินเทอร์เน็ต

192.168.24.254 firewall2-eth5 # 24

สคริปต์ที่สามารถใช้ได้จากhttp://network-linux.webnode.cz/news/bash-script-for-gathering-ip-addresses-of-interfaces-through-snmp


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.