SNMP का उपयोग कर स्विच पर सबनेट की सूची बनाएँ?


9

क्या कोई किसी विशेष स्विच पर सबनेट की सूची उत्पन्न करने के लिए एक दृष्टिकोण से परिचित है (एसएनएमपी का उपयोग करके अधिक लोकप्रिय एक - सिस्को को चुनें)? वीएलएएन की सूची के बारे में कैसे? यदि हां, तो क्या आप मुझे एमआईबी / ओआईडी में शामिल कर सकते हैं? (नेटवर्क नौसिखिया यहाँ)

जवाबों:


8

इंटरफेस / आईपी एड्रेसिंग:

यदि आप किसी उपकरण का IP पता, सबनेट मास्क और संबंधित इंटरफ़ेस मतदान करना चाहते हैं, तो आप IP-MIB और IF-MIB MIB से निम्न OID का उपयोग कर सकते हैं :

  • .1.3.6.1.2.1.4.20.1.1 - इस ओआईडी पर आईपी एड्रेस पाया जा सकता है

    ~]$ 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 को मैन्युअल रूप से चला सकते हैं, अपनी पसंद की भाषा में कुछ लिख सकते हैं, या टिम पेक के उत्तर में बताए गए समान समान कार्यक्रमों / स्क्रिप्ट का उपयोग कर सकते हैं।

यहाँ एक त्वरित (और गंदा) खोल उदाहरण है:

#!/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.1इस OID में vtpVlanName पाया जा सकता है (सिस्को उपकरणों पर) और वीएलएएन-आईडी को संलग्न किया जा सकता है, उदाहरण के लिए: ...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"
    


वीएलएएन आईडी स्क्रैप करने का मैनुअल उदाहरण:

    ~]$ 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

यदि आप इंटरफ़ेस आईपी के बारे में जानकारी प्राप्त करना चाहते हैं तो एक होस्ट फ़ाइल के समान एक प्रारूप में स्विच / राउटर से आप मेरी बैश स्क्रिप्ट का उपयोग कर सकते हैं। मैं अपने नेटवर्क में नेटवर्क उपकरणों के सभी आईपी पतों के बारे में वास्तविक जानकारी रखना चाहता था। सभी उपकरण SNMP के माध्यम से उपलब्ध हैं। मुझे ऐसा कोई टूल या स्क्रिप्ट नहीं मिल रही थी जो ऐसा कर सके इसलिए मैंने इसे खुद लिखने का फैसला किया। आउटपुट होस्ट फ़ाइल में सरल जोड़ सकता है। इंटरफ़ेस विवरण या एक उपसर्ग एक टिप्पणी के रूप में लिखा गया है, इसलिए इसे ट्रेसरआउट आउटपुट में उदाहरण के लिए दिखाया जाएगा जबकि आप इंटरफ़ेस विवरण के लिए होस्ट फ़ाइल खोज सकते हैं।

आउटपुट इस प्रारूप में है:

ABCD Device_hostname-Interface_name # / उपसर्ग #Interface विवरण

10.1.1.1 राउटर_R01-Gi1 / 0/2 # 28

10.5.1.22 बीजिंग-राउटर 01-वैन-टी 611 # 24 # पोर्ट टू इंटरनेट

192.168.24.254 फ़ायरवॉल 2-एथ 5 # 24

स्क्रिप्ट http://network-linux.webnode.cz/news/bash-script-for-gathering-ip-addresses-of-interfaces-through-snmp से उपलब्ध है ।


0

स्विचमैप आपके लिए यह सब करेगा।

http://sourceforge.net/projects/switchmap/


5
आपके उत्तर के लिए धन्यवाद; हालाँकि उन्होंने MIB के लिए आवेदन किया था, आवेदन के लिए नहीं। वह इसका उपयोग करने में सक्षम हो सकता है, लेकिन पूछे गए प्रश्न का उत्तर देने का प्रयास कर सकता है।
माइक पेनिंगटन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.