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]

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 で提供する方法がよくわかりません。グーグルで検索しましたが、あまり役立つ情報はなさそうです。

出力は次のとおりです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ハードウェアノード (HN) ではなく OpenVZ VE 内で ipsec を実行していると考えられます。念のため、そちらのも確認しましたか?おすすめそのような設定のためですか?
  2. OpenVZ の VE テンプレートは、時々本当に驚​​くことがあります。開発者に、なぜループバック以外のインターフェイスで 127/8 の範囲の IP を使用する必要があるのか​​尋ねたところ、彼らの答えは「まあ、私たちにはわかりません。誰かが追加したので、今はレガシーになっています」でした。まったくのナンセンスです。問題のインターフェイスからこの 127.0.0.2 の「kludge」を安全に削除できます。何もしません: ip ad del 127.0.0.2/32 dev venet0。ただし、問題は、VE を再起動するたびに、このばかげたナンセンスが再度追加されることです。ハードウェア ノードを制御している場合は、ネットワーク構成を含む「kludge」をトリガーしないテンプレートを設定できます。制御していない場合は、回避策として、この「ip ad del」を次のように入力して/etc/rc.local、ipsec を再起動します。

答え2

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

Openswan が起動すると、br0 インターフェースの最初の IP アドレスを選択して、選択内容を通知するようです。今後間違った選択をした場合、どのインターフェースのどの IP アドレスかを明確に伝えるにはどうすればよいでしょうか。それとも、これは単なる開始通知であり、心配する必要はありませんか。

起動時に設定されたすべてのアドレスにバインドします。後でアドレスが追加された場合、現時点では、pluto に「ipsec whack --listen」を使用してこれらのアドレスを再バインドするように指示する必要があります。

ipsec_setup: 複数の IP アドレス、br0 の 10.0.0.10 を使用

メッセージは少しわかりにくいです。応答時にパケットを受信した IP アドレスを「使用」し、「%defaultroute」を使用する場合は、開始時に「最も近い」 IP アドレスを使用します。conn で指定されている場合は、ip または解決されたホスト名 ip を使用します。

起動時に OpenVZ インターフェイスが存在しないため、自動的にバインドされない可能性があります。

さらに、ファイルを編集し、 セクションのまたはディレクティブ/etc/ipsec.confを使用して正しい XX.XX.XX.XX または interface venet0:X 仕様を追加することで、1 つの IP のみをリッスンするように強制することもできます。listen=XX.XX.XX.XXinterface=venet0:Xconfig setup

ipsec.conf は、

関連情報