Asymmetric/reverse NAT q :

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



	Hi,

	We have quite complicated network setup.

	(1) Windows server with private IP.

	(2) Linux NAT box with two interfaces, private and
	public, that translates outgoing Windows (1) traffic to its 
	public Inet IP. It should serve as back channel (outgoing) 
	in satellite reception. And it seems it serves this purpose 
	well enough. (there is just -j MASQUERADE rule on 
	'nat'/PREROUTING chain)

	(3) satellite reception terminal that bridges
	incoming satellite packets to the specified Ethernet mac address
	through its outgoing Ethernet port. And here is the problem.
	Returned packets have destination IP equal to the public IP of 
	NAT box (2). They could not be streamed back to Windows (1)
	directly.

	So we decided to bring in (4) Linux host for reverse 
	NAT from satellite terminal (3) to Windows (1). But then an unpleasant
	feature was discovered: 'nat' PREROUTING chain is used only in
	initial TCP/IP packets. So, the first syn packet coming from
	Windows (1) through NAT box (2) gets translated well; but then 
	syn/ack	reply coming from satellite terminal (3) does not get 
	translated back by (4).

	The main complication is that (1), (3) and (4) are near, but (2)
	which have ISP connection for back-channel is far from them and
	could not be brought close enough. Were our back-channel ISP and
	satellite reception point in one place, I would not have this
	problem at all.

	And so, dear people, I want to ask your advise. How to get
	through this situation ? Should I use ct_sync, or ebtables, or
	what else ? Is there a hack to mark incoming packets as 'new' while 
	they are not ? Is it possible to force 'nat'/PREROUTING chain to 
	do DNAT on incoming packets that are not 'new' ?

	Thank you in advance for your replies. Hope some of you had
	solved similar problems.


[Index of Archives]     [Linux Netfilter Development]     [Linux Kernel Networking Development]     [Netem]     [Berkeley Packet Filter]     [Linux Kernel Development]     [Advanced Routing & Traffice Control]     [Bugtraq]

  Powered by Linux