URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 84484
[ Назад ]

Исходное сообщение
"Как в Linux создать bridge-интерфейс, который бы не имел MAC-а?"

Отправлено PavelR , 13-Мрт-09 22:11 
Здравствуйте!

Основной вопрос:

как в 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-интерфейс, который бы не имел мак-адреса ?

Ну или другое решение вышеописанной задачи...


Содержание

Сообщения в этом обсуждении
"Как в Linux создать bridge-интерфейс, который бы не имел MAC..."
Отправлено PxeL , 13-Мрт-09 22:23 
brctl
интерфейса без мака не может существовать по природе строения сетей

"Как в Linux создать bridge-интерфейс, который бы не имел MAC..."
Отправлено PavelR , 13-Мрт-09 22:48 
>brctl
>интерфейса без мака не может существовать по природе строения сетей

не совсем понял, почему именно ?
да и мне он не нужен как интерфейс, он мне нужен как свич.


"Как в Linux создать bridge-интерфейс, который бы не имел MAC..."
Отправлено Аноним , 14-Мрт-09 08:48 
>>brctl
>>интерфейса без мака не может существовать по природе строения сетей
>
>не совсем понял, почему именно ?
>да и мне он не нужен как интерфейс, он мне нужен как
>свич.

Интерфейса без МАС неможет быть !!!
Читай маны до просветления !!!
Модель OSI !!!


"Как в Linux создать bridge-интерфейс, который бы не имел MAC..."
Отправлено PavelR , 14-Мрт-09 09:40 
>>>brctl
>>>интерфейса без мака не может существовать по природе строения сетей
>>
>>не совсем понял, почему именно ?
>>да и мне он не нужен как интерфейс, он мне нужен как
>>свич.
>
>Интерфейса без МАС неможет быть !!!
>Читай маны до просветления !!!
>Модель OSI !!!

1. Интересно, как работают интерфейсы ppp.... Очень интересно, как там передается MAC... надо подумать на досуге. Маны не посоветуете?

2. Мне не нужен этот интерфейс как интерфейс хост-системы.
Прошу прочитать и понять смысл моего вопроса и цель, которую пытаюсь достигнуть.


"Как в Linux создать bridge-интерфейс, который бы не имел MAC..."
Отправлено cirus , 15-Мрт-09 09:38 
Рекомендую
http://ru.wikipedia.org/wiki/ARP
совместно с tcpdump

"Как в Linux создать bridge-интерфейс, который бы не имел MAC..."
Отправлено PavelR , 15-Мрт-09 10:01 
>Рекомендую
>http://ru.wikipedia.org/wiki/ARP
>совместно с tcpdump

Что посоветуешь в ответ на второй вопрос ?

Хорошо, я понял что неправильно сформулировал название топика.

Мне нужен bridge без интерфейса в хост системе...


"Как в Linux создать bridge-интерфейс, который бы не имел MAC..."
Отправлено cirus , 15-Мрт-09 10:58 
>Что посоветуешь в ответ на второй вопрос ?

Давайте что-нибудь возьмем за основу. Типа:
http://wiki.xensource.com/xenwiki/XenNetworking


"Как в Linux создать bridge-интерфейс, который бы не имел MAC..."
Отправлено PavelR , 15-Мрт-09 12:55 
>>Что посоветуешь в ответ на второй вопрос ?
>
>Давайте что-нибудь возьмем за основу. Типа:
>http://wiki.xensource.com/xenwiki/XenNetworking

ну допустим оно и лежит в основе.

noarp и выставление мака fe:ff:ff:ff:ff:ff основному интерфейсу делается тоже в соответствии с тем документом.

Просто не совсем понятно, будет ли машина откликаться на мак fe:ff:ff:ff:ff:ff,

поскольку имеем такой вывод:

host:~# brctl showmacs br0
port no mac addr                is local?       ageing timer
  1     zz:zz:zz:zz:zz:zz       no                76.19
... куча мак-адресов оборудования в вилане
  1     yy:yy:yy:yy:yy:yy       no                54.21
#мак адрес вирт машины
  2     00:1c:c0:4b:75:26       no                 0.00
#любимый и ненаглядный fe:ff:ff:ff:ff:ff
  1     fe:ff:ff:ff:ff:ff       yes                0.00

протестировать со стороны в настоящее время возможности нет...

Что имеется сейчас:

host:~# ifconfig br0
br0       Link encap:Ethernet  HWaddr fe:ff:ff:ff:ff:ff
          inet6 addr: fe80::fcff:ffff:feff:ffff/64 Scope:Link
          UP BROADCAST RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:298409 errors:0 dropped:0 overruns:0 frame:0
          TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:36288120 (34.6 MiB)  TX bytes:468 (468.0 B)

host:~# ifconfig vlan01
vlan01   Link encap:Ethernet  HWaddr fe:ff:ff:ff:ff:ff
          inet6 addr: fe80::21c:c0ff:fe4b:7526/64 Scope:Link
          UP BROADCAST RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:99067702 errors:0 dropped:0 overruns:0 frame:0
          TX packets:163004561 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:1656339003 (1.5 GiB)  TX bytes:3726931430 (3.4 GiB)

host:~# ifconfig vif14.0
vif14.0   Link encap:Ethernet  HWaddr fe:ff:ff:ff:ff:ff
          inet6 addr: fe80::fcff:ffff:feff:ffff/64 Scope:Link
          UP BROADCAST RUNNING PROMISC MULTICAST  MTU:1500  Metric:1
          RX packets:144706596 errors:0 dropped:0 overruns:0 frame:0
          TX packets:98206390 errors:0 dropped:1 overruns:0 carrier:0
          collisions:0 txqueuelen:32
          RX bytes:2027710148 (1.8 GiB)  TX bytes:2511269918 (2.3 GiB)

host:~# brctl show
bridge name     bridge id               STP enabled     interfaces
br0             8000.feffffffffff       no              vif14.0
                                                        vlan01


PS: да, и ifconfig br0 noarp сделал уже вручную, на поднятом и живом интерфейсе br0....

Подымается всё это дело так(Debian):

auto vlan01
iface vlan01 inet manual
up ifconfig $IFACE up -arp hw ether fe:ff:ff:ff:ff:ff
down ifconfig $IFACE down
vlan-raw-device eth0

auto br0
iface br0 inet manual
up brctl addbr br0 && brctl addif br0 vlan01 && ifconfig br0 up
down ifconfig br0 down && brctl delbr br0


"Как в Linux создать bridge-интерфейс, который бы не имел MAC..."
Отправлено den , 16-Мрт-09 17:42 
>[оверквотинг удален]
>>>да и мне он не нужен как интерфейс, он мне нужен как
>>>свич.
>>
>>Интерфейса без МАС неможет быть !!!
>>Читай маны до просветления !!!
>>Модель OSI !!!
>
>1. Интересно, как работают интерфейсы ppp.... Очень интересно, как там передается MAC...
>надо подумать на досуге. Маны не посоветуете?
>

Если среда передачи ethernet то имеем pppoe, протокол который базируется на ethernet фреймах ---> снова приходим к mac :)



"Как в Linux создать bridge-интерфейс, который бы не имел MAC..."
Отправлено Pahanivo , 15-Мрт-09 10:09 
>>>brctl
>>>интерфейса без мака не может существовать по природе строения сетей
>>
>>не совсем понял, почему именно ?
>>да и мне он не нужен как интерфейс, он мне нужен как
>>свич.
>
>Интерфейса без МАС неможет быть !!!
>Читай маны до просветления !!!
>Модель OSI !!!

неужеле? )))
а какже хабы и свичи? )))
Serial port (com) это тоже интерфейс и без мака)))
ненадо бросатся терминами


"Как в Linux создать bridge-интерфейс, который бы не имел MAC..."
Отправлено den , 16-Мрт-09 17:54 
Имеется следующая ситуация:

сервер на хостинговой площадке. От провайдера транком на сервер приходят два vlan. Имеется привязка к мак-адресу на коммутаторах-маршрутизаторах провайдера.

Где ты видешь serial link ? Коммутатор строит таблицы mac-port.