Как маршрутизировать трафик от VPN-шлюза к удаленной сети?
Ситуация в моей среде выглядит следующим образом:
Существует сеть (213.213.213.128/26) с шлюзом VPN (213.213.213.155).
На AWS имеется удаленная сеть (10.42.0.16/28), которая связана с 213.213.213.128/26 через AWS VPC VPN с сервером RADIUS на 10.42.0.30.
Я хочу, чтобы внешние клиенты подключались к 213.213.213.128/26, используя VPN-шлюз 213.213.213.155, аутентифицирующийся через 10.42.0.30.
Моя проблема заключается в том, что 213.213.213.155 не достигает 10.42.0.30, поскольку он отправляет через неправильный интерфейс. Когда я добавлю
iptables -t nat -A POSTROUTING -s <address of the tunnel interface> -d 10.42.0.16/28 -j SNAT --to-source 213.213.213.155
Я могу пропинговать 10.42.0.30, но пакеты RADIUS не передаются через туннель.
Как мне изменить конфигурацию сети, чтобы шлюз (213.213.213.155) мог подключаться к хостам в 10.42.0.16/28?
Я использую strongswan в качестве VPN-сервера. Пинг с -I 213.213.213.155
успешно без правила iptables.
РЕДАКТИРОВАТЬ
Таблица маршрутизации выглядит следующим образом:
10.0.0.0/8 dev Tunnel1 scope link metric 100
10.0.0.0/8 dev Tunnel2 scope link metric 200
213.213.213.128/26 dev eno1 proto kernel scope link src 213.213.213.155
169.254.21.173 dev Tunnel1 proto kernel scope link src 169.254.21.174
169.254.21.233 dev Tunnel2 proto kernel scope link src 169.254.21.234
Изменение таблицы маршрутизации для:
10.0.0.0/8 dev Tunnel1 scope link metric 100 src 213.213.213.155
10.0.0.0/8 dev Tunnel2 scope link metric 200 src 213.213.213.155
213.213.213.128/26 dev eno1 proto kernel scope link src 213.213.213.155
169.254.21.173 dev Tunnel1 proto kernel scope link src 169.254.21.174
169.254.21.233 dev Tunnel2 proto kernel scope link src 169.254.21.234
позволяет пинг проходить без-я, но traceroute
не находит маршрут к хосту. tracepath
не получает ответов.
1 ответ
Предпочтительным решением для таких проблем является установка правильных записей маршрутизации. Использование iptables может работать, если у вас нет доступа к записям таблицы маршрутизации в одной из систем.
Таким образом, в идеале вы должны иметь 213.213.213.155 маршрут до 10.42.0.16/28 через 213.213.213.155 и 10.42.0.30 маршрут до 213.213.213.128/26 через локальный VPN-шлюз.
Если вы не можете изменить таблицу маршрутизации на сервере RADIUS и для этого нужны iptables, убедитесь, что правило применяется к отправляемым пакетам RADIUS. использование tcpdump
наблюдать за RADIUS-пакетами на интерфейсе any
и запишите адреса источника и назначения.
Какова цель ограничения iptables
Правило -s <address of the tunnel interface>
? Простого удаления этой опции может быть достаточно, чтобы она заработала.
Как вы можете использовать iptables
, вы должны быть в состоянии настроить записи маршрутизации. Пытаться
ip route add 10.42.0.16/28 src 213.213.213.155
Этого должно быть достаточно, чтобы назначить правильный адрес источника без использования -I
возможность ping
и он должен использовать адрес источника для любого другого соединения, включая RADIUS. Обычно программное обеспечение VPN должно быть достаточно умным, чтобы настроить что-либо на этот счет без дополнительной настройки. Если это не сработает, вам может понадобиться
ip route add 10.42.0.16/28 dev tun0 src 213.213.213.155
где tun0
Ваш VPN интерфейс