Ситуация: два интернет-провайдера должны обеспечить резервирование при отказе.
Похоже, что когда дело доходит до серверов Windows, преобладает мудрость «не использовать несколько домов». И всякий раз, когда кто-то спрашивает, как это сделать правильно, люди спрашивают «зачем вам это нужно»? Другие предложения: «используйте маршрутизатор с балансировкой нагрузки».
К сожалению, я пытался использовать маршрутизаторы с балансировкой нагрузки (потребительский уровень, я не могу позволить себе высокопроизводительные Cisco), и они просто не работают надежно, и они действительно не предлагают маршрутизацию на основе источника (или какую-либо реальную политику маршрутизация на основе), чтобы разрешить конкретному трафику использовать определенные интернет-соединения.
Лучшее общее решение в моем случае - просто подключить оба интернет-соединения к моему серверу через отдельные сетевые адаптеры. Проблема в том, что Windows, похоже, не имеет возможности выполнять так называемую маршрутизацию с «разделенным доступом». Разделенный доступ позволяет нескольким интерфейсам иметь свои собственные шлюзы по умолчанию, так что, когда пакет приходит из Интернета, ответные пакеты могут быть маршрутизированы обратно через тот же шлюз (вместо шлюза по умолчанию системы).
Для получения дополнительной информации о разделенном доступе прочтите это:
http://lartc.org/howto/lartc.rpdb.multiple-links.html
Это решение отлично работает для Linux, используя iproute2, я могу настроить разделенный доступ, и все работает отлично. Но в Windows он всегда пытается отвечать на пакеты, исходящие из-за пределов локальной сети, через системный шлюз по умолчанию, а не через шлюз второго сетевого соединения. Вы не можете просто добавить второй шлюз по умолчанию, так как это приведет к всевозможным странным результатам.
Есть ли способ в Windows сделать что-то похожее на разделенный доступ с iproute2 в Linux?
Идея здесь в том, что у меня на сервере два сетевых адаптера. Я привязываю свой веб-сервер к обоим сетевым адаптерам с разными IP-адресами, затем использую аварийную систему DNS, которая будет отслеживать мое сетевое соединение и переключаться на вторичный IP-адрес (на втором ISP), если первый выйдет из строя. Не лучшее решение, но я могу его реализовать за гораздо меньшие деньги, чем альтернативные решения.
Для аварийного переключения DNS я рассматриваю такое решение:
http://www.dnsmadeeasy.com/s0306/prod/dnsfosm.html
Пожалуйста, не читайте мне лекций о том, что мне не нужно работать с несколькими домами, потому что я не могу позволить себе оборудование для правильной балансировки нагрузки, а оборудование потребительского уровня не работает надежно для моих нужд.
Попробуйте брандмауэр / маршрутизатор PfSense. Я использовал его в похожих ситуациях.
Вятта также может быть вариантом. Я не использовал его некоторое время и читал, что их последние версии намного проще настроить.
Если я правильно понимаю ваши требования, маршрутизатор Draytek 2910 сделает именно то, что вы хотите, и, если у вас нет свободного времени, это будет намного дешевле, чем прокатить собственный.
Мы используем Draytek 2910 повсюду, обычно с одним портом WAN, подключенным к маршрутизатору ADSL (NoNAT), а другим - к выделенной линии или аналогичному соединению. Маршрутизатор обнаружит сбой соединения на портах WAN с помощью эхо-запроса по указанному вами адресу и отключит сбойный порт примерно через десять секунд. Изнутри трафик выходит через тот порт WAN, который менее загружен. Вы также можете указать правила балансировки нагрузки для направления исходящего трафика через определенный порт WAN на основе IP-адреса и / или порта источника и / или назначения.
Со стороны вы используете правила сопоставления портов отдельно для каждого порта WAN, и если, например, вы переносите карту 80 на внутренний сервер на обоих портах WAN, маршрутизатор принимает соединения на любом из портов WAN и направляет их на сервер.
JR
Я бы предложил настроить маршрутизатор на базе Linux для выполнения двойного подключения. Затем настройте маршрутизацию на основе источника для достижения эквивалента iproute2. Мне кажется, что маршрутизация с разделенным доступом - это особая форма маршрутизации на основе источника.
Альтернативное предложение: переместите сервер на платформу Linux и используйте iproute2, если это решение маршрутизации, которое отвечает всем вашим потребностям.
Альтернативное предложение: виртуализировать сервер Windows, запустить его на сервере Linux и позволить серверу Linux, на котором запущен iproute2, выполнять вашу маршрутизацию.
Похоже, вы будете соглашаться на ограниченные периоды отсутствия подключения, поэтому вам не нужно будет слишком беспокоиться о проблемах маршрутизации уровня 3, которые мешают VRRP или архитектурам кластеризации. Однако следует иметь в виду, что многие приложения и промежуточные точки проверки пакетов ожидают согласованной маршрутизации данного соединения, то есть «постоянных соединений». Сохранение постоянной маршрутизации соединений было проблемой для архитекторов сети и безопасности в течение некоторого времени.
Если вы не можете позволить себе коммерческий продукт, исследовали ли вы:
Не уверен, что это сработает для вас, поскольку у меня не было вашей проблемы, но это может быть вариант.
Маршрутизатор Linksys RV042 может помочь вам (кстати, теперь это Cisco Small Business), маршрутизатор стоил около 200 долларов, когда я последний раз проверял.
Он имеет двойные порты WAN, поэтому у вас может быть 2 отдельных провайдера, и каждый WAN получает свой собственный IP-адрес. Это я сделал, и это отлично сработало.
Вот чего я не сделал, потому что в этом не было необходимости, но вы можете попробовать это.
Настройте переадресацию портов, как этот WAN1, перенаправляет порт 80 на ваш внутренний сервер WAN2 перенаправляет порт 80 на тот же внутренний сервер
У вас должна быть возможность перенаправить обе глобальные сети на один и тот же внутренний IP-адрес и порт. Я предполагаю, что ответные пакеты будут выходить через порт, через который они вошли в маршрутизатор.
Затем, когда ваш DNS переключается на второй IP-адрес, он должен работать.
Я бы сказал, купите один из этих маршрутизаторов в том месте, где вы можете вернуть его, если он не работает, и попробовать.
Также я использую 8 из них в течение последних 3 лет без единой проблемы с ними.