web-dev-qa-db-ja.com

OpenVZコンテナへのIPの割り当て

最近、自分で物理サーバーを購入し、IPを持つコンテナーを作成しようとしています。

物理マシンには、IPv4アドレスとIPv6アドレスの両方があります。コンテナに割り当てたい別のIPv4アドレスと他のいくつかのIPv6アドレスにアクセスできます。私は次のようにアドレスを割り当てることができました:

# vzctl set 101 --ipadd 144.76.195.252 --save

物理マシンからマシンにpingを実行できますが、外部からはpingできません。これは、私が割り当てたIPv6にも当てはまります。

これは、物理マシンのifconfigです。

eth0      Link encap:Ethernet  HWaddr d4:3d:7e:ec:e0:04
          inet addr:144.76.195.232  Bcast:144.76.195.255  Mask:255.255.255.224
          inet6 addr: 2a01:4f8:200:71e7::2/64 Scope:Global
          inet6 addr: fe80::d63d:7eff:feec:e004/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:217895 errors:0 dropped:0 overruns:0 frame:0
          TX packets:16779 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:322481419 (307.5 MiB)  TX bytes:1672628 (1.5 MiB)

venet0    Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
          inet6 addr: fe80::1/128 Scope:Link
          UP BROADCAST POINTOPOINT RUNNING NOARP  MTU:1500  Metric:1
          RX packets:12 errors:0 dropped:0 overruns:0 frame:0
          TX packets:12 errors:0 dropped:3 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:1108 (1.0 KiB)  TX bytes:1108 (1.0 KiB)

これはOpenVZコンテナのifconfigです:

# ifconfig

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
          inet6 addr: 2a01:4f8:200:71e7::3/64 Scope:Global
          UP BROADCAST POINTOPOINT RUNNING NOARP  MTU:1500  Metric:1
          RX packets:12 errors:0 dropped:0 overruns:0 frame:0
          TX packets:12 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:1108 (1.0 KiB)  TX bytes:1108 (1.0 KiB)

venet0:0  Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
          inet addr:144.76.195.252  P-t-P:144.76.195.252  Bcast:144.76.195.252  Mask:255.255.255.255
          UP BROADCAST POINTOPOINT RUNNING NOARP  MTU:1500  Metric:1

外の世界からコンテナにアクセスできるようにするには、何をする必要がありますか?何を忘れていたのでしょうか?

ありがとう。

3
Vojtěch

ルーティングまたはブリッジングに関する決定は、技術的なものよりも機能的です。長所と短所があり、その選択があります。インターフェースが1つしかない場合はルーティングを好みます。これにより、単一の制御ポイント(HN)を使用できるようになり、デフォルトではインターネットからアクセスできないコンテナーにiptablesまたは追加の保護を配置できるためです。ルーティングを希望する場合は、net.ipv4.conf.all.forwarding = 1の値を確認する必要があります(コマンドsysctl -a | grep forwardを実行します)。そうでない場合は、echo 1>/proc/sys/net/ipv4/ip_forward; (ただし、再起動後は存続しません)または行を追加します

net.ipv4.conf.all.forwarding = 1

/etc/sysctl.confで、後でsysctl-Pを実行します。通常、ブリッジではなく1つのルートがNATを許可するため、IP4アドレスが不足している場合に役立ちますが、これは当てはまりません。少なくとも2つのルートがあります。

一方、ブリッジングはHNとVPSを等しくします。あなたは十分なIPアドレスを持っているように見えるので、あなたはインターネット上で直接これを行うことができます。次に、各コンテナ(たとえば、各コンテナとホストのiptables)に追加の保護が必要になる場合があります。

(ルーティング)問題に戻るには、ip_forwardを1に設定しても問題が解決しない場合。パケットが失われたときに、HNとVPSの両方からarp -an(この時点で解決するかどうかを確認)とtcpdumpを試して、詳細を取得しますか?レイヤー2または3で?

IPv6については、本当にわかりません:/

4
philippe