OpenVZ 上的 IPSec 多个 IP 地址,在 venet0 上使用 127.0.0.2

OpenVZ 上的 IPSec 多个 IP 地址,在 venet0 上使用 127.0.0.2

我有一个启用了 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]

我安装了 openswan 和 xl2tpd 用于 L2TP VPN。当我重新启动 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 上提供服务。我确实在谷歌上搜索过,但似乎没有什么真正有用的。

以下是ifconfig -a输出。我将实际 IP 替换为 xxxx、yyyy 和 zzzz

# 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  P-t-P: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:x.x.x.x  P-t-P:x.x.x.x  Bcast:x.x.x.x  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:y.y.y.y  P-t-P:y.y.y.y  Bcast:y.y.y.y  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:z.z.z.z  P-t-P:z.z.z.z  Bcast:z.z.z.z  Mask:255.255.255.255
          UP BROADCAST POINTOPOINT RUNNING NOARP  MTU:1500  Metric:1

答案1

  1. 您没有具体说明,但从您的ifconfig -a摘录中我们可以假设您在 OpenVZ VE 中运行 ipsec,而不是硬件节点 (HN)。为了确保万无一失 — 您是否查看过他们的推荐对于这种设置?
  2. OpenVZ 的 VE 模板有时真的令人难以置信。我问开发人员为什么要在非环回接口上使用 127/8 范围的 IP,但他们的回答是“嗯,我们不知道,其他人添加了它,现在它已经过时了”。绝对是废话。您可以安全地从相关接口中删除这个 127.0.0.2“临时解决方案”,它不会做任何事情: ip ad del 127.0.0.2/32 dev venet0。但问题是,每次重新启动 VE 时,这个愚蠢的废话都会被重新添加。如果您控制硬件节点,您可以将模板设置为不会触发包含网络配置的“临时解决方案”的内容。如果您不控制它,那么解决方法是将这个“ip ad del”放入类似的东西中/etc/rc.local,然后重新启动 ipsec。

答案2

https://lists.openswan.org/pipermail/users/2010-June/018901.html

当 Openswan 启动时,它似乎会选择 br0 接口上的第一个 IP 地址来宣布它选择了什么。万一有一天它选错了,我该如何明确地告诉它哪个接口上的哪个 IP 地址?或者这只是一个开场公告,我不需要担心它?

它绑定到启动时配置的所有地址。如果稍后添加地址,目前需要使用“ipsec whack --listen”命令告知 pluto 重新绑定这些地址

ipsec_setup:多个 IP 地址,在 br0 上使用 10.0.0.10

该消息有点令人困惑。它在响应时将“使用”它收到数据包的 IP 地址,并且在使用“%defaultroute”启动时使用“最近”的 IP 地址。如果在 conn 中指定,它将使用 ip 或解析的主机名 ip。

您的 OpenVZ 接口可能不会自动绑定,因为它们在启动时不存在。

此外,您可以通过编辑文件强制它仅监听一个 IP ,使用部分下的或指令/etc/ipsec.conf添加正确的 XX.XX.XX.XX 或接口 venet0:X 规范。listen=XX.XX.XX.XXinterface=venet0:Xconfig setup

http://linux.die.net/man/5/ipsec.conf

相关内容