我有一个启用了IPSec的OpenVZ框。
root@wa000:~# ipsec verify Checking your system to see if IPsec got installed and started correctly: Version check and ipsec on-path [OK] Linux Openswan U2.6.38/K2.6.32-042stab094.7 (netkey) Checking for IPsec support in kernel [OK] SAref kernel support [N/A] NETKEY: Testing XFRM related proc values [OK] [OK] [OK] Checking that pluto is running [OK] Pluto listening for IKE on udp 500 [OK] Pluto listening for NAT-T on udp 4500 [OK] Two or more interfaces found, checking IP forwarding [FAILED] Checking NAT and MASQUERADEing [OK] Checking for 'ip' command [OK] Checking /bin/sh is not /bin/dash [WARNING] Checking for 'iptables' command [OK] Opportunistic Encryption Support [DISABLED]
我为L2TP VPN安装了openswan和xl2tpd。 当我重新启动ipsec时:
# service ipsec restart ipsec_setup: Stopping Openswan IPsec... ipsec_setup: Starting Openswan IPsec U2.6.38/K2.6.32-042stab094.7... ipsec_setup: multiple ip addresses, using 127.0.0.2 on venet0
它检测到127.0.0.2 ,我相信这是一个本地IP服务。 我想要它在我的公共IP地址服务。 但我不知道如何让ipsec服务于正确的ip。 我用谷歌search,但似乎没有什么真正有用的。
这是ifconfig -a输出。 我用xxxx,yyyy和zzzz取代了实际的IP地址
# ifconfig -a eth0 Link encap:Ethernet HWaddr 00:18:51:69:44:e6 BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) gre0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 NOARP MTU:1476 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) gretap0 Link encap:Ethernet HWaddr 00:00:00:00:00:00 BROADCAST MULTICAST MTU:1476 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:118 errors:0 dropped:0 overruns:0 frame:0 TX packets:118 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:18229 (18.2 KB) TX bytes:18229 (18.2 KB) venet0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 inet addr:127.0.0.2 PtP:127.0.0.2 Bcast:0.0.0.0 Mask:255.255.255.255 UP BROADCAST POINTOPOINT RUNNING NOARP MTU:1500 Metric:1 RX packets:126133 errors:0 dropped:0 overruns:0 frame:0 TX packets:102937 errors:0 dropped:724 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:11322355 (11.3 MB) TX bytes:40737353 (40.7 MB) venet0:0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 inet addr:xxxx PtP:xxxx Bcast:xxxx Mask:255.255.255.255 UP BROADCAST POINTOPOINT RUNNING NOARP MTU:1500 Metric:1 venet0:1 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 inet addr:yyyy PtP:yyyy Bcast:yyyy Mask:255.255.255.255 UP BROADCAST POINTOPOINT RUNNING NOARP MTU:1500 Metric:1 venet0:2 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 inet addr:zzzz PtP:zzzz Bcast:zzzz Mask:255.255.255.255 UP BROADCAST POINTOPOINT RUNNING NOARP MTU:1500 Metric:1
ifconfig -a节选中,我们可以假定你在OpenVZ VE里运行ipsec,而不是硬件节点(HN)。 可以肯定的是,你是否检查过他们对这种设置的build议 ? ip ad del 127.0.0.2/32 dev venet0 。 但问题是,每次VE重新开始,这个愚蠢的废话将被重新添加。 如果您正在控制硬件节点,您可以将模板设置为不会触发包含networkingconfiguration的“kludge”。 如果你不控制它,那么解决方法是把这个“ip ad del”放到/etc/rc.local ,然后重新启动ipsec。 从https://lists.openswan.org/pipermail/users/2010-June/018901.html
当Openswan启动时,它看起来像在br0接口上select第一个IP地址来宣布它正在select什么。 如果这些天选错了,我该如何明确地告诉它在哪个接口上的哪个IP地址? 或者这只是一个开放的公告,我不需要担心呢?
它绑定到启动时configuration的所有地址。 如果稍后添加一个地址,当前,pluto需要被告知重新绑定这些“ipsec whack – listen”
ipsec_setup:多个IP地址,在br0上使用10.0.0.10
这个消息有点混乱。 当使用“%defaultroute”时,它将“使用”它接收到的数据包的IP地址,并在启动时使用“最近的”IP地址。 如果将使用IP或parsing主机名称ip,如果在conn中指定的话。
有可能你的OpenVZ接口没有被自动绑定,因为它们在启动时不存在。
另外,可以通过编辑/etc/ipsec.conf文件,使用listen=XX.XX.XX.XX添加正确的XX.XX.XX.XX或接口venet0:X规范,强制它只监听一个IP或config setup部分下的interface=venet0:X指令。