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

Как я могу установить исходный IP-адрес в таблице маршрутизации strongswan

У меня есть VPN типа "сеть-сеть", в которой одна подсеть находится на удаленной стороне, а две - на локальной:

conn site-to-site
  leftsubnet = 10.10.0.0/16,10.11.0.0/16
  rightsubnet = 10.50.0.0/16

Все работает нормально, но у меня проблема, когда "неправильный" локальный IP-адрес вставляется в таблицу маршрутизации strongSwan:

$ ip route show table 220
    10.50.0.0/16 via <REDACTED> dev eth-ext src 10.11.0.1 

strongSwan выбирает локальный IP-адрес 10.11.0.0/16 подсеть в качестве исходного IP-адреса для туннеля IPsec (т.е. 10.11.0.1), но я бы хотел использовать второй (10.10.0.1).

Я пробовал установить leftsourceip к 10.10.0.1, но, похоже, это не подействовало. Есть ли другой элемент конфигурации, который я могу использовать, чтобы указать strongSwan, какой локальный IP-адрес использовать в качестве исходного IP-адреса для своей таблицы маршрутизации?

Если вы не отключите установку маршрута через charon.install_routes и вручную установить маршрут (до или после установления соединения), в настоящее время нет прямого способа контролировать это. Требуются ли в первую очередь конкретные маршруты (установленные strongSwan), зависит от существующих маршрутов и согласованных селекторов трафика.

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

Чтобы вручную установить маршруты, когда установлен CHILD_SA, вверх вниз сценарий, или ребенок мероприятие предоставляется через VICI может быть использовано.

В заключение, leftsourceip используется для виртуальный IP функция (т.е. запускает запрос виртуального IP от респондента).