Fedora 27: Bridgeインターフェースの設定

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

1 Bridgeインターフェース作成後の状態

Bridgeインターフェース作成前の状態は以下の通りです。

/usr/sbin/ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 100
0
    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 fq_codel state UP group default
qlen 1000
    link/ether 52:54:00:dd:98:9d brd ff:ff:ff:ff:ff:ff
    inet 192.168.11.95/24 brd 192.168.11.255 scope global dynamic ens3
       valid_lft 43189sec preferred_lft 43189sec
    inet6 fe80::a7b6:c13f:84b6:ec67/64 scope link
       valid_lft forever preferred_lft forever
    inet6 fe80::d7ae:62f6:1d2d:8926/64 scope link tentative dadfailed
       valid_lft forever preferred_lft forever

2 Bridgeインターフェースの作成

次のスクリプトはbridgeインターフェースを作成します。NIC_NAMEをお使いの環境のネットワークインターフェース名に変更してください。

#!/bin/sh

set -e

NIC_NAME=ens3
NIC_MACADDR=$(/usr/sbin/ip a s ${NIC_NAME} | \
                 grep "link/ether" | awk '{ print $2 }')

sudo dnf install -y bridge-utils

cat <<EOF | sudo tee /etc/sysconfig/network-scripts/ifcfg-${NIC_NAME}
TYPE="Ethernet"
NIC_MACADDR="${NIC_MACADDR}"
NAME="${NIC_NAME}"
DEVICE="${NIC_NAME}"
ONBOOT="yes"
BRIDGE="br0"
EOF

cat <<EOF | sudo tee /etc/sysconfig/network-scripts/ifcfg-br0
TYPE="Bridge"
BOOTPROTO="dhcp"
DEFROUTE="yes"
PEERDNS="yes"
PEERROUTES="yes"
NAME="br0"
DEVICE="br0"
ONBOOT="yes"
EOF

sudo systemctl restart network

3 Bridgeインターフェース作成後の状態

Bridgeインターフェース作成後の状態は以下の通りです。

            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 fq_codel master br0 state UP group default qlen 1000
    link/ether 52:54:00:dd:98:9d 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:dd:98:9d brd ff:ff:ff:ff:ff:ff
    inet 192.168.11.95/24 brd 192.168.11.255 scope global dynamic br0
       valid_lft 43194sec preferred_lft 43194sec
    inet6 fe80::5054:ff:fedd:989d/64 scope link
       valid_lft forever preferred_lft forever