Iproute2 NAT functionality Deficit

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

 



Greetings,

I have found what I believe to be a functionality deficit in the current
NAT implementation in linux (and other OS's ?).  I have found that attempting
to translate multiple subnets to 1 subnet  is impossible.   

In this example (and my current headache), I will illustrate where NAT is
failing.

BACKGROUND

My ISP, @home, allows their customers to assign up to 3 IP addresses
to their cable modem for use in home networking.  The usual procedure
is then to plug a hub directly into the cable modem, and have all machines then
connect into that hub.  With security in mind however I chose to setup a simple
NAT firewall doing static 1-to-1 mappings of the external IP addresses to my
LAN's internal address space. 

SITUATION

I currently have 2 IP addresses assigned to my cable modem.
(fictitious addresses are being represented to protect the innocent)

IP 1 =  50.50.50.50/25 Gateway = 50.50.50.1
IP 2 =  60.60.60.60/25 Gateway = 60.60.60.1

IP 1 is going to be the address of the NAT firewall.
IP 2 is going to be translated to a machine on my internal network.

The NAT firewall has 2 Ethernet interfaces ETH0 (using IP 1), and ETH1
(IP 10.0.0.1/8). Inside the LAN is a Win98 PC with 1 Ethernet interface
with an assigned address of 10.0.0.5.

PROBLEM

Because IP 2 is not local to ETH0 on my firewall I am not able to create a NAT
entry (returns network unreachable).  However if I artificially add the ARP
entry I am able to add the NAT rule, however a new problem occurs as packets
can now leave via the translated address however they get lost on their return
as again ETH0 is not local to the next hop for IP 2.  Also adding IP 2 as a
local IP alias to ETH0 prevents me from adding any NAT rules as RTNETLINK 
says it already exists.

More interestingly I have gotten my intended setup to work by accident for about
5 minutes. I cheated by first setting IP 2 on ETH0 as an alias and generating
traffic causing an ARP to be cached.  Then I removed IP 2 from ETH0 and
proceeded to add the NAT entry to translate the machine on my LAN.  However
after a little while the arp entry expired and I was back to square 1.

It seems to me if I were able to assign an "special" default route for
translated addresses on different subnets (with different gateways) this would 
correct the behavior.  However my skills in programming do not extend to this
level and hence my email :)

I look forward to hearing from all of you.

Cheers

--   
Lamp Post Networks (http://www.lamp-post.net)  
Web Hosting / Co-Location / Security Consulting


-
: send the line "unsubscribe linux-net" in
the body of a message to majordomo@vger.rutgers.edu


[Index of Archives]     [Netdev]     [Ethernet Bridging]     [Linux 802.1Q VLAN]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Git]     [Bugtraq]     [Yosemite News and Information]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux PCI]     [Linux Admin]     [Samba]

  Powered by Linux