Criando Local Network Gateway com BGP – VPN IPSec Fortigate.

Neste artigo iremos criar nossa conexão de VPN IPSec com BGP entre nosso Gateway BGP e nosso ambiente OnPremises com Fortigate.

#!/bin/bash
#Declarando variaveis
##Selecionar subscription

export Subscription_01=’Santana-Corp’
##região
export Location=brazilsouth
##Resouce Group
export RG_Name01=”${Environment_01}”-Network
##Projeto
export Projecto_01=’VPN Produção BGP’
export ID_Object=’789654741′
##Centro de Custo
export Costcenter_Team=’Team Network’
export Costcenter_Number=’78954′
##Suporte Acionamento
export Support_Team=’[email protected]
export Support_Number=’+55 11 3000-XXXX’
##Environmont
export Environment_01=’VPN-BGP-Prodution’
export LGW_01=’lgw-fgt-operadora-01′
##Variaveis de Conexão
export IP_Peer_01=’xxx.xxx.xxx.xxx’ ##peer da VPN do firewall onpremises
export Local_Network_01=’192.168.0.0/16′ ##rede local do ambiente onpremises
export ASN_01=’65010′ ##este ASN é privado, você pode utilizar seu proprio ASN ou um disponivel pelo azure, neste exemplo iremos utilizar 65010 para ser o ASN local
export Peer_BGP_01=’169.254.21.11′ ##este é o IP que será utilizado na interface do firewall


##Tags
export Tag01_Key=”${Environment_01}”
export Tag02_Key=”${Projecto_01}”
export Tag03_Key=”${ID_Object}”
export Tag04_Key=”${Costcenter_Team}”
export Tag05_Key=”${Costcenter_Number}”
export Tag06_Key=”${Support_Team}”
export Tag07_Key=”${Support_Number}”
export Name_Value_01=’Environment’
export Name_Value_02=’Projeto’
export Name_Value_03=’ID Projeto’
export Name_Value_04=’Centro de Custo Team’
export Name_Value_05=’Centro de Custo Number’
export Name_Value_06=’Time de Suporte’
export Name_Value_07=’Telefone do Suporte’

##Criando Local Network Gateway
az network local-gateway create -g “${RG_Name01}” -n “${LGW_01}” -l “${Location}” –gateway-ip-address “${IP_Peer_01}” –local-address-prefixes “${Local_Network_01}” –asn “${ASN_01}” –bgp-peering-address “${Peer_BGP_01}” –tags “${Name_Value_01}”=”${Tag01_Key}” “${Name_Value_02}”=”${Tag02_Key}” “${Name_Value_03}”=”${Tag03_Key}” “${Name_Value_04}”=”${Tag04_Key}” “${Name_Value_05}”=”${Tag05_Key}” “${Name_Value_06}”=”${Tag06_Key}” “${Name_Value_07}”=”${Tag07_Key}”

Temos esse resutado

Agora iremos criar a conexão “connection”

#!/bin/bash
#Declarando variaveis
##Selecionar subscription

export Subscription_01=’Santana-Corp’
##região
export Location=brazilsouth
##Environment
export Environment_01=”${Shared-Prodution}”
##Resouce Group
export RG_Name01=’Shared-Prodution-Network’
##Variaveis da conexão
export Conenction_01=’connection-fgt-01′
export Gateway_Value_01=’GWVPNPROBGP’
export LGW_01=’lgw-fgt-operadora-01′
export PSK=’123vfe56TFr’
##Tags
export Tag01_Key=”${Environment_02}”
export Tag02_Key=”${Projecto_01}”
export Tag03_Key=”${ID_Object}”
export Tag04_Key=”${Costcenter_Team}”
export Tag05_Key=”${Costcenter_Number}”
export Tag06_Key=”${Support_Team}”
export Tag07_Key=”${Support_Number}”
export Name_Value_01=’Environment’
export Name_Value_02=’Projeto’
export Name_Value_03=’ID Projeto’
export Name_Value_04=’Centro de Custo Team’export Name_Value_05=’Centro de Custo Number’export Name_Value_06=’Time de Suporte’
export Name_Value_07=’Telefone do Suporte’
#Selecionar subscription
az account set –subscription “${Subscription_01}”
##Criando a conexão
az network vpn-connection create -g “${RG_Name01}” -n “${Conenction_01}” –vnet-gateway1 “${Gateway_Value_01}” –local-gateway2 “${LGW_01}” –shared-key “${PSK}” –enable-bgp -l “${Location}” –tags “${Name_Value_01}”=”${Tag01_Key}” “${Name_Value_02}”=”${Tag02_Key}” “${Name_Value_03}”=”${Tag03_Key}” “${Name_Value_04}”=”${Tag04_Key}” “${Name_Value_05}”=”${Tag05_Key}” “${Name_Value_06}”=”${Tag06_Key}” “${Name_Value_07}”=”${Tag07_Key}”

Resultado

Agora vamos para as configurações no Fortigate (neste exemplo iremos utilizar Fortinet, mas pode ser qualquer appliance com suport a BGP)

##Aqui definimos as Phase1

config vpn ipsec phase1-interface
edit AZU-HA-VPN-INT0
set interface port1 ## porta WAN
set ike-version 2
set keylife 28800
set peertype any
set proposal aes256-sha1 3des-sha1 aes256-sha256
set dhgrp 2
set remote-gw xxx.xxx.xxx.xxx ##IP 01 do Gateway que foi criado em nossos artigo
set psksecret 123vfe56TFr
next
end

##Aqui definimos a Phase2
config vpn ipsec phase2-interface
edit AZU-HA-VPN-INT0
set phase1name AZU-HA-VPN-INT0
set proposal aes256-sha1 3des-sha1 aes256-sha256 aes256gcm
set pfs disable

set keylifeseconds 27000
next
end

##Aqui editamos a interface que criamos com o endereçamento IP que criamos anteriormente em nossos artigos
config system interface
edit AZU-HA-VPN-INT0
set ip 169.254.21.11 255.255.255.255
set remote-ip 169.254.21.10 255.255.255.255
next
end

##Aqui configuramos o BGP
config router bgp
set as 65010
set router-id XXX.XXX.XXX.XXX ##IP Publico da interface da VPN

##Aqui configuramos o PAR BGP que configuramos no Azure
config neighbor
edit 169.254.21.10
set soft-reconfiguration enable
set remote-as 65512
next
end

##Aqui anunciamos nossas redes OnPremises, neste exemplo 192.168.0.0/16
config router bgp
config network
edit 1
set prefix 192.168.0.0 255.255.0.0
next
end

##Aqui configuramos uma ZONA para ter varias interfaces na mesma zona,
config system zone
edit Cloud
set interface AZU-HA-VPN-INT0
set intrazone allow
next
end

## Aqui configuramos as regras de firewall de INBOUND e OUTBOUND
config firewall policy
edit 1
set name LAN-TO-CLOUD

set srcintf port2
set dstintf Cloud
set srcaddr all
set dstaddr all
set action accept
set schedule always
set service ALL
next
edit 2
set name CLOUD-TO-LAN
set srcintf Cloud
set dstintf port2
set srcaddr all
set dstaddr all
set action accept
set schedule always
set service ALL
end

Resultado


Aqui verificamos que as rotas BGP ja estão sendo anunciadas e recebidas


Nesta série de artigos vimos com criar vnet/gateway BGP/local network/connection com BGP.

Agora cada vnet criada com peering com nossa Vnet Shared-PRO, teremos propagada a CIDR de forma automatica para nossa BGP.

Para criação da segunda VPN com outra operadora basta seguir os passos novamente.