Назад | Перейти на главную страницу

Удаление порта на одном мосту openvswitch вызывает изменение MAC-адреса на другом мосту

Я пытаюсь установить явный MAC-адрес на мосту openvswitch с именем br-ex. Я запускаю 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"

Обратите внимание на MAC-адрес на br-ex:

# 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-ex из br-int, который больше не связан с br-ex:

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

Обратите внимание, что MAC-адрес на br-ex изменилось:

# 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

Что тут происходит? Почему MAC-адрес включен br-ex меняется? Как мне заставить его приклеиться?

Похоже, что невозможно установить постоянный MAC-адрес на мосту OVS с помощью ip set link команда. Вместо этого вам нужно установить через 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"