Jump to content
Калькуляторы

Как управлять вланами по snmp на свичах доступа ? Q-BRIDGE наверное надо юзать, но не выходит.

Есть мысль переключать вланы по snmp. Типа при отрицательном балансе юзеры переключаются в влан для отключенных, при положительном - в влан для включенных. Пытаюсь юзать Q-BRIDGE-MIB и в качестве подопытного свича Q-TECH 2800. Читать всё даёт, но изменять не даёт ничего -- какие-то ошибки, которых я раньше никогда не видел:

 

snmpset <бла-бла-бла> Q-BRIDGE-MIB::dot1qVlanStaticEgressPorts.111 x "FF FF FF 10"

Error in packet.

Reason: undoFailed

Failed object: Q-BRIDGE-MIB::dot1qVlanStaticEgressPorts.111

 

В свиче есть влан 111 и он в данный момент на всех портах в качестве нативного, порты 1-24 имеюттакой конфиг:

 

QSW-2800-28T-AC#sh ru int e 1/1

!

Interface Ethernet1/1

spanning-tree portfast bpdufilter

switchport access vlan 111

!

 

Ещё пробовал snmpset'ом менять dot1qPvid на другой - тоже подобные ошибки.

 

Видимо, управлять вланами по snmp как-то не тривиально и я упускаю какую-то фундаментальную хрень :-). В общем, как по snmp сменить влан на порту доступа ? Чтобы пыток, боли и крови поменьше было.

Share this post


Link to post
Share on other sites

Свич поддерживает RW комъюнити? Через snmpset вы указываете RW комъюнити?

 

Да, поддерживает. Другие операции snmpset делаются. Например, админстатус порта изменять можно. Может быть конечно это кутех косячный, в смысле его софт, но скорее всего тут что-то неведомое пока :-).

Share this post


Link to post
Share on other sites

Use telnet, Luke.

 

Я серьезно, прям не шутю :)

 

Я ж указал, что пыток, боли и крови желательно по-меньше ;-). Телнет у разных свичей разный, а Q-BRIDGE-MIB один -- единообразие теоретически должно быть. Конечно у вендоров проблемы с реализацией бывают, но в данном случае ИМХО проблема в непонимании того, как это правильно по snmp сделать.

 

По snmp все порты в нужные вланы сконфигурить можно за 1 запрос set (если в 1400 байт влезет, а скорее всего влезет), а телнетом придётся либо руками, либо автоматизировать заколебёшься разные свичи.

Share this post


Link to post
Share on other sites

Я ж указал, что пыток, боли и крови желательно по-меньше ;-). Телнет у разных свичей разный, а Q-BRIDGE-MIB один -- единообразие теоретически должно быть. Конечно у вендоров проблемы с реализацией бывают, но в данном случае ИМХО проблема в непонимании того, как это правильно по snmp сделать.

 

 

Ну лол же. Пыток и крови поменьше хочешь, а выбираешь snmp. CLI у свитчей разное, но оно есть и работает. А вланы/рулесы по снмп создавать это боль. Пока у тебя 2-3 модели свитчей от одного вендора - еще можно жить, периодически выхватывая новые мибы на новых прошивках. Когда у тебя не моновендорная сеть, снмп - проблема. Нету никакого стандарта на вланы или рулесы по снмп, каждый делает как ему нравится. Порой у вендора вообще нет создания вланов по снмп, а порой оно настолько нетривиально что заставляет попотеть. И к этому всему вдобавок приходит новый свитч ревизии А2 например, а в нем логика создания вланов стала иная и все переписываешь. Мне когда осточертело под очередного вендора/модель/ревизию создавать новый скелет конфигуратора, я переделал все на telnet/ssh и счастлив по сей день с кучей разных моделей. Потому что CLI стабильно, а snmp никому не нужно.

Share this post


Link to post
Share on other sites

Я ж указал, что пыток, боли и крови желательно по-меньше ;-). Телнет у разных свичей разный, а Q-BRIDGE-MIB один -- единообразие теоретически должно быть. Конечно у вендоров проблемы с реализацией бывают, но в данном случае ИМХО проблема в непонимании того, как это правильно по snmp сделать.

 

 

Ну лол же. Пыток и крови поменьше хочешь, а выбираешь snmp. CLI у свитчей разное, но оно есть и работает. А вланы/рулесы по снмп создавать это боль. Пока у тебя 2-3 модели свитчей от одного вендора - еще можно жить, периодически выхватывая новые мибы на новых прошивках. Когда у тебя не моновендорная сеть, снмп - проблема. Нету никакого стандарта на вланы или рулесы по снмп, каждый делает как ему нравится. Порой у вендора вообще нет создания вланов по снмп, а порой оно настолько нетривиально что заставляет попотеть. И к этому всему вдобавок приходит новый свитч ревизии А2 например, а в нем логика создания вланов стала иная и все переписываешь. Мне когда осточертело под очередного вендора/модель/ревизию создавать новый скелет конфигуратора, я переделал все на telnet/ssh и счастлив по сей день с кучей разных моделей. Потому что CLI стабильно, а snmp никому не нужно.

 

Мне не нужно создавать вланы, мне нужно порт из одного в другой перекидывать и всё :-). Неужели Q-BRIDGE-MIB этого не предоставляет ? Я исходил из предположения, что есть обще известные мибы и вендор специфик. Вторые я трогать не хочу, т.к. они у всех разные, а вот первые должны быть у всех одинаковы. Ну и я ж не мега сложную задачу хочу решить. Хочу просто нативный влан менять по snmp и всё.

Share this post


Link to post
Share on other sites

Видимо, управлять вланами по snmp как-то не тривиально и я упускаю какую-то фундаментальную хрень :-).

Вот тут я кручу верчу сразу 4 параметра в одном пакете. Это пример для D-Link, но может он натолкнет на какую то мысль.

 

Ошибки могут быть из-за:

- Использования параметров по отдельности

- Взаимоисключащей настройки, которую надо изменить раньше

- Неуказания такой неочевидной (в случае CLI) вещи, как статус записи

и т.п.

Share this post


Link to post
Share on other sites

Видимо, управлять вланами по snmp как-то не тривиально и я упускаю какую-то фундаментальную хрень :-).

Вот тут я кручу верчу сразу 4 параметра в одном пакете. Это пример для D-Link, но может он натолкнет на какую то мысль.

 

Ошибки могут быть из-за:

- Использования параметров по отдельности

- Взаимоисключащей настройки, которую надо изменить раньше

- Неуказания такой неочевидной (в случае CLI) вещи, как статус записи

и т.п.

 

В Q-BRIDGE-MIB есть такая последовательность:

 

Dot1qVlanStaticEntry ::= SEQUENCE {

dot1qVlanStaticName SnmpAdminString,

dot1qVlanStaticEgressPorts PortList,

dot1qVlanForbiddenEgressPorts PortList,

dot1qVlanStaticUntaggedPorts PortList,

dot1qVlanStaticRowStatus RowStatus

}

 

Это вы её "фигачите" ?

 

Там все объекты имеют статус read-create, т.е. записать в них не получится :-(.

 

Сделал walk по .1.3.6.1.2.1.17.7.1.4.3.1, там в выводе есть такое:

 

Q-BRIDGE-MIB::dot1qVlanStaticUntaggedPorts.1 = Hex-STRING: 00 00 00 F0

Q-BRIDGE-MIB::dot1qVlanStaticUntaggedPorts.111 = STRING: "ЪЪЪ" <-- это ваще непонятно что :-).

 

Пока меня ваш пример наталкивает на мысль, что с этой хренью лучше действительно не связываться, как советовали предыдущие товарищи, но подождём ответа хелпдестка ку-теха.

Share this post


Link to post
Share on other sites

В общем, для Q-TECH предложили использовать .1.3.6.1.4.1.27514.100.3.2.1.16.1 для смены влана, но это не Q-BRIDGE, этого оида нет даже в вендор специфик мибе от этого свича:-). Либо у меня миб ку-тека старый. Но дело не в этом ... либо под каждый разный свич искать нечто подобное (не факт, что у всех есть такое), либо отказаться от решения этого вопроса вообще :-). Пока наверное второе выберу, пятница всё же ;-).

 

Просто сейчас порты тушим/зажигаем, думал переделать как-то на переключение в другой влан с перенаправлением на страничку "вы отключены за неуплату, встретимся в суде!". Придётся наверное оставить как есть. Ещё есть вариант с dot1x, но ввиду слабой распространённости в SOHO роутерах тоже придётся отказаться наверное, либо роутеры дарить свои, но это уже опять что-то не то.

Share this post


Link to post
Share on other sites

Это вы её "фигачите" ?

Да, они самые. Там в статье есть ссылки на цисковский миб-навигатор.

Q-BRIDGE-MIB::dot1qVlanStaticUntaggedPorts.111 = STRING: "ЪЪЪ" <-- это ваще непонятно что :-).

Попробуйте walk с опцией -Ox. Программа неправильно определила тип данных, помогите ей ключом.

с перенаправлением на страничку "вы отключены за неуплату, встретимся в суде!"

Это лучше делать на DPI. Подмена влана у абонента связана с переполучением адреса, что не всегда просто и хорошо. Роутеры будут брыкаться.

 

Пока разбираетесь в вланами можете попробовать комбинацию методов: конфиг с командами CLI на TFTP + SNMP команда на его increment'ную загрузку. Именно вланы по snmp действительно муторно - надо сначала получить все вланы, составить в памяти скрипта точную картину, а потом уже проводить манипуляции. Иначе может оказаться, что или порт не добавится или pvid не совпадет. :)

Share this post


Link to post
Share on other sites

С проприетарным OID всё нормально выполняется, не надо ничего сохранять и вычислять, просто snmpset <бла-бла> .1.3.6.1.4.1.27514.100.3.2.1.16.1 i 111 и на первом порту влан 111 и ничего лишнего. Адрес по DHCP ещё раз получит тот же самый, если попросит. Абонент и не узнает, что у него влан сменился -- линк пропадать не будет.

 

Про DPI понятно, но его и нет, отсюда и бредовые идеи со свичами доступа :-). Спасибо за -Ox, помогло, увидел в хексе.

 

От идеи скорее всего придётся отказаться, т.к. сеть мультивендорная и с большой вероятностью аналогичных проприетарных OID для всех разновидностей я не найду, ну или в будущем не найду. Надо использовать то, что все свичи умеют и будут уметь, типа dot1x. Или же совсем иначе действовать.

Share this post


Link to post
Share on other sites

Офф.

Начал читать название темы и мозг продолжил:

Как управлять в...селенной, не привлекая внимания санитаров )

Share this post


Link to post
Share on other sites

Офф.

Начал читать название темы и мозг продолжил:

Как управлять в...селенной, не привлекая внимания санитаров )

 

Случай из жизни:

 

----------------------------------------------------------------------------

Звонит абонент на счёт электропочты, с ним получился такой диалог (сейчас

январь 2012 года):

 

А: Я тут проверил почту с другого компьютера и у меня там 600 писем,

есть даже за 2010 год. Я этих писем не видел, как так вышло, что вы

мне их доставили только сейчас ?! Там были важные письма! Я на вас

В суд подам!!!

 

Я: Подождите, сейчас посмотрим ...

 

Смотрю, действительно у него 600 писем и несколько файлов созданы в 2010 году,

почту он проверяет по РОР3, т.е. его клиент сам стягивает письма/заголовки и

решает, старые это письма, прочтённые или нет.

 

Я: Дело в том, что у вас действительно в ящике лежат письма, которые были доставлены

в 2010 году, вы просто их не удалили и они с тех пор там лежат. Так же есть и

другие более поздние письма. Вообще вы должны сами прверить настройки своего

почтового клиента на вешем компьютере ...

 

А: Я не могу! Я нахожусь в местах лишения свободы, за решёткой, в психбольнице!

Меня заведующий отделением не отпускает !!!

 

Потом был ещё диалог, который я не запомнил. В конце концов я согласился с абонентом,

чтобы он подавал на нас в суд :-). Больше я не нашёл, что ему предложить. Вот что

значит честно и долго хранить почту, за это на оператора можно в суд подать.

 

----------------------------------------------------------------------------

Share this post


Link to post
Share on other sites

Вот тут я делился немного созданием влана по SNMP (там в теме, под спойлерами все подробности).

В принципе работать можно, но шаг в лево, шаг в право от оттестированной прошивки - всё ломается.

Share this post


Link to post
Share on other sites

Автору ещё актуален данный вопрос?

Может автору не актуален, но есть другие люди, которым это может быть нужно. Например мне.:)

Edited by Zheka2011

Share this post


Link to post
Share on other sites

Автору ещё актуален данный вопрос?

 

Автор пришёл к выводу, что теоретически стандартными мибами может быть и можно было бы влан на порту менять, но это на имеющихся свичах не реализовано. Т.е. софт свича это не поддерживает или как-то уныло поддерживает и в следующем релизе будет сломано. Зато у многих свичей есть проприетарные мибы на эту тему -- там всё чОтко, но жаль, что не у всех свичей есть такие мибы/оиды.

 

Поэтому я плюнул на эту идею и стал смотреть в сторону dot1x или network-access или ... у кого как это называется. Но пока всё только в теории так и осталось :-).

Share this post


Link to post
Share on other sites

Пример для "DLINK DES-1210-52 B1"

 

# Создаем VLAN так:

# Создаем VLAN, Status - CreateAndWait
snmpset -d -v 2c -c private -On 10.90.90.90 1.3.6.1.4.1.171.10.75.7.7.6.1.5.3333 i 5

# Даем VLAN'у имя
snmpset -d -v 2c -c private -On 10.90.90.90 1.3.6.1.4.1.171.10.75.7.7.6.1.1.3333 s vlan3333

# Активируем VLAN, Status - Active
snmpset -d -v 2c -c private -On 10.90.90.90 1.3.6.1.4.1.171.10.75.7.7.6.1.5.3333 i 1

# VLAN создан

# Делаем 1-й порт участником этого VLAN'а
snmpset -d -v 2c -c private -On 10.90.90.90 1.3.6.1.4.1.171.10.75.7.7.6.1.2.3333 x 800000000000000000000000

# Делаем 1-й порт нетегированным
snmpset -d -v 2c -c private -On 10.90.90.90 1.3.6.1.4.1.171.10.75.7.7.6.1.4.3333 x 800000000000000000000000

# Готово все

 

На старых моделях было вообще всё тупо, даже имя можно было не давать:

 

# Создаем VLAN, Status - CreateAndGo
snmpset -d -v 2c -c private -On 10.90.90.90 1.3.6.1.4.1.171.10.75.7.7.6.1.5.3333 i 4

# VLAN создан

 

На новых моделях (ME), всё гораздо сложнее, там все порты по-умолчанию попадают в FORBIDDEN. Приходится плясать с бубном, чтобы их оттуда вытащить, на некоторых моделях это получается только с веб-интерфейса.

 

Битовый размер маски портов, надо вычислять путем считывания текущей, запоминать её размер и с ней уже потом работать. На разных моделях/прошивках, она разная.

Share this post


Link to post
Share on other sites

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.