第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] ─ネットワーク 」が参考になるでしょう。