web-dev-qa-db-ja.com

1つのopenvswitchブリッジのポートを削除すると、別のブリッジのMACアドレスが変更されます

br-exという名前のopenvswitchブリッジに明示的なMACアドレスを設定しようとしています。 Fedora 20を実行していて、ネイティブのifdown/ifupコマンドを使用してブリッジを構成しています(ネットワーク構成ファイルの詳細はこの質問の下部にあります)。

br-exに続いてifdown br-exを実行してifup eth0を再作成した後、私のOVS構成は次のようになります。

# ovs-vsctl show
1ab8ae7e-e9da-4af9-9226-03b54f5d2544
    Bridge br-int
        Port br-int
            Interface br-int
                type: internal
        Port int-br-ex
            Interface int-br-ex
        Port "tapa1747c68-d3"
            tag: 1
            Interface "tapa1747c68-d3"
                type: internal
    Bridge br-ex
        Port "eth0"
            Interface "eth0"
        Port br-ex
            Interface br-ex
                type: internal
    ovs_version: "2.0.1"

br-exのMACアドレスに注意してください。

# ip link show dev br-ex
80: br-ex: <BROADCAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN mode DEFAULT group default 
    link/ether fa:16:3e:ef:91:ec brd ff:ff:ff:ff:ff:ff

次に、ポートint-br-exbr-intから削除します。これはbr-exに接続されなくなりました

# ovs-vsctl --if-exists del-port br-int int-br-ex

また、br-exのMACアドレスが変更されていることに注意してください。

# ip link show dev br-ex
80: br-ex: <BROADCAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN mode DEFAULT group default 
    link/ether f2:2a:d3:bf:3c:47 brd ff:ff:ff:ff:ff:ff

今何があったの?

ネットワーク設定

/etc/sysconfig/network-scriptsにあります:

# cat ifcfg-br-ex
DEVICE=br-ex
DEVICETYPE=ovs
TYPE=OVSBridge
ONBOOT=yes
OVSBOOTPROTO=dhcp
OVSDHCPINTERFACES=eth0
MACADDR=fa:16:3e:ef:91:ec

# cat ifcfg-eth0
DEVICE="eth0"
ONBOOT="yes"
BOOTPROTO=none
TYPE=OVSPort
DEVICETYPE=ovs
OVS_BRIDGE=br-ex

何が起きてる? br-exのMACアドレスが変更されるのはなぜですか?どうすれば固執できますか?

2
larsks

ip set linkコマンドを使用してOVSブリッジに永続的なMACアドレスを設定することはできないようです。代わりに、ovs-vsctlを介して設定する必要があります。

ovs-vsctl set bridge br-ex other-config:hwaddr=$MACADDR

RHEL/CentOS/Fedoraを使用している場合は、インターフェース構成ファイルで以下を設定することでこれを実現できます。

OVS_EXTRA="set bridge br-ex other-config:hwaddr=$MACADDR"
3
larsks