Implante o vMX do Azure CLI
O arquivo de configuração de script de implantação e amostra nesta seção simplifica a implantação do vMX na rede virtual Microsoft Azure. O arquivo de configuração inclui parâmetros que permitem personalizar sua implantação vMX VM, como nome de usuário de login e interfaces de rede (NICs).
Recomendamos que você implante suas VMS vMX usando o método Azure CLI descrito nesta seção, em vez de usar o Portal Azure para implantar o vMX manualmente.
O que vem a seguir
Antes de implantar o vMX usando o Azure CLI
Antes de começar a implantar o vMX no Azure CLI:
Obtenha uma conta e uma assinatura do Microsoft Azure. Veja o Microsoft Azure.
Use seu nome de usuário e senha de sua conta Microsoft para entrar no portal do Microsoft Azure. O Portal Azure será usado mais tarde nesta seção para verificar a implantação do vMX usando o método Azure CLI.
Instale a versão mais recente da interface de linha de comando do Azure (Azure CLI).
Compre uma licença vMX ou solicite uma licença de avaliação. As licenças podem ser adquiridas no Sistema de Gerenciamento de Licenças (LMS) da Juniper Networks.
Para obter informações sobre a licença de avaliação para vMX, consulte https://www.juniper.net/us/en/dm/free-vmx-trial/.
Nota:No Microsoft Azure, você pode hospedar servidores e serviços na nuvem como um serviço pay-as-you-go (PAYG) ou bring-your-own-license (BYOL). As imagens PAYG não exigem licenças da Juniper Networks.
Primeiro, você deve executar o seguinte comando Azure CLI para aceitar os termos do Contrato de Licença do Usuário Final (EULA) para a imagem específica do BYOL ou PAYG vMX que você deseja implantar. Caso contrário, você encontrará um erro de falha de acessibilidade do MarketplacePurchase na fase de criação de VM do script de implantação discutido mais tarde nesta seção.
Você só precisa executar o seguinte comando CLI uma vez para o tipo de imagem PAYG ou BYOL que você deseja implantar.
az vm image terms accept --urn juniper-networks:vmx-services-gateway-byol:vmx-services-gateway-byol:18.3.2
As scripts de implantação do vMX for Azure estão escritas na shell e na versão mais recente dos comandos Azure CLI. As versões pré-2.x do Azure CLI não têm suporte.
A implantação do vMX para o Microsoft Azure não oferece suporte ao uso do Azure CLI do Microsoft Windows porque os scripts shell que são usados como parte do procedimento de implantação só podem ser executados a partir do Linux ou Mac OS CLI.
Implantação do vMX do Azure CLI
Use o procedimento a seguir para implantar e configurar o vMX em uma rede virtual Microsoft Azure a partir do Azure CLI.
- Usando o Microsoft Azure CLI
- Usando as ferramentas de implantação vMX
- Modificação dos parâmetros de configuração do vMX para implantação
- Implantação do vMX usando o script Shell
- Verificando a implantação do vMX no Microsoft Azure
- Fazer login em uma instância vMX
- Configuração inicial para vMX
Usando o Microsoft Azure CLI
Para executar o script Azure CLI fornecido, você pode instalar o Azure CLI em seu servidor.
Realize uma das seguintes tarefas para o seu método escolhido:
Instalação do Azure CLI
Para instalar e fazer login no Azure CLI:
Usando as ferramentas de implantação vMX
A Juniper Networks fornece um conjunto de arquivos de script e configuração. Essas ferramentas visam ajudar a simplificar a implantação do vMX ao Azure ao usar o Azure CLI.
arquivo de configuração azure.config
script de concha azure_vmx_deploy.sh
azure_vmx_deploy.sh automatiza a implantação da máquina virtual vMX (VM) e redes virtuais, respectivamente, usando os parâmetros no arquivo de configuração azure.config . O script shell azure_vmx_deploy.sh cria interfaces de rede, redes virtuais, sub-redes virtuais e o VM.
Para copiar os arquivos de azure_vmx_deploy.sh e azure.config :
Depois de salvar os arquivos, você pode modificar o arquivo azure.config para sua configuração e executar o script azure_vmx_deploy.sh .
arquivo azure.config
# # Sample VMX deployment settings for Microsoft Azure # # Account config account="12345bf4b32bf-1234-5678-aaaa-4b348978e06a" grpname="vmxcloudv2" location="westus" # VM config vmname="vmx183-x3" admin="azuser" vmximagename="juniper-networks:vmx-services-gateway-byol:vmx-services-gateway-byol:18.3.2" # Network Config number_of_nics=4 addressprefix="30.0.0.0/16" PrivateIpAddress="30.0.0.10" PrivateIpAddress2="30.0.1.10" subnet_prefixes=( 30.0.0.0/24 30.0.1.0/24 30.0.2.0/24 30.0.3.0/24 )
arquivo azure_vmx_deploy.sh
#!/bin/sh
# Copyright (c) 2020, Juniper Networks, Inc.
# All rights reserved.
#
#
# Sample deployment script for vMX on Microsoft Azure
#
source ./azure.config
stor="stor"
cont="cont"
vm="_image"
vnet=$grpname-vnet1
base_subnet=$vnet-vsubnet
base_nic=$vmname-wan-nic
mdisk="_Managed_Disk"
storageacc=$grpname$stor
STORAGE_CONT=$grpname$cont
az account set -s $account
echo "Creating resource group"
az group create -n $grpname -l $location -o table
echo "Created group $grpname"
echo "Creating storage account"
# Create storage account
az storage account create --sku Standard_LRS --location $location --kind Storage --resource-group $grpname --name $storageacc --output table
echo "Created storage account $storageacc"
# Get connection string for the storage account
KEY1=`az storage account keys list --account-name $storageacc --resource-group $grpname | grep -m 1 \"value\": | awk '{print $2}'`
# Create storage container
az storage container create --account-name $storageacc --name $STORAGE_CONT --account-key $KEY1 --output table
echo "Created container $STORAGE_CONT"
count=$(( $number_of_nics - 1 ))
while [ $count -ge 0 ]
do
subnet_names[$count]=$base_subnet"$count"
nic_names[$count]=$base_nic"$count"
count=$(( $count - 1 ))
done
skip=1
az network vnet show -g $grpname --name $vnet > /dev/null 2>&1
if [ $? -eq 0 ]; then
skip=2
echo "Vnet \"$vnet\" already exists, skipping vnet and subnet creation"
fi
if [ $skip -eq 1 ]; then
# Create VNET
echo "Creating Azure virtual network $vnet...."
az network vnet create \
--resource-group $grpname \
--name $vnet \
--address-prefix $addressprefix \
--location $location \
--output table
echo "Done creating Azure virtual network $vnet"
# Create as many subnets as there are NICs
i=0
for prefix in "${subnet_prefixes[@]}"
do
echo "Creating virtual subnet ${subnet_names[$i]} $prefix.."
az network vnet subnet create \
--address-prefix $prefix \
--name ${subnet_names[$i]} \
--resource-group $grpname \
--vnet-name $vnet \
--output table
echo "Done creating subnet ${subnet_names[$i]} with prefix $prefix"
let i++
done
fi
#
# Creating routing tables for vMX WAN ports (add tables as needed for more than 2 wan ports)
#
echo "Creating routing tables..."
az network route-table create --name $grpname-rt-to-subnet2 --resource-group $grpname --location $location --output table
az network route-table create --name $grpname-rt-to-subnet3 --resource-group $grpname --location $location --output table
az network vnet subnet update --resource-group $grpname --vnet-name $vnet --name $vnet-vsubnet2 --route-table $grpname-rt-to-subnet3 --output table
az network vnet subnet update --resource-group $grpname --vnet-name $vnet --name $vnet-vsubnet3 --route-table $grpname-rt-to-subnet2 --output table
#
# Create all NICs
#
echo "Creating public IP addresses and NICs..."
i=0
for nic in "${nic_names[@]}"
do
if [ $i -eq 0 ]; then
# Create Public IP for first NIC:
ip=$vmname-vfp-public-ip
az network public-ip create \
--name $ip \
--allocation-method Static \
--resource-group $grpname \
--location $location \
--output table
# Create 1st NIC
nic=$vmname-vfp-nic
allnics="$allnics ""$nic"
az network nic create \
--resource-group $grpname \
--location $location \
--name $nic \
--vnet-name $vnet \
--subnet ${subnet_names[$i]} \
--public-ip-address $ip \
--private-ip-address $PrivateIpAddress \
--output table
echo "Created NIC $nic with public IP..."
elif [ $i -eq 1 ]; then
# Create Public IP for first NIC:
ip2=$vmname-vcp-public-ip
az network public-ip create \
--name $ip2 \
--allocation-method Static \
--resource-group $grpname \
--location $location \
--output table
# Create 2nd NIC
nic=$vmname-vcp-nic
allnics="$allnics ""$nic"
az network nic create \
--resource-group $grpname \
--location $location \
--name $nic \
--vnet-name $vnet \
--subnet ${subnet_names[$i]} \
--public-ip-address $ip2 \
--private-ip-address $PrivateIpAddress2 \
--output table
echo "Created NIC $nic with public IP..."
else
allnics="$allnics ""$nic"
az network nic create \
--resource-group $grpname \
--location $location \
--accelerated-networking true \
--name $nic \
--vnet-name $vnet \
--subnet ${subnet_names[$i]} \
--output table
echo "Created NIC $nic..."
fi
let i++
done
#
# Add routes to route tables
#
echo "Adding routes to routing tables"
ip=`az network nic show -g $grpname --name $base_nic"2"|grep privateIpAddress\"|awk '{print $2}'|sed -e s/\"//g -e s/\,//`
az network route-table route create -g $grpname --route-table-name $grpname-rt-to-subnet3 --next-hop-type VirtualAppliance --name ToSubnet3 --next-hop-ip-address $ip --address-prefix ${subnet_prefixes[3]} --output table
ip=`az network nic show -g $grpname --name $base_nic"3"|grep privateIpAddress\"|awk '{print $2}'|sed -e s/\"//g -e s/\,//`
az network route-table route create -g $grpname --route-table-name $grpname-rt-to-subnet2 --next-hop-type VirtualAppliance --name ToSubnet2 --next-hop-ip-address $ip --address-prefix ${subnet_prefixes[2]} --output table
#
# Create vMX VM
#
echo "Creating vMX VM..."
az vm create \
--name $vmname \
--size Standard_F8 \
--image $vmximagename \
--nics $allnics \
--resource-group $grpname \
--location $location \
--authentication-type ssh \
--admin-username $admin \
--generate-ssh-keys \
--storage-sku Standard_LRS \
--boot-diagnostics-storage ${grpname}stor \
--output table
echo "vMX deployment complete"
Modificação dos parâmetros de configuração do vMX para implantação
Para implantar o vMX, você pode precisar modificar os parâmetros de configuração realizando essas tarefas:
Alterando os parâmetros de configuração do Azure
No arquivo azure.config , defina esses parâmetros:
account=”account subscription id”— Este é o ID por assinatura da conta Microsoft Azure.grpname="group-name"— Nome do grupo de recursos. Insira seu grupo de recursos existente. Um nome de grupo de recursos pode incluir caracteres alfanuméricos, períodos (.), sublinhados (_), hífens (-) e parênteses (), mas o nome não pode terminar com um período.location="region"— Localização de grupo de recursos. Selecione a localização do data center Microsoft Azure do qual você pretende implantar o VM. Especifique um local onde a maioria dos seus recursos residirá. Normalmente, selecione o local mais próximo da sua localização física.vmname="vm-name"— nome VMX VM. O nome VM não pode conter caracteres não-ASCII ou especiais.admin="admin-username"— Nome do usuário fazendo login na VM usando SSH. O nome de usuário não pode conter caracteres maiúsculos ou caracteres especiais, e não pode começar com um sinal de dólar ($) ou hífen (-).vmximagename="image-name"— Nome da imagem do vMX.number_of_nics=number-of-interfaces— Número de interfaces, incluindo VFP (eth0), VCP (fxp0) e quaisquer portas WAN (as portas WAN aparecem como ge-x/x/x no vMX). Esse número deve estar entre 3 e 8.addressprefix="address-prefix"— Espaço de endereço. Insira a faixa de endereço da rede virtual na notação da CIDR. Por padrão, o intervalo de endereços é de 30.0.0.0/16.Nota:Garanta que o espaço do endereço não se sobreponha a uma rede existente
PrivateIpAddress="ip-address"— Endereço IP privado para porta de gerenciamento VFP (eth0). Ela deve ser contida pelo espaço de endereço da rede virtual, conforme definido noaddressprefixparâmetro.PrivateIpAddress2="ip-address"— Endereço IP privado para porta de gerenciamento VCP (fxp0). Ela deve ser contida pelo espaço de endereço da rede virtual, conforme definido noaddressprefixparâmetro.subnet_prefixes=(subnet-prefix0 subnet-prefix1 subnet-prefix2 subnet-prefix3 )— Variedades de endereços de sub-rede para cada sub-rede na rede virtual. Digite cada faixa de endereço de sub-rede na notação da CIDR. Ela deve ser contida pelo espaço de endereço da rede virtual, conforme definido noaddressprefixparâmetro. As faixas de endereço da sub-rede não podem se sobrepor.A sub-rede é uma variedade de endereços IP em sua rede virtual para isolar VMs. Sub-redes públicas têm acesso ao gateway da Internet, mas sub-redes privadas não.
Insira tantas sub-redes no array quanto o número de interfaces. Cada NIC terá uma sub-rede correspondente definida neste arranjo. Por exemplo, se
number_of_nicsfor 4, haverá quatro entradas nosubnet_prefixesarray.Uma VMX vM requer duas sub-redes públicas e uma ou mais sub-redes públicas ou privadas para cada grupo de instâncias individuais. As interfaces de gerenciamento para vfp (eth0) e VCP (fxp0) usam uma sub-rede pública e as interfaces de receita (dados) podem usar sub-redes públicas ou privadas. As sub-redes privadas, conectadas às outras interfaces vMX, garantem que todo o tráfego entre aplicativos nas sub-redes privadas e a Internet deve passar pela instância vMX.
Por exemplo, uma rede virtual com quatro sub-redes para os quatro NICs que serão criados tem essa configuração:
subnet_prefixes=( 30.0.0.0/24 30.0.1.0/24 30.0.2.0/24 30.0.3.0/24).
Por exemplo, o arquivo azure.config pode se assemelhar ao seguinte:
grpname="vmxcloudv2" location="westus" # VM config vmname="vmxv2" admin="azuser" vmximagename="juniper-networks:vmx-services-gateway-byol:vmx-services-gateway-byol:18.3.2" number_of_nics=4 # Network Config addressprefix="30.0.0.0/16" PrivateIpAddress="30.0.0.1" PrivateIpAddress2=”30.0.1.10” subnet_prefixes=( 30.0.0.0/24 30.0.1.0/24 30.0.2.0/24 30.0.3.0/24 )
Você pode obter os detalhes da imagem do vMX usando o seguinte comando:
az vm image list --all --publisher juniper-networks
Adicionar NICs à configuração
O tipo de CPU Standard_F8 oferece suporte a um total de 8 portas. Cada vMX requer duas portas de gerenciamento no Azure, deixando no máximo 6 portas WAN.
A instância vMX contém duas máquinas virtuais separadas (VMs), uma para o plano de encaminhamento virtual VMX FPC (VFP) e uma para o plano de controle virtual (VCP)
O VFP tem uma porta de gerenciamento dedicada (eth0) mapeada para o nome <vm>-vfp-nic do vMX.
A VCP tem uma porta de gerenciamento dedicada (fxp0) mapeada para o nome <vm>-vcp-nic do vMX.
O endereço IP público configurado em grupos de recursos > grupo de recursos vMX > vmname-vcp-nic. O nome vMX é o endereço IP a ser usado para conexão ao FPC VMX RE (VCP) usando SSH.
Alterar o número de interfaces de rede (NICs):
Implantação do vMX usando o script Shell
O script de azure_vmx_deploy.sh shell implanta a máquina virtual vMX (VM) em um grupo de recursos que é baseado em sua localização geográfica do Azure Cloud.
Para implantar o vMX na rede virtual do Azure, execute o script azure_vmx_deploy.sh para criar as sub-redes virtuais, NICs e VM. Os parâmetros definidos no arquivo de configuração azure.config são usados para implantar o vMX.
Por exemplo, se o arquivo azure.config conter os seguintes parâmetros:
grpname="vmxcloudv2" location="westus" # VM config vmname="vmxv2" admin="user" vmximagename="juniper-networks:vmx-services-gateway-byol:vmx-services-gateway-byol:18.3.2" number_of_nics=4 # Network Config addressprefix="30.0.0.0/16" PrivateIpAddress="30.0.0.10" subnet_prefixes=( 30.0.0.0/24 30.0.1.0/24 30.0.2.0/24 30.0.3.0/24 )
Executar o script azure_vmx_deploy.sh gera a saída a seguir.
$ ./azure_vmx_deploy.sh Creating resource group Location Name ---------- ----------- westus vmxcloudv2 Created group vmxcloudv2 Creating storage account CreationTime EnableHttpsTrafficOnly Kind Location Name PrimaryLocation ProvisioningState ResourceGroup StatusOfPrimary -------------------------------- ------------------------ ------- ---------- --------------- ----------------- ------------------- --------------- ----------------- 2020-03-11T00:12:55.943835+00:00 True Storage westus vmxcloudv2stor westus Succeeded vmxcloudv2 available Created storage account vmxcloudv2stor Created --------- False Created container vmxcloudv2cont Creating Azure virtual network vmxcloudv2-vnet1.... Done creating Azure virtual network vmxcloudv2-vnet1 Creating virtual subnet vmxcloudv2-vnet1-vsubnet0 30.0.0.0/24.. AddressPrefix Name PrivateEndpointNetworkPolicies PrivateLinkServiceNetworkPolicies ProvisioningState ResourceGroup --------------- -------------------------- -------------------------------- ----------------------------------- ------------------- --------------- 30.0.0.0/24 vmxcloudv2-vnet1-vsubnet0 Enabled Enabled Succeeded vmxcloudv2 Done creating subnet vmxcloudv2-vnet1-vsubnet0 with prefix 30.0.0.0/24 Creating virtual subnet vmxcloudv2-vnet1-vsubnet1 30.0.1.0/24.. AddressPrefix Name PrivateEndpointNetworkPolicies PrivateLinkServiceNetworkPolicies ProvisioningState ResourceGroup --------------- -------------------------- -------------------------------- ----------------------------------- ------------------- --------------- 30.0.1.0/24 vmxcloudv2-vnet1-vsubnet1 Enabled Enabled Succeeded vmxcloudv2 Done creating subnet vmxcloudv2-vnet1-vsubnet1 with prefix 30.0.1.0/24 Creating virtual subnet vmxcloudv2-vnet1-vsubnet2 30.0.2.0/24.. AddressPrefix Name PrivateEndpointNetworkPolicies PrivateLinkServiceNetworkPolicies ProvisioningState ResourceGroup --------------- -------------------------- -------------------------------- ----------------------------------- ------------------- --------------- 30.0.2.0/24 vmxcloudv2-vnet1-vsubnet2 Enabled Enabled Succeeded vmxcloudv2 Done creating subnet vmxcloudv2-vnet1-vsubnet2 with prefix 30.0.2.0/24 Creating virtual subnet vmxcloudv2-vnet1-vsubnet3 30.0.3.0/24.. AddressPrefix Name PrivateEndpointNetworkPolicies PrivateLinkServiceNetworkPolicies ProvisioningState ResourceGroup --------------- -------------------------- -------------------------------- ----------------------------------- ------------------- --------------- 30.0.3.0/24 vmxcloudv2-vnet1-vsubnet3 Enabled Enabled Succeeded vmxcloudv2 Done creating subnet vmxcloudv2-vnet1-vsubnet3 with prefix 30.0.3.0/24 Creating routing tables... DisableBgpRoutePropagation Location Name ProvisioningState ResourceGroup ---------------------------- ---------- ------------------------- ------------------- --------------- False westus vmxcloudv2-rt-to-subnet2 Succeeded vmxcloudv2 DisableBgpRoutePropagation Location Name ProvisioningState ResourceGroup ---------------------------- ---------- ------------------------- ------------------- --------------- False westus vmxcloudv2-rt-to-subnet3 Succeeded vmxcloudv2 AddressPrefix Name PrivateEndpointNetworkPolicies PrivateLinkServiceNetworkPolicies ProvisioningState ResourceGroup --------------- -------------------------- -------------------------------- ----------------------------------- ------------------- --------------- 30.0.2.0/24 vmxcloudv2-vnet1-vsubnet2 Enabled Enabled Succeeded vmxcloudv2 AddressPrefix Name PrivateEndpointNetworkPolicies PrivateLinkServiceNetworkPolicies ProvisioningState ResourceGroup --------------- -------------------------- -------------------------------- ----------------------------------- ------------------- --------------- 30.0.3.0/24 vmxcloudv2-vnet1-vsubnet3 Enabled Enabled Succeeded vmxcloudv2 Creating public IP addresses and NICs... Created NIC vmx183-x3-vfp-nic with public IP... Created NIC vmx183-x3-vcp-nic with public IP... Created NIC vmx183-x3-wan-nic2... Created NIC vmx183-x3-wan-nic3... Adding routes to routing tables AddressPrefix Name NextHopIpAddress NextHopType ProvisioningState ResourceGroup --------------- --------- ------------------ ---------------- ------------------- --------------- 30.0.3.0/24 ToSubnet3 30.0.2.4 VirtualAppliance Succeeded vmxcloudv2 AddressPrefix Name NextHopIpAddress NextHopType ProvisioningState ResourceGroup --------------- --------- ------------------ ---------------- ------------------- --------------- 30.0.2.0/24 ToSubnet2 30.0.3.4 VirtualAppliance Succeeded vmxcloudv2 Creating vMX VM... ResourceGroup PowerState PublicIpAddress Fqdns PrivateIpAddress MacAddress Location Zones --------------- ------------ ------------------------ ------- ------------------------------------- ----------------------------------------------------------------------- ---------- ------- vmxcloudv2 VM running 52.160.86.48,40.83.167.5 30.0.0.10,30.0.1.10,30.0.2.4,30.0.3.4 00-0D-3A-5C-0B-1D,00-0D-3A-5C-08-9C,00-0D-3A-5C-09-83,00-0D-3A-5C-0E-D8 westus vMX deployment complete
Verificando a implantação do vMX no Microsoft Azure
Para verificar a implantação da instância vMX no Microsoft Azure:
Fazer login em uma instância vMX
Após a implantação do vMX, a instância vMX é ativada e lançada automaticamente. Neste ponto, você pode usar um cliente SSH para fazer login na instância vMX.
Pode levar 15 minutos ou mais para o vMX terminar de implantar e estar pronto para login via SSH.
Para fazer login no vMX VM:
Configuração inicial para vMX
No mínimo, você deve realizar essas tarefas iniciais de configuração do Junos OS após fazer login no vMX:

