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

Исходное сообщение
"несколько виртуальных сетевух с определенными MAC-адресами п..."

Отправлено Neon777 , 23-Июл-05 19:52 
Добрый день! В статье http://www.opennet.me/opennews/art.shtml?num=4020 описано использование netgraph для создания виртуального сетевого устройства, которому можно задать свой MAC-адрес.

Задача состоит в том, чтобы создать два таких виртуальных устроиства, которые оба были бы подключены к одному физическому сетевому устройству. Возможно ли это с помощью netgraph или как нибудь иначе? Или же придется все -таки покупать swith и пихать в комп вторую сетевуху?

Пытался подключить lower link к physical interface:
# ngctl connect xl1: mybridge2: lower link1
но получил "ngctl: send msg: File exists", видимо потому, что к xl1 уже подключен lower link от mybridge1 (первый virtual interface).

Заранее благодарен за любую помощь.


Содержание

Сообщения в этом обсуждении
"несколько виртуальных сетевух с определенными MAC-адресами п..."
Отправлено Аноним , 25-Июл-05 18:03 
>Задача состоит в том, чтобы создать два таких виртуальных устроиства, которые оба были бы подключены к одному физическому сетевому устройству. Возможно ли это с помощью netgraph или как нибудь иначе?

Создаешь сколько тебе нужно ng_eiface, создаешь ng_hub или ng_bridge, к которому подсоединяешь свои ngeth и в него-же втыкаешь lower hook физического интерфейса. Получаешь виртуальную сеть, где ngeth'и воткнуты в физическую сеть через хаб или свич соответственно.


"несколько виртуальных сетевух с определенными MAC-адресами п..."
Отправлено Neon777 , 03-Авг-05 18:09 
>>Задача состоит в том, чтобы создать два таких виртуальных устроиства, которые оба были бы подключены к одному физическому сетевому устройству. Возможно ли это с помощью netgraph или как нибудь иначе?
>
>Создаешь сколько тебе нужно ng_eiface, создаешь ng_hub или ng_bridge, к которому подсоединяешь
>свои ngeth и в него-же втыкаешь lower hook физического интерфейса. Получаешь
>виртуальную сеть, где ngeth'и воткнуты в физическую сеть через хаб или
>свич соответственно.

Спаасибо! Получилось. С хабом. А с ng_bridge не вышло :(
tcpdumpом видно dhcp request на ngeth0 и на ep0, а вот dhcp reply видно только на ep0. То есть до виртуального интерфейса он почему то не доходит...


"несколько виртуальных сетевух с определенными MAC-адресами п..."
Отправлено Neon777 , 03-Авг-05 18:27 
Все, разобрался. Статью кривовато написали, там в физический интерфейс еще и  upper hook вотнут. Вот так работает:

ifconfig ep0 ether 00:00:00:00:00:00 up
kldload ng_ether
kldload ng_eiface
kldload ng_bridge
ngctl mkpeer . eiface hook ether
ngctl mkpeer . eiface hook ether
ifconfig ngeth0 up
ifconfig ngeth1 up
ngctl mkpeer ngeth0: bridge lower link0
ngctl name ngeth0:lower mybridge
ngctl connect ep0: mybridge: lower link1
ngctl connect ngeth0: mybridge: upper link2
ngctl connect ngeth1: mybridge: lower link3
ngctl connect ngeth1: mybridge: upper link4
ngctl msg ep0: setautosrc 0
ngctl msg ep0: setpromisc 1
ifconfig ngeth0 ether 00:12:12:12:12:12
ifconfig ngeth1 ether 00:13:13:13:13:13

dhclient ngeth0 ngeth1


"несколько виртуальных сетевух с определенными MAC-адресами п..."
Отправлено Neon777 , 03-Авг-05 19:24 
>Все, разобрался. Статью кривовато написали, там в физический интерфейс еще и  
>upper hook вотнут...

Нифига. dhcp через ng_bridge все равно не работает. Старый lease в dhclient.leases просто оставался. Только хаб.