Да, но то, как вы это реализуете, повлияет на взаимодействие с пользователем в случае сбоя одной из систем.
В самом простом случае вы можете ввести 2 записи адреса A в вашем внешнем DNS, и пользователи будут отправляться на оба адреса (известная как циклическая балансировка нагрузки DNS). Это не очень хорошо, так как означает, что при недоступности одного из адресов примерно половина пользовательских подключений не будет работать. Это также неэффективно, поскольку клиенты одного интернет-провайдера могут быть отправлены через другого интернет-провайдера или через интернет-провайдера с менее желательным маршрутом. Клиентское приложение и кэширование DNS могут задерживать получение клиентами адреса рабочей системы, поэтому отказоустойчивые клиенты, как правило, выходят из строя в течение довольно длительного времени без вмешательства для перезапуска приложений и сброса кэшей DNS. Если вы сохраняете DNS TTL коротким и не возражаете против кратковременных отключений, вы можете вручную отключить адрес, когда служба недоступна по этому адресу, однако пользовательский интерфейс по-прежнему представляет собой кратковременный сбой.
Чтобы упростить это, вам нужно, чтобы внешняя система проверяла, доступна ли ваша служба, и автоматически обновляла записи DNS, чтобы направлять пользователей к работающей системе (системам). Дальнейшие улучшения заключаются в том, что система DNS напрямую связана с внутренним мониторингом, чтобы направлять пользователей в менее загруженную систему. Несмотря на автоматизацию, все же существует пользовательский интерфейс, в котором некоторые пользователи все равно увидят сбой.
Ничего из этого не относится к вашему брандмауэру, который просто представляет два внешних интерфейса для двух интернет-провайдеров. Обратите внимание, что невозможно направить трафик для ISP1 через ISP2 или наоборот, так как интернет-маршрутизация просто отбрасывает этот трафик. Вы не можете «перекрестно соединить» двух интернет-провайдеров и ожидать, что что-то будет работать.
Крупные предприятия, как правило, не зависят только от циклического перебора DNS. Вместо этого они перейдут в свою собственную сеть (или партнерские сети) и направят интернет-провайдеров к своей сети в системе, известной как пиринг. Корпоративная сеть может иметь много одноранговых узлов, состоящих из нескольких интернет-провайдеров, распределенных в региональном или глобальном масштабе. При обмене информацией о маршрутизации клиенты перенаправляются от своего интернет-провайдера через работающих в данный момент интернет-провайдеров в корпоративную сеть. Это по-прежнему может приводить к кратковременным отключениям, пока сети недоступны, однако эти системы обеспечивают превосходную избыточность для корпоративной сети, чтобы быть доступной даже во время перебоев связи.
Возможны и другие, более сложные изощренные решения, но они выходят за рамки ответа StackExchange. В качестве примеров:
- Разместите балансировщик нагрузки в высоконадежной системе (Azure, AWS и т. д.) и направьте трафик на отслеживаемый адрес, который находится в рабочем состоянии.
- Используйте одноранговый узел на основе VPN (иногда называемый туннельным брокером), чтобы получить внешний IP-адрес, независимый от ваших интернет-провайдеров, и разрешить VPN-туннелю проходить через обоих интернет-провайдеров.
- переместите всю систему в место с высокой доступностью