S IMQ jsem si pohraval, kdyz jsem se snazil nejak vic primo shapovat ingress, ale problem byl v tom, ze tohle virtualni rozhrani existovalo (mam pocit) jeste nekde pred "routing decision" (tedy nekde tesne za PREROUTING) a proto neslo filtrovat packety podle cilove adresy, ale jen podle napr. portu nebo podobne.
Jsou to ale jen takovy mlhavy vzpominky, takze je klidne mozny, ze jsem se tehdy jen nekde poradne zkouril a cely se mi to zdalo... :-)))
Jen upresnim to filtrovani podle cilove adresy prichozich packetu - to samozrejme jde, problem, o kterem mluvite, zrejme spocival v tom, ze jste pouzival SNAT, a rozliseni neslo udelat, neb v dobe, kdy se udelat melo, jeste nebyla cilova adresa prichoziho packetu prepsana na puvodni zdrojovou dane konexe.
Toto lze obejit pomoci modulu iptables connmark, kterym lze konexim prirazovat identifikatory, nebo (primocareji) modulem conntrack, kterym lze matchovat kteroukoliv polozku v tabulce ip conntracku (jde o zobecneni znameho matche 'state', ktery umi rozhodovat pouze podle toho, zda zaznam je NEW, ESTABLISHED apod.)