Hi, This is probably a typical setup for border router not speaking BGP, wonder how to handle it properly. Border router B is connected with customer router C. Router C wants default-only/partial/full routes. Router B can't or is not willing to handle it. Router C has a multihop EBGP session with a backbone router A. To get router B know the customer routes, router A redistributes them from EBGP to OSPF. The issue is redistribution from EBGP to OSPF works half way. OSPF database has the external routes, but forwarding address is set to Router A. So the routing loop occurs between A and B. I wonder if it is a design issue or configuration issue? Thanks, Richard ---------- -------------- ------------ | BGP rtr A | ============ | no-BGP rtr B | ============ | Customer C | ---------- -------------- ------------
On 13 jun 2011, at 19:25, Richard Zheng wrote:
The issue is redistribution from EBGP to OSPF works half way. OSPF database has the external routes, but forwarding address is set to Router A. So the routing loop occurs between A and B.
If the link to the customer is of a type that detects up/down quickly, the easiest way to get around this is to simply point a default to the customer interface at router B. Another option is running a separate OSPF instance between B and the customer. Or just ignore the issue that if/when the link to the customer goes down, router B doesn't notice and keeps forwarding packets into the void. You would want to make sure that the customer's prefix isn't propagated in OSPF, though, so the issue is limited to this one router, not the whole AS.
On Mon, Jun 13, 2011 at 1:25 PM, Richard Zheng <rzheng@gmail.com> wrote:
This is probably a typical setup for border router not speaking BGP, wonder how to handle it properly. Border router B is connected with customer router C. Router C wants default-only/partial/full routes. Router B can't or is not willing to handle it. Router C has a multihop EBGP session with a backbone router A. To get router B know the customer routes, router A redistributes them from EBGP to OSPF.
The issue is redistribution from EBGP to OSPF works half way. OSPF database has the external routes, but forwarding address is set to Router A. So the routing loop occurs between A and B.
I wonder if it is a design issue or configuration issue?
---------- -------------- ------------ | BGP rtr A | ============ | no-BGP rtr B | ============ | Customer C | ---------- -------------- ------------
Hi Richard, Just a SWAG, but run IBGP on router B with just your internal routes (including the customer route) instead of exporting into OSPF? Regards, Bill Herrin -- William D. Herrin ................ herrin@dirtside.com bill@herrin.us 3005 Crane Dr. ...................... Web: <http://bill.herrin.us/> Falls Church, VA 22042-3004
-----Original Message----- From: William Herrin [mailto:bill@herrin.us] Sent: Monday, June 13, 2011 3:34 PM To: Richard Zheng Cc: nanog@nanog.org Subject: Re: bgp feed to customer On Mon, Jun 13, 2011 at 1:25 PM, Richard Zheng <rzheng@gmail.com> wrote:
This is probably a typical setup for border router not speaking BGP, wonder how to handle it properly. Border router B is connected with customer router C. Router C wants default-only/partial/full routes. Router B can't or is not willing to handle it. Router C has a multihop EBGP session with a backbone router A. To get router B know the customer routes, router A redistributes them from EBGP to OSPF.
The issue is redistribution from EBGP to OSPF works half way. OSPF database has the external routes, but forwarding address is set to Router A. So the routing loop occurs between A and B.
I wonder if it is a design issue or configuration issue?
---------- -------------- ------------ | BGP rtr A | ============ | no-BGP rtr B | ============ | Customer | C | ---------- -------------- ------------
Hi Richard, Just a SWAG, but run IBGP on router B with just your internal routes (including the customer route) instead of exporting into OSPF? Regards, Bill Herrin -- William D. Herrin ................ herrin@dirtside.com bill@herrin.us 3005 Crane Dr. ...................... Web: <http://bill.herrin.us/> Falls Church, VA 22042-3004 Hi Richard, Could you run a bgp session on Router B ? I had to do this once for a customer because we had layer 3 switches on the edge with routing. I configured 2 BGP sessions at the customer's router. The first session was between Customer C and Router B. I only sent the default route to the customer. The next session was ebgp multihop between Router A and Customer C with full routing. I did allow the customer to announce the /30 to Router B just so Router A could learn the return path or you could just static route the /30 from Router A Now if the link Breaks between Router B and Customer C BGP will drop both sessions. Thanks Jim Gonzalez
Hi Richard, Could you run a bgp session on Router B ? I had to do this once for a customer because we had layer 3 switches on the edge with routing. I configured 2 BGP sessions at the customer's router. The first session was between Customer C and Router B. I only sent the default route to the customer. The next session was ebgp multihop between Router A and Customer C with full routing. I did allow the customer to announce the /30 to Router B just so Router A could learn the return path or you could just static route the /30 from Router A
Now if the link Breaks between Router B and Customer C BGP will drop both sessions.
Thanks Jim Gonzalez
When Router A redistributes external routes to OSPF, it sets the next hop to itself. All the routers include Router B in the AS sends to traffic to Router A which sends to Router B and causes a loop. The root cause is the inability to set next-hop address for ospf route even though external routes have a 'forward address' field. It looks like that there are three solutions, (a), Router B talks EBGP with Router C and then redistribute to OSPF (b), Router B talks IBGP with Router A and then redistribute to OSPF, redistribution may not be necessary if you don't care traffic from other routers goes to Router A first, then to B and C. (c), Create a tunnel between Routers A and C so that A sends traffic to tunnel IP, instead router C Personally I prefer (b) because only one EBGP is required to the customer. I just need to figure out the IBGP config on Router A so that it only sends the customer routes instead of the whole table. Thanks, Richard
participants (4)
-
Iljitsch van Beijnum
-
Jim Gonzalez
-
Richard Zheng
-
William Herrin