VMB から ping 10.0.3.8 (LXC コンテナの IP) を実行しようとしましたが、機能しませんでした。何かアイデアはありますか?
私がやりたいことの説明は次のとおりです: (赤い矢印)
青い矢印は、ping が正しく機能していることを意味します。赤い矢印は、問題があることを意味します。VMB (192.168.1.7) から 10.0.3.8 に ping を試みると、次のメッセージがブロックされます: ping 10.0.3.8 PING 10.0.3.8 (10.0.3.8) 56(84) バイトのデータ。--- 10.0.3.8 の ping 統計 --- 68 パケットが送信され、0 パケットが受信され、100% のパケット損失、時間 67214 ミリ秒 –
どうもありがとう。
よろしくお願いします。
答え1
Linux コンテナを作成すると、コンテナは独自のネットワーク スペース内に存在します。そのため、IP アドレスは異なって見えます。仮想マシンには 192.168.1.x が割り当てられますが、Linux コンテナには 10.0.3.x が割り当てられます。
この問題を解決する 1 つの方法は、Linux コンテナー上に専用の仮想ネットワーク カードを作成し、192.168.1.x ネットワークからアドレスを取得することです。
以下は基本的な手順ですが、詳細な手順と背景は、このBonsai Frameworkの記事から得られます。。
ホスト上に永続的なmacvlanを作成する
/etc/network/interfaces
ホストのファイルの末尾に追加します。# Creates a macvlan interface called macvlan0 without an IP address iface mvlan0 inet manual pre-up ip link add mvlan0 link eth0 address 8a:38:2a:cc:d7:aa type macvlan mode bridge post-down ip link del macvlan0 auto mvlan0
変更を有効にするには、システムを再起動します。mvlan0
でネットワーク デバイスを表示すると、が表示されますifconfig -a
。
にある構成ファイルを変更して、コンテナをmacvlan
ホストに接続します/var/lib/lxc/[container]/config
。
新しいネットワークカードに追加するエントリは、
# macvlan for external IP lxc.network.type = macvlan lxc.network.macvlan.mode = bridge lxc.network.flags = up lxc.network.link = mvlan0 lxc.network.hwaddr = 00:16:3e:8d:4f:51 lxc.network.name = eth0
hwaddrについては、次のような無料ウェブサイトから、ローカルで管理される一意のユニキャストMACアドレスを生成します。ヘリオン。
最後に、コンテナ内のインターフェース ファイルを調整して、静的にバインドするか、必要に応じて動的にバインドします。
私の場合は、192.168.0.1 から 192.168.0.20 が動的に割り当てられないように自宅のルーターを調整し、LXC で静的に使用します。
そこでコンテナのインターフェースファイルを次のように変更します。
auto eth0
iface eth0 inet static
address 192.168.0.12
gateway 192.168.0.1
netmask 255.255.255.0
auto eth1
iface eth1 inet dhcp
Linux コンテナを再起動します。