Написал очередную ненужну: программа с одной стороны открывает tun/tap-интерфейс, а с другой стороны использует обычные AF_INET
-SOCK_DGRAM
-сокеты (без connect(2)
-а), снимая ограничение для UDP hole punching. Слегка похоже на SLiRP. TCP предполагается пускать в обычный -j MASQUERADE
.
До: Primary: Independent Mapping, Port Dependent Filter, preserves ports, no hairpin
После: Primary: Independent Mapping, Independent Filter, preserves ports, no hairpin
Исходный код, предсобраная версия, краткая инструкция: https://github.com/vi/udpnat