Date: Mon, 02 Dec 2013 14:10:05 -0800 From: Yuri <yuri@rawbw.com> To: net@freebsd.org Subject: How to forward UDP packets to another port and get responses with port translation? Message-ID: <529D053D.8050700@rawbw.com>
next in thread | raw e-mail | index | archive | help
I would like to translate the port in all DNS requests, so that the server works on the different port (ex. 1053) on the same net and the client works on the original port 53. I am thinking about two approaches: * forward packets into the server: ipfw add 200 fwd 192.168.10.1,1053 udp from 192.168.10.0/24 to 192.168.10.1 53 The problem with routing responses is that natd(8) doesn't allow to change the source port, only the source address. There is -alias_address option but no -alias_port option. * divert and natd(8): natd -port 8668 -interface tap0 -redirect_port udp 192.168.10.1:1053 53 $IPF 200 divert natd udp from 192.168.10.0/24 to 192.168.10.1 53 via tap0 keep-state In both cases reply packets have the source port 1053, and it isn't clear how to make it 53. It seems that divert only passes to natd(8) packets from one direction, and not from the other. Is there a way to properly translate the ports back and forth in such simple UDP communication? Yuri
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?529D053D.8050700>