wtyd Posted September 20, 2013 Posted September 20, 2013 (edited) Есть некие фреймы, которые влетают в виртуальный интерфейс (можно указать в какой интерфейс слать) в тегированном виде. Требуется неким образом послать содержащийся внутри фрейма ip-пакет в сеть. Вижу два варианта: - снять тег, сбриджевать и выполнить NAT мак-адреса (ebtables) чтобы получить валидные для данного подключения маки. - снять тег и промаршрутизировать линуксом. Пробовал создавать tap, навешивать на него соответствующий таг, слать в tap фрейм и на тегированном тапе смотреть - нет там на выходе ничего. То же самое пробовал и с br0. Что-то не получается ... неужелипридётся ставить виртуальный свич ? Хотелось бы максимально просто это сдлеать. Надо сделать примерно так: тегированный фрейм ->==(тегированный порт1)==[свтч]---(switchport mode access,порт2)- <- тут будет растегирвоанный фрейм. Ну а дальше бриджить или роутить можно. Пока заминка в растегировании. Edited September 20, 2013 by wtyd Вставить ник Quote
wtyd Posted September 20, 2013 Author Posted September 20, 2013 vde2 не спасет? Я думаю, спасёт, но хотелось бы без виртуального свича, т.е. с использованием более менее штатных средств решить эту задачу. Что-то с чем-то сбриджевать, напрмиер :-). vde2 это новый софт, который надо ставить (а там всё старое). Вставить ник Quote
^rage^ Posted September 21, 2013 Posted September 21, 2013 (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 September 21, 2013 by ^rage^ Вставить ник Quote
wtyd Posted September 21, 2013 Author Posted September 21, 2013 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 -- ещё вот эта команда непонятна, что она делает ? Вставить ник Quote
^rage^ Posted September 22, 2013 Posted September 22, 2013 Не знаете, будет ли это работать на 2.6.16.16 ? оппа! некрофилия?! не будет. вообще. у вас задача какая? ip link set ve0b.32 master upl0 -- ещё вот эта команда непонятна, что она делает ? добавляет ve0b.32 в бридж upl0. Вставить ник Quote
wtyd Posted September 22, 2013 Author Posted September 22, 2013 (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 September 22, 2013 by wtyd Вставить ник Quote
^rage^ Posted September 23, 2013 Posted September 23, 2013 Сейчас с текущим софтом задача такая: принять тегированный фрем в tap0 (или в другой какой-нибудь девайс), растегировать его, заменить src/dst macs на нужные и отправить в сеть, либо отправить в сеть, смаршрутизщировав данный ip-пакет. нерешаемо с текущей версией ядра. А бридж появился раньше ? да Т.е. были команды типа brctl addbr upl0, так ? нет. было: ip link add upl0 type bridge Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.