CentOS 7: Bridgeインターフェースの設定

bridgeインターフェースの設定方法について記載します。

bridgeを用いることで、KVMの仮想マシンをホストマシンと同じネットワークに接続させることができます。

1 bridge-utilsのインストール

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

$ sudo yum install -y bridge-utils

2 bridge作成前の状態

bridge作成前の状態は以下のとおりです。

$ ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.11.92  netmask 255.255.255.0  broadcast 192.168.11.255
        inet6 fe80::5054:ff:fe86:9b9a  prefixlen 64  scopeid 0x20<link>
        ether 52:54:00:86:9b:9a  txqueuelen 1000  (Ethernet)
        RX packets 106  bytes 13910 (13.5 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 101  bytes 13430 (13.1 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 0  (Local Loopback)
        RX packets 4  bytes 340 (340.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 4  bytes 340 (340.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

3 bridgeの作成

bridge作成前のifcfg-eth0は以下のとおりです。

$ cat /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE="Ethernet"
BOOTPROTO="dhcp"
DEFROUTE="yes"
PEERDNS="yes"
PEERROUTES="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_PEERDNS="yes"
IPV6_PEERROUTES="yes"
IPV6_FAILURE_FATAL="no"
NAME="eth0"
UUID="e7765049-e76f-4dc5-8347-db5d4c7b0c8d"
DEVICE="eth0"
ONBOOT="yes"

ifcfg-eth0をコピーして以下の変更を加えたifcfg-br0を作成します。

  • TYPEをBridgeにします。
  • UUIDを削除します。
  • NAMEとDEVICEをbr0にします。
$ cat /etc/sysconfig/network-scripts/ifcfg-br0
TYPE="Bridge"
BOOTPROTO="dhcp"
DEFROUTE="yes"
PEERDNS="yes"
PEERROUTES="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_PEERDNS="yes"
IPV6_PEERROUTES="yes"
IPV6_FAILURE_FATAL="no"
NAME="br0"
DEVICE="br0"
ONBOOT="yes"

ifcfg-eth0を作成します。

  • HWADDRでMACアドレスを指定します。
  • BRIDGEでbr0を指定します。
$ cat /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE="Ethernet"
HWADDR="52:54:00:86:9b:9a"
NAME="eth0"
DEVICE="eth0"
ONBOOT="yes"
BRIDGE="br0"

networkサービスを再起動します。

$ sudo systemct restart network

4 bridge作成後の状態

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

$ ifconfig
br0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.11.92  netmask 255.255.255.0  broadcast 192.168.11.255
        inet6 fe80::5054:ff:fe86:9b9a  prefixlen 64  scopeid 0x20<link>
        ether 52:54:00:86:9b:9a  txqueuelen 0  (Ethernet)
        RX packets 35  bytes 2924 (2.8 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 45  bytes 6341 (6.1 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        ether 52:54:00:86:9b:9a  txqueuelen 1000  (Ethernet)
        RX packets 796  bytes 75769 (73.9 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 502  bytes 79165 (77.3 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 0  (Local Loopback)
        RX packets 12  bytes 1020 (1020.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 12  bytes 1020 (1020.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0