Ubuntu 17.10: bridgeインターフェースの設定

bridgeインターフェースの設定方法について記載します。bridgeを用いることで、KVMの仮想マシンやLXDのコンテナをホストマシンと同じネットワークに接続させることができます。

1 bridge-utilsのインストール

bridge作成前にbridge-utilsパッケージをインストールしておきます。

$ sudo apt install -y bridge-utils

2 bridge作成前の状態

bridge作成前の状態は以下のとおりです。ens3の文字列はイーサデバイスによって変わります(eth0やp2p1等)。お使いの環境に合わせて以降は置き換えてください。

$ ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast
state UP group default qlen 1000
    link/ether 52:54:00:54:47:c6 brd ff:ff:ff:ff:ff:ff
    inet 192.168.11.86/24 brd 192.168.11.255 scope global dynamic ens3
       valid_lft 43195sec preferred_lft 43195sec
    inet6 fe80::d994:6724:e148:4e5a/64 scope link
       valid_lft forever preferred_lft forever

3 bridgeの作成

ens3の設定をbr0へ移動する形になります。/etc/network/interfacesで設定した後、システムを再起動します。

$ sudo reboot

3.1 DHCPを用いる場合

$ cat /etc/network/interfaces
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback
auto br0
iface br0 inet dhcp
      bridge_ports ens3
      bridge_stp off
      bridge_maxwait 0

3.2 IPアドレスを静的に割り当てる場合

$ cat /etc/network/interfaces
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback
auto br0
iface br0 inet static
      address 192.168.11.93
      netmask 255.255.255.0
      network 192.168.11.0
      broadcast 192.168.11.255
      gateway 192.168.11.1
      dns-nameservers 192.168.11.2 192.168.11.1
      dns-search hiroom2.com
      bridge_ports ens3
      bridge_stp off
      bridge_maxwait 0

4 bridge作成後の状態

ens3と同じMACアドレスを持つbr0が作成され、br0にIPアドレスが割り当てられます。

$ ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast
master br0 state UP group default qlen 1000
    link/ether 52:54:00:54:47:c6 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::5054:ff:fe54:47c6/64 scope link
       valid_lft forever preferred_lft forever
3: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state
UP group default qlen 1000
    link/ether 52:54:00:54:47:c6 brd ff:ff:ff:ff:ff:ff
    inet 192.168.11.86/24 brd 192.168.11.255 scope global br0
       valid_lft forever preferred_lft forever
    inet6 fe80::5054:ff:fe54:47c6/64 scope link
       valid_lft forever preferred_lft forever