Назад | Перейти на главную страницу

Получение информации об интерфейсе сетевой карты через SNMP

(Переместив это из SuperUser, я понял, что здесь более уместно)

Привет всем, мне нужно выяснить, как надежно получать различную информацию для сетевых интерфейсов через SNMP, такую ​​как IP-адрес сетевой карты, шлюз, список серверов поиска DNS и включен ли DHCP на интерфейсе.

К сожалению, я обнаружил, что эта информация разбросана по четырем углам (SNMP) земного шара, и у меня чертовски много времени, чтобы отслеживать все это. Пока у меня есть IP-адрес, и я считать Я понял, как выбрать шлюз, хотя был бы признателен, если бы кто-нибудь мог подтвердить мой «алгоритм» для этого, поскольку я также не уверен, как это сделать для IPv6.

Я не могу найти:

Это "алгоритм", который я придумал для получения шлюза:

  1. Для каждой записи в IF MIB ifTable, где ifType = Ethernet, получить ifIndex
  2. Если ifIndex можно найти в MIB переадресации IP inetCidrRouteTable:
    1. Для адресов IPv4, если inetCidrRouteDest = 0.0.0.0, шлюзом является inetCidrRouteNextHop.
    2. Не знаю, что делать с IPv6-адресами ???
  3. В противном случае, если ifIndex можно найти в MIB переадресации IP ipCidrRouteTable
    • если ipCidrRouteDest = 0.0.0.0, шлюз - ipCidrRouteNextHop
  4. В противном случае, если ifIndex можно найти в IP Forward MIB ipForwardTable
    • если ipForwardDest = 0.0.0.0, шлюз - ipForwardNextHop
  5. В противном случае, если ifIndex можно найти в RFC 1213 MIB ipRouteTable
    • если ipRouteDest = 0.0.0.0, шлюз - ipRouteNextHop

Фух! Как видите, ужасный кошмар. Так может ли кто-нибудь подтвердить / дополнить мой алгоритм шлюза выше или рассказать мне о DNS / DHCP?

Кроме того, просто к сведению, альтернативы сценария оболочки Unix / Linux не помогут - например, я уже знаю, как это сделать, а также мне нужно опрашивать устройства, отличные от * nix, такие как коммутаторы и маршрутизаторы Cisco, а также сетевые принтеры.

Спасибо!

Вместо того, чтобы смотреть на индексы snmp, вы действительно хотите использовать программу snmptable.

Например

/ usr / bin / snmptable -v2c -c общедоступный $ HOST NETAPP-MIB :: netifTable

MIBS на самом деле вполне удобочитаемы. В остальном RedGrittyBrick сказал все.

Мне нравится использовать http://tools.cisco.com/Support/SNMP/do/BrowseOID.do чтобы узнать, является ли OID текущим или устаревшим.

Мне твой alg нравится. Я бы хотел, чтобы это не было так сложно. Вы пробовали, например, просто проверить ipRouteTable?

Что касается DHCP, это либо ipNetToMediaType, либо ipNetToPhysicalType со значением: INTEGER: dynamic (3).

Не существует стандартной базы MIB, содержащей серверы имен.

Если окна, то

Создайте свою собственную программу на Visual Basic, я бы не стал использовать SNMP.

Раньше я использовал snmpwalk для перечисления всего дерева ниже определенной точки и сохранения результатов в файле, затем вы можете искать значение (например, IP-адрес DNS-сервера) и находить связанные с ним OID. .

Тогда я бы знал, какие OID нужно поместить в мой файл конфигурации MRTG.

Разные производители наклеивают информацию в разные места. Если у вас нет их определений MIB, это был лучший метод, который я мог найти для обратного проектирования OID.