最近、自分で物理サーバーを購入し、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
外の世界からコンテナにアクセスできるようにするには、何をする必要がありますか?何を忘れていたのでしょうか?
ありがとう。
ルーティングまたはブリッジングに関する決定は、技術的なものよりも機能的です。長所と短所があり、その選択があります。インターフェースが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については、本当にわかりません:/