Резервирование канала интернет для сайта с статическим IP
Хабр, добрый день!
Сейчас посмотрел IPv4 Route Propagation для AS моего провайдера и увидел, что эта AS связана только с одной AS, которая AS 31133 (AS Мегафона).
Данная информация подтолкнула меня к размышлениям о необходимости иметь ещё один канал связи. Мало ли что Мегафон учудит.
Но просто просто подключить канал от ещё одного провайдера не получится, так как в сети есть сайт, у которого есть статический IP.
К сожалению у меня пока что не было опыта настройки ничего сложнее RIPv2, поэтому возникло несколько предположений и вопросов.
На форумах нашел информацию, что такое дублирование возможно только при покупке своей AS и анонсировании её через двух провайдеров.
Но с этим как минимум две проблемы:
1) AS выделяют только при условии приобретении блока /24 (здесь я могу сильно ошибаться). А нам нужен максимум /29
2) Надо договариваться об анонсе AS с провайдером. А текущий провайдер скорее всего не пойдет на в рамках нашего текущего договора.
3) Еще какие-то проблемы, о которых я не знаю.
Вопрос:
Как нам в этой ситуации сделать резервирование каналов?
P.S. Перенос сайта на хостинг невозможен в виду позиции руководства по этому вопросу.
Мы сделали просто.
До самого сервера доходят два канала (два IP адреса). Арендовали простенькую виртуалку в датацентре (выбирали на наш взгляд наиболее надежный датацентр, рекламировать не буду). DNS сайта указывает на виртуалку. В виртуалке nginx балансирует между двумя (а сейчас уже тремя) каналами.
Да, виртуалка — это точка отказа. Но с хостером виртуалки есть SLA. И вероятность отказа у этой виртуалки на порядок меньше вероятности падения одного из каналов. А у датацентра уже входящие и выходящие каналы зарезервированны «по-взрослому» :)
Решение не идеальное, но очень дешевое и значительно повышающее надежность нашей инфраструктуры (спасало уже не один раз).
nginx.org/ru/docs/http/ngx_http_upstream_module.html
max_fails=число
задаёт число неудачных попыток работы с сервером в течение времени, заданного параметром fail_timeout, после которого он считается неработающим, также в течение времени заданного параметром fail_timeout. По умолчанию число попыток устанавливается равным 1. Нулевое значение запрещает учёт попыток. Что считается неудачной попыткой, задаётся директивами proxy_next_upstream, fastcgi_next_upstream и memcached_next_upstream. Состояния http_403, http_404 и not_found не считаются неудачными попытками.
Т.е. если connection timeout и т.п. вылезает, то nginx начинает обращаться по другому IP (резервному).
Это только один из сценариев.
Можно оба канала использовать на постоянной основе и при сбое одного весь трафик на второй перекинуть.
Можно вообще не nginx, а haproxy использовать — там больше возможностей по настройке определения жив канал или нет.
Т.е. я хочу сказать, что тему с балансировщиком можно развивать дальше. Какой из них выбрать — это уже тонкости, не влияющие на архитектуру.
С балансировкой через DNS сразу две проблемы:
1) Кеш на локальных DNS провайдеров
2) При отказе одного из провайдеров половина запросов будет не добираться до сайта.
1) На амазоне была балансировка с отслеживанием живости ресурсов.
2) Как говорят ребята, профессионально защищающие от DDOS — при правильной настройке TTL 99% интернета переключится на новый адрес за минут 5. Если вам требуется более быстрый фейловер, то по-любому брать PI AS.
1. Куча домонетных ЦПЕ ничего не знают про ttl в dns.
2. Гораздо лучше просто отдавать 2 IP, браузеры вроде как осиливают делать коннект ко второму, если первый не олё.
Личный опыт говорит о том, что за 5 минут переключается в лучшем случае 50% :( Переключалось бы 99% — проблем бы было меньше и городить разные решения не пришлось бы.
У вашего провайдера может быть один аплинк (Мегафона) но при этом несколько логических и физических линков к нему для резервирования (несколько точек отказа). Это можно уточнить у провайдера, и если нету, то предложить подключить второй аплинк (это в интересах провайдера).
На форумах вам правильно сказали по поводу покупки своей АС, но насколько я знаю сейчас ни /24 сеть, ни любую другую уже не получить. IPv4 закончились.
Про аплинки:
Я всего лишь анализировал информацию, полученную при просмотре графов соединений между AS. Скорее всего на AS мегафона у них несколько физических аплинков.
От этого совсем не легче, ибо мегафон имеет возможность модифицировать мой трафик.
Да тоже погуглил на тему свободных PI AS — закончились они.