SNAT and iChat

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

 



I'm running a router based on a custom Linux 2.6.6 kernel, with all
netfilter options either compiled-in or available as modules.

I use SNAT so that all traffic from a given private subnet appears to
originate from a single routable IP address.  Each private subnet has a
unique corresponding routable IP address.

In general, this works very well.  The trouble I'm having is in passing
iChat AV traffic for an entire private subnet.

For example, let's say I have two routable IP addresses assigned to
eth0: 69.54.179.2 and 69.54.179.3, and private IP address
192.168.10.1/24 assigned to eth1.  Clients are connected to eth1, while
eth0 is my link to the internet.

If I use SNAT for the entire private subnet, iChat fails.  In order to
make it work, I need to use a 1:1 mapping and DNAT.

This causes iChat to fail:

iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -j SNAT --to-source
69.54.179.2

This works:

iptables -t nat -A POSTROUTING -s 192.168.10.3 -j SNAT --to-source
69.54.179.3
iptables -t nat -A PREROUTING -d 69.54.179.3 -j DNAT --to-destination
192.168.10.3

The private subnet in question can have any number of nodes using iChat
at a given time.  I need to avoid reserving a unique public IP address
for each node that may possibly participate.


What am I missing?  Is this expected behavior?

Thanks!
Dennis





[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