Jump to content

Recommended Posts

Posted

Господа, кто подскажет как создать статическую привязку ip к мак по SNMP на cisco.

 

Как удалить - вот: http://www.cisco.com/warp/public/477/SNMP/clear_arp.shtml

 

PS

Просьба не оффтопить о том что необходимость статик-арпов говорит о неверном дизайне сети.

Posted (edited)
Господа, кто подскажет как создать статическую привязку ip к мак по SNMP на cisco.

 

Как удалить - вот: http://www.cisco.com/warp/public/477/SNMP/clear_arp.shtml

 

PS

Просьба не оффтопить о том что необходимость статик-арпов говорит о неверном дизайне сети.

Ну так там же все подсказки написаны, чуть-чуть подумать осталось :-)

 

Есть MIB RFC1213-MIB, который отвечает за работу с ARP.

 

В нем есть такая вот штука, как ipNetToMediaTable

 

    -- the IP Address Translation table

          -- The IP address translation table contain the IpAddress to
          -- `physical' address equivalences.  Some interfaces do not
          -- use translation tables for determining address
          -- equivalences (e.g., DDN-X.25 has an algorithmic method);
          -- if all interfaces are of this type, then the Address
          -- Translation table is empty, i.e., has zero entries.

          ipNetToMediaTable OBJECT-TYPE
              SYNTAX  SEQUENCE OF IpNetToMediaEntry
              ACCESS  not-accessible
              STATUS  mandatory
              DESCRIPTION
                      "The IP Address Translation table used for mapping
                      from IP addresses to physical addresses."
              ::= { ip 22 }

          ipNetToMediaEntry OBJECT-TYPE
              SYNTAX  IpNetToMediaEntry
              ACCESS  not-accessible
              STATUS  mandatory
              DESCRIPTION
                      "Each entry contains one IpAddress to `physical'
                      address equivalence."
              INDEX   { ipNetToMediaIfIndex,
                        ipNetToMediaNetAddress }
              ::= { ipNetToMediaTable 1 }

          IpNetToMediaEntry ::=
              SEQUENCE {
                  ipNetToMediaIfIndex
                      INTEGER,
                  ipNetToMediaPhysAddress
                      PhysAddress,
                  ipNetToMediaNetAddress
                      IpAddress,
                  ipNetToMediaType
                      INTEGER
              }

          ipNetToMediaIfIndex OBJECT-TYPE
              SYNTAX  INTEGER
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
                      "The interface on which this entry's equivalence
                      is effective.  The interface identified by a
                      particular value of this index is the same
                      interface as identified by the same value of
                      ifIndex."
              ::= { ipNetToMediaEntry 1 }

          ipNetToMediaPhysAddress OBJECT-TYPE
              SYNTAX  PhysAddress
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
                      "The media-dependent `physical' address."
              ::= { ipNetToMediaEntry 2 }

          ipNetToMediaNetAddress OBJECT-TYPE
              SYNTAX  IpAddress
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
                      "The IpAddress corresponding to the media-
                      dependent `physical' address."
              ::= { ipNetToMediaEntry 3 }

          ipNetToMediaType OBJECT-TYPE
              SYNTAX  INTEGER {
                          other(1),        -- none of the following
                          invalid(2),      -- an invalidated mapping
                          dynamic(3),
                          static(4)
                      }
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
                      "The type of mapping.

                      Setting this object to the value invalid(2) has
                      the effect of invalidating the corresponding entry
                      in the ipNetToMediaTable.  That is, it effectively
                      disassociates the interface identified with said
                      entry from the mapping identified with said entry.
                      It is an implementation-specific matter as to
                      whether the agent removes an invalidated entry
                      from the table.  Accordingly, management stations
                      must be prepared to receive tabular information
                      from agents that corresponds to entries not
                      currently in use.  Proper interpretation of such
                      entries requires examination of the relevant
                      ipNetToMediaType object."
              ::= { ipNetToMediaEntry 4 }

 

Для удаления надо задать ipNetToMediaType = 2, а для создания = 4 (static) и указать прочие значения. Номер интерфейса легко вычислить snmpwalk-ом.

Прочитайте внимательно описание переменных из MIB-а.

 

Чтобы получить из MIB-а OID, воспользуйтесь тулзой Cisco SNMP Object Navigator, живет тулза тут.

 

P.S. Не забудьте добавить в конфиг командочку snmp-server ifindex persist, чтобы номера интерфейсов не съезжали при ребутах.

Edited by Nailer
Posted

Я дико извиняюсь, но - не выходит

удалять запись - работает.

создать - нет.

я пробую так:

snmpset -v2c -c <COMMUNITY> <ROUTER IP>   1.3.6.1.2.1.4.22.1.1 i <ifIndex>  1.3.6.1.2.1.4.22.1.2 x 0x000A480A1A44  1.3.6.1.2.1.4.22.1.3 a 192.168.0.1  1.3.6.1.2.1.4.22.1.4 i 4

 

 

ошибка

Error in packet.
Reason: noCreation (that table does not support row creation)
Failed object: IP-MIB::ipNetToMediaIfIndex

 

Не были бы Вы столь любезны привести рабочий snmpset, или дать линк где почитать (

 

Возможно дело в версии ИОСа?

PS

пробую на каталисте 3550

Posted

Я сам такого не делал, но я думаю, что тут запись создается в два прохода.

 

ip.ipNetToMediaTable.ipNetToMediaEntry.ipNetToMediaType.<тут ifindex>.<тут ip-адрес> = 4

ip.ipNetToMediaTable.ipNetToMediaEntry.ipNetToMediaPhysAddress.<тут ifindex>.<тут ip-адрес> = <mac-адрес>

 

ip и infindex по идее ios должен взять из индекса.

 

Posted

И так тоже пробовал ... результат то же - that table does not support row creation

Наводит на мысли что это вообще нельзя сделать. Хочу странного?

Posted

Пробовали на нескольких устройствах. И циско и не циско. Записи не создаются. В итоге кончилось написанием создавателя по telnet.

 

Posted
И так тоже пробовал ... результат то же - that table does not support row creation

Наводит на мысли что это вообще нельзя сделать. Хочу странного?

Возможно, хотя странно это.

 

Попробуйте сначала задать

 

ip.ipNetToMediaTable.ipNetToMediaEntry.ipNetToMediaIfIndex = <ifindex>

 

потом

 

ip.ipNetToMediaTable.ipNetToMediaEntry.ipNetToMediaNetAddress.<ifinfex> = <ip address>

 

а потом уже mac и тип.

Posted

snmpset  -v2c  -c <community> <ip addr>  ip.ipNetToMediaTable.ipNetToMediaEntry.ipNetToMediaIfIndex.803 i 803
Error in packet.
Reason: noCreation (that table does not support row creation)
Failed object: IP-MIB::ipNetToMediaIfIndex.803

803 - индекс существующего интерфейса.

 

Posted

решение "в обход"

http://www.opennet.ru/base/cisco/snmp_manage.txt.html

Заливать по тфтп куски конфигов...

 

но черт побери, это ж криво... это хорошо когда у меня кошка стоит а метре от сервера, а если не надо шифрованное соединение??? ((

Не верю, что нет другого пути

Posted (edited)

Та же самая проблема с Foundry (HP Procurve)

Крик в ночи - "Ну хоть кто-нибудь, хоть где-нибудь, по SNMP, MAC смог привязать??"

 

Нашел исходники проги http://www.codeguru.com/cpp/i-n/network/ne....php/c14635__2/

Судя по всему чтобы назначить IP-MAC статиком нужно одним запросом посылать 4 OIDа..

Edited by Helios
Posted (edited)

Foundry сдался, лед тронулся

 

test ~ $ snmpset -v2c -c Test 192.168.1.1 ip.ipNetToMediaTable.ipNetToMediaEntry.ipNetToMediaPhysAddress.72.192.168.1.32 x 001A4D372CD5 ip.ipNetToMediaTable.ipNetToMediaEntry.ipNetToMediaType.72.192.168.1.32 i 4

 

72 - интерфейс

Действо обязательно выполнять в один запрос

Edited by Helios
  • 3 months later...
Posted
Foundry сдался, лед тронулся

 

test ~ $ snmpset -v2c -c Test 192.168.1.1 ip.ipNetToMediaTable.ipNetToMediaEntry.ipNetToMediaPhysAddress.72.192.168.1.32 x 001A4D372CD5 ip.ipNetToMediaTable.ipNetToMediaEntry.ipNetToMediaType.72.192.168.1.32 i 4

 

72 - интерфейс

Действо обязательно выполнять в один запрос

хм... на циске (6500) не работает :(

noCreation :(

приходится через tftp - крайне некрасиво :(

  • 5 months later...
Posted
решение "в обход"

http://www.opennet.ru/base/cisco/snmp_manage.txt.html

Заливать по тфтп куски конфигов...

 

но черт побери, это ж криво... это хорошо когда у меня кошка стоит а метре от сервера, а если не надо шифрованное соединение??? ((

Не верю, что нет другого пути

у цисок (по крайней мере у свитчей) отвратительная поддержка SNMP. по крайней мере если судить по официальным мибам. делаю всё через SSH. тот же Net::Telnet для перла. тфтп уж как-то совсем криво...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...
На сайте используются файлы cookie и сервисы аналитики для корректной работы форума и улучшения качества обслуживания. Продолжая использовать сайт, вы соглашаетесь с использованием файлов cookie и с Политикой конфиденциальности.