Technical Tip: Transparent mode with VRRP, HSRP or Network Load Balancer
Description
Because the FortiGate MAC address table is updated with the physical MAC address and the virtual MAC is unknown, FortiGate floods the frame to all the ports due to an 'unknown destination MAC' when the packet arrives at FortiGate for the destination as a virtual MAC.
Because of this, FortiGate does not create a session, meaning there is no stateful firewall session entry. This can cause issues including (but not limited to) reply packet drops, and an inability to perform an antivirus scan.

- The 'config system mac-address-table' command allows the configuration of a static MAC entry.


- Disable the src-check to the port that is connected with the HSRP.
config system interface
edit <interface>
set src-check disable
end
In some cases, this change becomes necessary after upgrading from v6.4 to v7.x branch. V6.4 may not offload multicast traffic in transparent mode. Beginning with FortiOS 7, certain multicast traffic, such as HSRP or VRRP, is offloaded to the NP, preventing the kernel from processing these packets and updating the MAC address table.
Consequently, the virtual MAC entry expires after five minutes due to the kernel's lack of visibility of periodic multicast advertisements. When the MAC entry expires, existing sessions continue to pass traffic, but new sessions cannot be established. These new connection attempts are dropped by the FortiGate with a 'No session matched' error.
If a firewall policy is modified, the FortiGate re-evaluates the active sessions governed by that policy. During this process, it may repopulate the MAC address table using information learned from still-active sessions.
To resolve this issue, configure a multicast firewall policy that matches HSRP traffic and disable hardware offloading so that multicast packets remain visible to the kernel.
config firewall multicast-address
edit "224.0.0.x_HSRP"
set start-ip 224.0.0.x <----- 224.0.0.x - 224.0.0.2 for HSRPv1, 224.0.0.102 for HSRPv2.
set end-ip 224.0.0.x
next
end
config firewall multicast-policy
edit 0
set srcintf "any"
set dstintf "any"
set srcaddr "all"
set dstaddr "224.0.0.x_HSRP"
set auto-asic-offload disable
next
end
Related document:
Mirroring SSL traffic in policies - FortiGate administration guide
