I have started working for an ISP. Our ISP routers run BGP with the transited provider. We are getting massive amount of routes from our provider. My question is how did the transit provider transferred routes from their one router to another router and finally advertised those routes to us from their PE3 router.
Since, redistribution of "bgp" via "bgp" not allowed then how did they do it?
I am thinking maybe:
PE1 & PE2 routers getting all the routes from Tier-1 ISPs into their BGP table, then they are redistributing all the BGP routes into an IGP. at the end, PE3 router getting all these routes from IGP and again redistributing into BGP. And this is how we are getting 200k routes on our BGP table.
internal BGP iBGP or MP i BGP can be used and scalability issues for the full mesh requirement of iBGP are solved by using Route Reflector Servers and/or the BGP confederation ( it uses mini AS with the public AS number that becomes the confederation identifier).
Redistribution of massive number of routes from eBGP into IGP is not feasible as the number of routes in a BGP full table 880,000 routes is much more the max number of routes supported by an IGP (10,000 to 50,000 routes) so this approach has been dismissed many years ago.
With RRS the iBGP split horizon rule can be relaxed and RRS are allowed to reflect = propagate routes learned from clients to other clients and from non clients to clients.
The RRS need to have a full mesh between them.
The safety of reflection is guaranteed by the addition of two BGP attributes:
BGP originator = BGP RID of the client or non client that has generated or passed the prefix
Cluster List = is a list of reflection occurred to the advertisement each RRS adds its own Cluster ID that can be equal to the RRS BGP Router ID or it can be manually set to a different value.
For redundancy two RRS can serve the same set of clients and they can use the same Cluster ID ( configured) or a different value(it is a design choice)
the Router in ISP core use MPLS label to forward traffic. PE1-PE2 there is iBGP which make PE1 advertise all prefix to PE2 with next-hop PE1 LO. all P inside ISP core not know PE1 prefix nor PE2 prefix, it know only LO of both. all P inside ISP core use MPLS label to forward traffic not using IP address header. this make PE1 prefix and PE2 prefix hide from all P router.
@MHM Cisco World is also likely correct in how data traffic is transferred within the ISP, i.e. MPLS.
BTW, ISP "routers" dealing with full BGP tables, an especially those also dealing with eBGP to multiple other ASs, are capable (so far) of handling the size of the full Internet routing table. (Personally, when IPv6 started to gain traction, I had wondered, and still do, whether the large number of networks it allows can become unmanageable on our hardware, unless we can very much aggregate blocks of IPv6 address space for routing. [Sort of the opposite problem of IPv4, not enough addresses to too many.])