Subject: Route oscillation

From: "M. ELK" <[email-masked]>
Date: Wed, 17 Jul 2002 16:19:06 +0000

Hi

Just an idea from non-expert ,

2 choice :

Choice1-

Assume R1 and R2 in AS1

R3 in AS3 , R4 in AS4

R1/R3 have eBGP session , R2/R4 have eBGP session . R1/R1 have iBGP session .

R3 advertise path to 10.0.0.0/8 to R1 .

R1 advertise 10.0.0.0/8 from AS3 to R2 .

R4 advertise 10.0.0.0/8 to R2 .

R2 select the path from AS4 as the best .

R2 advertise the path from AS4 to R1 .

R1 also select the path from As4 as the best ,but instead of sending to R2 a withdraw of the path from AS3 it re-advertise the path from AS3 but this time with Community=0xFFFFFFFF

Community 0xFFFFFFFF = The path is "HOLD/Poison" advertise because U provide me a better path ,pls assign a distance (CISCO terminology) of 255 to

this path .

R1 associate a flag "F" with the path from As3 in the ADJ-RIB-OUT

The distance=255 will prevent this path to be inserted in the routing table even if it is the best path based on BGP selection .

Case1: R3 withdraw the path to 10.0.0.0/8 .

R1 will send normal withdrwal to R2 .

R2 delete the path from AS3

Case 2: R4 withdraw the path to 10.0.0.0/8 .

R2 now is left with the path from As3 as the best (it is the only one) but since it can not be installed in the routing table R3 just delete the entry

of 10.0.0.0/8 from the routing table . .

R2 advertise the withdraw of 10/8 from AS4 to R1 .

R1 select the path from AS3 as the best (the only one) .

Since this path from AS3 is associated with flag "F" in ADJ-RIB-OUT so R1 need to consider as if this path was not advertised to R2 before and

as such to be advertise (this time as normal ie: without 0xFFFFFFFF community) to R2 .

R2 insert the new route in the BGP ,and it will be inserted as normal in the routing table .

The use of community 0xFFFFFF is exactly as if R1 is sending to R2 "distance 255 10/8" .

Choice2-

Assume R1 and R2 in AS1

R3 in AS3 , R4 in AS4

R1/R3 have eBGP session , R2/R4 have eBGP session .

R3 advertise path to 10.0.0.0/8 to R1 .

R1 advertise 10.0.0.0/8 from AS3 to R2 .

R4 advertise 10.0.0.0/8 to R2 .

R2 select the path from AS4 as the best .

R2 advertise the path from AS4 to R1 .

R1 also select the path from As4 as the best , R1 send to R2 the withdraw of the path from AS3 but with Community=0xFFFFFFFF

Community 0xFFFFFFFF = The path is withdrwan because U provide me a better path ,pls do not delete from ADJ-RIB-IN just assign a distance (CISCO terminology) of 255 to this path .

R2 upon recieveing the withdraw of the path from AS3 with community 0xFFFFFFFF ,it will not remove it from the ADJ-RIB-IN but simply will

assign a distance of 255 and start a timer "T" . say Timer T= 60 min .

on expiry of timer T , the path is deleted from ADJ-RIB-IN .

The distance=255 will prevent this path to be inserted in the routing table even if it is the best path based on BGP selection .

Case1: R3 withdraw the path to 10.0.0.0/8 .

since R1 is already withdraw the path from As3 toward R2 so it will do nothing .

Providing that R3 will not advertise back again the path for a period > T . The path will be stored in R2 for a max duration of 60 min .

ie: this residual path will be clean after a max period of 60 min .

Case 2: R4 withdraw the path to 10.0.0.0/8 .

R2 now is left with the path from As3 as the best (it is the only one) but since it can not be installed in the routing table R3 just delete the entry

of 10.0.0.0/8 from the routing table . .

R2 advertise the withdraw of 10/8 from AS4 to R1 .

R1 select the path from AS3 as the best (the only one) .

Since this path from AS3 is associated with flag "F" in ADJ-RIB-OUT so R1 need to consider as if this path was not advertised to R2 before and

as such to be advertise (this time normally without 0xFFFFFFFF community) to R2 .

R2 insert the new route in the BGP ,and it will be inserted as normal in the routing table .

The use of community 0xFFFFFF is exactly as if R1 is sending to R2 "distance 255 10/8" .

The idea of choice "1" or "2" is just to differentiate betweeen 1)a path is withdrawn because it is no longer valid , 2) the path is withdrawn because the router just got a better route from his peer .

Now for the RR :

using the doc avail on ESnet   http://www.es.net/hypertext/welcome/pr/BGP/BGP_Route_Oscillation_Type1a_v1.0.pdf

On page 7 of BGP_Route_Oscillation_Type1a_v1.0[1].pdf :

instead of RD(RR2) withdraw route from AS6b :

1)it re-advertise the path from AS6b but with community 0xFFFFFFFF (choice 1 above)

OR

2)it withdraw but with community 0xFFFFFFFF . (choice 2 above)

I guess this could block the oscillation .When using choice 2 (due to the use of timer T) the oscillation will start again when timer T expire but within few exchange it will be stoped . ie: 1 cycle of oscillation each T .

For scalability :

This feature to be deployed only on the RR .

The RR (say RR1)  send such community only to the  IBGP perr  which advertised the best route providing that peer is not one of RR1 clients .

If the above is workable we have avoided to change the BGP standard such as

advertising multi path .

Brgds EL-Koussy

MSN Photos is the easiest way to share and print your photos: Click Here