Tier 2 support was able to resolve my issue in no time! Here’s what was going on:
The screenshot of the static routes showed a distance value of 10, and all things being equal, all three static routes should have appeared in the routing table screenshot. However, if you look close, the routing table’s entries for port 13 and 14 have a distance value of 5 instead of 10. This is because port 13 and 14 are PPPoE connections and are getting their default gateway information from the server (because it may change from time to time on a DHCP connection). When the “get default gateway from server†setting is enabled, the distance value of the interface is applied with a default value of 5.
The Fortigate will only put the route(s) with the lowest distance value into the routing table. Port 13 and port 14 had a value of 5 per their interface configuration so they made it in, whereas port 15 had a value of 10 set in the static route configuration, so it didn’t make it in. The funny thing here is that the two entries for ports 13 and 14 in the static routes screen were doing nothing because those entries had a distance value higher than the interface configuration. The static route configuration for port 15 was applying, but wasn’t added to the routing table because it’s value was higher than those of port 13 and 14.
I removed the static routing entries for ports 13 and 14, and decreased the distance value of port 15 in the static routes screen to 5. Bingo – it works!
I also wanted to change the priority of port 13 and 14 so that all Internet traffic goes over port 15 (faster connection) unless it is down. If 15 is down I want to use port 13 and 14 as backup load-balanced links. I increased the priority value of port 13 and 14 at the CLI with these commands:
IASLC-FW01 # config sys interface
IASLC-FW01 (interface) # edit port13
IASLC-FW01 (port13) # set priority 5
IASLC-FW01 (port13) # next
IASLC-FW01 (interface) # edit port14
IASLC-FW01 (port14) # set priority 5
IASLC-FW01 (port14) # end
Today I learned:
1. Fortinet support and forums are wonderful!
2. Fortigate looks at routing information before policies
3. Fortigate looks at policy routes before static routes
4. Fortigate will only enter the route(s) with the lowest value into the routing table, higher-distance routes will not be entered into the routing table until lower-distance routes go down.
5. When an route has a distance configured in both the Interface and Static Route screens (as is the case with DHCP PPPoE connections with default gateway information coming from the server) the Interface configuration will take precedence.
Thank you all for your time!