LoginSignup
1
0

nmcli で Open vSwitch ブリッジを作成する

Last updated at Posted at 2024-03-10

nmcli + Open vSwitch で、左図のようなデフォルトの状態から、右図の目標構成にあるようなブリッジを作成する。

ovs.drawio.png

前提条件

OS は Rocky linux 9.2 で検証する。

初期状態の NIC は、次のように 静的 IP アドレスが割り当てられていることを想定している。

# nmcli con show
NAME        UUID                                  TYPE      DEVICE  
enp86s0     f9a60ac6-9ce6-4fc1-8763-f56d5a668995  ethernet  enp86s0 

# ip a
2: enp86s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 48:21:0b:57:b2:52 brd ff:ff:ff:ff:ff:ff
    inet 172.16.0.11/24 brd 172.16.0.255 scope global noprefixroute enp86s0
       valid_lft forever preferred_lft forever

Open vSwitch のインストール

Open vSwitch をインストールする:

# dnf list centos-release-openstack-*
Last metadata expiration check: 0:00:53 ago on Thu 28 Dec 2023 08:13:22 AM CET.
Available Packages
centos-release-openstack-antelope.noarch             1-3.el9              extras
centos-release-openstack-bobcat.noarch               1-1.el9              extras
centos-release-openstack-yoga.noarch                 1-3.el9              extras
centos-release-openstack-zed.noarch                  1-3.el9              extras

# dnf install -y centos-release-openstack-bobcat
# dnf install -y openvswitch

NetworkManager plugin をインストールする。
これにより Open vSwitch をnmcli から制御できるようになる。

# dnf install -y NetworkManager-ovs
# systemctl restart NetworkManager

Open vSwitch デーモンを起動する:

# systemctl start ovs-vswitchd

Open vSwitch クライアントが動くことを確認する:

# ovs-vsctl show
c2328d89-6287-45cd-9caf-d65b7a3f3a5d
    ovs_version: "3.2.2"

Open vSwitch のセットアップ

ブリッジの作成

ブリッジ ovsbr0 を作成する:

# nmcli con add type ovs-bridge con-name ovsbr0 conn.interface ovsbr0

Interface 側の準備

ブリッジに port を作成し、IP interface を接続する:

# nmcli con add type ovs-port con-name port0 conn.interface port0 master ovsbr0
# nmcli con add type ovs-interface con-name br0 slave-type ovs-port conn.interface br0 master port0 \
  ipv4.method manual \
  ipv4.address 172.16.0.11/24 \
  ipv4.gateway 172.16.0.1 \
  ipv4.dns 172.16.0.1

NIC 側の準備

ブリッジに port を作成し、NIC を接続する:

# nmcli con add type ovs-port con-name port-enp86s0 conn.interface port-enp86s0 master ovsbr0
# nmcli con mod enp86s0 conn.interface enp86s0 master port-enp86s0
# nmcli con up enp86s0

確認

最終的な ovs-vsctl show の実行結果は次のようになる:

# ovs-vsctl show
c2328d89-6287-45cd-9caf-d65b7a3f3a5d
    Bridge ovsbr0
        Port port-enp86s
            Interface enp86s0
                type: system
        Port port0
            Interface br0
                type: internal
    ovs_version: "3.2.2"

nmcli con show の実行結果は次のようになる:

# nmcli con show
NAME         UUID                                  TYPE           DEVICE
...
br0          f7c92f54-b7f4-4cb6-b6ff-65b0e4e7d79c  ovs-interface  br0
port0        6b61101a-96fd-46b5-9799-0e2bf9f050bb  ovs-port       port0
ovsbr0       d10a23f2-8bfc-41c7-b1e8-dc7ed993b1ca  ovs-bridge     ovsbr0
port-enp86s  3a2f4ca0-1706-4149-844d-b48e22b6c14e  ovs-port       port-enp86s
enp86s0      5a6d8b87-f9cd-446d-a241-e61fa7368ee5  ethernet       enp86s0

ip a の実行結果は次のようになる:

# ip a
...
2: enp86s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master ovs-system state UP group default qlen 1000
    link/ether 48:21:0b:5d:7b:e7 brd ff:ff:ff:ff:ff:ff
...
4: ovs-system: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether 2e:33:88:47:b6:10 brd ff:ff:ff:ff:ff:ff
5: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default qlen 1000
    link/ether 0a:bb:84:d8:31:39 brd ff:ff:ff:ff:ff:ff
    inet 172.16.0.11/24 brd 172.16.0.255 scope global noprefixroute br0
       valid_lft forever preferred_lft forever
    inet6 fe80::9186:a31:beca:b92f/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

参考資料

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0