DHCP client renew

Обсуждение оборудования и его настройки
Ответить
kolbac
Сообщения: 18
Зарегистрирован: 02 янв 2013, 00:36

Добрый день!
Микротик RB751G-2HnD v.6.3 получает ip-адрес по DHCP от провайдера, в случае поломки сети и последующего восстановления микротик не пингует шлюз, помогает dhcp renew. Как прописать скрипт обновления ip-адреса в таких ситуациях? Найденный в инете скрипт выдает ошибку - :if ( [/ping 192.168.13.254 interface=ether1-gateway count=6 ] = 0 ) do={/ip dhcp-client renew ether1-gateway}
syntax error (line 1 column 96)


Аватара пользователя
podarok66
Модератор
Сообщения: 4355
Зарегистрирован: 11 фев 2012, 18:49
Откуда: МО

Если судить по логу, ошибка с 96 символа. То есть в выражении:/ip dhcp-client renew ether1-gateway то, что синим не правильно. Там требуется подставить номер клиента по результату команды

Код: Выделить всё

/ip dhcp-client print

Если у Вас клиент задействован один, то номер будет 0. Отсюда, Ваш скрипт должен выглядеть так:

Код: Выделить всё

:if ( [/ping 192.168.13.254 interface=ether1-gateway count=6 ] = 0 ) do={/ip dhcp-client renew 0}

Но мне как-то это кажется не очень правильным именно номер подставлять. Может лучше в скрипте организовать поиск по порту? Что-то типа такого:

Код: Выделить всё

:if ( [/ping 192.168.13.254 interface=ether1-gateway count=6 ] = 0 ) do={/ip dhcp-client renew [/ip dhcp-client find interface=ether1-gateway]}

Только Вы уж пожалуйста проверьте, я на коленке писал, мог где-то накосячить.


Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
yreks
Сообщения: 47
Зарегистрирован: 07 авг 2013, 09:42

У меня вот так сделано
/tool netwatch
add comment="ip dhcp-client reconnect" down-script=":delay 25s;\r\
\n/ip dhcp-client disable 0 ;\r\
\n:delay 5s;\r\
\n/ip dhcp-client enable 0 ;\r\
\n:log warning \"ip dhcp-client reconnect\";" host=8.8.8.8 interval=5m
Работает........


kolbac
Сообщения: 18
Зарегистрирован: 02 янв 2013, 00:36

podarok66 писал(а):Но мне как-то это кажется не очень правильным именно номер подставлять. Может лучше в скрипте организовать поиск по порту? Что-то типа такого:

Код: Выделить всё

:if ( [/ping 192.168.13.254 interface=ether1-gateway count=6 ] = 0 ) do={/ip dhcp-client renew [/ip dhcp-client find interface=ether1-gateway]}

Только Вы уж пожалуйста проверьте, я на коленке писал, мог где-то накосячить.

Спасибо, сработало!
Последний раз редактировалось kolbac 11 сен 2013, 19:19, всего редактировалось 1 раз.


kolbac
Сообщения: 18
Зарегистрирован: 02 янв 2013, 00:36

yreks писал(а):У меня вот так сделано
/tool netwatch
add comment="ip dhcp-client reconnect" down-script=":delay 25s;\r\
\n/ip dhcp-client disable 0 ;\r\
\n:delay 5s;\r\
\n/ip dhcp-client enable 0 ;\r\
\n:log warning \"ip dhcp-client reconnect\";" host=8.8.8.8 interval=5m
Работает........

Спасибо, потестирую!


Аватара пользователя
podarok66
Модератор
Сообщения: 4355
Зарегистрирован: 11 фев 2012, 18:49
Откуда: МО

Тут весь вопрос в том, что просто статически вписывать номер dhcp-client тактически не очень корректно. Хотя, если у Вас один клиент и никаких добавлений не предвидится, то можно и с номером оставить. Мой вариант более гибок, ведь поиск можно организовать не по интерфейсу, а , скажем, по комментарию. Что гарантирует уникальность. Кстати, я получаю инет подобным способом, но проблем с подключением пока не наблюдал. Как только появляется связь, роутер незамедлительно получает адрес. И подобного направления скрипт у меня лишь периодически проверяет совпадение старого адреса с новым и при расхождении переписывает правило в NAT (правило не очень актуальное, проверки поставил раз в час). Довольно давно скрипт работает, я про него даже не вспоминаю.


Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
Аватара пользователя
Dominik
Сообщения: 12
Зарегистрирован: 28 янв 2017, 23:50
Контактная информация:

SXT-R настроен на passthrough на hap ac lite, в свою очередь DHCP client получает адрес с него на порт lte_mngmt
DNS server (Ad-guard 192.168.2.19) настроен на сервере в локалке 192.168.2.0/25
Хочу пропищат скрипт в DHCP Client yf SXT-R чтобы когда меняется DNS сервер на hap-ac lite, также обновляйся DHCP client на SXT-R
Пробовал:

Код: Выделить всё

:if ( [/ping 192.168.2.19 interface=lte_mngmt count=3] = 0 ) do={ /ip dhcp-client renew  numbers=0 } else={ /ip dhcp-client release numbers=0 }
Почему в поле DHCP Client на SXT-R скрипт не срабатывает, а в Scheduler срабатывает!
Сможете помочь?


Ответить