Linux: маршрутизация сети на основе условий в Linux

#networking #routes #debian

Вопрос:

У меня следующая настройка: 2 виртуальных машины в одной подсети (192.168.178.0/24) в домашней сети

  • VM_Gateway с Debian на 192.168.178.100
  • VPN_Gateway с Debian на 192.168.178.102 с запущенным VPN

Сетевой шлюз находится на 192.168.178.1

Пожалуйста, проконсультируйтесь с архитектурой и решением для решения следующей задачи: Трафик со всех домашних устройств поступает в VM_Gateway. Эта виртуальная машина проверяет, можно ли разрешить проблему VPN_Gateway (запущена и запущена). Если все в порядке — весь трафик перенаправляется на VPN_Gateway, если нет — трафик перенаправляется на сетевой шлюз на 192.168.178.1

Спасибо

Комментарии:

1. Ваш вопрос не о программировании, поэтому вопрос, если он относится к этому сайту.

Ответ №1:

Статическая маршрутизация

Одним из способов сделать это было бы использовать статическую маршрутизацию и VIP.

Настройте что-то вроде Keepalive или кардиостимулятора/Corosync как на вашем VPN-шлюзе, так и на сетевом шлюзе. Настройте виртуальный IP-адрес, что-то вроде 192.168.178.254, общий для обоих устройств. Если VPN-машина включена, VIP будет назначен VPN-узлу, в противном случае он переключится на сетевой шлюз.

Затем измените свой шлюз VM_Gateway по умолчанию, указав на свой VIP.

Keepalived может быть проще, чем кардиостимулятор/Коросинхронизация, особенно при реализации приоритетов (кто получает IP-адрес, если оба узла подключены)… Или даже убедитесь, что ваша VPN-ссылка включена, прежде чем VPN_Gateway вступит в силу.

Динамическая маршрутизация

Возможно, излишне, хотя это может иметь смысл в зависимости от вашего контекста … Используя что-то вроде OSPF?

VM_Gateway, VPN_Gateway и сетевой шлюз работают под управлением OSPF (в Debian у вас была бы Quagga, у OpenBSD есть собственный демон OSPFd, …).

VPN_Gateway и сетевой шлюз будут рекламировать только маршрут по умолчанию (quagga не изменяет конфигурацию маршрутизации на этих хостах). Указывая на ваш VPN-сервер, с одной стороны, и ваш фактический шлюз по умолчанию, с другой стороны.

Определяя правильные показатели связи, вы должны иметь возможность расставлять приоритеты VPN по сравнению с обычным шлюзом.

Затем VM_Gateway сможет переключаться с одного на другой.