Passive WAN health measurement
SD-WAN passive WAN health measurement determines the health check measurements using session information that is captured on firewall policies that have passive-wan-health-measurement
enabled. Passive measurements analyze session information that is gathered from various TCP sessions to determine the jitter, latency, and packet loss.
Using passive WAN health measurement reduces the amount of configuration required and decreases the traffic that is produced by health check monitor probes doing active measurements. Passive WAN health measurement analyzes real-life traffic; active WAN health measurement using a detection server might not reflect the real-life traffic.
By default, active WAN health measurement is enabled when a new health check is created.
To configure passive WAN health check:
config system sdwan config health-check edit "1" set server <ip_address> set detect-mode {passive | prefer-passive} set members <members> next end end
passive |
Health is measured using traffic, without probes. No link health monitor needs to be configured. |
prefer-passive |
Health is measured using traffic when there is traffic, and using probes when there is no traffic. A link health monitor must be configured, see Link health monitor for details. |
To enable passive WAN health measurement in a policy:
config firewall policy edit 1 set dstintf <SD-WAN zone> set passive-wan-health-measurement enable next end
When |
Example
In this example, the FortiGate is configured to load-balance between two WAN interfaces, port15 and port16. A health check is configured in passive mode, and SLA thresholds are set. Passive WAN health measurement is enabled on the SD-WAN policy.
Measurements are taken from YouTube traffic generated by the PC. When latency is introduced to the traffic on port15, the passive health check trigger threshold is exceeded and traffic is rerouted to port16.
To configure the SD-WAN:
config system sdwan set status enable config zone edit "SD-WAN" next end config members edit 1 set zone "SD-WAN" set interface "port15" set gateway 172.16.209.2 next edit 2 set zone "SD-WAN" set interface "port16" set gateway 172.16.210.2 next end config health-check edit "Passive_Check" set detect-mode passive set members 1 2 config sla edit 1 set latency-threshold 500 set jitter-threshold 500 set packetloss-threshold 10 next edit 2 set latency-threshold 1000 set jitter-threshold 1000 set packetloss-threshold 10 next end next end config service edit 1 set name "Background_Traffic" set mode load-balance set src "172.16.205.0" set internet-service enable set internet-service-app-ctrl 31077 33321 41598 31076 33104 23397 30201 16420 17396 38569 25564 config sla edit "Passive_Check" set id 2 next end set priority-member 1 2 next edit 2 set name "Foreground_Traffic" set mode sla set src "172.16.205.0" set protocol 1 set dst "all" config sla edit "Passive_Check" set id 1 next end set priority-member 1 2 next end end
To configure the firewall policy:
config firewall policy edit 1 set name "SD-WAN-HC-policy" set srcintf "port5" set dstintf "SD-WAN" set nat enable set srcaddr "all" set dstaddr "all" set action accept set schedule "always" set service "ALL" set passive-wan-health-measurement enable set auto-asic-offload disable next end
Results
When both links pass the SLA:
# diagnose sys link-monitor-passive interface Interface port16 (28): Latency 10.000 Jitter 5.000 Packet_loss 0.000% Last_updated Fri Mar 5 10:09:21 2021 Interface port15 (27): Latency 60.000 Jitter 0.000 Packet_loss 0.000% Last_updated Fri Mar 5 10:39:24 2021
# diagnose sys sdwan health-check Health Check(Passive_Check): Seq(1 port15): state(alive), packet-loss(0.000%) latency(60.000), jitter(0.750) sla_map=0x3 Seq(2 port16): state(alive), packet-loss(0.000%) latency(10.000), jitter(5.000) sla_map=0x3
# diagnose sys sdwan service 2 Service(2): Address Mode(IPV4) flags=0x200 Gen(1), TOS(0x0/0x0), Protocol(1: 1->65535), Mode(sla), sla-compare-order Members(2): 1: Seq_num(1 port15), alive, sla(0x1), gid(0), cfg_order(0), cost(0), selected 2: Seq_num(2 port16), alive, sla(0x1), gid(0), cfg_order(1), cost(0), selected Src address(1): 172.16.205.0-172.16.205.255 Dst address(1): 8.8.8.8-8.8.8.8
When the latency is increased to 610ms on port15, the SLA is broken and pings are sent on port16:
# diagnose sys sdwan health-check Health Check(Passive_Check): Seq(1 port15): state(alive), packet-loss(0.000%) latency(610.000), jitter(2.500) sla_map=0x3 Seq(2 port16): state(alive), packet-loss(0.000%) latency(50.000), jitter(21.000) sla_map=0x3
# diagnose sys sdwan service 2 Service(2): Address Mode(IPV4) flags=0x200 Gen(6), TOS(0x0/0x0), Protocol(1: 1->65535), Mode(sla), sla-compare-order Members(2): 1: Seq_num(2 port16), alive, sla(0x1), gid(1), cfg_order(1), cost(0), selected 2: Seq_num(1 port15), alive, sla(0x0), gid(2), cfg_order(0), cost(0), selected Src address(1): 172.16.205.0-172.16.205.255 Dst address(1): 8.8.8.8-8.8.8.8