I have received many very helpful responses to that question. In summary, the majority common practice for the case I presented seems to be: 1. run BGP on all routers in the core, even those that do not have interfaces to the outside of the AS. Here, this means R0 should run BGP. 2. This causes a potential scaling problem since I-BGP requires a full mesh. The problem is solved by having some core routers (here: R0) be route reflectors. 3. Running MPLS over R0 is also an option but the majority recommends not to do it (more complex than running BGP everywhere). Thanks to all contributions ! JY At 12:00 09.10.2003, Jean-Yves Le Boudec wrote:
It is known that redistribution of routes learnt by BGP into an IGP is considered harmful, but I am still wondering how you can route without redistribution of BGP routes in an OSPF cloud that connects to several external networks. I have the following scenario.
RA (AS100) | RB (AS101)
------------------------
R1 R2
R0 (AS559)
R3 R4
------------------------
RC (AS201) | RD (AS202)
All routers except R0 run BGP. R0--R4 are in the same AS and run OSPF. RA-RD are all in distinct ASs. RA is BGP peer to R1, RB to R2, RC to R3 and RD to R4. The addresses and numbers are fake. The ASs are peers, not customers.
Assume that R1 learns a route to a network in AS100, says 1.1/16, with next hop = 3.3.3.1 (the IP address of the p2p link R1-RA). Now assume a data packet with destination address in 1.1/16 is received by any router in AS559, say for example R0 or R4. The router has to know where to forward it. Since AS559 connects to different peer ASs in different locations, it does not seem feasible to use default routes.
(Method 1) One way to is to assume that R1 redistributes the route 1.1/16 into OSPF, which will then propagate it as a type 4 LSA. Then R0 and R4 can build a forwarding table (using OSPF) and set a forwarding entry to 1.1/16. This method is what is described in Huitema's book "Routing in the Internet". Now I understand that this is not done in practice (I am right ?) since it forces OSPF to carry all the IP prefixes seen by BGP, which in that case might be all prefixes in the world.
(Method 2) An alternative is to have recursive table lookup in forwarding entries at all border routers (R1 to R4). R4 writes that the destination address 1.1/16 is to be sent to NEXT-HOP = 3.3.3.1. R4 learns this over I-BGP from R1. The data packet with destination address in 1.1/16 uses loose source routing inside AS559 and is sent to the link R1-RA. The job of OSPF is only to propagate how to route to all addresses in AS559 (including 3.3.3.1) and there is no redistribution of BGP into OSPF. Border routers need to update the forwarding tables using their RIB learnt from BGP.
Now source routing is obsolete in IPv4, does any one use it ?
(Method 3) Same as method 2, but IP in IP encapsulation is used instead of loose source routing. Seems heavy weight for a high speed backbone.
(Method 4) Same as method 2, but Tag Switching (or MPLS) is used instead of loose source routing.
Can any one help me understand what is done in practice among Methods 1 to 4, or any other one that I missed ?
Thanks in advance, JL