Підключення до декількох правих підмереж не працює


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я можу ping 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конфігурацію розділу для кожної підмережі на BOTH кінцевих точках тунелю. Лише один з них (перший розпочатий) розпочне переговори про SA, другий (або більше) лише зробить нове SPD подальших підмереж.


На жаль, я не можу цього зробити, оскільки віддаленою кінцевою точкою є сторонній маршрутизатор FortiGate (не працює OpenSwan). Я починаю цікавитись, чи може проблема пов’язана з тим, що маршрутизатор не може впоратися з декількома тунелями між одними і тими ж кінцевими точками.
FixMaker

1

Якщо ви використовуєте, rightsubnetsви також повинні використовувати leftsubnets, ні leftsubnet. Навіть якщо на цій стороні є лише одна підмережа. Сторінка людини ipsec.conf не дуже добре пояснює це, але вона є.

У мене виникли подібні проблеми місяцями, і я просто знайшов відповідь тут: /server/571352/openswan-multiple-subnets-routing-issue


1
Не справа. leftsubnets = {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.