Ubuntu
lxc
lxd

LXDでブリッジ接続する方法

More than 3 years have passed since last update.


はじめに

LXDでは、LXCと同様デフォルトではlxcbr0というインターフェースが参照され、ゲスト(コンテナ)側にはDHCPで10.0.3.xというIPアドレスが割り当てられます。

LXDでブリッジ接続を利用したい(物理NICと同じセグメントのIPアドレスを利用したい、グローバルIPアドレスを利用したい)場合は、以下の設定を行うことで利用可能となります。


手順


  • 下記はUbuntu 14.04 LTSの場合の設定例となります。

  • LXDは事前にインストール済みであることとします。


ブリッジインターフェースを追加する

/etc/network/interfaces を以下の通り設定します。IPアドレス、サブネット等は環境に合わせて適宜変更します。

auto lo

iface lo inet loopback

auto p1p1
iface p1p1 inet manual

auto br0
iface br0 inet static
address 192.168.1.100
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.254
dns-nameservers 8.8.8.8 8.8.4.4
bridge_ports p1p1
bridge_stp off
bridge_fd 0
bridge_maxwait 0


lxcのprofileを変更します。

以下のコマンドを実行すると、登録されているprofileを確認することができます。

# lxc profile list

default
migratable

今回は、defaultを変更します。デフォルトのプロファイルですので、これを変更することで、基本的には全てのコンテナがブリッジ接続になります。

# lxc profile edit default

上記コマンドを実行するとviが起動しますので、以下「変更後」のとおり変更します。(parentをlxcbr0→br0に変更します)


変更前

name: default

config: {}
devices:
eth0:
nictype: bridged
parent: lxcbr0
type: nic


変更後

name: default

config: {}
devices:
eth0:
nictype: bridged
parent: br0
type: nic


結果


変更前

# lxc list

+-------------+---------+-----------+------+-----------+-----------+
| NAME | STATE | IPV4 | IPV6 | EPHEMERAL | SNAPSHOTS |
+-------------+---------+-----------+------+-----------+-----------+
| centos-test | RUNNING | 10.0.3.54 | | NO | 0 |
+-------------+---------+-----------+------+-----------+-----------+


変更後

ブリッジ側(物理NIC側)にDHCPサーバ(ブロードバンドルーター等)が存在する場合は、そのIPアドレスが割り当てられます。

ゲストに対して固定IPを割り当てたい場合は、ゲスト側で通常のLinux(CentOS,Ubuntu等)と同じ要領でネットワーク設定を行います。

# lxc list

+-------------+---------+-------------+------+-----------+-----------+
| NAME | STATE | IPV4 | IPV6 | EPHEMERAL | SNAPSHOTS |
+-------------+---------+-------------+------+-----------+-----------+
| centos-test | RUNNING | 192.168.1.6 | | NO | 0 |
+-------------+---------+-------------+------+-----------+-----------+