BGP PMTUD allows BGP to discover the smallest MTU value on a path so that BGP messages are transmitted based on the path MTU.
BGP packets are encapsulated in TCP (port 179) packets and the default MSS of a TCP packet is 536 bytes, meaning the length of update packets transmitted between BGP peers is 536 bytes. As a result, a large amount of BGP update information is distributed to different packets, and the number of ACK packets corresponding to the update information increases. Transmission this mode is inefficient. To improve the efficiency of transmitting BGP packets, the path MTU discovery mechanism can be used by both communication ends.
In Figure above,
• a BGP peer relationship is set up between Router A and Router D, the BGP messages are encapsulated into TCP (port 179) data packets for transmission
• The default MSS is 536. Therefore, Router A sends TCP data packets to Router D based on the default MSS.
• As a result, a lot of BGP messages are fragmented into different packets, and the number of ACK messages corresponding to these messages increases, leading to a low transmission efficiency.
To resolve this issue, we can configure Path MTU auto discovery for BGP peers. With PMTUD, BGP messages are transmitted based on the path MTU, which speeds up BGP message transmission and improves BGP performance. In this example, the Path MTU between Router A and Router D is 1496, this means Router A sends BGP TCP data packets with the MSS value 1456 (MTU – 20 byte IP header – 20 byte TCP header). The increase in MSS from 536 to 1460 reduces TCP/IP overhead, which helps BGP converge faster.
BGP PMTUD Advantage
The problem is that using a small MSS value creates a large amount of TCP/IP overhead, especially when TCP has a lot of data to transport like it does with BGP. The solution is to dynamically determine how large the MSS value can be without creating packets that will need to be fragmented. Packet fragmentation on intermittent router is always considered inefficient as it may result in below:
• One fragment lost will result in entire packet sent from the source.
• Introduce CPU/buffer burden.
The following Figure shows a leap in the number of supported peers when enabling BGP PMTUD. Test had been done by Colorado University with Cisco 7200 routers and shows that router can support more BGP Peers with full routing table when BGP PMTUD is enabled.
There are things that can break PMTUD. The first and last of the three bullets below are uncommon and are usually the result of an error, but the middle bullet describes a common problem.
• A router can drop a packet and not send an ICMP message. (Uncommon)
• A router can generate and send an ICMP message, but the ICMP message gets blocked by a router or firewall between this router and the sender. (Common)
• A router can generate and send an ICMP message, but the sender ignores the message. (Uncommon)
The MSS values considered in this post is based on Cisco behaviour, different vendors have different min MSS values when BGP PMTUD is enabled/disabled.