Disaster recovery using as-prepend?

Warren Kumari warren at kumari.net
Sat Feb 18 01:50:35 UTC 2006


On Feb 17, 2006, at 1:25 PM, Christopher L. Morrow wrote:

> On Fri, 17 Feb 2006, Todd Vierling wrote:
>
>>
>> On Thu, 16 Feb 2006, Warren Kumari wrote:
>>
>>> If your primary is connected to ISP_A and the backup is connected  
>>> to ISP_B,
>>> customers connected to ISP_B MAY still flow to your backup DC  
>>> (ISP_B will
>>> probably set local preference on all customer routes - you should  
>>> be able to
>>> override this behavior with communities but not all providers  
>>> support this (or
>>> honor it 100% of the time!))
>>
>> And in addition to that, even multihomed customers of ISP_B may  
>> choose the
>> prepended route for a number of different reasons; for instance,  
>> ISP_B might
>> be a cheaper pipe for them, or there may be a smart-ish routing  
>> device or
>> scheme in play that overrides normal BGP decision making.
>
> I might be crazy, but couldn't you just prepend the route enough to
> effectively poison it at ingress to 'backup-isp' ? so they kept  
> chosing
> the remote path and never really accept the route from local until the
> remote path is gone?
>

Not really - horrendous ASCII art below:

                           Customer
                         /                  \
                       /                     \
                  ISP_A ---------ISP_B
                     \                      /
                     \                    /
                   DC1         DC2

Assuming DC is AS_65530, ISP_A is AS_655301 ISP_B is AS_655302 and  
DC_2 prepends 5 (or some other "large" number)  times:

Under "normal" conditions:
ISP_A sees:
	192.0.2.0/24 -- 65530 i   (direct from DC1)
ISP_B sees
	192.0.2.0/24 -- 65530 65530 65530 65530 65530 i (direct from DC2)
	192.0.2.0/24 -- 65531 65530 i (ISP_A -> DC_1)  <= Best due to AS_PATH
Customer sees:
	192.0.2.0/24 -- 65531 65530 i  (ISP_A -> DC1)  <=Best due to AS_PATH
	192.0.2.0/24 -- 65532  65531 65530 i (ISP_B -> ISP_A -> DC1)

If ISP_B sets Local-Pref on customer routers:
ISP_A sees:
	192.0.2.0/24 -- 65530 i   (direct from DC1)
ISP_B sees:
	192.0.2.0/24 -- 65530 65530 65530 65530 65530 i (direct from DC2) <-  
Best due to Local-Pref
	192.0.2.0/24 -- 65531 65530 i (ISP_A -> DC_1)
Customer sees:
	192.0.2.0/24 -- 65532 65530 65530 65530 65530 65530 i (ISP_B  -> DC2)
	192.0.2.0/24 -- 65531 65530 i (ISP_A -> DC_1) <- Best due to AS_PATH

This means that any traffic that enters ISP_B (eg: Customer is singly  
homed to ISP_B, their connection to ISP_A goes down or they adjust  
local_pref to prefer ISP_B) will go to DC2.
The problem is that Local-Pref trumps basically all other conditions  
in the BGP decision process - if ISP_B adjusts it it will be prefered  
in their network no matter how many times you prepend.

Warren







More information about the NANOG mailing list