Openswan не работает с несколькими правыми подсетями


14

Я пытаюсь использовать Openswan (версия 2.6.37) для подключения IPsec VPN из моей локальной сети к удаленному сайту. Все отлично работает, когда я просто хочу подключиться к одной подсети на удаленном сайте. Однако на удаленном сайте также есть дополнительная подсеть, к которой я хочу получить доступ.

Это моя конфигурация:

conn myConn
        type=tunnel
        left=192.168.139.14
        leftsubnet=192.168.139.0/24
        leftxauthclient=yes
        right=X.X.X.X
        rightsubnet=172.16.1.0/24
        keyexchange=ike
        auth=esp
        authby=secret
        phase2alg=3des-sha1
        pfs=yes

Когда я заменить rightsubnetс rightsubnets, например , так:

rightsubnets={172.16.1.0/24 192.168.3.0/24}

... тогда соединение создано успешно, но доступна только последняя подсеть в списке. Любые попытки пропинговать что-либо в 172.16.1.0подсети не удаются. Если я поменяю порядок подсетей, то я могу пропинговать, 172.16.1.Xно ничего не могу пропинговать в другой подсети. Как будто Openswan использует только последнюю подсеть в списке для создания соединения.

Я что-то здесь не так делаю?

Немного дополнительной информации, о которой я не упомянул (хотя я не уверен, что это актуально): мой клиент Openswan находится за маршрутизатором, использующим NAT, и у меня есть nat_traversal=yesв моем ipsec.confфайле.


Вы используете VLAN? У меня была почти точно такая же проблема, и проблема заключалась в ошибке VLAN

Вы пытались создать две ассоциации безопасности, по одной для каждой подсети?
Gimmesudo

@ Тайк, нет, я не использую VLAN. Мой OpenSwan-клиент находится за маршрутизатором, использующим NAT - я обновил вопрос, чтобы отразить это.
FixMaker

@gimmesudo: я попытался дублировать мою конфигурацию выше для нового соединения ( connection myConn2), со всем идентичным, за исключением rightsubnet. Когда я использую, ipsec auto --up myConnя могу пинговать 172.168.1.X. Когда я пытаюсь установить второе соединение ( ipsec auto --up myConn2), я могу пропинговать 192.168.3.X, но первое соединение полностью умирает.
FixMaker

Для подключения в качестве клиента на многих маршрутизаторах IPSec (например, Cisco), вы будете использовать проще vpnc!
Ф. Хаури

Ответы:


3

Похоже, что обычный разделитель для нескольких подсетей - это запятая , но по крайней мере openswan-2.6.32 работает и с пробелами.

Должна быть зарегистрирована интересная информация, /var/log/secureкоторая может содержать подсказки, почему она не работает. Также опубликовать вывод ip x s shи ip x p sh.


Если вы попытались переключиться с одного хоста на несколько хостов, обратите внимание, что ключ для нескольких подсетей находится во множественном числе ( rightsubnet*s*), а не в единственном числе.
mgarciaisaia

1

Выполните connнастройку раздела для каждой подсети ОБА конечных точек туннеля. Только один из них (первый запущенный) начнет согласование SA, второй (или более) создаст только новый SPD для дальнейших подсетей.


К сожалению, я не могу сделать это, поскольку удаленная конечная точка является сторонним маршрутизатором FortiGate (не работает OpenSwan). Я начинаю задаваться вопросом, может ли проблема быть связана с тем, что маршрутизатор не может справиться с несколькими туннелями между одними и теми же конечными точками.
FixMaker

1

Если вы используете, rightsubnetsвы должны использовать, leftsubnetsа не leftsubnet. Даже если на этой стороне есть только одна подсеть. Страница man ipsec.conf не очень хорошо объясняет это, но она есть.

У меня были месячные проблемы, и я нашел ответ здесь: /server/571352/openswan-multiple-subnets-routing-issue.


1
Не тот случай. leftsubnet = {singletone}, должен быть идентичен leftsubnet =. (Я написал код)
mcr

Это было решение, которое работало для меня, используя libeswan 3.15. У меня слева была одна подсеть, а справа - несколько. Если я сконфигурировал левый, используя leftsubnet =, а правый, используя rightsubnets = {}, то будет подключена только последняя правая подсеть. Как только я настроил слева использовать leftsubnets = {} с одной подсетью, он подключился ко всем.
Адам Пламб

1

Похоже, что в OpenSwan есть ошибка, когда списку подсетей в конце нужна дополнительная запятая для корректной работы. Пытаться:

rightsubnets={172.16.1.0/24,192.168.3.0/24,}

Обратите внимание на лишнюю запятую в конце.


Это не так, ни у одного из тестовых случаев или примеров нет лишней запятой.
MCR

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.