sirmax Posted February 27, 2008 Posted February 27, 2008 Господа, кто подскажет как создать статическую привязку ip к мак по SNMP на cisco. Как удалить - вот: http://www.cisco.com/warp/public/477/SNMP/clear_arp.shtml PS Просьба не оффтопить о том что необходимость статик-арпов говорит о неверном дизайне сети. Вставить ник Quote
Nailer Posted February 27, 2008 Posted February 27, 2008 (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 February 27, 2008 by Nailer Вставить ник Quote
sirmax Posted February 27, 2008 Author Posted February 27, 2008 Я дико извиняюсь, но - не выходит удалять запись - работает. создать - нет. я пробую так: 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 Вставить ник Quote
Nailer Posted February 28, 2008 Posted February 28, 2008 Я сам такого не делал, но я думаю, что тут запись создается в два прохода. ip.ipNetToMediaTable.ipNetToMediaEntry.ipNetToMediaType.<тут ifindex>.<тут ip-адрес> = 4 ip.ipNetToMediaTable.ipNetToMediaEntry.ipNetToMediaPhysAddress.<тут ifindex>.<тут ip-адрес> = <mac-адрес> ip и infindex по идее ios должен взять из индекса. Вставить ник Quote
sirmax Posted February 28, 2008 Author Posted February 28, 2008 И так тоже пробовал ... результат то же - that table does not support row creation Наводит на мысли что это вообще нельзя сделать. Хочу странного? Вставить ник Quote
sol Posted February 28, 2008 Posted February 28, 2008 Пробовали на нескольких устройствах. И циско и не циско. Записи не создаются. В итоге кончилось написанием создавателя по telnet. Вставить ник Quote
Nailer Posted February 28, 2008 Posted February 28, 2008 И так тоже пробовал ... результат то же - that table does not support row creationНаводит на мысли что это вообще нельзя сделать. Хочу странного? Возможно, хотя странно это. Попробуйте сначала задать ip.ipNetToMediaTable.ipNetToMediaEntry.ipNetToMediaIfIndex = <ifindex> потом ip.ipNetToMediaTable.ipNetToMediaEntry.ipNetToMediaNetAddress.<ifinfex> = <ip address> а потом уже mac и тип. Вставить ник Quote
sirmax Posted February 28, 2008 Author Posted February 28, 2008 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 - индекс существующего интерфейса. Вставить ник Quote
sirmax Posted February 28, 2008 Author Posted February 28, 2008 решение "в обход" http://www.opennet.ru/base/cisco/snmp_manage.txt.html Заливать по тфтп куски конфигов... но черт побери, это ж криво... это хорошо когда у меня кошка стоит а метре от сервера, а если не надо шифрованное соединение??? (( Не верю, что нет другого пути Вставить ник Quote
Helios Posted March 7, 2008 Posted March 7, 2008 (edited) Та же самая проблема с Foundry (HP Procurve) Крик в ночи - "Ну хоть кто-нибудь, хоть где-нибудь, по SNMP, MAC смог привязать??" Нашел исходники проги http://www.codeguru.com/cpp/i-n/network/ne....php/c14635__2/ Судя по всему чтобы назначить IP-MAC статиком нужно одним запросом посылать 4 OIDа.. Edited March 7, 2008 by Helios Вставить ник Quote
Helios Posted March 7, 2008 Posted March 7, 2008 (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 March 7, 2008 by Helios Вставить ник Quote
Alba Posted June 14, 2008 Posted June 14, 2008 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 - крайне некрасиво :( Вставить ник Quote
ingress Posted June 14, 2008 Posted June 14, 2008 приходится через tftp - крайне некрасиво :( можно через rcp. в одно действие. Вставить ник Quote
desperado Posted November 22, 2008 Posted November 22, 2008 решение "в обход"http://www.opennet.ru/base/cisco/snmp_manage.txt.html Заливать по тфтп куски конфигов... но черт побери, это ж криво... это хорошо когда у меня кошка стоит а метре от сервера, а если не надо шифрованное соединение??? (( Не верю, что нет другого пути у цисок (по крайней мере у свитчей) отвратительная поддержка SNMP. по крайней мере если судить по официальным мибам. делаю всё через SSH. тот же Net::Telnet для перла. тфтп уж как-то совсем криво... Вставить ник Quote
Alba Posted November 23, 2008 Posted November 23, 2008 ну, хоть все согласятся, что это всё - решения через жопу? :) Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.