Re: "DNAT" w/o changing source address?

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

 



On 10/04/07 09:59, Pascal Hambourg wrote:
Do you mean that they are in different subnets ?

I doubt that the OPs systems are on different subnets, nor do I think that it really matters for what s/he is wanting to do.

Private/public addressing does not matter here. You can have public addresses behind a NAT box, although it may sound unusual (NAT is mostly used to hide private addressing when you don't have enough public addresses). The important word is "behind", meaning that traffic in both directions flows through the NAT box. This is important because the NAT box changed the source and/or destination address on the original traffic, so it must put it back on the reply traffic in order for the client to accept it as a reply. It's not the SNAT rule which puts the original address back, it only makes the server see the NAT box as the client and send the reply traffic back to it. But the drawback is that the server does not see the real client source address.

Without SNAT, the mail server could use the NAT box as a gateway at least for SMTP reply traffic (this could be done with advanced routing if the mail server runs Linux) if they are in the same subnet or if a tunnel can be established directly between them.

Ah yes, the old triangle of systems is being avoided. System A talks to system B who talks to system C who talks back to system A. System A knows that it talked to system B who for some strange reason is not replying while there is this other character system C that is striking up a conversation very improperly and as such being told where to RST to!

Sorry, I do not know how LVS works. I just know how Netfilter NAT works.

As I understand it there are basically three different modes of operation for Linux Virtual Server (a.k.a. LVS) load balancers / directors: NATing, Direct Routing, and Tunnel (a variant of DR).

I think DR and or Tunnel would be the better of the modes for this situation, seeing as how NAT will not work because the reverse traffic does not flow back through the LVS Director.

As I understand it (which could very well be flawed) in DR and Tunnel mode, your upstream router says that the virtual server is available via the next hop of the LVS director. The LVS director in turn load balances and forwards (routes) the traffic on to the real servers which have the target IP bound to an interface. Thus when the traffic does come in to the real server it comes in and goes directly in to the bound IP and associated services. Thus when the services reply to the traffic they use the targeted IP as the source IP for reply traffic. Thus we end up with system A talking to system C by way of system B with system C replying directly through routing.

I think DR and Tunneling are more of a switching / bridging technology in such as they alter the target ethernet mac addresses between the various systems to spread the load.

I'm not quite sure how you could emulate this with out using LVS, except possibly with bridging and EBTables rules to alter the target MAC of the inbound frames so that they are re-forwarded on to the real server. However for this to work your systems will have to be in the same broadcast domain. If you want help with this, drop me a line and I'll see what I can 'switch' up. ;)



Grant. . . .
-
To unsubscribe from this list: send the line "unsubscribe netfilter" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[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