第521回ではLXD 3.
- ネットワークインターフェースの追加
- 固定IPアドレスの指定
- 標準のインターフェースeth0のカスタマイズ
- 特定のアドレス・
ポートにホストの外からアクセスする方法
LXDにおけるネットワークの設定
現在のLXD 3.
- ※1
- Ubuntu 18.
04 LTSであればLXD 3. 0をかんたんにインストールできます。16. 04だと2. 0系がインストールされますので、3. 0系を使いたい場合はxenial-backportsを指定してインストールしてください。
lxc network
コマンド:ホストとコンテナ間の橋渡しを行うブリッジインターフェースの設定lxc config device
コマンド:個々のコンテナの中で作られるネットワークインターフェースの設定
ブリッジインターフェースはホスト上でlxd init
を実行したときにも設定されます。特に設定を変更していないなら
$ lxc network show lxdbr0 config: ipv4.address: 10.154.195.1/24 ipv4.nat: "true" ipv6.address: fd42:284:93c1:a178::1/64 ipv6.nat: "true" description: "" name: lxdbr0 type: bridge used_by: [] managed: true status: Created locations: - none $ ip addr show dev lxdbr0 3: lxdbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000 link/ether fe:53:81:5f:d5:f3 brd ff:ff:ff:ff:ff:ff inet 10.154.195.1/24 scope global lxdbr0 valid_lft forever preferred_lft forever inet6 fd42:284:93c1:a178::1/64 scope global valid_lft forever preferred_lft forever inet6 fe80::284f:6aff:fef6:c174/64 scope link valid_lft forever preferred_lft forever
上記lxdbr0では,
Ubuntu 16.lxc network
コマンドを使うことで,
個々のコンテナインスタンスにおけるネットワークインターフェースはlxc config device
コマンドによって追加・lxc config
は未設定の状態となり,lxc profile
の値が継承されます。
たとえば何も設定せずに
コンテナの作成・起動 $ lxc launch ubuntu:18.04 container デバイス設定は空の状態 $ lxc config device show container {} コンテナの中にはeth0が存在する $ lxc exec container ip addr show eth0 6: eth0@if7: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000 link/ether 00:16:3e:e5:c5:37 brd ff:ff:ff:ff:ff:ff link-netnsid 0 inet 10.154.195.67/24 brd 10.154.195.255 scope global dynamic eth0 valid_lft 3553sec preferred_lft 3553sec inet6 fd42:284:93c1:a178:216:3eff:fee5:c537/64 scope global dynamic mngtmpaddr noprefixroute valid_lft 3596sec preferred_lft 3596sec inet6 fe80::216:3eff:fee5:c537/64 scope link valid_lft forever preferred_lft forever
デバイス設定は空にも関わらずeth0インターフェースが作られています。これは作成したコンテナには自動的にdefaultプロファイルが適用され,
$ lxc profile show default config: {} description: "" devices: eth0: name: eth0 nictype: bridged parent: lxdbr0 type: nic root: path: / pool: default type: disk name: default used_by: []
上記のプロファイルの設定は,lxc config device show
」lxc config show
」--expanded
」
LXDにおけるプロファイルの設定はまた別の機会に譲るとして,
- ※2
- コンテナで使われているネットワークやその名前空間については,
本サイトで連載されている 「LXCで学ぶコンテナ入門」 の 「Linuxカーネルのコンテナ機能 [5] ─ネットワーク 」が参考になるでしょう。