Есть мой комп. Он подключён к инэту (ip не важен). Есть поднятый и работающий мост на этом компе (ip моста 10.0.2.1). Есть виртуальная машина в KVM у которой поднят один TAP интерфейс (ip 10.0.2.2). Этот интерфейс подключен в мосту (10.0.2.1). Настроен маскарадинг между моим компом и мостом:
iptables -t nat -A POSTROUTING -s 10.0.2.2 -j MASQUERADE iptables -t nat -A POSTROUTING -d 10.0.2.2 -o br0
Теперь если для цепочек таблицы filters поставить политику ACCEPT, то из виртуальной машины видно как инэт, так и мой комп (т.е. мост 10.0.2.1). Но, если политику изменить на DROP, то инэт всё равно видно, но вот моего компа уже нет :-(
Виртуальная машина запускается от собственного юзера (kvm), с этим проблем нет. Правила iptables настроены так:
iptables -A OUTPUT -m owner --uid-owner kvm -j ACCEPT
Как, блин, мне достучаться до своего компа, если и так, вроде всё разрешено :-( Складывается ощущение, что после nat-POSTROUTING пакеты вообще не попадают в таблицу OUTPUT и поэтому срабатывает запрещающая политика.
Не знаю, что дальше делать... возня с iptables -j LOG ничего не дала (отлаживать правила для меня просто больно).