Добрый день уважаемые форумчане.
Встала такая задача, имеется подключение к провайдеру, который периодически выдает серые IP. У меня на роутере поднят vpn+ddns(обновляется при переходе по ссылке). Так вот, процент выдачи "серых" ip примерно 30%, в остальных случаях выдает белый IP, по которому могу подключиться. Нужно как-то сравнивать какой IP присвоился на DDNS, (методом пинга домена например). И в случае если присвоился IP который не пингуется из вне, ребутать соединение соответственно пока не присвоится белый IP.
Набросал такой вот скрипт:
Проблема в том, что при пинге домена условие при проверке всегда выполняется. Т.е. даже если на домене поменялся IP на серый, и команда ping возвращает ответ timeout в условии я так понимаю воспринимается как положительный ответ. Соответственно соединение не ребутится и у меня висит серый IP.
Сверка IP адреса на ddns
Правила форума
Уважаемые Пользователи форума, обратите внимание!
Ни при каких обстоятельствах, Администрация форума, не несёт ответственности за какой-либо, прямой или косвенный, ущерб причиненный в результате использования материалов, взятых на этом Сайте или на любом другом сайте, на который имеется гиперссылка с данного Сайта. Возникновение неисправностей, потерю программ или данных в Ваших устройствах, даже если Администрация будет явно поставлена в известность о возможности такого ущерба.
Просим Вас быть предельно осторожными и внимательными, в использовании материалов раздела. Учитывать не только Ваши пожелания, но и границы возможностей вашего оборудования.
Уважаемые Пользователи форума, обратите внимание!
Ни при каких обстоятельствах, Администрация форума, не несёт ответственности за какой-либо, прямой или косвенный, ущерб причиненный в результате использования материалов, взятых на этом Сайте или на любом другом сайте, на который имеется гиперссылка с данного Сайта. Возникновение неисправностей, потерю программ или данных в Ваших устройствах, даже если Администрация будет явно поставлена в известность о возможности такого ущерба.
Просим Вас быть предельно осторожными и внимательными, в использовании материалов раздела. Учитывать не только Ваши пожелания, но и границы возможностей вашего оборудования.
-
- Сообщения: 1601
- Зарегистрирован: 15 сен 2017, 09:03
Не понятно, как провайдер может "переодически" выдавать серые IP ? Уж IP или постоянно серые, или постоянно "белые", но динамические ...
Вероятно, у Вашего провайдера там хитро сделано.
Посмотрите как резолвятся Ваши IP, которые Вам "переодически" выдает провайдер. Есть специальные сервисы, обращаясь к которым, Вы можете получить свой реальный IP, который у Вас в данный момент на WAN-интерфейсе. Если он реально "серый" - Вам ничто не поможет. Если он белый, но динамический, Вы можете скриптом взять новый адрес, который Вам вновь выдал провайдер, сравнить с тем, что скрипт запомнил до этого момента, если не совпадают - попытаться заменить там где нужно.
Но Вы обрисуйте нормально задачу то ...
А так вот держите, для примера, почитайте ...
http://mikrotik-ukraine.blogspot.com/20 ... s-nat.html
Вероятно, у Вашего провайдера там хитро сделано.
Посмотрите как резолвятся Ваши IP, которые Вам "переодически" выдает провайдер. Есть специальные сервисы, обращаясь к которым, Вы можете получить свой реальный IP, который у Вас в данный момент на WAN-интерфейсе. Если он реально "серый" - Вам ничто не поможет. Если он белый, но динамический, Вы можете скриптом взять новый адрес, который Вам вновь выдал провайдер, сравнить с тем, что скрипт запомнил до этого момента, если не совпадают - попытаться заменить там где нужно.
Но Вы обрисуйте нормально задачу то ...
А так вот держите, для примера, почитайте ...
http://mikrotik-ukraine.blogspot.com/20 ... s-nat.html
фрагменты скриптов, готовые работы, статьи, полезные приемы, ссылки
viewtopic.php?f=14&t=13947
viewtopic.php?f=14&t=13947
-
- Сообщения: 3
- Зарегистрирован: 02 апр 2019, 07:31
Прилагаю скрин истории моих IP, красным в некоторых местах выделил серые IP. Как видно по картинке, серые ip не всегда, но они не пингуются из вне.Sertik писал(а): ↑02 апр 2019, 14:19 Не понятно, как провайдер может "переодически" выдавать серые IP ? Уж IP или постоянно серые, или постоянно "белые", но динамические ...
Вероятно, у Вашего провайдера там хитро сделано.
Посмотрите как резолвятся Ваши IP, которые Вам "переодически" выдает провайдер. Есть специальные сервисы, обращаясь к которым, Вы можете получить свой реальный IP, который у Вас в данный момент на WAN-интерфейсе. Если он реально "серый" - Вам ничто не поможет. Если он белый, но динамический, Вы можете скриптом взять новый адрес, который Вам вновь выдал провайдер, сравнить с тем, что скрипт запомнил до этого момента, если не совпадают - попытаться заменить там где нужно.
Но Вы обрисуйте нормально задачу то ...
А так вот держите, для примера, почитайте ...
http://mikrotik-ukraine.blogspot.com/20 ... s-nat.html
Нужен скрипт который будет проверять, серый у меня IP или нет, (т.е. пингуется он из вне или нет) и если не пингуется, ребутать соединение к провайдеру. Пока не получу белый IP.
-
- Сообщения: 1199
- Зарегистрирован: 29 сен 2011, 09:16
Вы только не обижайтесь, но вам надо или знания по сетям подтянуть, или к окулисту, вот серьезно.artem.hlyustov писал(а): ↑02 апр 2019, 19:52 Прилагаю скрин истории моих IP, красным в некоторых местах выделил серые IP. Как видно по картинке, серые ip не всегда, но они не пингуются из вне.
Нужен скрипт который будет проверять, серый у меня IP или нет, (т.е. пингуется он из вне или нет) и если не пингуется, ребутать соединение к провайдеру. Пока не получу белый IP.
Адреса v4 состоят из 4 октетов, не меньше и не больше, те, что вы подчеркнули точно такие же белые, просто вы почему то увидели, что начиная со второго октета они похожи на серые. Соглашусь что это прикольное совпадение, но если вы пинговали, например "192.168.194" (самое первое подчеркивание), то конечно он вам не ответит, т.к. это не адрес, а кусок адреса из всего 3 октетов, а весь адрес выгляди как 85.192.168.194 и вот он уж точно должен был ответить.
Так что все у вас в порядке, просто будьте внимательней и на всякий все же подтяните познания в сетях, что бы такое больше не повторялось.
Последний раз редактировалось KARaS'b 02 апр 2019, 20:56, всего редактировалось 1 раз.
-
- Сообщения: 3
- Зарегистрирован: 02 апр 2019, 07:31
Критика оправдана. Но я пинговал 85.192.168.194 и он не пинговался. Как собственно и все остальные адреса (то что я подчеркнул только 3 октета чистая случайность, уж простите меня за умения пользования paint).KARaS'b писал(а): ↑02 апр 2019, 20:48Вы только не обижайтесь, но вам надо или знания по сетям подтянуть, или к окулисту, вот серьезно.artem.hlyustov писал(а): ↑02 апр 2019, 19:52 Прилагаю скрин истории моих IP, красным в некоторых местах выделил серые IP. Как видно по картинке, серые ip не всегда, но они не пингуются из вне.
Нужен скрипт который будет проверять, серый у меня IP или нет, (т.е. пингуется он из вне или нет) и если не пингуется, ребутать соединение к провайдеру. Пока не получу белый IP.
Адреса v4 состоят из 4 октетов, не меньше и не больше, те, что вы подчеркнули точно такие же белые, просто вы почему то увидели, что начиная со второго октета они похожи на серые. Соглашусь что это прикольное совпадение, но если вы пинговали, например "192.168.194" (самое первое подчеркивание), то конечно он вам не ответит, т.к. это не адрес, а кусок адреса из всего 3 октетов, а вес адрес выгляди как 85.192.168.194 и вот он уж точно должен был ответить.
Так что все у вас в порядке, просто будьте внимательней и на всякий все же подтяните познания в сетях, что бы такое больше не повторялось.
Как бы то ни было. Проблема решена таким скриптом: Алгоритм простой: Пингую свой же внешний IP, если он пингуется (не серый) то интерфейс продолжает работать(а соответственно IP может спокойно присваиваться DDNS). Соотвественно если не пингуется, ребутит соединение (меняется ip). Ну а присвоение IP к DDNS у меня реализовано в другом скрипте. Просто они в разное время срабатывают. Хотя может и объединю их на досуге.
-
- Сообщения: 1
- Зарегистрирован: 09 сен 2019, 01:38
Мой провайдет использует только две подсети для серых ip так что написал скрипт который проверяет если ip выдается из серой подсети то происходит переподключение
:global newIP [/ip address get [find interface="pppoe-out1"] address];
:if ($newIP in 100.99.0.0/16) do={
/interface pppoe-client disable pppoe-out1
:delay 5
/interface pppoe-client enable pppoe-out1
}
:global newIP [/ip address get [find interface="pppoe-out1"] address];
:if ($newIP in 100.99.0.0/16) do={
/interface pppoe-client disable pppoe-out1
:delay 5
/interface pppoe-client enable pppoe-out1
}
- JoeRee
- Сообщения: 27
- Зарегистрирован: 22 мар 2014, 05:28
- Откуда: СПБ
Раньше был на Ростелекоме. Была примерно такая же ситуация:
если при соединении с провайдером выдавался IP с первым октетом отличным от 212, то ни пинга, ни доступа извне к внутренним ресурсам не было.
Порылся в инете, нашел скриптик, переделал под себя:
При соединении с провайдером идет проверка на соответствие с "правильным" IP и, если не соответствует, то происходит пересоединение интерфейса. И так до получения "правильного".
если при соединении с провайдером выдавался IP с первым октетом отличным от 212, то ни пинга, ни доступа извне к внутренним ресурсам не было.
Порылся в инете, нашел скриптик, переделал под себя:
В PPP/Profile создал профиль для проверки и в поле Scripts/OnUp вставил ссылку на скрипт, который выше.:local newIP [:pick [/ip address get [find interface ="RT"] address ] 0 3]
:if ($newIP != 212) do={
:log info "-----------------------------------------"
:log info "Real first octet IP: $newIP"
:log info "-----------------------------------------"
/interface pppoe-client disable RT
:delay 5
/interface pppoe-client enable RT
}
При соединении с провайдером идет проверка на соответствие с "правильным" IP и, если не соответствует, то происходит пересоединение интерфейса. И так до получения "правильного".
Memento mori...