Я застрял на шлюзе AT&T, который не понимает, что MAC может иметь более 1 IP-адреса. Поэтому я использую macvlan в Linux для добавления портов с разными MAC-адресами.
Кажется, это работает для локальных подключений к портам macvlan. Но когда я пытаюсь DNAT их в частную DMZ, кажется, что пакеты исчезают. У меня включен ip_forwarding и работает другая пересылка исходящих пакетов.
Я безрезультатно использовал tcpdump и trace в iptables. Срабатывает правило DNAT, после чего пакеты никогда никуда не появляются.
Я использую Centos 6.3.
Я наконец решил это. Оказывается, все странные сетевые махинации, вызванные попыткой пересылки трафика macvlan, привели к срабатыванию фильтра обратного пути ядра, заставляя его отбрасывать пакеты. Мне пришлось установить rp_filter = 0 для любого интерфейса, через который проходит трафик.