私はArch Linuxワークステーションで学習経験としてLXCを使用しています。 ArchwikiのLXCページのガイドに従い、コンテナに静的IPを設定しました。私のネットワーク構成は次のとおりです。
/etc/netctl/lxcbridge
---------------------
Description="LXC Bridge"
Interface=br0
Connection=bridge
BindsToInterfaces=(enp1s0)
IP=static
Address=('192.168.0.20/24')
Gateway='192.168.0.1'
DNS=('192.168.0.1')
そしてコンテナの構成は次のとおりです。
/var/lib/lxc/testcontainer/config
---------------------------------
lxc.network.type = veth
lxc.network.link = br0
lxc.network.ipv4 = 192.168.0.198/24
ただし、lxc-ls -f
それに基づいて追加のIPアドレスを取得します。
NAME STATE AUTOSTART GROUPS IPV4 IPV6
testcontainer RUNNING 0 - 192.168.0.198, 192.168.0.220 -
私はほしいだけです192.168.0.198
。なぜ2番目のアイテムを割り当てるのか分かりません。
答え1
それで、もっと調査した後、なぜこれが起こるのかを考え出しました。デフォルトのUbuntuテンプレートとDebianテンプレートを使用してコンテナを作成し、DHCPを使用してルータからIPを要求するようにネットワークを設定しました。したがって、最初はlxc.container.configを使用して静的IPを設定し、コンテナの起動時に割り当てられたセカンダリIPをルーター(または保持しているDHCPサーバー)に照会します。
これを防ぐ最も論理的な方法は、おそらくコンテナ内に固定IPを割り当てることです。したがって、Debianベースのテンプレート編集では次のようになります/etc/network/interfaces
。
auto etho0
iface etho0 inet static
address 192.168.0.15
netmask 255.255.255.0
gateway 192.168.0.1
次に、lxc設定からipv4行を削除します/var/lib/lxc/testcontainer/config
。
lxc.network.type = veth
lxc.network.link = br0
もう1つの方法は、ホストにipv4行だけを残してIPを設定し、/var/lib/lxc/testcontainer/config
インターフェイスを手動で設定してコンテナにインターフェイスに触れないように明示的に指示することです。
auto eth0
iface eth0 inet manual
明らかに、2番目のアプローチは、ホストが一時停止してから再起動すると、いくつかの問題があります。最初の方法を使用するのが最善です。