Many customer struggle when they choose their main data center routing protocol. Very large data center operators such as Microsoft and Facebook made their decision on EBGP as the only routing protocol to build their data center fabrics (as documented in RFC 7938). On the other hand, smaller customers typically run OSPF or ISIS as EBGP is overkill for them.
The question I typically get from my customers is when and where they should consider EBGP?
In this blog, I will try to answer this question.
If you’re building a small data center fabric that is no larger than a few dozen switches, and you are not familiar with BGP, then you should:
– Use OSPF or IS-IS as the fabric routing protocol.
– Use BGP only when needed, for example to run EVPN control plane or a mix of IPv4, IPv6 and EVPN families.
If you plan to run BGP in combination with an underlying IGP, then:
- Use IBGP within a single data center (or pod) and EBGP between them
- Use spine switches as BGP route reflectors.
If you have large data center deployment, and you are looking for wide vendor support with simple topology and single protocol, then EBGP is the protocol to use. EBGP has the following benefits:
1) Lower opex/capex: wide vendor support with cheaper infrastructure options. Also, no need for higher-radix boxes, cheap commodity switches running as spine/leaf layer with EBGP will do the trick.
2) Multiple Address Families: If you use EVPN or MPLS/VPN in your data center fabric, you’ll have to configure BGP anyway. It might be easier to use a single routing protocol (EBGP) instead of IBGP+IGP. If you plan to deploy IPv4 and IPv6 in parallel, use a single routing protocol that supports multiple address families. There are three routing protocols that you could use: BGP, IS-IS or OSPV3 with OSPFv3 with address family support. BGP is usually the best choice if you want to use multiple address families unless you’re familiar with IS-IS and use data center switches with reliable and mature IS-IS implementation. OSPFv3 implementations with address family support are still not as widespread as the alternatives.
3) Advertising Internal Fabric Prefix: If your fabric uses public IPv4/IPv6 addressing, and you plan to advertise those prefixes directly to your WAN or public Internet, it makes more sense to run BGP as the fabric-wide routing protocol to have the same internal and external routing protocol.
4) Uniform Routing Protocol: No interworking/redistribution etc…