ブリッジインターフェースで固定IPアドレスを設定する
コンテナがUbuntu 18.
- ※5
- Ubuntu系のコンテナは基本的にCloud-Initを使う部分は同じですが,
バージョンによってnetplan経由だったり従来の/etc/ network/ interfaces経由だったりします。Ubuntu以外のコンテナについては各ディストリビューションの設定に依存します。
たとえばIPv4のlease情報は次のように確認できます。
$ lxc exec container -- sh -c 'cat /run/systemd/netif/leases/*' # This is private data. Do not parse. ADDRESS=10.154.195.28 NETMASK=255.255.255.0 ROUTER=10.154.195.1 SERVER_ADDRESS=10.154.195.1 NEXT_SERVER=10.154.195.1 BROADCAST=10.154.195.255 T1=1800 T2=3150 LIFETIME=3600 DNS=10.154.195.1 DOMAINNAME=lxd HOSTNAME=container CLIENTID=ff8210b60000020000ab11cd753f09779ead4b
単にホストからコンテナのIPアドレスを知りたければlxc list
コマンドを使うと良いでしょう。
$ lxc list container +-----------+---------+----------------------+----------------------------------------------+------------+-----------+ | NAME | STATE | IPV4 | IPV6 | TYPE | SNAPSHOTS | +-----------+---------+----------------------+----------------------------------------------+------------+-----------+ | container | RUNNING | 10.154.195.28 (eth0) | fd42:284:93c1:a178:216:3eff:fea7:d454 (eth0) | PERSISTENT | 0 | +-----------+---------+----------------------+----------------------------------------------+------------+-----------+ JSONなど機械読み取り可能なフォーマットが良い場合は 「--format」オプションを指定する $ lxc list --format=json container (略)
コンテナの用途によっては静的にIPアドレスを割り当てたい場合もあるでしょう。次のようにbridgedなネットワークインターフェースデバイスを作成し,
まずbridgedなネットワークインターフェースデバイスを作成します。LXDには標準でlxdbr0ネットワークが作成されていますので,
$ lxc network attach lxdbr0 container eth1
次にこのインターフェースに対してIPv4アドレス
アドレスの割り当て $ lxc config device set container eth1 ipv4.address 10.154.195.100 デバイス情報の確認 $ lxc config device show container eth1: ipv4.address: 10.154.195.100 nictype: bridged parent: lxdbr0 type: nic
「ipv4.
IPアドレスの割り当て $ lxc exec container dhclient eth1 コンテナの状態の確認 $ lxc list container +-----------+---------+-----------------------+----------------------------------------------+------------+-----------+ | NAME | STATE | IPV4 | IPV6 | TYPE | SNAPSHOTS | +-----------+---------+-----------------------+----------------------------------------------+------------+-----------+ | container | RUNNING | 10.154.195.28 (eth0) | fd42:284:93c1:a178:216:3eff:fea7:d454 (eth0) | PERSISTENT | 0 | | | | 10.154.195.100 (eth1) | fd42:284:93c1:a178:216:3eff:fe37:425f (eth1) | | | +-----------+---------+-----------------------+----------------------------------------------+------------+-----------+
うまくアドレスが割り当たっているようであれば,lxc network list-leases
で確認できます。
$ lxc network list-leases lxdbr0 +-----------+-------------------+----------------+---------+ | HOSTNAME | MAC ADDRESS | IP ADDRESS | TYPE | +-----------+-------------------+----------------+---------+ | container | 00:16:3e:37:42:5f | 10.154.195.100 | DYNAMIC | +-----------+-------------------+----------------+---------+
ちなみに
- ※6
- ステートレスDHCPv6/
SLAACの場合, Modified EUI-64なアドレスが割り当てられます。
なお,lxd init
時に設定しています。特に指定せずにすべて初期値どおりに設定していたとしたら,
$ lxc config set lxdbr0 ipv4.dhcp.ranges \ 10.154.195.10-10.154.195.10.20,10.154.195.110-10.154.195.10.120
連続する範囲をハイフンで,