Рейтинг:4

2 разных общедоступных адреса для высокой доступности

флаг pf

я впервые задаю здесь вопрос, и мне было интересно, возможно ли подключить два разных общедоступных IP-адреса интернет-провайдера к одной системе для обеспечения высокой доступности?

например, если наш интернет-провайдер 1 отключился, второй интернет-провайдер будет доступен, точно так же, как у google и youtube разные общедоступные адреса, я просто не понимаю, где это настроить.

мы в настоящее время используем fortinet 300D.

Nikita Kipriyanov avatar
флаг za
Это возможно, но вам придется возиться с DNS, динамически обновляя его. И DNS-серверы должны быть снаружи. Многие хостеры DNS предоставляют для этого API. Много предостережений, в том числе: нетривиальная настройка NAT и маршрутизации (я не знаю, как это настроить с помощью Fortinet, но это сложно, например, в Linux); проблемы с обнаружением мертвого интернета (может случиться так, что ссылка в порядке и шлюз оператора доступен, но *некоторая* часть интернета через этого оператора не работает, в то время как эта часть может работать через другого оператора) и т.д. Я бы посчитал это не "разумным для бизнеса" решением. Для дома, может быть...
Davidw avatar
флаг in
Это, вероятно, лучше всего сделать с использованием протоколов динамической маршрутизации, а не DNS.
флаг pf
это как я просто не могу найти нужное слово для поиска. или вы знаете, как у Google и YouTube разные общедоступные IP-пулы? что у них нет времени простоя? но я проверю ваши предложения.
Nikita Kipriyanov avatar
флаг za
Адреса BGP и PI — вот как крупные предприятия обеспечивают высокую доступность в Интернете.
флаг in
^Здесь у Никиты правильный подход.Проще говоря: у вас есть собственные IP-адреса, которые принадлежат вам, а не вашим интернет-провайдерам. Вы сообщаете своему интернет-провайдеру, что IP-адреса доступны в вашей собственной сети, и они направляют ваш трафик к вам. Это основная часть Интернета; он будет перенаправлять трафик по мере необходимости. У Google есть несколько IP-адресов, поэтому у них может быть несколько серверов, но каждый адрес, в свою очередь, может иметь несколько входящих маршрутов. В масштабах Google реальный вопрос заключается не в том, сломано ли что-то, а в том, насколько сильно.
Paolo avatar
флаг ua
Высокая доступность для какой услуги? Веб-сайт? Конечная точка VPN? Почтовый хост?
флаг pf
для веб-сервера дело в том, что наш интернет-провайдер иногда работал с перебоями, и мне нравится использовать нашего вторичного IP-адреса diff ISP в качестве избыточности.
Doug avatar
флаг in
Вы определенно можете это сделать, с ограничениями из верхней части моего ответа, что клиенты все равно будут получать сбои. Просто вам будет проще/быстрее обойти сбой. Вы настраиваете IP-адреса (или, что более вероятно, правила NAT), чтобы у вас были внешние адреса в обеих сетях провайдера, назначенные вашему серверу. Опубликовать один или оба адреса в DNS с коротким TTL. В случае сбоя удалите этот IP-адрес из записей DNS, оставив только рабочий адрес. Для некоторых, но не для всех конфигураций потребуется два порта на вашем сервере (например, ISP1:80->:80 и ISP2:80->:8080).
Рейтинг:7
флаг in

Да, но то, как вы это реализуете, повлияет на взаимодействие с пользователем в случае сбоя одной из систем.

В самом простом случае вы можете ввести 2 записи адреса A в вашем внешнем DNS, и пользователи будут отправляться на оба адреса (известная как циклическая балансировка нагрузки DNS). Это не очень хорошо, так как означает, что при недоступности одного из адресов примерно половина пользовательских подключений не будет работать. Это также неэффективно, поскольку клиенты одного интернет-провайдера могут быть отправлены через другого интернет-провайдера или через интернет-провайдера с менее желательным маршрутом. Клиентское приложение и кэширование DNS могут задерживать получение клиентами адреса рабочей системы, поэтому отказоустойчивые клиенты, как правило, выходят из строя в течение довольно длительного времени без вмешательства для перезапуска приложений и сброса кэшей DNS. Если вы сохраняете DNS TTL коротким и не возражаете против кратковременных отключений, вы можете вручную отключить адрес, когда служба недоступна по этому адресу, однако пользовательский интерфейс по-прежнему представляет собой кратковременный сбой.

Чтобы упростить это, вам нужно, чтобы внешняя система проверяла, доступна ли ваша служба, и автоматически обновляла записи DNS, чтобы направлять пользователей к работающей системе (системам). Дальнейшие улучшения заключаются в том, что система DNS напрямую связана с внутренним мониторингом, чтобы направлять пользователей в менее загруженную систему. Несмотря на автоматизацию, все же существует пользовательский интерфейс, в котором некоторые пользователи все равно увидят сбой.

Ничего из этого не относится к вашему брандмауэру, который просто представляет два внешних интерфейса для двух интернет-провайдеров. Обратите внимание, что невозможно направить трафик для ISP1 через ISP2 или наоборот, так как интернет-маршрутизация просто отбрасывает этот трафик. Вы не можете «перекрестно соединить» двух интернет-провайдеров и ожидать, что что-то будет работать.

Крупные предприятия, как правило, не зависят только от циклического перебора DNS. Вместо этого они перейдут в свою собственную сеть (или партнерские сети) и направят интернет-провайдеров к своей сети в системе, известной как пиринг. Корпоративная сеть может иметь много одноранговых узлов, состоящих из нескольких интернет-провайдеров, распределенных в региональном или глобальном масштабе. При обмене информацией о маршрутизации клиенты перенаправляются от своего интернет-провайдера через работающих в данный момент интернет-провайдеров в корпоративную сеть. Это по-прежнему может приводить к кратковременным отключениям, пока сети недоступны, однако эти системы обеспечивают превосходную избыточность для корпоративной сети, чтобы быть доступной даже во время перебоев связи.

Возможны и другие, более сложные изощренные решения, но они выходят за рамки ответа StackExchange. В качестве примеров:

  • Разместите балансировщик нагрузки в высоконадежной системе (Azure, AWS и т. д.) и направьте трафик на отслеживаемый адрес, который находится в рабочем состоянии.
  • Используйте одноранговый узел на основе VPN (иногда называемый туннельным брокером), чтобы получить внешний IP-адрес, независимый от ваших интернет-провайдеров, и разрешить VPN-туннелю проходить через обоих интернет-провайдеров.
  • переместите всю систему в место с высокой доступностью
Рейтинг:0
флаг ua

Купите виртуальную машину у провайдера, который соответствует вашим потребностям (может быть, на уровне облачных вычислений?), установите там виртуальный брандмауэр и установите несколько vpn с локального сайта/сайтов, которые будут связаны и использованы для виртуальной маршрутизации (думая о MPTCP или подобном) .

Интернет-соединение локальной системы будет избыточным, с любым количеством ссылок (разные провайдеры, несколько технологий) и vpn для виртуального брандмауэра для каждой из этих ссылок.

Вы опубликуете нужный сервис из локальной системы через размещенный виртуальный брандмауэр.

В зависимости от требований к доступности вы можете добавить локальный wan-канал, пропускную способность к виртуальному брандмауэру или выбрать более надежного провайдера для размещения виртуальных машин.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.