re: Pervasive BGP and routing loops.
toconnor@bbn.com Mon, 22 May 1995 23:26 UTC
Received: from ietf.nri.reston.va.us by IETF.CNRI.Reston.VA.US id aa14881;
22 May 95 19:26 EDT
Received: from [132.151.1.1] by IETF.CNRI.Reston.VA.US id aa14877;
22 May 95 19:26 EDT
Received: from interlock.ans.net by CNRI.Reston.VA.US id aa17223;
22 May 95 19:26 EDT
Received: by interlock.ans.net id AA10562
(InterLock SMTP Gateway 3.0 for iwg-out@ans.net);
Mon, 22 May 1995 18:55:53 -0400
Message-Id: <199505222255.AA10562@interlock.ans.net>
Received: by interlock.ans.net (Protected-side Proxy Mail Agent-1);
Mon, 22 May 1995 18:55:53 -0400
To: bgp@ans.net
Subject: re: Pervasive BGP and routing loops.
Date: Mon, 22 May 95 18:53:25 -0400
Sender: ietf-archive-request@IETF.CNRI.Reston.VA.US
From: toconnor@bbn.com
Radha Gowda <rxg@proteon.com> describes a scenario > AS 1 AS 2 > ----- ----- > | 1 | -----/---- | 2 | > ----- ----- > \ / > -----------\--------------/----------- > / \ AS 3 > \ / > ----- ----- > | 4 |--/--| 3 | > ----- ----- > IBGP > > R1 starts advertising route to 128.185.128.0/17 > Both R3 and R4 now have two paths to get to 128.185.128.0/17, and the > best one happens to be via R4. Well, let's look at this. How did each of them learn 2 paths? - R4 learns about the route from R1, and sends the R1 path to R3 - R3 learns about the route from R2, and sends the R2 path to R4 But if R3 decides the "best route" is via R4, then shouldn't it send an UNREACHABLE update to R4 ? In other words, if I advertise path X to any route R, and I then learn a better path Y to route R, then I forward the new path as a replacement OR (in this case, because of your stricture not to reflect routes back to the advertiser) I should send an UNREACHABLE. In other words if a route is advertiseable, it must also be un-advertiseable. In your scenario, R3 advertises a path to a route which it does not revoke, even though R3 itself stops using that path. Not good BGP, in my opinion. > R1 reboots with a changed policy, and starts advertising 128.185.0.0/16 Irrelevant, really. R1 could come back as before. The scenario is the same. > During which time (when the connection to R1 is lost) R4 thinks that > it can get to 128.185.128.0/17 via R3. > R3 thinks it can get to 128.185.128.0/17 via R4. > Both R3 and R4 end up pointing to each other as the next hop to get > to route 128.185.128.0/17. Neither advertises this new path > information to the other as the paths learnt from IBGP speakers are > not to be advertised back to the sender. If R3 had done its job correctly, it would receive an UNREACHABLE from R4. This would cause the earlier path via R2 to be reinstated, and then R3 advertises the R2 path to R4. So no loop would exist. ============================ Now, a loop COULD occur (for a short time) when the "best path" from R4 is direct to R1, while the "best path" from R3 is via R2. Now, you have two competitive routes simultaneously. When R1 goes down, R4 detects this and invalidates the direct path to R1, and switches to the "backup path" via R3. Then assume at the same time, R3 receives an unreachable from R2, so it switches to its backup via R4 ... bingo, routing loop. However, the loop disappears during the next UPDATE cycle -- which can be quite soon, depending on the implementation and policy. ( BTW, the picture doesn't depict it, but I assume the route is "behind" R1, and not directly reachable via R2. ) Any comments? Does this seem reasonable, or am I missing something? Tim O'Connor
- Pervasive BGP and routing loops. Radha Gowda
- re: Pervasive BGP and routing loops. toconnor
- Re: Pervasive BGP and routing loops. Tony Li
- Re: Pervasive BGP and routing loops. Radha Gowda