Некоторое определение (я) / значение (я): Стабильный IP-адрес - узел в сети автономной системы (AS) поставщика услуг Интернета (ISP), воспроизводящий эхо-запрос ICMP типа 8.
Бытие: Мои маршрутизаторы контролируют подключение к Интернету, запрашивая эхо-запрос ICMP (одна дейтаграмма каждые 5 секунд) к хостам в сети AS ISP, это дает достаточно надежное изображение, независимо от того, работает ли ссылка стабильно или нет.
Причина (ы): В (очень малых) средах с несколькими глобальными сетями (например, при использовании как минимум двух разных интернет-провайдеров) он дает мне возможность отключить ненадежный канал и выполнить переключение при отказе и квази-балансировку нагрузки (выполняется в восходящем направлении с использованием IP-адресов источника и назначения). Для резервирования мои маршрутизаторы обычно контролируют два хоста в сети ISP одновременно, и когда оба адреса не отвечают, маршрутизатор может определить доступность ISP и отключить данный шлюз.
Методология поиска адресов, которую я хотел бы улучшить: мои производственные тесты (почти год, время безотказной работы 99,99%) показывают, что интернет-провайдеры - основной DNS-сервер и первый MX-сервер домена, принадлежащего интернет-провайдеру, - довольно надежный способ предоставить мне почти всегда эхо-ответ ICMP.
Отступление: Допустим, я знаю, что такое BGP, и что это правильный способ сделать это, но я не могу себе этого позволить из-за затрат и микромасштабного бизнеса.
Вопрос: Меня больше всего беспокоит то, что все зависит от возможности изменения IP-адресов. Ищу адреса (методология поиска этих адресов) что будет наиболее болезненно для провайдера изменить. Есть ли что-то, что можно улучшить - с точки зрения стабильности IP-адреса? Я думаю о пограничных маршрутизаторах ISP, но я не могу найти способ надежно определить эти IP-адреса, и я не уверен, будет ли он более «стабильным». Есть идеи / мнения?
Я использую коммерческие Эльфик Свяжите балансировщики, чтобы сделать это.
Метод, который он использует для определения работоспособности конкретного канала, заключается в попытке установить соединения IP: порт с несколькими получателями с переменными таймаутами сбоя и порогами.
В общем, я бы порекомендовал вам адреса для опросов вне инфраструктуры любого интернет-провайдера, поскольку у любого провайдера могут быть проблемы с восходящей маршрутизацией, которые они не могут контролировать. Общедоступные DNS-серверы популярны для целей опроса.
Если вы проверяете надежность ссылки, используйте tracert
для динамического поиска адреса первого прыжка, который находится на другой стороне вашей ссылки. Предполагая, что топология вашей сети не меняется, это всегда будет один и тот же номер перехода, обычно второй или третий. В моем случае на моем компьютере с Windows работает следующее:
tracert -d 8.8.8.8 | find " 3 "
Отслеживая этот IP-адрес, вы получаете четкое представление о том, произошел ли сбой из-за вашей ссылки или нет.
Если вы проводите тестирование, чтобы принять решение об отказе, то почему бы не пропинговать адрес хорошо известного сервера? Я использую DNS-сервер Google, потому что вероятность его изменения, вероятно, намного меньше, чем вероятность того, что интернет-провайдер изменит адрес. Поскольку этот подход также учитывает связи интернет-провайдеров с остальным миром, он обычно более полезен. Я видел много случаев, когда связь была хорошей, но у интернет-провайдера были проблемы с маршрутизацией, которые в любом случае вызывали перебои в обслуживании.
Как уже прокомментировал joeqwerty, ping
не является на 100% надежным индикатором возможности подключения, т.к. он часто теряет приоритет (например, сервер / коммутатор / маршрутизатор может сбросить / отложить пинг, чтобы не отставать от другой работы), а иногда устройства специально настроены на его игнорирование ( многие межсетевые экраны SOHO имеют эту возможность как элементарный «скрытый режим»). Если вам нужен более точный тест, отслеживайте конкретный порт / службу, которые вас беспокоят. Здесь могут помочь несколько инструментов, выполняющих "tcp ping".
Если время безотказной работы вызывает беспокойство, вы должны контролировать все три - ссылку, общее подключение к Интернету и критически важные службы, - чтобы вам было легче устранять проблему, когда она возникает.