LXC コンテナには 2 つの IP アドレスが割り当てられます。

LXC コンテナには 2 つの IP アドレスが割り当てられます。

私は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番目のアプローチは、ホストが一時停止してから再起動すると、いくつかの問題があります。最初の方法を使用するのが最善です。

おすすめ記事