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

[ossig] Linux kernel IP stack, 7-layer OSI cake and SNAT shenanigans

Hi all, sorry for the cross-post...

This is a Linux-specific question, so Beasties beware:

I'm setting  up a network-to-network IPsec  VPN between  network A and
network B.  Once the VPN is setup, a packet entering one endpoint will
magically  appear on the other  end - so unless  networks  A and B are
numbered the same, one of two approaches are necessary:

1.  Static routes  in  each LAN send  traffic  between A and B  to the
local VPN endpoint.

2.  Each  LAN  NATs its traffic   to/from  the partner's  network.  Of
course this happens before the IPsec encapsulation!

For reasons political I  chose option 2.   AFAIK it's gonna be trivial
to do this with two boxen - one for the NAT and one for the IPsec.  Of
course, I'd like to put both these steps  in the same physical machine
to save space and  money - but  I can't figure  out  how in  heck this
would work, putting a NAT and a VPN on the same box,  with the goal of
having pass-through traffic first NAT'd and then VPN'd.

First, a question of  terminology: A user-space  PROCESS listens on an
IP  port.  What's the name for  the kernel-space thingy that processes
traffic entering the IP stack?  For example - netfilter, FreeS/WAN and
LVS  all grab incoming IP  traffic before it  gets to useland.  All of
these are specific instances of *what*  generic class/noun?  Perhaps I
need to bust out my W. Richard Stevens...

Thus  terminologically clarified, the meat of  the question is whether
(and thence *how*) I can send traffic inbound  to the IP stack to more
than one of these "thingies", e.g. NAT it  in netfilter, then IPsec it
in Openswan, then hit the routing table and off you go.  Anybody?

% You are in a maze of twisty passages, all alike.
Christopher DeMarco <cdemarco@fastmail.fm>          
PGP public key ID 0x2E76CF5C @ pgp.mit.edu
+6012 232 2106

PGP signature