NBMA GRE over IPsec behind NAT
From: Timo Teräs <hidden>
Date: 2008-09-25 07:51:40
I've been working on OpenNHRP (http://opennhrp.sf.net) to get Cisco DMVPN support for Linux boxes. Basically it is NBMA GRE over IPsec. And the GRE level private IP-public IP mapping is done via NHRP protocol. OpenNHRP does this by talking to kernel neighbor cache. I haven't still bumped into this problem (and probably won't for a while), but it'd be good to solve it anyway. The problem is that, if I have multiple IPsec nodes behind same NAT box, that is both have same public-ip, but different NAT original address, the NHRP private ip to public ip mapping is not enough. Since NHRP knows the NAT-OA it could indicate that back to kernel to the neighbor cache. ip_gre could then pass that information to xfrm layer which could using that decide the correct IPsec SA to use. Now trying to figure out how this should be done. Maybe a new attribute to neighbor cache message? Or give both IP addresses in the NDA_LLADDR attribute? And how could ip_gre pass that info to xfrm? Or maybe IP gre would not have to be touched, just make xfrm get the extra info from neighbor cache? Thanks, Timo