Technical Tip: FortiLink connectivity can go down due to LLDP if too many VLAN interfaces are configured (Known Issue in FortiOS v7.6.3 and all older)
| Description | This article describes a known issue where FortiLink connectivity between the FortiGate and downstream managed FortiSwitches can go down when the following specific conditions are met:
|
| Scope | FortiGate, FortiSwitch, LLDP. |
| Solution | LLDP PDUs transmitted by the FortiGate are currently limited to a maximum frame size of 1500 bytes. Typically, these LLDP PDUs are significantly smaller than this, but they can grow in size based on the Type-Length-Values (TLVs) that are included within the PDU.
Notably, one TLV sub-type that can be included in outgoing FortiGate LLDP frames is 'VLAN Name' (TLV Type 127, Organization Code 00:80:c2, Subtype 0x03). This TLV will have one entry for each VLAN sub-interface associated with the FortiGate physical interface that is transmitting the LLDP PDU, which is a common case for FortiLink interfaces used by the FortiGate to manage FortiSwitch interfaces. Consider the following example:
Critically, each 'VLAN Name' TLV adds several bytes to the total size of the LLDP PDU, but the FortiGate also imposes a maximum frame size of 1500 bytes for LLDP PDUs (regardless of the link MTU setting). If too many VLANs are added to an interface, then it is possible to exceed this LLDP limit and cause the FortiGate to stop transmitting LLDP for that particular interface. For example, configuring approximately 70 VLAN interfaces with names like 'vlan###' is enough to exceed the limit, though having shorter names (like 'vl###') can allow for more VLANs before the limit is exceeded (approximately 90-100).
While this can be an issue on its own, it becomes a very significant issue if this is combined with fortilink-neighbor-detect lldp being configured on a FortiLink-enabled interface. In this case, the FortiSwitch is checking for LLDP frames sent by the FortiGate, and if they are not received on a regular basis, then the FortiGate to FortiSwitch trunk connection will go offline, bringing down FortiLink connectivity.
Recommendation: This issue impacts all FortiOS versions older than FortiOS v7.6.4 and v8.0.0, though in practice, it has a low likelihood of significant impact due to the multiple factors involved.
In particular, older FortiOS versions did not use fortilink-neighbor-detect lldp by default and instead used the older fortilink-neighbor-detect fortilink method, which does not rely on LLDP functionality. However, this issue is more likely to impact FortiGates running FortiOS v7.6.2 to v7.6.3, specifically since those set fortilink-neighbor-detect lldp as the new default setting for FortiLink (see: Troubleshooting Tip: FortiSwitch in FortiLink goes offline when FortiOS upgraded to v7.6.1 or above).
Additionally, this issue has been resolved as of change #1154361, which fixed the issue in FortiOS v7.6.4, v8.0.0, and all later versions with the following changes:
Note:
config system interface edit fortilink set stp enable next end
If STP is enabled, this implicitly sets the detection method to LLDP instead of FortiLink. See the bottom of this article: Related article: Technical Tip: How to capture LLDP (Link Layer Discovery Protocol) packet in a FortiGate |
