Description | This article discusses BGP overlay configuration for ADVPN 2.0. |
Scope | FortiGate v7.4.2+. |
Solution |
ADVPN 2.0 was introduced in FortiGate version 7.4.2 onwards. This is an addition to the existing configuration of ADVPN1.0 and is extremely useful for ADVPN with SD-WAN setup.
The following topology will be used for this article:
By using the route map preferable command, it will be ensured that the spokes send a community tag to indicate when the IPSec tunnel goes out of SLA: Spoke1 #
config router route-map
edit "sla_pass"
config rule
edit 1
set set-community "65001:1"
unset set-ip-prefsrc
next
end
next
edit "sla_fail"
config rule
edit 1
set set-community "65001:11"
unset set-ip-prefsrc
next
end
next
end
BGP configuration reflects route map preferable as SLA pass which means when SLA meet, the spoke will advertise the 65001:! community.
Spoke1 #
config router bgp
set as 65400
config neighbor
edit "10.254.255.1"
set remote-as 65400
set route-map-out "sla_fail"
set route-map-out-preferable "sla_pass"
set additional-path both
next
edit "10.250.255.1"
set ebgp-enforce-multihop enable
set remote-as 65400
set route-map-out "sla_fail"
set route-map-out-preferable "sla_pass"
set additional-path both
next
end
SD-WAN has neighbour configuration that specifies which health check and SLA to consider to determine the community to advertise.
Spoke1 #
config system sdwan
set status enable
config zone
edit "IPSec"
set advpn-select enable
set advpn-health-check "HUB"
next
end
config members
edit 3
set interface "hub1-Pri"
set zone "IPSec"
set transport-group 1
next
edit 4
set interface "hub1-Sec"
set zone "IPSec"
set transport-group 1
next
end
config health-check
edit "HUB"
set server "192.167.1.1"
set members 3 4
config sla
edit 1
set latency-threshold 100
set jitter-threshold 100
next
end
next
end
config neighbor
edit "10.250.255.1"
set member 3
set health-check "HUB"
set sla-id 1
next
edit "10.254.255.1"
set member 4
set health-check "HUB"
set sla-id 1
next
end
end
Hub is simply configured to match the community and to set a local preference for the route. This local preference will be forwarded to another spoke as all members are in iBGP setup.
Hub configuration: The community list has 2 communities to match 65001:1 and 65001:11.
Hub1 #
Route map matches the community and sets a local pref of 200 for 65001:1 and 100 (default) for 65001:11. This will ensure that the route on the link that matches SLA will be preferred.
Hub1 #
BGP configuration is implemented to match the route map accordingly for incoming routes:
Hub1 #
Implementation of these can be seen in the output below:
Hub now receives the community tag of 65001:11 for PrimaryVPN and 65001:1 for SecondaryVPN: Hub1 # get router info bgp network 192.168.2.0 Original VRF 0
Spoke 2 now gets the routes but installs the route via Secondary on its routing table as it is most preferred: Spoke2 # get router info bgp network 192.168.2.0 Original VRF 0
Spoke2 # get router info routing-table details 192.168.2.0 Routing table for VRF=0 |