@i_goodwin

Как написать программу для определения серого адреса?

Добрый день!
Имею подключение к Интернету через Ростелеком через роутер F@st 1744 v4 со стандартной прошивкой от провайдера, сервер на базе Ubuntu Server. Проблема в том, что время от времени (раз в неделю примерно) роутер получает серый ip-адрес. Сервисы на сервере, соответственно, становятся недоступны извне. После n-нного числа принудительных дисконнектов снова присваивается белый ip-адрес, все сервисы на сервере становятся вновь доступны.
По причине того, что провайдер не дает подключить услугу "Статический ip-адрес" хочу написать программу, которая при получении серого ip-адреса отправляет роутер в ребут до тех пор, пока он не получит белый. Вопрос в том, каким образом выявить признак "серости" адреса, если такой адрес может начинаться с 77.ххх.ххх.ххх (так же, как и белый).
  • Вопрос задан
  • 336 просмотров
Пригласить эксперта
Ответы на вопрос 3
Jump
@Jump Куратор тега Системное администрирование
Системный администратор со стажем.
Вопрос в том, каким образом выявить признак "серости" адреса
Да элементарно - если ваши сервисы доступны, значит белый, иначе серый.

если такой адрес может начинаться с 77.ххх.ххх.ххх (так же, как и белый).
Не может. Не конечно теоретически можно засунуть белый адрес за NAT, но никто в здравом уме так делать не будет.
Поэтому определяется элементарно.
Серые адреса начинаются на -
10
100
127
169
172
192
Все остальные - белые.

Скорее всего вы не там смотрите адрес.
Единственное место где можно смотреть адрес - интерфейс устройства которое получило адрес.
А то некоторые люди умудряются смотреть свой адрес на ресурсах вроде 2ip.ru... Не уподобляйтесь таким людям.
Ответ написан
@res2001
Developer, ex-admin
Адрес, начинающийся на 77 - белый. Список серых адресов фиксированный, официально задокументированный в RFC и вовсе не тайна. По ссылке смотрите адреса в таблице п.3 с пометкой "Private-Use Networks".
Увидеть реально выданный адрес вы можете только на роутере, т.к. если роутер получает серый адрес, значит для выхода в инет трафик должен проходить через NAT провайдера, где адрес подменяется и в инете вы уже с белым адресом в любом случае.
Обычно роутеры поддерживают не только веб управление, но и SSH и возможно telnet. Используя их вы можете скриптом получать адрес, проверять его и если он серый, то другим скриптом ребутить роутер (или даже не ребутить, а сбрасывать соединение и устанавливать снова). То же самое можно сделать и через веб интерфейс, но формировать свои HTTP запросы и парсить HTTP ответы роутера более утомительная задача, чем вариант с ssh/telnet.
Ответ написан
CityCat4
@CityCat4
Внимание! Изменился адрес почты!
если такой адрес может начинаться с 77.ххх.ххх.ххх (так же, как и белый)


Не может
Диапазон серых адресов известен очень хорошо:
#       10.0.0.0        -   10.255.255.255
#       172.16.0.0      -   172.31.255.255
#       192.168.0.0     -   192.168.255.255

Все.

Все остальные адреса - белые. То, что при этом что-то недоступно - это фокусы ростелекома.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы