faq обучение настройка
Текущее время: Вт июл 22, 2025 22:28

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 13 ] 
Автор Сообщение
 Заголовок сообщения: не работает SNMP - ACL
СообщениеДобавлено: Вт окт 13, 2009 17:11 
Не в сети

Зарегистрирован: Ср апр 01, 2009 15:24
Сообщений: 45
Необходимо делать настройку ACL по snmp на 3526. Получил snmp-howto:
Цитата:
Пример создания IP ACL

Создание IP профиля:

Шаг 1. Задать ID профиля ACL IP:

snmpset -v2c -c private 192.168.0.1 1.3.6.1.4.1.171.12.9.1.2.1.3.10 i 4

10  Profile ID (ID профиля)

Выполняю:
Код:
# snmpset -v2c -c community_string 10.32.0.63 1.3.6.1.4.1.171.12.9.1.2.1.3.10 i 4
Error in packet.
Reason: commitFailed
Failed object: SNMPv2-SMI::enterprises.171.12.9.1.2.1.3.10

Соответственно, на этом все и заканчивается.

В чем может быть проблема?
Коммутатор отвечает на запросы:

Код:
# snmpget -v2c -c community_string 10.32.0.63 sysName.0
SNMPv2-MIB::sysName.0 = STRING: Kolosowsky


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: не работает SNMP - ACL
СообщениеДобавлено: Вт окт 13, 2009 17:28 
Не в сети
Сотрудник D-LINK
Сотрудник D-LINK

Зарегистрирован: Чт фев 12, 2009 14:59
Сообщений: 9482
Откуда: Ryazan
Так команду нужно посылать на коммутатор целоком, как и указано в How-To:
Код:
snmpset -v2c -c private 192.168.0.1 1.3.6.1.4.1.171.12.9.1.2.1.3.10 i 4 1.3.6.1.4.1.171.12.9.1.2.1.4.10 a 255.255.255.255 1.3.6.1.4.1.171.12.9.1.2.1.5.10 a 255.255.255.255 1.3.6.1.4.1.171.12.9.1.2.1.19.10 i 4


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: не работает SNMP - ACL
СообщениеДобавлено: Вт окт 13, 2009 17:52 
Не в сети

Зарегистрирован: Ср апр 01, 2009 15:24
Сообщений: 45
Denis Evgraphov писал(а):
Так команду нужно посылать на коммутатор целоком, как и указано в How-To:
Код:
snmpset -v2c -c private 192.168.0.1 1.3.6.1.4.1.171.12.9.1.2.1.3.10 i 4 1.3.6.1.4.1.171.12.9.1.2.1.4.10 a 255.255.255.255 1.3.6.1.4.1.171.12.9.1.2.1.5.10 a 255.255.255.255 1.3.6.1.4.1.171.12.9.1.2.1.19.10 i 4

А как же:
Цитата:
Шаг 1. Задать ID профиля ACL IP:

snmpset -v2c -c private 192.168.0.1 1.3.6.1.4.1.171.12.9.1.2.1.3.10 i 4

10  Profile ID (ID профиля)

Шаг 2. Задать адрес/маску источника:

snmpset -v2c -c private 192.168.0.1 1.3.6.1.4.1.171.12.9.1.2.1.4.10 a 255.255.255.255


В любом случае, а как то же самое сделать в php?


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт окт 13, 2009 19:27 
Не в сети

Зарегистрирован: Пт май 05, 2006 16:52
Сообщений: 4181
Откуда: default
snmpset -v2c -c private 192.168.0.1 1.3.6.1.4.1.171.12.9.1.2.1.3.10 i 4
snmpset -v2c -c private 192.168.0.1 1.3.6.1.4.1.171.12.9.1.2.1.4.10 a 255.255.255.255
snmpset -v2c -c private 192.168.0.1 1.3.6.1.4.1.171.12.9.1.2.1.5.10 a 255.255.255.255
snmpset -v2c -c private 192.168.0.1 1.3.6.1.4.1.171.12.9.1.2.1.19.10 i 4

в пхп это работает, только синтаксис другой немного


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт окт 13, 2009 19:37 
Не в сети

Зарегистрирован: Ср апр 01, 2009 15:24
Сообщений: 45
terrible писал(а):
snmpset -v2c -c private 192.168.0.1 1.3.6.1.4.1.171.12.9.1.2.1.3.10 i 4
snmpset -v2c -c private 192.168.0.1 1.3.6.1.4.1.171.12.9.1.2.1.4.10 a 255.255.255.255
snmpset -v2c -c private 192.168.0.1 1.3.6.1.4.1.171.12.9.1.2.1.5.10 a 255.255.255.255
snmpset -v2c -c private 192.168.0.1 1.3.6.1.4.1.171.12.9.1.2.1.19.10 i 4

в пхп это работает, только синтаксис другой немного

В том то и дело, что в таком виде не работает, работает только одной строкой (одним запросом).
А в php команда
Код:
bool snmpset (string hostname, string community, string object_id, string type, mixed value [, int timeout [, int retries]])
позволяет одним запросом установить одно значение.
И, соответственно ничего не работает.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср окт 14, 2009 08:46 
Не в сети

Зарегистрирован: Пт май 05, 2006 16:52
Сообщений: 4181
Откуда: default
Вам нужено делать не 1 запрос, а 4 причем так, как я это описал.

snmpset ('192.168.0.1', 'private', '.1.3.6.1.4.1.171.12.9.1.2.1.3.10', 'i', 4);
snmpset ('192.168.0.1', 'private', '.1.3.6.1.4.1.171.12.9.1.2.1.4.10', 'a', '255.255.255.255');
snmpset ('192.168.0.1', 'private', '.1.3.6.1.4.1.171.12.9.1.2.1.5.10', 'a', '255.255.255.255');
snmpset ('192.168.0.1', 'private', '.1.3.6.1.4.1.171.12.9.1.2.1.19.10', 'i', 4);


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср окт 14, 2009 09:09 
Не в сети

Зарегистрирован: Ср апр 01, 2009 15:24
Сообщений: 45
terrible писал(а):
Вам нужено делать не 1 запрос, а 4 причем так, как я это описал.

snmpset ('192.168.0.1', 'private', '.1.3.6.1.4.1.171.12.9.1.2.1.3.10', 'i', 4);
snmpset ('192.168.0.1', 'private', '.1.3.6.1.4.1.171.12.9.1.2.1.4.10', 'a', '255.255.255.255');
snmpset ('192.168.0.1', 'private', '.1.3.6.1.4.1.171.12.9.1.2.1.5.10', 'a', '255.255.255.255');
snmpset ('192.168.0.1', 'private', '.1.3.6.1.4.1.171.12.9.1.2.1.19.10', 'i', 4);

Ну я же говорю - так НЕ работает!
В браузере выдает:
Код:
Warning: snmpset() [function.snmpset]: Error in packet: (genError) A general failure occured in /usr/local/www/acl.php on line 43
Warning: snmpset() [function.snmpset]: Error in packet: (genError) A general failure occured in /usr/local/www/acl.php on line 44
Warning: snmpset() [function.snmpset]: Error in packet: (genError) A general failure occured in /usr/local/www/acl.php on line 45
Warning: snmpset() [function.snmpset]: Error in packet: (genError) A general failure occured in /usr/local/www/acl.php on line 46

При запуске из командной строки:
Код:
# snmpset -v2c -c community_string 10.32.0.63 1.3.6.1.4.1.171.12.9.1.2.1.3.10 i 4
Error in packet.
Reason: commitFailed
Failed object: SNMPv2-SMI::enterprises.171.12.9.1.2.1.3.10

При запуске такой командой - все Ок:
Код:
snmpset -v2c -c community_string 10.32.0.63 1.3.6.1.4.1.171.12.9.1.2.1.3.10 i 4 1.3.6.1.4.1.171.12.9.1.2.1.4.10 a 255.255.255.255 1.3.6.1.4.1.171.12.9.1.2.1.5.10 a 255.255.255.255 1.3.6.1.4.1.171.12.9.1.2.1.19.10 i 4

Т.е. нужно запускать одним запросом. Но как это сделать в php (проект работает через web-интерфейс)?


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср окт 14, 2009 10:40 
Не в сети
Сотрудник D-LINK
Сотрудник D-LINK

Зарегистрирован: Чт фев 12, 2009 14:59
Сообщений: 9482
Откуда: Ryazan
Данная команда работает только целиком (запрос нужно отсылать единой командой), как указано в How-To, по отдельности работать не будет.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср окт 14, 2009 11:39 
Не в сети

Зарегистрирован: Пт май 05, 2006 16:52
Сообщений: 4181
Откуда: default
ну значит только через exec


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср окт 14, 2009 11:45 
Не в сети

Зарегистрирован: Ср апр 01, 2009 15:24
Сообщений: 45
Denis Evgraphov писал(а):
Данная команда работает только целиком (запрос нужно отсылать единой командой), как указано в How-To, по отдельности работать не будет.


Ясно сделал так:
Код:
$response = system("/usr/local/bin/snmpset -v2c -c community_string 10.32.0.63 1.3.6.1.4.1.171.12.9.1.2.1.3.20 i 4 1.3.6.1.4.1.171.12.9.1.2.1.4.20 a 255.255.255.255 1.3.6.1.4.1.171.12.9.1.2.1.5.20 a 255.255.255.255 1.3.6.1.4.1.171.12.9.1.2.1.19.20 i 4");

Работает, хотя это не и совсем красиво :oops:


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср окт 14, 2009 12:54 
Не в сети

Зарегистрирован: Пт май 05, 2006 16:52
Сообщений: 4181
Откуда: default
Лучше так:
Код:
exec("/usr/local/bin/snmpset -v2c -c community_string 10.32.0.63 1.3.6.1.4.1.171.12.9.1.2.1.3.20 i 4 1.3.6.1.4.1.171.12.9.1.2.1.4.20 a 255.255.255.255 1.3.6.1.4.1.171.12.9.1.2.1.5.20 a 255.255.255.255 1.3.6.1.4.1.171.12.9.1.2.1.19.20 i 4",$response);

В переменной $response будет результат работы exec в виде массива.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср окт 14, 2009 13:58 
Не в сети

Зарегистрирован: Ср апр 01, 2009 15:24
Сообщений: 45
terrible писал(а):
Лучше так:
Код:
exec("/usr/local/bin/snmpset -v2c -c community_string 10.32.0.63 1.3.6.1.4.1.171.12.9.1.2.1.3.20 i 4 1.3.6.1.4.1.171.12.9.1.2.1.4.20 a 255.255.255.255 1.3.6.1.4.1.171.12.9.1.2.1.5.20 a 255.255.255.255 1.3.6.1.4.1.171.12.9.1.2.1.19.20 i 4",$response);

В переменной $response будет результат работы exec в виде массива.

Согласен в случае system - вывод только последней строки:
Код:
SNMPv2-SMI::enterprises.171.12.9.1.2.1.19.50 = INTEGER: 4
а в случае exec все строки в массиве:
Код:
Array ( [0] => SNMPv2-SMI::enterprises.171.12.9.1.2.1.3.60 = INTEGER: 4 [1] => SNMPv2-SMI::enterprises.171.12.9.1.2.1.4.60 = IpAddress: 255.255.255.255 [2] => SNMPv2-SMI::enterprises.171.12.9.1.2.1.5.60 = IpAddress: 255.255.255.255 [3] => SNMPv2-SMI::enterprises.171.12.9.1.2.1.19.60 = INTEGER: 4 )

Но это уже не принципиально, system в случае неудачи не вернет ' INTEGER: 4' в конце вывода. Я считаю этого достаточно для работы.
А если есть желание - можно (пользуясь exec) проверить все аргументы, но, повторяю, это не принципиально.

Будем считать, решение найдено.
(правда не средствами php, а при помощи сторонней программы, но для моего случая - приемлемое решение).

ВСЕМ СПАСИБО !


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: не работает SNMP - ACL
СообщениеДобавлено: Пт июн 08, 2012 18:07 
Не в сети

Зарегистрирован: Чт окт 12, 2006 11:32
Сообщений: 29
Откуда: С-Пб
Скорее всего будет работать в php5>=5.4.0 там появилось
http://php.net/manual/ru/snmp.set.php
snmp::set c типом mixed, т.е. много аргументов можно задать.

_________________
D-Link Foreva


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 13 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: Majestic-12 [Bot] и гости: 73


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB