はじめに
LXDで簡単にコンテナを追加していくは便利ですが、コンテナがたくさんあると、ネットワークの設定もする必要がありますよね。取り合ず作ってデフォルトでという運用ではダメな時もたくさん出てきます。
ブリッジで固定IPを振る
LXDで標準に入っているlxdbr0
でもいいんですが、とりあえずブリッジを一つ作りましょう。lxdbr30
という名前でip = 192.168.30.1/24
で、DHCPとして192.168.30.2-192.168.30.64
を割り当てられるブリッジを作ります。
$ lxc network create lxdbr30 \
ipv4.address=192.168.30.1/24 \
ipv4.dhcp.ranges=192.168.30.2-192.168.30.64
次に、コンテナと今作成したブリッジを接続します。ここではコンテナをinstanceという名前とします。インタフェースeth1にip 192.168.30.2を割り当てます。
# コンテナにブリッジを接続する
# lxc network attach ブリッジ名 コンテナ名 インタフェース名
$ lxc network attach lxdbr30 instance eth1
# 接続したインタフェースにIPをdhcpで設定する。
# lxc config device set コンテナ名 インタフェース名 ipv4.address IPアドレス
$ lxc config device set instance eth1 ipv4.address 192.168.30.2
# デバイスが増えたのでコンテナを再起動
$ lxc restart instance
# コンテナのdhclientを実行
$ lxc exec instance dhclient eth1
$ lxc list
+-----------------+---------+---------------------+-----------------------------------------------+-----------+-----------+
| NAME | STATE | IPV4 | IPV6 | TYPE | SNAPSHOTS |
+-----------------+---------+---------------------+-----------------------------------------------+-----------+-----------+
| instance | RUNNING | 192.168.30.2 (eth1) | fd42:a84:4e0b:d83:216:3eff:fe21:59a0 (eth0) | CONTAINER | 0 |
| | | 10.121.3.160 (eth0) | fd42:1c17:95ff:839f:216:3eff:fed9:e128 (eth1) | | |
+-----------------+---------+---------------------+-----------------------------------------------+-----------+-----------+
# このままだと再起動時にIPが消えてしまうので、コンテナ内に設定ファイルを記述します。
# 記述方法はコンテナのOSによります。
# centos7なら/etc/sysconfig/network-scripts/ifcfg-eth0をifcfg-eth1にコピーしてdhcp clientの設定を書きます。
追加したネットワークを削除する場合は
# lxc network detach ブリッジ名 コンテナ名 インタフェース名
$ lxc network detach lxdbr30 instance eth1
コメント