cli

Adicionando Vnet a infraestrutura existente com Peering e propagação BGP, via CLI (Bash) Azure

Como vimos em nossa seria de artigos de criação de vnet, peering, bgp e VPN IPSec com BGP, vamos criar mais uma vnet em nossa infraestrutura já existente. Veja nossos artigos nas sequencia:

Criando Vnet com Tags via CLI (Bash) Azure
Criando Virtual Network Gateway (VPN com BGP) Azure via CLI (Bash)
Criando Virtual Network com Peering via CLI (Bash) Azure
Criando Peering Virtual Network (Azure) via CLI (Bash) com Gateway de propagação.
Criando Local Network Gateway com BGP – VPN IPSec Fortigate.

Vamos ao script

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

export Subscription_01=’Santana-Corp’

##região
export Location=brazilsouth

##Environmont
export Environment_01=’backend-Prodution’

##Resouce Group
export RG_Name01=”${Environment_01}”-Network

##Vnet Name
export Vnet_01=vnet-“${Environment_01}”

##Nome do Objeto
export NameObject_01=”${Vnet_01}”

##Projeto
export Projecto_01=’Backend’
export ID_Object=’678654789′

##Centro de Custo
export Costcenter_Team=’Team Backend’
export Costcenter_Number=’78954′

##Suporte Acionamento
export Support_Team=’team-backend@santanacorp.com’
export Support_Number=’+55 11 3000-XXXX’

##CIDR Network (Prefixo da Rede)
export CIDR_01=’172.29.226.0/24′

##Nome subnet
export Subnet_01=sub01-“${NameObject_01}”
export Subnet_02=sub02-“${NameObject_01}”
export Subnet_03=sub03-“${NameObject_01}”
export Subnet_04=sub04-“${NameObject_01}”

##CIDR Subnet
export prefix_01=’172.29.226.0/26′
export prefix_02=’172.29.226.64/26′
export prefix_03=’172.29.226.128/26′
export prefix_04=’172.29.226.192/26′

##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’

#Seleciona Subscription
az account set –subscription “$Subscription_01”

#Criando Resource Groups
az group create –name “${RG_Name01}” –location $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}”

#Criando Virtual Network (Vnet)
az network vnet create -g “${RG_Name01}” -n “${NameObject_01}” –address-prefix $CIDR_01 –location $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}” 

#Criando Subnet
az network vnet subnet create -g “${RG_Name01}” –vnet-name “${NameObject_01}” -n $Subnet_01 –address-prefixes $prefix_01
az network vnet subnet create -g “${RG_Name01}” –vnet-name “${NameObject_01}” -n $Subnet_02 –address-prefixes $prefix_02
az network vnet subnet create -g “${RG_Name01}” –vnet-name “${NameObject_01}” -n $Subnet_03 –address-prefixes $prefix_03
az network vnet subnet create -g “${RG_Name01}” –vnet-name “${NameObject_01}” -n $Subnet_04 –address-prefixes $prefix_04

##Variaveis para criação do Peering

#Subscriptions
export Subscription_01=’Santana-COrp’

#Resouce Group
export RG_Name01=”Shared-Prodution-Network”export RG_Name02=”backend-Prodution-Network”

#Name Object
export NameObject_01=”${Vnet_01}”-“${Subscription_01}”-“${Environment_01}”

#Peering
export Vnet_Name_01=”vnet-Shared-Prodution”
export Vnet_Name_02=”vnet-backend-Prodution”
export Peering_01=”Peering-vnet-Shared-Prodution2″
export Peering_02=”Peering-backend-Prodution-Network”

#export Vnet_Remote=$(az network vnet show –resource-group Shared-Prodution-Network -n vnet-Shared-Prodution –query id –output tsv)

#Vnet Remote
export Vnet_Remote_01=”/subscriptions/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/resourceGroups/backend-Prodution-Network/providers/Microsoft.Network/virtualNetworks/vnet-backend-Prodution”
export Vnet_Remote_02=”/subscriptions/xxxxxxxxxxxxxxxxxxxxxxxxx/resourceGroups/Shared-Prodution-Network/providers/Microsoft.Network/virtualNetworks/vnet-Shared-Prodution”

#Selecionar subscription
az account set –subscription “${Subscription_01}”

#Criando Peering
## Vnet Shared Prodution

az network vnet peering create -g “${RG_Name01}” -n “${Peering_01}” –vnet-name “${Vnet_Name_01}” –remote-vnet “${Vnet_Remote_01}” –allow-vnet-access –allow-forwarded-traffic –allow-gateway-transit –allow-vnet-access

## Vnet Backend Prodution
az network vnet peering create -g “${RG_Name02}” -n “${Peering_02}” –vnet-name “${Vnet_Name_02}” –remote-vnet “${Vnet_Remote_02}” –allow-vnet-access –allow-forwarded-traffic –allow-vnet-access –use-remote-gateways

Veja o resultado

Em nosso fortigate

Com isso concluimos nossa seria de Vnet com peering e propagação BGP, a cada vnet nova criada com peering (utilizando as configuração aqui exibidas) não é necessário fazer mais nada em nosso fortigate ou Gateway de VPN, um lembrete muito importante as redes não podem se sobscrever (Over lapping).

Criando entradas Azure DNS via CLI (bash)

Muitas vezes precisamos criar varios entradas em nosso DNS, utilizando o portal do Azure é bem simples, agora imagina ter que repitir a mesma ação por 20 vezes por exemplo para poder criar 20 entras diferentes? Com isso criei este post para ajudar no dia a dia da administração do Azure DNS, isso será feito via CLI, veja como instalar o azure cli aqui.

Primeiramente iremos nos conectar (usarei neste exemplo ubuntu linux como subsystem windows 10)

#Conectar no Azure
az login (enter)

#Selecionando a subscription (supondo que tenha mais de uma)
az account set –subscription “Santana Corp”

az network dns record-set a add-record –resource-group dns \
–zone-name charlessantana.com –record-set-name hello \
–ttl 300 –ipv4-address 192.0.78.24

Resultado

Agora vamos verificar se funcionou, com um simples nslookup

nslookup hello.charlessantana.com


Agora vamos criar uma entrada do tipo CNAME

az network dns record-set cname set-record –resource-group dns \
–zone-name charlessantana.com –record-set-name ww2 –cname ‘www.charlessantana.com.br

Script simples em bash

#!/bin/bash

#Seleciona Subscription

az account set –subscription “Santana Corp”

#Criando entrada DNS do Tipo A

az network dns record-set a add-record –resource-group dns \
–zone-name charlessantana.com –record-set-name hello –ttl 300 –ipv4-address 192.0.78.24

#Criando entrada DNS do Tipo CNAME

az network dns record-set cname set-record –resource-group dns \
–zone-name charlessantana.com –record-set-name ww2 –cname ‘www.charlessantana.com.br’