手動でKVMのブリッジを無理やり作る

1 May 2024

手動でKVMのブリッジを無理やり作る

KVMで良くトラブルのはブリッジが旨く作れてないことが多い。そのんなときに自分は良く無理やり作っている。そこでここで書き記しておきたい。 まずnmcli deviceコマンドでネットワークデバイスの確認を行います。 物理インターフェースがenp7s0という名前で存在していて、コネクション名が有線接続 2ということ。デフォルトのブリッジvirbr0があることが確認できる。

[mity@sub3 / ]# nmcli device

DEVICE   TYPE    STATE     CONNECTION

enp7s0   ethernet   接続済み   有線接続 2

virbr0    bridge     接続済み   virbr0

lo      loopback   管理無し     --

virbr0-nic  tun      管理無し    --

[mity@sub3 / ]# 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: enp7s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000

link/ether 70:85:c2:69:67:9a brd ff:ff:ff:ff:ff:ff

inet 192.168.11.8/24 brd 192.168.11.255 scope global dynamic noprefixroute enp7s0

   valid_lft 171445sec preferred_lft 171445sec

inet6 2408:211:ba5:d600:2987:9797:d4e1:6fc0/64 scope global temporary dynamic 

   valid_lft 603456sec preferred_lft 84491sec

inet6 2408:211:ba5:d600:7c3c:6da0:398e:9929/64 scope global dynamic mngtmpaddr noprefixroute 

   valid_lft 2591953sec preferred_lft 604753sec

inet6 fe80::4050:8a3a:59aa:22a3/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:61:75:8c 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 fq_codel master virbr0 state DOWN group default qlen 1000

link/ether 52:54:00:61:75:8c brd ff:ff:ff:ff:ff:ff

nmcliによるブリッジ作成。現在ブリッジvirbr0のみ。

[mity@sub3 / ]# brctl show

bridge name   bridge id         STPenabled    interfaces

virbr0       8000.52540061758c  yes          virbr0-nic

デバイス名br0というブリッジをnmcli connection add typeコマンドで作成する。作成した後nmcli connection showコマンドで確認するとbridge-br0が追加されている。作成したbridge-br0のスパニングツリーの設定を無効にする。そしてbridge-br0のIPアドレスを先程調べたIPアドレス192.168.11.8/24に設定し、ゲートウェイ、DNSサーバの設定をする。

デバイス名br0というブリッジを作成

[mity@sub3 / ]# nmcli connection add type bridge ifname br0

接続 'bridge-br0' (ae86c45c-7740-4433-90f3-8e9f4354905b) が正常に追加されました。

接続情報の表示をすると、DEVICE名br0、接続名bridge-br0が追加されている。

[mity@sub3 / ]# nmcli connection show

NAME UUID TYPE DEVICE

bridge-br0 ae86c45c-7740-4433-90f3-8e9f4354905b bridge br0

virbr0 1244d4ca-0688-48ae-8bbf-bf199c197c1e bridge virbr0

有線接続 2 551e08aa-0ff8-3fe9-8455-25410e3180a7 ethernet enp7s0

有線接続 1 2a187211-8139-31bf-9912-a99cab8752c3 ethernet --

bridge-br0のスパニングツリーが有効になっている

[mity@sub3 / ]# nmcli connection show bridge-br0 | grep bridge.stp

bridge.stp: はい

bridge-br0のスパニングツリーを無効にする

[mity@sub3 / ]# nmcli connection modify bridge-br0 bridge.stp no

bridge-br0のスパニングツリーが無効になっている

[mity@sub3 / ]# nmcli connection show bridge-br0 | grep bridge.stp

bridge.stp: いいえ

bridge-br0のIPアドレス、ゲートウェイ、DNSサーバの設定する。

IPアドレスは先程調べた値を指定する。

[mity@sub3 / ]# nmcli connection modify bridge-br0 ipv4.method manual ipv4.addresses "192.168.11.8/24" ipv4.gateway "192.168.11.1" ipv4.dns 192.168.11.1

ブリッジbridge-br0に物理インターフェースenp7s0を追加する。もともとenp7s0が接続していた有線接続2は削除する。

ブリッジbridge-br0にデバイスenp7s0を接続タイプbridge-slaveとして追加する

[mity@sub3 / ]# nmcli connection add type bridge-slave ifname enp7s0 master bridge-br0

接続 'bridge-slave-enp7s0' (4686b212-a687-463f-ba8e-0f0d42bad827) が正常に追加されました

接続の一覧表示。bridge-br0が追加されています。

[mity@sub3 / ]# nmcli connection show

NAME UUID TYPE DEVICE bridge-br0 ae86c45c-7740-4433-90f3-8e9f4354905b bridge br0

virbr0 1244d4ca-0688-48ae-8bbf-bf199c197c1e bridge virbr0

有線接続 2 551e08aa-0ff8-3fe9-8455-25410e3180a7 ethernet enp7s0

不要になっ有線接続 2を削除します。

[mity@sub3 / ]# nmcli connection delete 有線接続\ 2

接続 '有線接続 2' (551e08aa-0ff8-3fe9-8455-25410e3180a7) が正常に削除されました。

bridge-slave-enp7s0という接続が出来ていて、enp7s0が接続されています。

[mity@sub3 / ]# nmcli connection show

NAME UUID TYPE DEVICE bridge-br0 ae86c45c-7740-4433-90f3-8e9f4354905b bridge br0

bridge-slave-enp7s0 4686b212-a687-463f-ba8e-0f0d42bad827 ethernet enp7s0

virbr0 1244d4ca-0688-48ae-8bbf-bf199c197c1e bridge virbr0

有線接続 1 2a187211-8139-31bf-9912-a99cab8752c3 ethernet --

作成できたことの確認。

[mity@sub3 / ]# nmcli device

DEVICE TYPE STATE CONNECTION
br0 bridge 接続済み bridge-br0

virbr0 bridge 接続済み virbr0

enp7s0 ethernet 接続済み bridge-slave-enp7s0

wlp6s0 wifi 切断済み --

enp0s31f6 ethernet 利用不可 --

lo loopback 管理無し --

virbr0-nic tun 管理無し --

[mity@sub3 / ]# 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: enp7s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master br0 state UP group default qlen 1000 link/ether 70:85:c2:69:67:9a brd ff:ff:ff:ff:ff:ff

3: enp0s31f6: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000 link/ether 70:85:c2:69:67:9c brd ff:ff:ff:ff:ff:ff

4: wlp6s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000 link/ether 60:f6:77:a9:92:0a brd ff:ff:ff:ff:ff:ff

5: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000 link/ether 52:54:00:61:75:8c 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

6: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc fq_codel master virbr0 state DOWN group default qlen 1000 link/ether 52:54:00:61:75:8c brd ff:ff:ff:ff:ff:ff

7: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000 link/ether 70:85:c2:69:67:9a brd ff:ff:ff:ff:ff:ff inet 192.168.11.8/24 brd 192.168.11.255 scope global dynamic noprefixroute br0 valid_lft 172707sec preferred_lft 172707sec inet6 2408:211:ba5:d600:b549:6323:c459:f7da/64 scope global temporary dynamic valid_lft 604709sec preferred_lft 85766sec inet6 2408:211:ba5:d600:8ca7:6b74:9cac:5f58/64 scope global dynamic mngtmpaddr noprefixroute valid_lft 2591909sec preferred_lft 604709sec inet6 fe80::f981:6edd:d21:845f/64 scope link noprefixroute valid_lft forever preferred_lft forever

[mity@sub3 / ]# brctl show

bridge name bridge id    STP enabled interfaces

br0 8000.7085c269679a    yes    enp7s0

virbr0 8000.52540061758c  yes    virbr0-nic