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}

...然后成功创建了连接,但仅列表中的最后一个子网可用。ping 172.16.1.0子网上的任何内容的任何尝试都会失败。如果我交换子网的顺序,则可以ping 172.16.1.X但不能ping其他子网中的任何内容。好像Openswan仅使用列表中的最后一个子网来创建连接。

我在这里做错什么了吗?

我忽略了一些额外的信息(尽管我不确定它是否相关):我的Openswan客户端位于使用NAT的路由器后面,并且nat_traversal=yes我的ipsec.conf文件中已有该信息。


您是否使用VLAN?我几乎遇到了完全相同的问题,而这个问题是VLAN错误

您是否尝试过建立两个安全性关联,每个子网一个?
gimmesudo 2013年

@Tyke,不,我不使用VLAN。我的OpenSwan客户端位于使用NAT的路由器后面-我已经更新了问题以反映这一点。
FixMaker 2013年

@gimmesudo:我尝试将上述配置复制到新的连接(connection myConn2)上,除了以外的所有内容都相同rightsubnet。使用时,ipsec auto --up myConn我可以ping172.168.1.X。当我尝试建立第二个连接(ipsec auto --up myConn2)时,我可以ping 192.168.3.X,但是第一个连接完全消失。
FixMaker

为了在许多IPSec路由器(例如Cisco)上作为客户端进行联网,您将使用起来更加简单vpnc
F. Hauri

Answers:


3

看起来多个子网的常用分隔符是逗号,但至少openswan-2.6.32也可以使用空格。

应该记录有趣的信息,/var/log/secure其中可能包含为什么它不起作用的线索。同时发布的输出ip x s ship x p sh


如果您试图从一台主机切换到多台主机,请注意,多个子网的密钥是复数(rightsubnet*s*)而不是单数。
mgarciaisaia

1

conn有关隧道的两个端点每个子网部分配置。它们中只有一个(第一个开始)将启动SA协商,第二个(或更多个)将仅对其他子网进行新的SPD。


不幸的是,我无法执行此操作,因为远程端点是第三方FortiGate路由器(未运行OpenSwan)。我开始怀疑问题是否可能与路由器无法处理同一端点之间的多个隧道有关。
FixMaker

1

如果你使用rightsubnets,你必须使用leftsubnets为好,没有leftsubnet。即使在那一侧只有一个子网。ipsec.conf手册页在解释这一点上做得并不出色,但是确实存在。

我有几个月的类似问题,只是在这里找到了答案:https ://serverfault.com/questions/571352/openswan-multiple-subnets-routing-issue


1
并非如此。leftsubnets = {singletone},应与leftsubnet =相同。(我写了代码)
mcr

这是使用libeswan 3.15对我有用的解决方案。我的左边有一个子网,右边有几个子网。如果我使用leftsubnet =配置了左边,而使用rightsubnets = {}配置了右边,那么只有最后一个rightsubnet实际连接了。一旦我将左侧配置为对一个子网使用leftsubnets = {},它将连接到所有子网。
亚当·潘伯

1

看来OpenSwan中存在一个错误,子网列表的末尾需要额外的逗号才能正常工作。尝试:

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

注意末尾的逗号。


事实并非如此,所有测试用例或示例都没有多余的逗号。
mcr

-3

应该是这样

rightsubnets={172.16.1.0/24,192.168.3.0/24}

请使用逗号(,)而不是空格来分隔条目。


1
这似乎就是两年前答案的答案。
G-Man说'恢复莫妮卡'
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.