SDWAN IPSec monitoring met gebruik van Loopback adapter

SDWAN IPSec monitoring met gebruik van Loopback adapter

Er zijn vele verschillende manieren dat SDWAN van Fortinet ingezet kan worden, een daarvan is door uw VPNs in de gaten te houden middels SDWAN health checks op basis van Loopback adressen.
De voordeel van het gebruik van loopback adressen is dat iedere site 1 uniek IP adres gebruikt voor SDWAN monitoring, waarmee 1 of meerdere verbindingen mee in de gaten gehouden kan worden. Met gebruik van loopback interfaces hoef je niet voor iedere verbinding individueel een SDWAN monitor te maken.
In dit tech artikel hebben we de volgende opstelling:

  • 2x Fortigate met FortiOS 7.0.13+
  • 2 Internetverbindingen op iedere locatie

In dit artikel wordt uitgebreid gebruik gemaakt van de CLI, omdat ten tijde van schrijven van dit document niet alle configuratie mogelijk is via de GUI.

In deze situatie zijn de fysieke Internetverbindingen op poort 17 en poort 18 al in SDWAN geconfigureerd en is al volledig functioneel. We gaan in dit tech artikel VPN’s bouwen tussen deze fortigates, deze VPNs in SDWAN zetten, en vervolgens SDWAN monitoring aanzetten.

Basisconfiguratie WAN

In dit tech artikel staat SDWAN al geconfigureerd op de Internetverbindingen. De SDWAN configuratie is als volgt:

WDX-MSS-FW01

config system sdwan

    set status enable

    config zone

        edit “virtual-wan-link”

        next

    end

    config members

        edit 1

            set interface “port17”

            set gateway 100.64.10.1

            set cost 100

        next

        edit 2

            set interface “port18”

            set gateway 100.64.10.129

            set cost 110

        next

    end

    config health-check

        edit “GooglePing”

            set server “8.8.8.8”

            set update-static-route disable

            set members 1 2

            config sla

                edit 1

                    set latency-threshold 50

                    set jitter-threshold 50

                    set packetloss-threshold 25

                next

            end

        next

    end

    config service

        edit 1

            set name “Internet”

            set mode sla

            set dst “all”

            set src “all”

            config sla

                edit “GooglePing”

                    set id 1

                next

            end

            set priority-zone “virtual-wan-link”

        next

    end

end

config router static

    edit 1

        set status enable

        set dst 0.0.0.0 0.0.0.0

        set distance 1

        set sdwan-zone “virtual-wan-link”

    next

end

config firewall policy

    edit 1

        set name “Internet”

        set srcintf “lan”

        set dstintf “virtual-wan-link”

        set action accept

        set srcaddr “all”

        set dstaddr “all”

        set schedule “always”

        set service “ALL”

        set logtraffic all

        set nat enable

    next

end

WDX-CC-FW01

config system sdwan

    set status enable

    config zone

        edit “virtual-wan-link”

        next

    end

    config members

        edit 1

            set interface “port17”

            set gateway 100.64.20.1

            set cost 100

        next

        edit 2

            set interface “port18”

            set gateway 100.64.20.129

            set cost 110

        next

    end

    config health-check

        edit “GooglePing”

            set server “8.8.8.8”

            set update-static-route disable

            set members 1 2

            config sla

                edit 1

                    set latency-threshold 50

                    set jitter-threshold 50

                    set packetloss-threshold 25

                next

            end

        next

    end

    config service

        edit 1

            set name “Internet”

            set mode sla

            set dst “all”

            set src “all”

            config sla

                edit “GooglePing”

                    set id 1

                next

            end

            set priority-zone “virtual-wan-link”

        next

    end

end

config router static

    edit 1

        set status enable

        set dst 0.0.0.0 0.0.0.0

        set distance 1

        set sdwan-zone “virtual-wan-link”

    next

end

config firewall policy

    edit 1

        set name “Internet”

        set srcintf “lan”

        set dstintf “virtual-wan-link”

        set action accept

        set srcaddr “all”

        set dstaddr “all”

        set schedule “always”

        set service “ALL”

        set logtraffic all

        set nat enable

    next

end

In de GUI ziet dit er als volgt uit:

Deze configuratie is beknopt als volgt:

  • Poort 17 en Poort 18 zijn members van de zone “virtual-wan-link”
  • Poort 17 heeft een cost van 100, Poort 18 heeft een cost van 110 (Actief/Passief m.b.t. Client naar Internet verkeer)
  • Er is 1 SDWAN healthcheck op beide interfaces geconfigureerd, GooglePing, welke naar 8.8.8.8 pingt. (Tip: zorg ervoor dat je in productie altijd meer als 1 check in gebruik hebt op de internetverbindingen)
  • Default route staat naar de virtual-wan-link zone
  • Security Policy gemaakt welke vanaf LAN alles naar SDWAN toelaat met NAT ingeschakeld.
  • Er is een VLAN interface aangemaakt met een /16 subnet voor “lan”.

Nieuwe situatie overzicht

In de nieuwe situatie worden 2 VPN’s gebouwd, een over Internetverbinding 1 (beide locaties) en een over Internetverbinding 2 (beide locaties). Elke Firewall wordt voorzien van 1 Loopback adapter. Elke locatie heeft een /16 als “LAN” subnet welke met elkaar moeten kunnen communiceren. We gaan configureren dat SDWAN automatisch VPN’s uitschakelt wanneer op een (of meerdere locaties) een internetverbinding uitvalt.

Loopback Interface Configuratie

Het essentiële van deze configuratie is de Loopback Interface. De Loopback interface wordt gebruikt door SDWAN om te controleren of de VPN-verbinding nog functioneert. Hiermee is het niet nodig dat elke VPN tunnel individueel van IP adressen moet worden voorzien en zijn de firewalls op locatie te monitoren met 1 IP adres.

In de GUI ziet de loopback adapterconfiguratie als volgt uit:

 

In de CLI ziet dit als volgt uit:

WDX-MSS-FW01

config system interface

    edit “sdwan-monitor”

        set vdom “root”

        set ip 10.255.0.10 255.255.255.255

        set allowaccess ping

        set type loopback

        set role lan

    next

end

WDX-CC-FW01

config system interface

    edit “sdwan-monitor”

        set vdom “root”

        set ip 10.255.0.20 255.255.255.255

        set allowaccess ping

        set type loopback

        set role lan

    next

end

VPN Configuratie

In dit hoofdstuk behandelen we de VPN configuratie.

De VPN’s zijn geconfigureerd als volgt:

  • IKEv2 met PSK
  • Phase1: AES256-SHA256 DH5 & DH14
  • Phase2: AES256-SHA256 met PFS DH5 & DH14 met 0.0.0.0/0 als traffic selector
  • Adverteer het sdwan-monitor loopback IPv4 adres via de VPN.

Wegens de laatste punt is het niet mogelijk om dit exclusief via de GUI te doen, onderstaand is deze configuratie in blauw gemarkeerd. In de CLI ziet deze configuratie als volgt uit:

WDX-MSS-FW01

config vpn ipsec phase1-interface

    edit “VPN-ISP1”

        set interface “port17”

        set ike-version 2

        set peertype any

        set net-device disable

        set exchange-interface-ip enable

        set exchange-ip-addr4 10.255.0.10

        set proposal aes256-sha256

        set remote-gw 100.64.20.2

        set psksecret xxxxxxx

    next

    edit “VPN-ISP2”

        set interface “port18”

        set ike-version 2

        set peertype any

        set net-device disable

        set exchange-interface-ip enable

        set exchange-ip-addr4 10.255.0.10

        set proposal aes256-sha256

        set remote-gw 100.64.20.130

        set psksecret xxxxxxx

    next


end

config vpn ipsec phase2-interface

    edit “VPN-ISP1”

        set phase1name “VPN-ISP1”

        set proposal aes256-sha256

    next

    edit “VPN-ISP2”

        set phase1name “VPN-ISP1”

        set proposal aes256-sha256

    next

end

WDX-CC-FW01

config vpn ipsec phase1-interface

    edit “VPN-ISP1”

        set interface “port17”

        set ike-version 2

        set peertype any

        set net-device disable

        set exchange-interface-ip enable

        set exchange-ip-addr4 10.255.0.20

        set proposal aes256-sha256

        set remote-gw 100.64.10.2

        set psksecret xxxxxxx

    next

    edit “VPN-ISP2”

        set interface “port18”

        set ike-version 2

        set peertype any

        set net-device disable

        set exchange-interface-ip enable

        set exchange-ip-addr4 10.255.0.10

        set proposal aes256-sha256

        set remote-gw 100.64.10.130

        set psksecret xxxxxxx

    next

 

end

config vpn ipsec phase2-interface

    edit “VPN-ISP1”

        set phase1name “VPN-ISP1”

        set proposal aes256-sha256

    next

    edit “VPN-ISP2”

        set phase1name “VPN-ISP2”

        set proposal aes256-sha256

    next

end

Nu gaan we deze VPNs in SDWAN configureren.

Maak op beide firewalls een nieuwe zone aan genaamd “VPN”

conf sys sdwan

  config zone

    edit “VPN”

    next

  end

end

De volgende configuratie moet via de CLI gebeuren, want de configuratie “set source” is niet mogelijk via de GUI:

WDX-MSS-FW01

config system sdwan

  config members

    edit 0

        set interface “VPN-ISP1”

        set zone “VPN”

        set source 10.255.0.10

    next

    edit 0

        set interface “VPN-ISP2”

        set zone “VPN”

        set source 10.255.0.10

    next

  end

end

 

WDX-CC-FW01

config system sdwan

  config members

    edit 0

        set interface “VPN-ISP1”

        set zone “VPN”

        set source 10.255.0.20

    next

    edit 0

        set interface “VPN-ISP2”

        set zone “VPN”

        set source 10.255.0.20

    next

  end

end

 

De “edit 0” heeft op beide firewalls geresulteerd dat de SDWAN interface members de nummers 3 en 4 hebben gekregen. In de GUI zit dit nu als volgt er uit:

 

Adresobjecten, SDWAN policy en Security Policy

Om de configuratie overzichtelijker te maken, maken we gebruik van groepen en adresobject met statische route configuratie. Door deze adresobjecten in groepen te zetten is het toevoegen van nieuwe subnetten in de toekomst makkelijker, omdat de groep gebruikt wordt in de Statische route configuratie én SDWAN configuratie tegelijk.

Eerst maken we de Adresobjecten op beide Firewalls aan:

config firewall address

    edit “WDX-CC-lan”

        set allow-routing enable

        set subnet 10.20.0.0 255.255.0.0

    next

    edit “WDX-MSS-lan”

        set allow-routing enable

        set subnet 10.10.0.0 255.255.0.0

    next

    edit “WDX-CC-sdwan-monitor”

        set subnet 10.255.0.20 255.255.255.255

    next

    edit “WDX-MSS-sdwan-monitor”

        set subnet 10.255.0.10 255.255.255.255

    next

end

config firewall addrgrp

    edit “WDX-CC-Group”

        set member “WDX-CC-lan”

        set allow-routing enable

    next

    edit “WDX-MSS-Group”

        set member “WDX-MSS-lan”

        set allow-routing enable

    next

end

Vervolgens maken we op beide firewalls de SDWAN healthchecks en SDWAN policy regel aan.

WDX-MSS-FW01

config system sdwan

config health-check

    edit “WDXCCping”

        set server “10.255.0.20”

        set members 3 4

        config sla

            edit 1

                set latency-threshold 50

                set jitter-threshold 50

                set packetloss-threshold 25

            next

        end

    next

end

config service

    edit 0

        set name “VPN”

        set mode sla

        set dst “WDX-CC-lan”

        set src “WDX-MSS-lan”

        config sla

            edit “WDXCCping”

                set id 1

            next

        end

        set priority-zone “VPN”

    next

end

end

WDX-CC-FW01

config system sdwan

config health-check

    edit “WDXMSSping”

        set server “10.255.0.10”

        set members 3 4

        config sla

            edit 1

                set latency-threshold 50

                set jitter-threshold 50

                set packetloss-threshold 25

            next

        end

    next

end

config service

    edit 0

        set name “VPN”

        set mode sla

        set src “WDX-CC-lan”

        set dst “WDX-MSS-lan”

        config sla

            edit “WDXMSSping”

                set id 1

            next

        end

        set priority-zone “VPN”

    next

end

end

Let op! Op beide Firewalls moet deze nieuwe VPN SDWAN policy regel Boven je Internetregel komen. Via de GUI kan je deze naar boven slepen.

Via de CLI kan je dit ook inzien door het “get” commando laat je de policy ID’s met naam en volgorde zien, en met het mode commando

WDX-CC-FW01 # config system sdwan

WDX-CC-FW01 (sdwan) # config service

WDX-CC-FW01 (service) # get

== [ 1 ]

id: 1   name: Internet   

== [ 2 ]

id: 2   name: VPN   

WDX-CC-FW01 (service) # move 2 before 1

WDX-CC-FW01 (service) # get

== [ 2 ]

id: 2   name: VPN   

== [ 1 ]

id: 1   name: Internet   

WDX-CC-FW01 (service) # end

Static Routes

Op de Firewalls maken we een static route aan om het verkeer naar de andere Site via SDWAN zone te versturen. In dit geval maken we 2 routes aan, omdat we dan de net aangemaakte groep kunnen gebruiken als destination address. Dit maakt het achteraf toevoegen van subnetten makkelijker.

WDX-MSS-FW01

config router static

    edit 0

        set device “VPN-ISP1”

        set dstaddr “WDX-MSS-Group”

    next

    edit 0

        set device “VPN-ISP2”

        set dstaddr “WDX-MSS-Group”

    next

end

WDX-CC-FW01

config router static

    edit 0

        set device “VPN-ISP1”

        set dstaddr “WDX-CC-Group”

    next

    edit 0

        set device “VPN-ISP2”

        set dstaddr “WDX-CC-Group”

    next

end

In de security policy maken we 3 regels aan

  • Laat verkeer van VPN naar sdwan monitor toe
  • Laat verkeer van VPN naar lan toe
  • Laat verkeer van lan naar VPN toe
WDX-MSS-FW01

config firewall policy

    edit 0

        set name “sdwan-monitor”

        set srcintf “VPN”

        set dstintf “sdwan-monitor”

        set action accept

        set srcaddr “WDX-CC-sdwan-monitor”

        set dstaddr “WDX-MSS-sdwan-monitor”

        set schedule “always”

        set service “PING”

        set logtraffic all

    next

    edit 0

        set name “VPN-LAN”

        set srcintf “VPN”

        set dstintf “lan”

        set action accept

        set srcaddr “WDX-CC-Group”

        set dstaddr “WDX-MSS-lan”

        set schedule “always”

        set service “ALL”

        set logtraffic all

    next

    edit 0

        set name “lan-VPN”

        set srcintf “lan”

        set dstintf “VPN”

        set action accept

        set srcaddr “WDX-MSS-lan”

        set dstaddr “WDX-CC-Group”

        set schedule “always”

        set service “ALL”

        set logtraffic all

    next

end

WDX-CC-FW01

config firewall policy

    edit 0

        set name “sdwan-monitor”

        set srcintf “VPN”

        set dstintf “sdwan-monitor”

        set action accept

        set srcaddr “WDX-MSS-sdwan-monitor”

        set dstaddr “WDX-CC-sdwan-monitor”

        set schedule “always”

        set service “PING”

        set logtraffic all

    next

    edit 0

        set name “VPN-LAN”

        set srcintf “VPN”

        set dstintf “lan”

        set action accept

        set srcaddr “WDX-MSS-Group”

        set dstaddr “WDX-CC-lan”

        set schedule “always”

        set service “ALL”

        set logtraffic all

    next

    edit 0

        set name “lan-VPN”

        set srcintf “lan”

        set dstintf “VPN”

        set action accept

        set srcaddr “WDX-CC-lan”

        set dstaddr “WDX-MSS-Group”

        set schedule “always”

        set service “ALL”

        set logtraffic all

    next

end

Let op: bovenstaand is een onveilige security policy. Het wordt sterk aangeraden om policies van/naar je lan te specificeren in plaats van alles doorlaten van LAN naar VPN en vice versa.

Nu zal de SDWAN Monitoring aan beide kanten ook op OK gaan voor de VPN:

De VPN is nu volledig functioneel, een host uit 10.10.0.0/16 kan 10.20.0.0/16 benaderen en vice versa!

Wanneer een Internetverbinding uitvalt zal het Internetverkeer en VPN naar de andere internetverbinding overschakelen.

Vragen?

U kunt altijd contact met SolidBE opnemen mocht u een vraag hebben over een van de besproken onderwerpen (Configuratie, Monitoring, SD-WAN ) of wanneer u assistentie nodig heeft om netwerk- of security vraagstukken op te lossen. Wij helpen u graag bij de beheren van een veilige en solide ICT omgeving!

Auteur

Tom Scholten is Senior Network Engineer bij SolidBE

Scroll naar boven