Здравствуйте!Основной вопрос:
как в Linux создать bridge-интерфейс, который бы не имел мак-адреса ?
Между собой требуется связать физический интерфейс vlan + интерфейс xen-виртуальной машины. В хост-машине интерфейсы vlan01 и br0 не нуждаются в мак-адресах, требуется максимально тупой свич.
Более подробно.
Имеется следующая ситуация:
сервер на хостинговой площадке. От провайдера транком на сервер приходят два vlan. Имеется привязка к мак-адресу на коммутаторах-маршрутизаторах провайдера.
исходная конфигурация примерно такая:
vlan01 Link encap:Ethernet HWaddr 00:1c:c0:4b:75:26
inet addr:<net1_ip> Bcast:<net1_bcast> Mask:255.255.255.128
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:896710 errors:0 dropped:0 overruns:0 frame:0
TX packets:2592141 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:57959526 (55.2 MiB) TX bytes:3279930727 (3.0 GiB)
vlan13 Link encap:Ethernet HWaddr 00:1c:c0:4b:75:26
inet addr:<net2_ip> Bcast:<net2_bcast> Mask:255.255.255.224
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:283496136 errors:0 dropped:0 overruns:0 frame:0
TX packets:425127979 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:2248197200 (2.0 GiB) TX bytes:272220563 (259.6 MiB)
--
На сервере потребовалось создать виртуальную машину Xen, отдав ей IP интерфейса vlan01.
Виртуальная машина создана-запущена, нужно прокинуть в неё сеть.
Логично, что для этого требуется создать br0-интерфейс.
Для этого прописываю в интерфейсы:
auto vlan01
iface vlan01 inet manual
up ifconfig $IFACE up
down ifconfig $IFACE down
auto br0
iface br0 inet manual
up brctl addbr br0 && brctl addif br0 vlan01 && ifconfig br0 up
Поскольку у провайдера имеется привязка, то в конфиге виртмашины пишу:
vif = [ 'ip=<net1_ip>,mac=00:1c:c0:4b:75:26,bridge=br0' ]
------
Интерфейсы успешно подымаются, но вот незадача:
при поднятии интерфейса внутри виртмашины получаю ошибки:
хост машина ругается:
[7216205.895504] vif3.0: received packet with own address as source address
и еще вот такое сообщение:
xen duplicate address detected
Сеть в вирт машине не работает.
После поднятия интерфейсов на хост машине, команда brctl showmacs br0 успешно показывает мак-адрес интерфейса vlan01 в списке мак-адресов, с флагом "локальный".
попытки сделать ifconfig vlan01 -arp && ifconfig br0 -arp , в т.ч. и с последующим пересозданием интерфейса br0, успеха не принесли.
Выходом оказалось изменение мак-адреса на интерфейсе vlan01 командой
ifconfig vlan01 hw ether fe:ff:ff:ff:ff:ff
но и этот мак адрес тем не менее присутствует в мак-таблице интерфейса br0.
Собственно остается повторить вопрос: как в Linux создать bridge-интерфейс, который бы не имел мак-адреса ?
Ну или другое решение вышеописанной задачи...