CentOS7でKVM(仮想環境)を構築② ネットワークブリッジ設定編


CentOS7でKVM(仮想環境)を構築① インストール編( https://qiita.com/okayadokari/items/df3e266f5a7bb135afc1 )の状態では下記の構成になっています。

# nmcli device
DEVICE      TYPE      STATE      CONNECTION
em1         ethernet  connected  em1
virbr0      bridge    connected  virbr0
lo          loopback  unmanaged  --
virbr0-nic  tun       unmanaged  --

# brctl show
bridge name     bridge id               STP enabled     interfaces
virbr0          8000.5254006dd5fa       yes             virbr0-nic
# ip a
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: em1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 34:17:eb:c1:91:2c brd ff:ff:ff:ff:ff:ff
    inet 192.168.100.100/24 brd 192.168.100.255 scope global noprefixroute em1
       valid_lft forever preferred_lft forever
    inet6 2001:268:c0cc:c9cf:a27a:7546:dfc3:21ed/64 scope global noprefixroute dynamic
       valid_lft 7079sec preferred_lft 3479sec
    inet6 fe80::2f36:6dab:4f5b:3214/64 scope link noprefixroute
       valid_lft forever preferred_lft forever
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
    link/ether 52:54:00:6d:d5:fa brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
       valid_lft forever preferred_lft forever
4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN group default qlen 1000
    link/ether 52:54:00:6d:d5:fa brd ff:ff:ff:ff:ff:ff


少しわかりづらいので、絵にしてみます。まだ仮想マシンはありませんが、192.168.122.0/24 → 192.168.100.100にNATする形になります。


これでは不便なため、192.168.100.0を仮想マシンに割り当てられるようブリッジを再構成します。


新ブリッジvirbr1を接続名virbr1で作成します。con-nameを指定しないとデフォルトでbridge-という名前が付与されます。

# nmcli con add type bridge ifname virbr1 con-name virbr1

# brctl show
DEVICE      TYPE      STATE      CONNECTION         
em1         ethernet  connected  Wired connection 1 
virbr0      bridge    connected  virbr0             
virbr1      bridge    connected  virbr1             
lo          loopback  unmanaged  --                 
virbr0-nic  tun       unmanaged  --                 


STPを無効化します。

# nmcli con mod virbr1 bridge.stp no


virbr1にIPアドレスなどを付与します。

# nmcli con modify virbr1 ipv4.method manual ipv4.addresses "192.168.100.100/24" ipv4.gateway "192.168.100.1"  ipv4.dns "192.168.100.1"


virbr1のスレーブに物理NICem1virbr1-em1として接続します。

# nmcli con add type bridge-slave ifname em1 master virbr1 con-name virbr1-em1


# brctl show
DEVICE      TYPE      STATE      CONNECTION         
em1         ethernet  connected  Wired connection 1 
virbr0      bridge    connected  virbr0             
virbr1      bridge    connected  virbr1             
lo          loopback  unmanaged  --                 
virbr0-nic  tun       unmanaged  --

#nmcli device
bridge name bridge id       STP enabled interfaces
virbr0      8000.5254006dd5fa   yes     virbr0-nic
virbr1      8000.000000000000   no                       


物理NIC"em1"を接続名"em1"から切断します。これにより前で接続した、virbr1のみに接続されます。

# con del em1 ; reboot


# brctl show
DEVICE      TYPE      STATE      CONNECTION 
virbr1      bridge    connected  virbr1     
virbr0      bridge    connected  virbr0     
em1         ethernet  connected  virbr1-em1 
lo          loopback  unmanaged  --         
virbr0-nic  tun       unmanaged  --    

#nmcli device
bridge name bridge id       STP enabled interfaces
virbr0      8000.5254006dd5fa   yes     virbr0-nic
virbr1      8000.3417ebc1912c   no      em1


# ip a
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: em1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master virbr1 state UP group default qlen 1000
    link/ether 34:17:eb:c1:91:2c brd ff:ff:ff:ff:ff:ff
3: virbr1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 34:17:eb:c1:91:2c brd ff:ff:ff:ff:ff:ff
    inet 192.168.100.100/24 brd 192.168.100.255 scope global noprefixroute virbr1
       valid_lft forever preferred_lft forever
    inet6 2001:268:c0cc:c9cf:1d8e:7248:42c:99c5/64 scope global noprefixroute dynamic 
       valid_lft 7164sec preferred_lft 3564sec
    inet6 fe80::2ca6:74b8:2bf3:6c0c/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
4: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
    link/ether 52:54:00:6d:d5:fa brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
       valid_lft forever preferred_lft forever
5: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN group default qlen 1000
    link/ether 52:54:00:6d:d5:fa brd ff:ff:ff:ff:ff:ff


最後に不要になったvirbr0を無効化します。すっきりしました。

# virsh net-destroy default
# virsh net-autostart default --disable

# virsh net-list --all
 Name                 State      Autostart     Persistent
----------------------------------------------------------
 default              inactive   no            yes

# nmcli device
DEVICE  TYPE      STATE      CONNECTION
virbr1  bridge    connected  virbr1
em1     ethernet  connected  virbr1-em1
lo      loopback  unmanaged  --

# ip a
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: em1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master virbr1 state UP group default qlen 1000
    link/ether 34:17:eb:c1:91:2c brd ff:ff:ff:ff:ff:ff
3: virbr1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 34:17:eb:c1:91:2c brd ff:ff:ff:ff:ff:ff
    inet 192.168.100.100/24 brd 192.168.100.255 scope global noprefixroute virbr1
       valid_lft forever preferred_lft forever
    inet6 2001:268:c0cc:c9cf:1d8e:7248:42c:99c5/64 scope global noprefixroute dynamic
       valid_lft 6997sec preferred_lft 3397sec
    inet6 fe80::2ca6:74b8:2bf3:6c0c/64 scope link noprefixroute
       valid_lft forever preferred_lft forever


# nmcli
virbr1: connected to virbr1
        "virbr1"
        bridge, 34:17:EB:C1:91:2C, sw, mtu 1500
        ip4 default, ip6 default
        inet4 192.168.100.100/24
        route4 192.168.100.0/24
        route4 0.0.0.0/0
        inet6 2001:268:c0cc:c9cf:1d8e:7248:42c:99c5/64
        inet6 fe80::2ca6:74b8:2bf3:6c0c/64
        route6 fe80::/64
        route6 2001:268:c0cc:c9cf::/64
        route6 ::/0
        route6 2001:268:c0cc:c9cf:d016:b45a:d6e9:2/128
        route6 ff00::/8

em1: connected to virbr1-em1
        "Intel I217-LM"
        ethernet (e1000e), 34:17:EB:C1:91:2C, hw, mtu 1500
        master virbr1
        route6 ff00::/8

lo: unmanaged
        "lo"
        loopback (unknown), 00:00:00:00:00:00, sw, mtu 65536

DNS configuration:
        servers: 192.168.100.1
        interface: virbr1

        servers: fe80::d216:b4ff:fe5a:d6e9
        interface: virbr1


絵にすると下図のようになります。