Skip to contentSkip to conversation

many one-to-one NAT

DISCUSSION Yaron Presente 2 participants 2 messages May 16, 2004 – May 17, 2004

lore
Share & tools
lore
#0 lore raw

Hi All,
I'm a newbie to this list and I apologize if this question has already appeared in previous posts. I would like to do NAT from a private range to a public range of the same size, in a way that just the network part of the IP address would be translated.
For example, I would like a single iptables rule to map 192.168.10.0/24 => 10.1.1.0/24 as follows:
192.168.10.1 => 10.1.1.1
192.168.10.2 => 10.1.1.2
.
.
.
192.168.10.254 => 10.1.1.254

I know that I can do it by defining the whole set of rules explicitly, but I'm looking for a better solution in terms of simplicity and performance. Can anyone help?
Thanks,

Signature · 6 lines
Yaron Presente
MRV International
Direct   : 972-4-9936237
Fax      : 972-4-9890564
Email   : [email protected]
www.mrv.com
#1 lore raw
Quoted 2 lines · Yaron Presente

I would like to do NAT from a private range to a public range of the same size, in a way that just the network part of the IP address would be translated.

Use the NETMAP target. This is included in 2.6, but I think you have to patch 2.4 kernels still.

Quoted 7 lines

For example, I would like a single iptables rule to map 192.168.10.0/24 => 10.1.1.0/24 as follows:
192.168.10.1 => 10.1.1.1
192.168.10.2 => 10.1.1.2
.
.
.
192.168.10.254 => 10.1.1.254

Assuming 192.168.10.0/24 is private:

iptables -t nat -A PREROUTING -d 10.1.1.0/24 -j NETMAP --to 192.168.10.0/24 iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -j NETMAP --to 10.1.1.0/24

Signature · 1 line
Philip Craig - SnapGear, A CyberGuard Company - http://www.SnapGear.com