Назад | Перейти на главную страницу

Как настроить резервное подключение к Интернету от второго провайдера?

У меня есть Linux-сервер под управлением Debian, который действует как маршрутизатор / шлюз для сети.
На сервере есть 3 сетевых адаптера: на eth0 - основной провайдер, на eth1 - резервный, а на eth2 - сеть.
Можно ли настроить сценарий или что-то, что будет проверять, установлено ли соединение с основным интернет-провайдером, и если не переключиться (и правильно настроить маршруты) на резервного интернет-провайдера?

См. Документацию Linux Advanced Routing & Traffic Control для раздела «Маршрутизация для нескольких восходящих каналов / провайдеров» здесь:

https://web.archive.org/web/20180304202946/http://lartc.org/howto/lartc.rpdb.multiple-links.html

Вы можете прочитать Методы проверки статуса шлюза в linux / bsd это похоже на то, что вы спрашиваете.
Чтобы ответить на ваш вопрос точно. Обычно у вас есть 2 общедоступных IP-адреса, один на eth0 и один на eth1.
Вы можете написать сценарий, который попытается проверить связь со шлюзом по умолчанию isp1 (на eth0) и переключиться на eth1 в случае сбоя проверки связи. Но это будет переключаться только тогда, когда ваш канал на вашей стороне не работает (например, линия DSL не работает), но не из-за сбоя в сети Интернет-провайдера, потому что его шлюз все еще будет пинговать.
Так что вам, наверное, что:

1. Ping ISP1 по умолчанию
2. Ping www.google.com или что-нибудь еще надежное.
3. Проверьте пакет на eth0 с помощью tcpdump 3.

Если 1 не работает, вам следует изменить по умолчанию gatway на IP-адрес шлюза ISP2.
Если 1 - нормально, а 2 - Ко, может быть, это просто Google, может быть сбой на стороне провайдера, вы можете попробовать другой хорошо известный сервис yahoo.com, microsoft.com, если все Ко, вы, вероятно, захотите переключиться на ISP2. Вы можете использовать 3 здесь, чтобы узнать, получаете ли вы все еще пакеты из Интернета.

В зависимости от вашего дистрибутива у вас обязательно есть скрипты ifup / ifdown где-то в / etc, они вызываются, когда интерфейс поднимается или отключается. Это также можно использовать для переключения шлюза. Они будут вызываться только тогда, когда вы потеряете соединение Ethernet.

Фактически, настоящая избыточность интернет-соединения достигается только при использовании BPG в качестве Автономная система. Таким образом, у вас может быть любое количество аплинков от любого количества интернет-провайдеров, которые все будут указывать на ваш IP-адрес (а), который будет действительно ваша, не сданная или сданная в аренду, но подсеть, которую вы сможете использовать где угодно ...

Хотя тема получения ASN и настройки BGP выходит за рамки первоначального вопроса, я думаю, тем не менее, важно упомянуть. Если вам интересно, вот руководство, с которого вы можете начать:

https://www.auvik.com/media/blog/redundant-internet-connection-bgp/

Как насчет того, чтобы сделать это в роутере?

Маршрутизаторы Draytek 2910 (Ethernet) и 2820 (ADSL) поддерживают два порта WAN с балансировкой нагрузки и переключением при отказе. Немного более дорогой маршрутизатор 3300 поддерживает 4 порта WAN.

JR

У нас есть Linux-сервер (Raspberry Pi с Debian), который действует как шлюз. Сервер Linux имеет 2 подключения к Интернету и запускает службы DHCP и NAT для остальной части сети.

Его основное подключение к Интернету осуществляется через шлюз 192.168.3.1 (USB-накопитель 4G), а на 192.168.1.1 имеется резервное соединение ADSL.

Этот сценарий проверяет подключение к Интернету на шлюзе 192.168.3.1, чтобы убедиться, что он работает (путем проверки связи с общедоступным DNS-сервером уровня 3). Если интернет-проверка не удалась, он отправляет весь трафик на резервный шлюз 192.168.1.1.

Он также регистрирует сбой основного подключения к /var/log/4glog.txt.

#!/bin/bash

/sbin/route add 209.244.0.3 gw 192.168.3.1

if ping -c1 209.244.0.3 ; then
        echo 4G Up
        /sbin/route del default gw 192.168.1.1
        /sbin/route add default gw 192.168.3.1
else
        echo 4G Down
        echo `date` 4G Down >> /var/log/4glog.txt
        /sbin/route del default gw 192.168.3.1
        /sbin/route add default gw 192.168.1.1
fi

/sbin/route del 209.244.0.3

Запустите этот сценарий из cron, чтобы шлюз автоматически поддерживал доступ в Интернет.