Skip to contentSkip to conversation

adding nat awareness in routing daemons?

DISCUSSION David Täht 1 participant 1 message Oct 27, 2011

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

after shooting myself in the foot on this several times in the past couple months, I thought I'd ask...

Is there a way to determine generically (in linux at least) if outgoing addresses on an interface are being NATTed or not? via netlink? I can come up with a way to do this via parsing iptables's nat table but that's kind of ugly.

The scenario I have is two (or more) routers with their external interfaces connected to a shared ethernet/cable segment. Both do NAT on their external interfaces for ipv4 (but don't do nat, at least currently, for ipv6). Their private networks are usually connected together via various means (mesh mostly), which can fail, and it would be nice to be able to add the external connectivity as a fallback without having to worry about NAT.

e.g. something like

if (nat_status(&this_interface)) {
        if(this_interface & IPV4_NO_NAT) send_route4_calculations();
        if(this_interface & IPV6_NO_NAT) send_route6_calculations();
}

Where I did myself in on this was in the lab

http://io.lab.bufferbloat.net:8080/

Signature · 1 line
Dave Täht

begin:vcard
fn;quoted-printable:Dave T=C3=A4ht
n;quoted-printable:T=C3=A4ht;Dave
email;internet:[email protected]
tel;home:1-239-829-5608
tel;cell:0638645374
x-mozilla-html:FALSE
version:2.1
end:vcard