Académique Documents
Professionnel Documents
Culture Documents
PRÉSENTATION
Suite à l'architecture Hub & Spoke et SD-WAN abordée précédemment,
nous allons attaquer le sujet du SD-WAN / ADVPN avec un lab
légèrement différent. Les spokes seront, cette fois-ci, reliés au hub par
2 liens internet qui seront gérés par la technologie SD-WAN pour choisir
le meilleur lien. Il est particulièrement utile pour les entreprises ayant
des succursales dispersées géographiquement ou des besoins de
connectivité complexes.
CONTEXTE
SD-WAN / ADVPN
L'appliance FortiGate sera utilisée en tant que firewall et routeur :
• Firewall HQ, 192.168.132.201 (Mgmt)
• Firewall Branch-1, 192.168.132.202 (Mgmt)
• Firewall Branch-2, 192.168.132.203 (Mgmt)
• Routeurs ISP-A et ISP-B, pas de réelle sortie vers internet
• Routeur INET, interco entre ISP-A et ISP-B
Notes :
L'adresse 192.168.132.2 est la passerelle du réseau 192.168.132.0/24
utilisé pour le management.
Configuration de base
On crée les configurations de base pour les firewalls et les 3 routeurs
(qui sont également des FortiGate) : hostname, interfaces, routage et
règles firewall.
Les configurations sont téléchargeables ici.
J'ajoute ici la configuration des PC (VPCS) :
# HQ-PC
ip 172.16.0.10/24 172.16.0.1
save
# Branch-1-PC
ip 172.16.1.10/24 172.16.1.1
save
# Branch-2-PC
ip 172.16.2.10/24 172.16.20.1
save
Note :
Il ne faut pas oublier de faire aussi la configuration SD-WAN pour le
Branch-1 et Branch-2
Configuration Overlay
On passe à la configuration des IPsec. Cette fois-ci, il y aura 2 tunnels
IPsec par site. Contrairement au lab précédent, les tunnels IPsec sont
en configuration statique, l'administrateur choisit les IP du HUB et de
chaque SPOKE.
2 plages en /24 ont été choisies pour les 2 tunnels IPsec :
• ISP-A : 192.168.254.0/24
• ISP-B : 192.168.255.0/24
Pour le HUB (HQ), les adresses 192.168.25X.254 sont des IPs fictives à
ne pas utiliser par un SPOKE.
• Hub (HQ) :
config vpn ipsec phase1-interface
edit VPN-ISP-A
set type dynamic
set interface port2
set ike-version 2
set proposal des-sha1
set dhgrp 14
set peertype any
set net-device disable
set add-route disable
set dpd on-demand
set dpd-retrycount 3
set dpd-retryinterval 10
set psksecret Password
set auto-discovery-sender enable
next
edit VPN-ISP-B
set type dynamic
set interface port3
set ike-version 2
set proposal des-sha1
set dhgrp 14
set peertype any
set net-device disable
set add-route disable
set dpd on-demand
set dpd-retrycount 3
set dpd-retryinterval 10
set psksecret Password
set auto-discovery-sender enable
next
end
config vpn ipsec phase2-interface
edit VPN-ISP-A
set phase1name VPN-ISP-A
set proposal des-sha1
set keepalive enable
next
edit VPN-ISP-B
set phase1name VPN-ISP-B
set proposal des-sha1
set keepalive enable
next
end
config system interface
edit VPN-ISP-A
set vdom root
set ip 192.168.254.1/32
set type tunnel
set remote-ip 192.168.254.254/24
set interface port2
set allowaccess ping
next
edit VPN-ISP-B
set vdom root
set ip 192.168.255.1/32
set type tunnel
set remote-ip 192.168.255.254/24
set interface port3
set allowaccess ping
next
end
Notes :
• L'appliance FortiGate en mode trial (15 jours) ne permet pas
d'utiliser des algorithmes forts comme AES.
• "set add-route disable" est requis pour le routage dynamique
• "set net-device disable" permet de meilleures performances ; tous
les tunnels partageront la même interface
• Les réseaux src/dst de la phase 2 sont implicitement 0.0.0.0/0,
préférés pour le routage dynamique
• Attention à ne pas donner de noms trop longs aux VPNs. Voir ici.
• Spoke A (Branch-1) :
• Spoke B (Branch-2) :
config vpn ipsec phase1-interface
edit VPN-ISP-A
set interface port2
set ike-version 2
set proposal des-sha1
set dhgrp 14
set type static
set remote-gw 20.0.0.2
set peertype any
set localid Branch-2-ISP-A
set net-device enable
set add-route disable
set dpd on-idle
set dpd-retrycount 3
set dpd-retryinterval 10
set psksecret Password
set auto-discovery-receiver enable
next
edit VPN-ISP-B
set interface port3
set ike-version 2
set proposal des-sha1
set dhgrp 14
set type static
set remote-gw 30.0.0.2
set peertype any
set localid Branch-2-ISP-B
set net-device enable
set add-route disable
set dpd on-idle
set dpd-retrycount 3
set dpd-retryinterval 10
set psksecret Password
set auto-discovery-receiver enable
next
end
config vpn ipsec phase2-interface
edit VPN-ISP-A
set phase1name VPN-ISP-A
set proposal des-sha1
set auto-negotiate enable
next
edit VPN-ISP-B
set phase1name VPN-ISP-B
set proposal des-sha1
set auto-negotiate enable
next
end
config system interface
edit VPN-ISP-A
set type tunnel
set interface port2
set allowaccess ping
set ip 192.168.254.3/32
set remote-ip 192.168.254.1/24
next
edit VPN-ISP-B
set type tunnel
set interface port3
set allowaccess ping
set ip 192.168.255.3/32
set remote-ip 192.168.255.1/24
next
end
Configuration BGP
• Hub (HQ) :
config router bgp
set as 65000
set router-id 172.16.0.1
set ibgp-multipath enable
config neighbor-group
edit ISP-A
set remote-as 65000
set interface VPN-ISP-A
set update-source VPN-ISP-A
set route-reflector-client enable
next
edit ISP-B
set remote-as 65000
set interface VPN-ISP-B
set update-source VPN-ISP-B
set route-reflector-client enable
next
end
config neighbor-range
edit 1
set prefix 192.168.254.0 255.255.255.0
set neighbor-group ISP-A
next
edit 2
set prefix 192.168.255.0 255.255.255.0
set neighbor-group ISP-B
next
end
config network
edit 1
set prefix 172.16.0.0 255.255.255.0
next
end
end
Notes :
• "neighbor-group" et "neighbor-range" pour régler la portée du BGP
• "set route-reflector-client enable" permet aux spokes d'apprendre
les réseaux d'autres spokes
• "network" pour annoncer le ou les réseaux souhaités
• "set ibgp-multipath enable" permet le routage ECMP pour les
routes IBGP
On continue avec la configuration des firewalls spoke :
• Spoke (Branch-1) :
config router bgp
set as 65000
set router-id 172.16.1.1
set ibgp-multipath enable
config neighbor
edit 192.168.254.1
set remote-as 65000
set interface VPN-ISP-A
set update-source VPN-ISP-A
next
edit 192.168.255.1
set remote-as 65000
set interface VPN-ISP-B
set update-source VPN-ISP-B
next
end
config network
edit 1
set prefix 172.16.1.0 255.255.255.0
next
end
end
• Spoke (Branch-2) :
config router bgp
set as 65000
set router-id 172.16.2.1
set ibgp-multipath enable
config neighbor
edit 192.168.254.1
set remote-as 65000
set interface VPN-ISP-A
set update-source VPN-ISP-A
next
edit 192.168.255.1
set remote-as 65000
set interface VPN-ISP-B
set update-source VPN-ISP-B
next
end
config network
edit 1
set prefix 172.16.2.0 255.255.255.0
next
end
end
Optimisation BGP
Par défaut, le FortiGate n'autorise qu'un chemin pour les routes via
route-reflector. Pour modifier ce comportement, on va activer la
fonctionnalité additional path.
• Hub (HQ) :
config router bgp
set additional-path enable
set additional-path-select 2
config neighbor-group
edit ISP-A
set additional-path send
set adv-additional-path 2
next
edit ISP-B
set additional-path send
set adv-additional-path 2
next
end
end
• Spokes Branch-1 et 2) :
config router bgp
config neighbor
edit 192.168.254.1
set additional-path receive
next
edit 192.168.255.1
set additional-path receive
next
end
end
• Résultat :
Attention à l'ordre des règles. On met les règles les plus fines en début
de liste. Les règles SD-WAN sont traitées de la même manière que des
règles firewall : de haut en bas.
Notes :
• Il est conseillé d'utiliser une loopback pour les sondes actives.
Celle-ci sera annoncé en BGP aux voisins.
• Pour éviter d'envoyer des sondes toutes les x secondes, on peut
employer le mode Passive des sondes qui se sert du trafic (TCP)
pour déterminer la qualité d'un lien. Le mode Prefer Passive
envoie des sondes lorsqu'il n'y a pas de trafic.
Visualisation Shortcut
Le 1er ping passe par le hub (VPN-ISP-A). Le second ping passe par le
tunnel créé dynamiquement entre les 2 spokes (VPN-ISP-A_0).
Nouveau tunnel dynamique
• Résultat PING :
Le TTL est passé de 61 (Branch-1 > HUB > Branch-2) à 62 (Branch-1 >
Branch-2). On remarque que le RTT baisse également.
Conclusion