A view of BGP in DC vs Internet
- BGP takes minutes to converge because it attempts to explore all possible paths in a monotonically increasing order. This behaviour is is known as path-hunting problem.
- It also can require O(n!) messages, where the n is the number of routers in the network. It also uses MinRouteAdvertisementInterval (MRAI) timer minimum time between advertisements from a BGP peer for a particular prefix — BGP convergence can take O(n) x MRAI seconds.
- In a drain/undrain situation this will impact the BGP to reconverge quite frequent.
- By defining route propagation scopes & limiting the set of backup paths that a BGP need to explore.
- Adding BGP Policies to limit AS_PATH carrying prefix help to prevent slow convergence during network failures, thus curbing path-hunting problem.
- In an event a router losing all its connectiions to its peer the MRAI timer is set to 0 so it can converge quickly as possible. Hoever this leads to increased advertisments but the route propogation scopes ensures the advertisments does not affect the entire network.
Its the change in network topology information & reachability that takes place when there is a abnormal BGP updates in the network. These abnormal updates can cause issues to routers by increasing CPU & memory ultilization that causes router crash or delays for legitimate updates. This leads to delay in convergence or packet drops.
Note: A huge number of routing updates in the Internet are abnormal & does not reflect to actual network changes.
What to do to avoid this abnormal changes occuring in Data Center? Well tweaking and controlling routing design, BGP configs & software implementation can help to solve this issue.
Usually BGP update messages are the reason behing for routing instabillity. I will post another write-up about BGP update message.
WWDup: Its a message sent for withdrawals for prefix which are unreachable. This occurs bcause routers don’t store any state information of its peers and would send withdrawal messages irrespective if it has sent the same message. Normally in internet scale routers which has millions of routes, its practical not to store each prefix state for each peer. However, in DC its much smaller has router has the memory to store these state of advertisments sent to each peer and check if a particular update needs sending. This way eliminates abnormal BGP withdrawals.