Jump to content

Recommended Posts

Posted (edited)

Есть некие фреймы, которые влетают в виртуальный интерфейс (можно указать в какой интерфейс слать) в тегированном виде. Требуется неким образом послать содержащийся внутри фрейма ip-пакет в сеть.

 

Вижу два варианта:

 

- снять тег, сбриджевать и выполнить NAT мак-адреса (ebtables) чтобы получить валидные для данного подключения маки.

 

- снять тег и промаршрутизировать линуксом.

 

Пробовал создавать tap, навешивать на него соответствующий таг, слать в tap фрейм и на тегированном тапе смотреть - нет там на выходе ничего. То же самое пробовал и с br0. Что-то не получается ... неужелипридётся ставить виртуальный свич ? Хотелось бы максимально просто это сдлеать.

 

Надо сделать примерно так:

 

тегированный фрейм ->==(тегированный порт1)==[свтч]---(switchport mode access,порт2)- <- тут будет растегирвоанный фрейм. Ну а дальше бриджить или роутить можно. Пока заминка в растегировании.

Edited by wtyd
Posted

vde2 не спасет?

 

Я думаю, спасёт, но хотелось бы без виртуального свича, т.е. с использованием более менее штатных средств решить эту задачу. Что-то с чем-то сбриджевать, напрмиер :-). vde2 это новый софт, который надо ставить (а там всё старое).

Posted (edited)

root@wks0:~# ip link add name ve0a type veth peer name ve0b
root@wks0:~# ip link set ve0a up
root@wks0:~# ip link set ve0b up
root@wks0:~# ip link add link ve0b name ve0b.32 type vlan id 32
root@wks0:~# ip link set ve0b.32 master upl0
root@wks0:~# ip link set ve0b.32 up

 

можно получать вот такие конструкции:

listening on ve0a, link-type EN10MB (Ethernet), capture size 65535 bytes
09:08:05.160810 00:15:17:14:c8:c3 > 01:00:5e:00:00:05, ethertype 802.1Q (0x8100), length 94: vlan 32, p 0, ethertype 802.1Q, vlan 17, p 0, ethertype 802.1Q, vlan 22, p 0, ethertype 802.1Q, vlan 7, p 0, ethertype IPv4, 192.168.100.2 > 224.0.0.5: OSPFv2, Hello, length 44
09:08:05.260893 00:15:17:14:c8:c3 > 01:00:5e:00:00:05, ethertype 802.1Q (0x8100), length 94: vlan 32, p 0, ethertype 802.1Q, vlan 17, p 0, ethertype 802.1Q, vlan 22, p 0, ethertype 802.1Q, vlan 7, p 0, ethertype IPv4, 192.168.100.2 > 224.0.0.5: OSPFv2, Hello, length 44

Edited by ^rage^
Posted

root@wks0:~# ip link add name ve0a type veth peer name ve0b
root@wks0:~# ip link set ve0a up
root@wks0:~# ip link set ve0b up
root@wks0:~# ip link add link ve0b name ve0b.32 type vlan id 32
root@wks0:~# ip link set ve0b.32 master upl0
root@wks0:~# ip link set ve0b.32 up

 

можно получать вот такие конструкции:

listening on ve0a, link-type EN10MB (Ethernet), capture size 65535 bytes
09:08:05.160810 00:15:17:14:c8:c3 > 01:00:5e:00:00:05, ethertype 802.1Q (0x8100), length 94: vlan 32, p 0, ethertype 802.1Q, vlan 17, p 0, ethertype 802.1Q, vlan 22, p 0, ethertype 802.1Q, vlan 7, p 0, ethertype IPv4, 192.168.100.2 > 224.0.0.5: OSPFv2, Hello, length 44
09:08:05.260893 00:15:17:14:c8:c3 > 01:00:5e:00:00:05, ethertype 802.1Q (0x8100), length 94: vlan 32, p 0, ethertype 802.1Q, vlan 17, p 0, ethertype 802.1Q, vlan 22, p 0, ethertype 802.1Q, vlan 7, p 0, ethertype IPv4, 192.168.100.2 > 224.0.0.5: OSPFv2, Hello, length 44

 

У меня там ведро старое и iproute2 тоже. iproute2 обновить наверное смогу, а вот ведро - нет. Не знаете, будет ли это работать на 2.6.16.16 ?

 

ip link set ve0b.32 master upl0 -- ещё вот эта команда непонятна, что она делает ?

Posted

Не знаете, будет ли это работать на 2.6.16.16 ?

оппа! некрофилия?!

не будет. вообще. у вас задача какая?

 

ip link set ve0b.32 master upl0 -- ещё вот эта команда непонятна, что она делает ?

добавляет ve0b.32 в бридж upl0.

Posted (edited)

Не знаете, будет ли это работать на 2.6.16.16 ?

оппа! некрофилия?!

не будет. вообще. у вас задача какая?

 

ip link set ve0b.32 master upl0 -- ещё вот эта команда непонятна, что она делает ?

добавляет ve0b.32 в бридж upl0.

 

У него аптайм 7 лет! Шутка. Вообще однажды у этого хоста аптайм был больше трёх лет. Не апгрейдили потому что "выше прибыли только стабильность" (с) какой-то банк. Работало и не трогали. Тут весь фикус как раз в том, что если я его заапгрежу (поставлю свежайший дистрибутив), то и задача эта скорее всего отпадёт или примет совершенно другой вид. Сейчас с текущим софтом задача такая: принять тегированный фрем в tap0 (или в другой какой-нибудь девайс), растегировать его, заменить src/dst macs на нужные и отправить в сеть, либо отправить в сеть, смаршрутизщировав данный ip-пакет.

 

А бридж появился раньше ? Т.е. были команды типа brctl addbr upl0, так ?

Edited by wtyd
Posted

Сейчас с текущим софтом задача такая: принять тегированный фрем в tap0 (или в другой какой-нибудь девайс), растегировать его, заменить src/dst macs на нужные и отправить в сеть, либо отправить в сеть, смаршрутизщировав данный ip-пакет.

нерешаемо с текущей версией ядра.

 

А бридж появился раньше ?

да

 

Т.е. были команды типа brctl addbr upl0, так ?

нет. было:

ip link add upl0 type bridge

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...
На сайте используются файлы cookie и сервисы аналитики для корректной работы форума и улучшения качества обслуживания. Продолжая использовать сайт, вы соглашаетесь с использованием файлов cookie и с Политикой конфиденциальности.