LXCコンテナのDHCPを設定する

LXCコンテナのDHCPを設定する

ネットワーク アクセスが必要な lxc コンテナーがいくつかあります。現時点では、関連する設定ファイルで次のように IP アドレスを手動で割り当てています。

lxc.network.type = veth
lxc.network.flags = up
lxc.network.name = eth0
lxc.network.link = br0 
lxc.network.ipv4 = 192.168.1.6/24                                                              
lxc.network.ipv4.gateway = 192.168.1.1

これは機能しますが、拡張性がなく、ルーターの DHCP 割り当てと競合する可能性があります。lxc.network.ipv4 行を省略してルーターの DHCP を使用しようとしましたが (他のオンラインの説明どおり)、コンテナーは起動しますが、dhcpcd はキャリアを報告しません。lxc-ls --fancy でも、コンテナーに IP アドレスがあることは表示されません。bride は起動しており、構成ファイルで lxc.network.link が設定されています。

コンテナで DHCP を使用するにはどうすればいいですか? ルーターの DHCP を使用できますか、それともホスト上でサーバーを実行する必要がありますか? コンテナの中には、外部からアクセスできる必要があるものもあれば、他のコンテナ/ホストと通信するだけでよいものもあります。

私は Arch Linux を実行していますが、オンラインのヘルプのほとんどは Ubuntu 固有のようです。

答え1

コンテナ内に netctl と dhcpcd がインストールされていることを確認してから (pacman -Q netctl dhcpcd)、コンテナ内で以下を実行します。

cat > /etc/netctl/eth0
Connection=ethernet
IP=dhcp
Interface=eth0

CTRL-D を押してファイルを書き込みます。次に、次のコマンドを実行してプロファイルを有効にします。

netctl enable eth0

最後にコンテナを再起動すると、DHCP によって割り当てられた IP アドレスが取得されます。

答え2

cat <<\EOF >> /etc/netctl/eth
Connection=ethernet
IP=dhcp
Interface=eth0
EOF

これがファイルを作成するより良い方法だと思いました。

関連情報