From mboxrd@z Thu Jan 1 00:00:00 1970 From: Warren Flemmer warren@netlab.co.za Date: Sat, 18 Nov 2000 16:28:57 +0000 Subject: [LARTC] A complicated routing scenario (for me at least) Message-Id: List-Id: References: In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: lartc@vger.kernel.org
I rely on the routers to detect the downed link. If the route through the
serial is default and down then the second default (matrix 2) is used (this
has been tested on intel routers, and I am yet to see the intel do something
that the cisco can't).
The Single Box: I tried and tried and tried. Eventually I went to two boxes
and the problem as solved.
Reason for 2 boxes.
The crossrouter does source routing based on which source ip is used (If the
ip of the source belongs to isp1 then the data should go out though isp1,
the data could quite easily go through isp2 but would return through isp1,
making it imperitive that both links are up). This makes load balancing
possible (for me at least), my dial-ins are assign alternating ips from the
different isps. Since I rely on the routers to handle the routing for a
downed link, if the data is sent back to the same box, the box has no idea
the link is down and it would send it back to the same downed link, causing
a loop. I initially thought that marking data as it went out would enable
the one box to adjust the routes (route based on fwmark) if the same marked
data was retrieved, but I could not get this to work. The second box
(redundancy) instead gets the data from the router (if link down). It then
MASQ the data on the other isps ip and sends the data out.
My first impression was that 1 one box solution was feasible, but without
some way of knowing the data has been sent back by the router this is not
possible. New features in kernel 2.4 may permit this. If I managed to get
the marking to work (I managed to mark data and send data based on mark but
the returned data from the router was not always marked!), one box might
have been possible.
Even if a one box solution were possible I think I may stay with the two
boxes for now. I intend to upgrade to kernel 2.4 and use SNAT instead of
MASQ. The box I use is old and out of date for any real processing function
but works great for the app. Keeping the boxes separate would make upgrading
easy. The solution is also considerably simpler and easier to test.
-----Original Message-----
From: Mike Fedyk <mfedyk@matchmail.com>
To: Warren Flemmer <warren@netlab.co.za>
Cc: LARTC@mailman.ds9a.nl <LARTC@mailman.ds9a.nl>
Date: Friday, November 17, 2000 2:04 PM
Subject: Re: [LARTC] A complicated routing scenario (for me at least)

>Warren Flemmer wrote:
>>
>> Greetings
>>
>> I am new to iproute2 and therefore would not try to give a direct answer
to
>> any of your questions. I have, however, been working on what seems to me
to
>> be a similar problem and will offer it here in case it assists.
>>
>> I two have two links to the internet though different isps. The
requirements
>> were that users on the lan would be as oblivious as possible to any one
link
>> going down.
>>
>> The solution I came up with involved two new linux boxes. Both using
iproute
>> and one using masq (nat with 2.4 when released). One box was placed
between
>> the two isps with source routing and a third network card linking to the
>> dns,www etc (I call it a crossrouter). The second box also links the two
>> isps and uses source routing and masq to offer redundancy (redundancy
box).
>> An attempt at text art may help
>>
>> isp1                     +redundancy box+                         isp2
>> |                            |                             |
>> |
>> +---------------------+                           +---------------------+
>>                              |                             |
>>                              +   Crossrouter     +
>>                                             |
>>      ---+---------+---------------+----------------------------------Lan
>>       www      dns                              etc
>>
>> I made may attempts to use one box instead of two without any luck. I had
>> bad results with marking that would have made a single box solution
>> possible. The result was the two boxes. On the routers to the isp I have
a
>> second default route to the redundancy box with a higher matrix. If one
link
>> fails the data is routed to the redundancy box where it is masq on an ip
>> (one assigned by the isp with the good link) address and sent out through
>> the other isp. Every test I have done is showing the solution to work but
it
>> has not been fully deployed yet.
>>
>> I would imagine that this type of solution would be worth using is you
link
>> to two different isps and BGP is not available. I intend doubling up on
the
>> crossrouter as it will become a single point of failure.
>>
>> If anyone knows of a better solution I would be interested to know.
>>
>> Hope this helps
>>
>> Regards
>> Warren
>>
>> _______________________________________________
>> LARTC mailing list / LARTC@mailman.ds9a.nl
>> http://mailman.ds9a.nl/mailman/listinfo/lartc HOWTO:
http://ds9a.nl/2.4Routing/
>
>I think in this case, you may be able to do what you want with a single
box,
>unless you need to route based on fwmark or something set in ipchains.
>
>If all you need to base the information on is source address, or something
>already in the packet, a single box solution should be feasible.
>
>Can you elaborate on your current setup?  How/what detects that the ISP has
gone
>down?  What switches you to forward to the other router?  Are you running
any
>routing/status_monitoring daemons?
>
>So far, the only way I've been able to detect that the ISP is down is a
ping.