Packet distribution for aggregate static IPsec tunnels in SD-WAN
This is a sample configuration of aggregating IPsec tunnels by using per-packet load-balancing.
For example, a customer has two ISP connections, wan1 and wan2. On each FortiGate, two IPsec VPN interfaces are created. Next, an ipsec-aggregate
interface is created and added as an SD-WAN member.
Configuring FortiGate 1
To create two IPsec VPN interfaces:
config vpn ipsec phase1-interface edit "vd1-p1" set interface "wan1" set peertype any set net-device disable set aggregate-member enable set proposal aes256-sha256 set dhgrp 14 set remote-gw 172.16.201.2 set psksecret ftnt1234 next edit "vd1-p2" set interface "wan2" set peertype any set net-device disable set aggregate-member enable set proposal aes256-sha256 set dhgrp 14 set remote-gw 172.16.202.2 set psksecret ftnt1234 next end
config vpn ipsec phase2-interface edit "vd1-p1" set phase1name "vd1-p1" next edit "vd1-p2" set phase1name "vd1-p2" next end
To create an IPsec aggregate interface:
config system ipsec-aggregate edit "agg1" set member "vd1-p1" "vd1-p2" set algorithm L3 next end
config system interface edit "agg1" set vdom "root" set ip 172.16.11.1 255.255.255.255 set allowaccess ping set remote-ip 172.16.11.2 255.255.255.255 end
To configure the firewall policy:
config firewall policy edit 1 set name "1" set srcintf "dmz" set dstintf ""virtual-wan-link"" set srcaddr "all" set dstaddr "all" set action accept set schedule "always" set service "ALL" set nat enable next end
To configure SD-WAN:
config system sdwan set status enable config members edit 1 set interface "agg1" set gateway 172.16.11.2 next end end
Configuring FortiGate 2
To create two IPsec VPN interfaces:
config vpn ipsec phase1-interface edit "vd2-p1" set interface "wan1" set peertype any set net-device disable set proposal aes256-sha256 set dhgrp 14 set remote-gw 172.16.200.1 set psksecret ftnt1234 next edit "vd2-p2" set interface "wan2" set peertype any set net-device disable set proposal aes256-sha256 set dhgrp 14 set remote-gw 172.16.203.1 set psksecret ftnt1234 next end
config vpn ipsec phase2-interface edit "vd2-p1" set phase1name "vd2-p1" next edit "vd2-p2" set phase1name "vd2-p2" next end
To create an IPsec aggregate interface:
config system ipsec-aggregate edit "agg2" set member "vd2-p1" "vd2-p2" set algorithm L3 next end
config system interface edit "agg2" set vdom "root" set ip 172.16.11.2 255.255.255.255 set allowaccess ping set remote-ip 172.16.11.1 255.255.255.255 next end
To configure the firewall policy:
config firewall policy edit 1 set name "1" set srcintf "dmz" set dstintf ""virtual-wan-link"" set srcaddr "all" set dstaddr "all" set action accept set schedule "always" set service "ALL" set nat enable next end
To configure SD-WAN:
config system sdwan set status enable config members edit 1 set interface "agg2" set gateway 172.16.11.1 next end end
Related diagnose commands
To display aggregate IPsec members:
# diagnose sys ipsec-aggregate list agg1 algo=L3 member=2 run_tally=2 members: vd1-p1 vd1-p2
To check the VPN status:
# diagnose vpn tunnel list list all ipsec tunnel in vd 0 ------------------------------------------------------ name=vd1-p1 ver=1 serial=2 172.16.200.1:0->172.16.201.2:0 tun_id=172.16.201.2 dst_mtu=0 bound_if=10 lgwy=static/1 tun=intf/0 mode=auto/1 encap=none/520 options[0208]=npu frag-rfc run_state=1 accept_traffic=0 proxyid_num=1 child_num=0 refcnt=5 ilast=15 olast=676 ad=/0 stat: rxp=0 txp=0 rxb=0 txb=0 dpd: mode=on-demand on=1 idle=20000ms retry=3 count=0 seqno=0 natt: mode=none draft=0 interval=0 remote_port=0 proxyid=vd1-p1 proto=0 sa=0 ref=1 serial=1 src: 0:0.0.0.0/0.0.0.0:0 dst: 0:0.0.0.0/0.0.0.0:0 ------------------------------------------------------ name=vd1-p2 ver=1 serial=3 172.16.203.1:0->172.16.202.2:0 tun_id=172.16.202.2 dst_mtu=1500 bound_if=28 lgwy=static/1 tun=intf/0 mode=auto/1 encap=none/520 options[0208]=npu frag-rfc run_state=1 accept_traffic=1 proxyid_num=1 child_num=0 refcnt=12 ilast=1 olast=1 ad=/0 stat: rxp=1 txp=1686 rxb=16602 txb=111717 dpd: mode=on-demand on=1 idle=20000ms retry=3 count=0 seqno=0 natt: mode=none draft=0 interval=0 remote_port=0 proxyid=vd1-p2 proto=0 sa=1 ref=9 serial=1 src: 0:0.0.0.0/0.0.0.0:0 dst: 0:0.0.0.0/0.0.0.0:0 SA: ref=4 options=10226 type=00 soft=0 mtu=1438 expire=42164/0B replaywin=2048 seqno=697 esn=0 replaywin_lastseq=00000002 itn=0 qat=0 life: type=01 bytes=0/0 timeout=42902/43200 dec: spi=f6ae9f83 esp=aes key=16 f6855c72295e3c5c49646530e6b96002 ah=sha1 key=20 f983430d6c161d0a4cd9007c7ae057f1ff011334 enc: spi=8c72ba1a esp=aes key=16 6330f8c532a6ca5c5765f6a9a6034427 ah=sha1 key=20 e5fe385ed5f0f6a33f1d507601b15743a8c70187 dec:pkts/bytes=1/16536, enc:pkts/bytes=1686/223872 npu_flag=02 npu_rgwy=172.16.202.2 npu_lgwy=172.16.203.1 npu_selid=2 dec_npuid=1 enc_npuid=0