Switch port lekérdezés

Van valami mód arra hogy programból lekérdezzem azt hogy a gép melyik switch melyik portjára van kapcsolva?

A cégnél Catalist 2950 Cisco switcheket használunk. A HW és a SW leltárra pedig az OCS Inventory van bevezetés alatt. Mindent tud ami nekünk kell, csak azt nem tudja önállóan lekérdezni hogy melyik switch melyik portján lóg a gép, azaz hol van.
Túrtam a netet de megoldási javaslatként mindenhol a switch-be való belépést és a belső lekérdezést láttam. Van más mód is?

Köszi.
Suttora

Hozzászólások

LLDP?

--
Fontos feladatot soha ne bizz olyan gepre, amit egyedul is fel tudsz emelni!

mintha snmp adna vissza mac cimeket, de lehet rosszul emlexem. meg persze nem ilyen fajta switch-en merem a forgalmat snmp-vel

Ad vissza, mi netdiscot hasznalunk, az szepen snmpwalkol korbekorbe, aztan szepen kiadja hol mi a helyzet. Nem egyszeru beloni, de ha van sok-sok vegpontod, es azoknak a helyet es szamozasat is belevesed az adatbazisaba, plusz hogy melyik switch melyik portja melyik vegpontra van kivezetve, akkor akar szobaszamot is le tudsz kerdezni, gepnev/ip/mac alapjan.
Klassz dolog.

tshark -i eth0 -c 1 -R cdp -Vx | less

Hobbibol csinaltam ilyet egyszer bash szkriptben, snmp kereseket hasznalva. Berakom ide, hatha hasznos lesz. Mar nagyon regen irtam, akkor meg csak kezdtem a bash szkripteket, ezert legyszi ne fikazzatok le. A tobb switch-en keresztul megkeresest ugy oldottam meg, hogy az uplink port comment-jebe beirtam melyik masik switch-hez van hozzakotve, a kommentet kiirja a szkript, igy szepen vegig lehetett menni. Osszesen 11 switch volt ott, ahova ez kellett, igy ez nem volt gond. Meg annyit hozza kell tennem, hogy AT switch-ekre irtam, soha nem is probaltam massal, nem tudom mennyire mukodne.

Pelda kimenet:


bud@swamp ~ $ switchmacport 00:E0:C5:51:C7:C9
Searching for 00.E0.C5.51.C7.C9 on switch01
Port name for mac address 00.E0.C5.51.C7.C9 on switch01 is: Port 26
Current interface speed: 1000 Mbit, max speed is 1000 Mbit
Comment for the port: "switch11"

Es a szkript maga:


bud@swamp ~ $ cat `which switchmacport `
#!/bin/bash

community="public"
ver="2c"
defhost="switch01"
#MAC="00:40:F4:89:EA:67"

MAC="$1"
HOST="$2"

if [ -z $MAC ]; then
        echo "
Usage:
 $0 MAC [switch]
Example:
 $0 00:40:F4:89:EA:67
 Searches for the given mac address on the default host $defhost
"
        exit 1
fi

if [ -z $HOST ]; then
        HOST="$defhost"
fi

MAC="`echo $MAC | sed 's/:/\./g'`"

echo Searching for $MAC on $HOST

# Get the MIB for the MAC address we are looking for
# full query MIB is .1.3.6.1.2.1.17.4.3.1.1
# Get only the first collumn, i know that sed pattern sucks.
macmib="`snmpwalk -Os -c $community -v $ver $HOST mib-2.17.4.3.1.1 | grep $MAC | sed 's/^\(.*\) = .*$/\1/'`"

# Replace mib-2.17.4.3.1.1 with mib-2.17.4.3.1.2
macmib="`echo $macmib | sed 's/mib-2.17.4.3.1.1/mib-2.17.4.3.1.2/'`"
#echo Macmib: $macmib

# Good, now determine the bridge port number for that MAC address
# We are intrested only in port number, so use -Ov and -Oq
macport="`snmpget -Os -Ov -Oq -c $community -v $ver $HOST $macmib`"
#echo MacPort: $macport

# Now map this bridge port to the ifIndex:
ifindex="`snmpget -Os -Ov -Oq -c $community -v $ver $HOST mib-2.17.1.4.1.2.$macport`"
#echo ifIndex: $ifindex

# Use ifName in order to correlate the ifIndex value with a correct port name
portname="`snmpget -Os -Ov -Oq -c $community -v $ver $HOST ifName.$ifindex`"
echo Port name for mac address $MAC on $HOST is: $portname

# Print the actual and maximum port speed
ifspeed="`snmpget -Os -Ov -Oq -c $community -v $ver $HOST ifSpeed.$ifindex`"
ifhighspeed="`snmpget -Os -Ov -Oq -c $community -v $ver $HOST ifHighSpeed.$ifindex`"
let "ifspeed /= 1000000"
echo Current interface speed: $ifspeed Mbit, max speed is $ifhighspeed Mbit

# Print out the comment associated with the port:
comment="`snmpget -Os -Ov -Oq -c $community -v $ver $HOST enterprises.207.8.15.3.1.1.2.$ifindex`"
echo Comment for the port: $comment

# References:
# [1] http://www.cisco.com/en/US/tech/tk648/tk362/technologies_tech_note09186a00801c9199.shtml
# [2] http://cpan.uwinnipeg.ca/htdocs/SNMP-Info/SNMP/Info/Layer2/Allied.pm.html