LINUX.ORG.RU
ФорумAdmin

KVM networking via bridge


0

1

Есть стандартная KVM сеть через bridge:

$ brctl show
bridge name     bridge id               STP enabled     interfaces
br0             8000.00601656b439       no              eth3
                                                        tap0
$
Все работает хорошо кроме случая когда из KVM мне нужно достучаться до IP, который выставлен на eth3 (то есть на порту бриджа).

Как я понял из весьма скудной доки такое возможно через ebtables:

ebtables –t broute –A BROUTING -p IPv4 -i tap0 --ip-dst <eth3 IP> -j redirect  --redirect-target DROP

То есть мы говорим не бриджить фреймы которые предназначаются IP eth3 интерфейса в роутить их.

После добавления "-j arpreply " правила в ebtables я стал видеть мои icmp request пакеты в логах iptables вплоть до nat/PREROUTING. Далее пакет дропается.

Подскажите как правильно реализовать такую схему через ebtables/iptables/ip...

Спасибо!

Не надо в мост включать интерфейсы со своими ip.

IP адрес должен быть на самом мосте, а остальные без адресов. Если нужно несколько адресов, то добавить из на мост не проблема.

vel ★★★★★ ()

если bridge_ports eth3 то на интерфейсе eth3 не должно быть адресов, они указываются в настройках br0

vxzvxz ★★★ ()
Ответ на: комментарий от vel

IP адрес должен быть на самом мосте, а остальные без адресов. Если нужно несколько адресов, то добавить из на мост не проблема.

Да я знаю об этом, но ввиду нетехнических причин IP адреса на сам мост перенести нельзя. Поэтому и приходится извращаться.

Наличие специальной семантики для DROP в broute/BROUTING цепочке видимо говорит о том, что я не единственный кто сталкивается с этим :(

Krivenok_Dmitry ()
Ответ на: комментарий от Krivenok_Dmitry

Да я знаю об этом, но ввиду нетехнических причин IP адреса на сам мост перенести нельзя.

Что смену мас-а на бридже не победить?

vel ★★★★★ ()
Ответ на: комментарий от vel

Что смену мас-а на бридже не победить?

Нет дело не в этом. Просто код, который проставляет IP на eth3 не под моим контролем и поменять его нельзя. Если я просто сниму IP с eth3 и перевешу его на br0, то некоторые программы перестанут работать.

Я согласен, что правильное решение - это поменять все и выставлять IP на br0, но хотелось бы сперва решить проблему через хак не меняя остальной код системы (для прототипа).

Krivenok_Dmitry ()
Ответ на: комментарий от Krivenok_Dmitry

> Если я просто сниму IP с eth3 и перевешу его на br0

Э? А поменять имена - eth3 в eth49, br0 в eth3?

berrywizard ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.