Сначала я дам краткое, не связанное с темой объяснение, чтобы прояснить мой вопрос:
У меня есть 3 Linux-бокса, каждый из которых имеет 2 x NIC, 1 для интерфейса WAN и 1 для интерфейса LAN. Каждый Linux-бокс имеет полную публичную подсеть от интернет-провайдера, настроенную на интерфейсе WAN, и я могу успешно выйти в "интернет", используя этот интерфейс.
Что касается интерфейса LAN на каждом блоке, они настроены на сеть 192.168.50.0/24. Однако они изолированы от "интернета" и могут успешно пинговать только друг друга. Провайдер не предоставляет функциональность NAT/Router для моей сети LAN.
Чтобы решить эту первую проблему, я получил 4-ю коробку Linux (с 2 сетевыми картами) и установил OPNsense, и теперь у меня есть «шлюз» (192.168.50.1) для моей локальной сети. Я настроил OpenVPN через OPNsense с туннельной сетью, установленной как 192.168.10.0/24, и я могу успешно подключиться к нему с удаленного клиента и пинговать мой сервер OPNsense по его частному IP-адресу (192.168.50.1). Однако я могу пинговать только некоторых клиентов, у которых есть 1 сетевая карта локальной сети и их настройка шлюза, используя частный IP-адрес сервера OPNsense (192.168.50.1).
Для трех начальных серверов (с 2 сетевыми картами) я все еще не могу их пинговать, единственное отличие в том, что для их сетевой карты локальной сети не указан IP шлюза (192.168.50.1). Однако, если я попытаюсь добавить его, как это работает с другими клиентами, то мой сервер станет полностью недоступным, и мне придется переподключаться через консоль, чтобы отменить изменения шлюза. Похоже, Linux не любит иметь 2 шлюза, и я не совсем уверен, как это исправить, потому что мне нужно также добраться до этих трех серверов.
Обратите внимание, что проблема не связана с OPNsense или OpenVPN, поскольку я могу связаться с некоторыми клиентами, у которых установлен шлюз локальной сети. Проблема в том, что настройка Linux-компьютера с двумя шлюзами приводит к полному отключению сервера.
Я читал, что в таких случаях нужно настраивать статический маршрут, но для меня это не имеет смысла. P.S. Все три Linux-бокса используют Almalinux 8. \
Я был бы признателен за любую информацию по этому вопросу, спасибо.
решение1
НИ ОДНА система не любит несколько активных шлюзов DEFAULT. Шлюз по умолчанию — это, по определению, путь по умолчанию для достижения всех неизвестных сетей. Неизвестная сеть — это та, для которой у сервера нет более прямого пути в таблице маршрутизации.
Если у вас больше одного шлюза по умолчанию, то оба шлюза ДОЛЖНЫ иметь путь ко всем тем же сетям. В этом случае они не имеют пути и фактически являются двумя шлюзами, которые находятся в двух совершенно отдельных сетях. Это приводит к тому, что сетевые пакеты выходят из неправильных сетевых интерфейсов. Это не тот способ реализации.
Оставьте шлюз по умолчанию на интерфейсе WAN и удалите шлюз полностью на интерфейсе LAN. Затем настройте статические маршруты для диапазонов частных подсетей, которые доступны VPN-серверу, чтобы использовать следующий переход 192.168.50.1
. В этом случае сеть, которой нужен статический маршрут, — 192.168.10.0/24
. Это делается на трех серверах с двойными интерфейсами.
Команда на 3 серверах выглядит так:
ip route add 192.168.10.0/24 via 192.168.50.1
Это временно и будет потеряно после перезагрузки. Как добавить постоянный статический маршрут, зависит от разных версий Linux, но это должно быть довольно просто найти с помощью Google.