まず、専用サーバーに特別なIPv6アドレスを割り当てます。1つだけです。:: 1/128アドレス。 しかし eth0にアドレスを割り当てることができます(例::: 2/128、:: 3/128など)。
今度はそのサーバーでLXCコンテナーを実行したいのですが、それらをファーストクラスの市民にし、独自のIPv6アドレスを持たせたいと思います。
IPv4を使用したLXCは正常に動作します。コンテナを起動して、そこから世界にpingを送信できます。 lxcbr0
というブリッジデバイスがあります。
正直なところ、どうすればいいのかわかりません。私が持っている特定のLXC設定で(「prefix」は割り当てられた、まあ、プレフィックスを表します):
lxc.network.ipv6 = prefix::3/128
lxc.network.ipv6.gateway = prefix::2 # iffy, not sure this is correct
ホストで、転送を使用するようにsysctlを構成しました。
net.ipv6.conf.default.forwarding = 1
net.ipv6.conf.eth0.forwarding = 1
今、私は道に迷っています。 I thinkブリッジにIPを割り当てる必要があります。プレフィックス:: 2/128を割り当てました。これは上記のLXC設定で使用します。 'インターフェイス':
iface lxcbr0 inet6 static
address prefix::2
netmask 128
# use arp proxy? Read that somewhere.
post-up /sbin/ip -6 neigh add proxy prefix::3 dev eth0 #container 1
post-up /sbin/ip -6 neigh add proxy prefix::4 dev eth0 #container 2
言うまでもなく、これは機能しません。コンテナを起動してログインできますが、ping6はできません。また、ホストからコンテナにpingを実行することもできません。ルーティングにビジネスがあることは知っています...?
現在の状態の出力:ホスト 'ip -6 a':
4: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000
inet6 2607:5300:60:714::1/128 scope global
valid_lft forever preferred_lft forever
inet6 fe80::ea40:f2ff:feed:106f/64 scope link
valid_lft forever preferred_lft forever
8: lxcbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500
inet6 2607:5300:60:714::2/128 scope global
valid_lft forever preferred_lft forever
inet6 fe80::b07b:e3ff:fe33:22e7/64 scope link
valid_lft forever preferred_lft forever
18: vethPVJQ6M: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000
inet6 fe80::fcb7:57ff:fe3c:bcd1/64 scope link
valid_lft forever preferred_lft forever
コンテナ 'ip -6 a':
20: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000
inet6 2607:5300:60:714::3/128 scope global
valid_lft forever preferred_lft forever
inet6 fe80::216:3eff:fe59:679f/64 scope link
valid_lft forever preferred_lft forever
ホスト 'ip -6 r':
2607:5300:60:714::1 dev eth0 proto kernel metric 256
2607:5300:60:714::2 dev lxcbr0 proto kernel metric 256
2607:5300:60:7ff:ff:ff:ff:ff dev eth0 metric 1024
fe80::/64 dev eth0 proto kernel metric 256
fe80::/64 dev lxcbr0 proto kernel metric 256
fe80::/64 dev vethPVJQ6M proto kernel metric 256
fe80::/64 dev vethWT7OPQ proto kernel metric 256
default via 2607:5300:60:7ff:ff:ff:ff:ff dev eth0 metric 1024
コンテナ 'ip -6 r':
2607:5300:60:714::2 dev eth0 metric 1024
2607:5300:60:714::3 dev eth0 proto kernel metric 256
fe80::/64 dev eth0 proto kernel metric 256
default via 2607:5300:60:714::2 dev eth0 metric 1024
ホストはUbuntu15.04、LXCバージョン1.1.2を実行します。
私はいくつかのポインタをいただければ幸いです!
あなたはここで多くの異なることを混同しているように私には思えます。まず、サーバーのイーサネットポートのネットマスクが実際には/ 128であるとは思えません。それは別のもの(おそらく/ 64)であり、他の多くの顧客と共有セグメントにいるのではないかと思います。
「ip-6a」コマンドの出力から判断すると、次のようになります。
4: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000
inet6 2607:5300:60:714::1/128 scope global
valid_lft forever preferred_lft forever
inet6 fe80::ea40:f2ff:feed:106f/64 scope link
valid_lft forever preferred_lft forever
8: lxcbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500
inet6 2607:5300:60:714::2/128 scope global
valid_lft forever preferred_lft forever
inet6 fe80::b07b:e3ff:fe33:22e7/64 scope link
valid_lft forever preferred_lft forever
18: vethPVJQ6M: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000
inet6 fe80::fcb7:57ff:fe3c:bcd1/64 scope link
valid_lft forever preferred_lft forever
インターフェイスの/ 128はエラーだと思います。プレフィックスは2607:5300:60:714 ::/64のようです(ほとんどの場合)。
それが正しいと仮定すると、次のようにインターフェイスファイルを設定する必要があります(必要に応じてIPv4を追加します)。
auto lxcbr0
iface lxcbr0 inet6 static
bridge_ports eth0
bridge_fd 0
address 2607:5300:60:714::1
net mask 64
gateway 2607:5300:60:7ff:ff:ff:ff:ff
注:デフォルトゲートウェイに到達するために2607:5300:60:7ff ::/64に到達する方法は明確ではありません。プロバイダーがネットワークの構成をどのように期待しているかを知ること、またはプロバイダーが提供するドキュメントを直接確認することは非常に役立ちます。ここからの最良の推測は、2607:5300:60:714 ::/64ネットワークが2607:5300:60:7ff ::/64と同じリンク上にあるということです。その2607:5300:60:7ff ::/64はプロバイダーのインフラストラクチャーに使用されます。 2607:5300:60:714:/ 64全体を取得するのか、それとも同じリンクで他の顧客と共有するのかは不明です。
その範囲内からアドレスを割り当てる自由があると仮定すると、実際に行う必要があるのは、コンテナーを同じlxcbr0インターフェースに接続し、各コンテナーのアドレスをそのブリッジインターフェースに割り当てることだけです。
繰り返しますが、これはあなたが提供したデータに基づく最良の推測です。プロバイダーの実際の構成を知らなければ、確実に判断することは不可能です。