В ожидание технических работ у моего провайдера (а обещают их с переменным успехом с 9 утра до 19 вечера) было решено сделать домашний интернет более устойчивым к подобным событиям. Работы будут в будний день, в промежутке времени интернет может отваливать на неопределенное время несколько раз.
Исходные данные
Есть граничный маршрутизатор (по совместительству фаервол), и ему доступны два интерфейса с двумя провайдерами. На одном дом.ру, на втором Yota. Оба провайдера выдают интернет по DHTP, оба оказываются в Opnsense уже в виде 10-гигабитных виртуальных интерфейсов. То есть внешней настройкой и доступом портов внутри Opnsense тут заниматься не будем.
Почему именно Yota, тут несколько причин, но в основном из-за отсутствия всяких дополнительных сервисов как таковых и возможность включить такой тариф:
Да, это позволяет не платить за интернет, пока он не понадобится. И в моменте заплатить за сутки или двое.
Опишу тут только настройку DHCP на интерфейсах (на примере Yota, Интерфейсы
-> Назначения портов
):
На странице Интерфейсы
проверяем что бы наш первый и второй интернет интерфейсы были назначены в качестве устройств. В
устройстве нужно включить DHCP для протокола IPv4 (да, ни первый ни второй провайдер не дает IPv6 здесь и сейчас).
Теперь в статусах интерфейсов можно глянуть, что бы каждому из них выдался внутренний IP адрес от провайдера и двигаться дальше.
Настройка Gateway (сетевых шлюзов)
Теперь настраивается несколько gateway (сетевых шлюзов) для каждого из
подключений (Система
-> Шлюзы
-> Конфигурация
).
Тут основные моменты такие:
- не ставить галочку “Основной шлюз”, так как у нас будет группы шлюзов;
- не ставить галочку “Отключите Мониторинг шлюзов”, иначе будет не понятно когда шлюз “упал”;
- указать ip для мониторинга из интернета, по умолчанию для мониторинга будет использован адрес из DHCP, и то что он доступен не всегда означает, что доступен интернет;
В расширенном режиме можно “тонко” настроить параметры сигнализации падения шлюза:
Из двух (а может быть и более) gateway-ев собираем группу (Система
-> Шлюзы
-> Группы
):
Тут нужно выставить правильные тиры для подключений. Чем первее тир, тем приоритетнее использование gateway. У меня на скриншоте сначала используется WAN_DHCP (дом.ру), потом YOTA_DHCP (Yota). Остальные gateway-и не используются. Так же стоит обратить внимание на параметр “Уровень срабатывания”. Настройки задержек и потерь пакетов устанавливаются для каждого gateway отдельно (в блоке дополнительные настройки).
Теперь нужно поправить конфиг для доступа в интернет из lan (и остальные правила фаервола). Если в правилах не настроен
какой-то конкретный gateway, то будет использоваться по умолчанию. Значит настраивать отдельно ничего не нужно. Так же
стоит проверить все правила, которые полагаются на интерфейс, ведь при переключении gateway сменится интерфейс. У меня
это правило, которое не позволяет трафику для VPN выходить в интерфейс wan
, пришлось добавить в правило
интерфейс yota
.
Sticky Connections
Это может быть важным, так как часть сайтов “не любят”, когда у пользователя скачет ip адрес. Поэтому в настройках
системы (Межсетевой экран
-> Настройки
-> Дополнительно
) стоит включить Фиксированные соединения
. Так при
пограничном случае, когда gateway-и первого тира то и дело уходят в офлайн (отключаются, теряют пакеты или прыгает пинг,
в зависимости от настроек переключения) соединения будут “прилипать” ко второму тиру. Если в какой-то системе использует
отслеживание ip адреса для пользователей, то не придется при каждом переключении заново логиниться.