KaliLinux 2017.1: bridgeインターフェースの設定

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

1 bridge-utilsのインストール

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

$ sudo apt install -y bridge-utils

2 bridge作成前の状態

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

$ ip a s
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
group default qlen 1
    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: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast
state UP group default qlen 1000
    link/ether 52:54:00:51:d5:01 brd ff:ff:ff:ff:ff:ff
    inet 192.168.11.87/24 brd 192.168.11.255 scope global dynamic eth0
       valid_lft 42567sec preferred_lft 42567sec
    inet6 fe80::5054:ff:fe51:d501/64 scope link
       valid_lft forever preferred_lft forever

3 bridgeの作成

eth0の設定を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 eth0
      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 eth0
      bridge_stp off
      bridge_maxwait 0

4 bridge作成後の状態

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

$ ip a s
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
group default qlen 1
    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: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast
master br0 state UP group default qlen 1000
    link/ether 52:54:00:51:d5:01 brd ff:ff:ff:ff:ff:ff
3: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state
UP group default qlen 1000
    link/ether 52:54:00:51:d5:01 brd ff:ff:ff:ff:ff:ff
    inet 192.168.11.87/24 brd 192.168.11.255 scope global br0
       valid_lft forever preferred_lft forever
    inet6 fe80::5054:ff:fe51:d501/64 scope link
       valid_lft forever preferred_lft forever