[TriLUG] Routing...once again.

Ryan Leathers ryan.leathers at globalknowledge.com
Wed Aug 9 16:31:24 EDT 2006


Since someone quietly pointed out that I screwed up my definitions, here
is the correction

> the vpnclienthost ip address is called the outside global address
> the publicly routable address for Bob is called the inside global address
> the vpnclient's NATed address on the lan side of the firewall is called the outside local address
> and Bob's Eth1 is called the inside local address

So, the easy way to keep it straight is: global addresses are outside
(publicly routable) and local addresses may be private (RFC1918)

peace




On Tue, 2006-08-08 at 10:32 -0400, Ryan Leathers wrote:
> Brian,
> 
> Maybe there is a slick way to do this using Linux.  I don't know what
> that is though.  The easiest way I can think of to solve this is to use
> a router or firewall to perform outside source NAT. 
> 
> If you happen to have a Cisco router or firewall I can tell you exactly
> how to configure this, but in general terms it works this way:
> 
> Suppose you have this network
> VPNclientHost---ISP-------------Firewall------------------Bob'sEth1
> 172.16.31.31..........172.16.32.32....192.168.10.1....192.168.10.10
> 
> So some terms:
> the vpnclienthost ip address is called the outside global address
> the isp side of the firewall is called the outside local address
> the lan side of the firewall is called the inside global address
> and Bob's Eth1 is called the inside local address
> 
> What you need to do is translate source addresses as they pass from
> outside to inside, so this type of NAT is called "outside source nat"
> 
> When a packet from the outside global reaches the firewall's outside
> interface, you want it to be translated to a predetermined address.
> 
> (If I were doing this on a Cisco device I would make a decision here to
> use either ip nat outside source (static OR list) depending on whether I
> knew what all the outside globals would be in advance.)
> 
> After the packet is translated to use a new source address, say
> 192.168.99.99, it is then routed to the destination address which is
> your inside local (Bob's Eth1).
> 
> When Bob responds, he sends the reply traffic to the destination address
> of the inside global.  You simply give Bob a static route to
> 192.168.99.0/24 for example, so he will always route the VPN traffic out
> his Eth1.
> 
> When the reply reaches the firewall's inside interface the NAT process
> will put the original address back in the destination field and route it
> on its way.
> 
> I don't know what equipment you may be using or what its capabilities
> are, but I would hope it could do outside source NAT.  If not, at the
> very least a crusty old 2500 series can probably be had these days for
> under $20 and it would do a superb job on a link sporting sub-10MBPS
> line rates.     
> 
> Now then, even though this would work, I wouldn't do it this way.
> Instead, I would connect both the DSL and the Cable devices to a router
> and then use policy based routing to select the path.  This is a much
> cleaner, centralized, and scalable way to control traffic, by traffic
> type (or other criteria), to multiple ISPs.  If you'd like more detail
> on this I'm happy to pontificate.
> 
> 
> 
> On Tue, 2006-08-08 at 08:43 -0400, Brian Henning wrote:
> > Hi Gang,
> >    I know y'all are probably tired of hearing me ask about this stuff, 
> > but for some reason it's just one thing I'm having a heck of a time 
> > really grasping.  I think it's because I'm missing some fundamental 
> > understanding, some important piece of info, which is leaving the rest 
> > of it shaky.  Anyway:
> > 
> > I have a machine (let's call it "bob") with two NICs, on two subnets, 
> > for argument's sake 192.168.1.0/24 and 192.168.10.0/24.  eth0 is on 
> > .1.0, eth1 is on .10.0.  Both subnets have their own gateways, located 
> > at .1.1 and .10.1.
> > 
> > Because of certain important services that come in through the gateway 
> > on the .1.0 subnet (such as SMTP, httpd, ssh, etc.), I need bob's 
> > default gateway to be .1.1.  However, I really really really want to run 
> > OpenVPN on bob and have it move traffic solely in and out through the 
> > .10.1 gateway.  That service on that machine never needs to move a 
> > single packet out of the default gateway.
> > 
> > I know that that's impossible without some sort of fiddling; even if UDP 
> > packets come in to OpenVPN via the correct gateway (.10), the responses 
> > are routed out through the .1 gateway and dropped somewhere along the 
> > way (or ignored, if they make it all the way back to the client).
> > 
> > I figure it must be doable, though, right?  I shouldn't have to have a 
> > separate box to provide the exact same services through two different 
> > gateways, should I?  So what's the magic incantation?  route tricks? 
> > iptables tricks?  Clever misuse of load-balancing software?  I'm open to 
> > all suggestions.
> > 
> > Thanks!
> > 
> > Cheers,
> > ~Brian
> > 
> > 
> > -- 
> > ----------------
> > Brian A. Henning
> > strutmasters.com
> > 336.597.2397x238
> > ----------------




More information about the TriLUG mailing list