Under specific time-sensitive circumstances, if BGP determines that an UPDATE is too big to be sent to a peer, and immediately attempts to send a withdraw message, the routing daemon (rpd) may crash. An example of an oversized BGP UPDATE is one where a very long AS_PATH would cause the packet to exceed the maximum BGP message size (4096 bytes). The use of a very large number of BGP Communities can also be used to exceed the maximum BGP message size. This issue can be triggered in both IPv4 and IPv6 environments. The following message would be seen in the syslog just prior to the rpd core:
"path attribute too big. Cannot build update."
The following software releases have been updated to resolve this specific issue:
show version detail
One way to limit AS_PATH length is to create an import policy with an associated as-path filter that will drop updates with AS_PATH longer than a specified number of ASes (eg. 40). The AS_PATH filter can be any length. In the following example, AS_PATHs with more than 40 ASes, which would take 80 bytes with 2-byte AS and 160 bytes with 4-byte AS, are rejected:
policy-statement LIMIT-AS_PATH { term 10 { from { protocol bgp; as-path MAX-AS_PATH; } then reject; } } as-path MAX-AS_PATH ".{41,}"
policy-statement LIMIT-COMMUNITIES { term 20 { from { protocol bgp; community-count 50 orhigher; } then reject; } }
community-count