Skapa en offentlig lastbalanserare med IPv6 med Hjälp av Azure CLI
Kommentar
I den här artikeln beskrivs en introduktionsfunktion för IPv6 som gör det möjligt för Basic Load Balancers att tillhandahålla både IPv4- och IPv6-anslutning. Omfattande IPv6-anslutning är nu tillgänglig med IPv6 för virtuella Azure-nätverk som integrerar IPv6-anslutning med dina virtuella nätverk och innehåller viktiga funktioner som IPv6 Network Security Group-regler, IPv6 Användardefinierad routning, IPv6 Basic- och Standard-belastningsutjämning med mera. IPv6 för virtuella Azure-nätverk är den rekommenderade standarden för IPv6-program i Azure. Se IPv6 för Azure VNET PowerShell-distribution
En Azure Load Balancer är en Layer 4-lastbalanserare (TCP, UDP). Lastbalanserare ger hög tillgänglighet genom att distribuera inkommande trafik mellan felfria tjänstinstanser i molntjänster eller virtuella datorer i en lastbalanserare. Lastbalanserare kan också presentera dessa tjänster på flera portar eller flera IP-adresser eller båda.
Exempel på distributionsscenario
Följande diagram illustrerar den belastningsutjämningslösning som distribueras med hjälp av exempelmallen som beskrivs i den här artikeln.
I det här scenariot skapar du följande Azure-resurser:
- Två virtuella datorer
- Ett virtuellt nätverksgränssnitt för varje virtuell dator med både IPv4- och IPv6-adresser tilldelade
- En offentlig lastbalanserare med en offentlig IPv4- och IPv6-ip-adress
- En tillgänglighetsuppsättning som innehåller de två virtuella datorerna
- Två regler för belastningsutjämning för att mappa offentliga VIP:er till de privata slutpunkterna
Distribuera lösningen med hjälp av Azure CLI
Följande steg visar hur du skapar en offentlig lastbalanserare med hjälp av Azure CLI. Med CLI skapar och konfigurerar du varje objekt individuellt och sätter sedan ihop dem för att skapa en resurs.
Om du vill distribuera en lastbalanserare skapar och konfigurerar du följande objekt:
- Ip-konfiguration för klientdelen: Innehåller offentliga IP-adresser för inkommande nätverkstrafik.
- Serverdelsadresspool: Innehåller nätverksgränssnitt (NIC) för de virtuella datorerna för att ta emot nätverkstrafik från lastbalanseraren.
- Belastningsutjämningsregler: Innehåller regler som mappar en offentlig port på lastbalanseraren till en port i serverdelsadresspoolen.
- Regler för inkommande NAT: Innehåller NAT-regler (Network Address Translation) som mappar en offentlig port på lastbalanseraren till en port för en specifik virtuell dator i serverdelsadresspoolen.
- Avsökningar: Innehåller hälsoavsökningar som används för att kontrollera tillgängligheten för virtuella datorinstanser i serverdelsadresspoolen.
Konfigurera Azure CLI
I det här exemplet kör du Azure CLI-verktygen i ett PowerShell-kommandofönster. För att förbättra läsbarheten och återanvändningen använder du PowerShells skriptfunktioner, inte Azure PowerShell-cmdletarna.
Installera och konfigurera Azure CLI genom att följa stegen i den länkade artikeln och logga in på ditt Azure-konto.
Konfigurera PowerShell-variabler för användning med Azure CLI-kommandon:
$subscriptionid = "########-####-####-####-############" # enter subscription id $location = "southcentralus" $rgName = "pscontosorg1southctrlus09152016" $vnetName = "contosoIPv4Vnet" $vnetPrefix = "10.0.0.0/16" $subnet1Name = "clicontosoIPv4Subnet1" $subnet1Prefix = "10.0.0.0/24" $subnet2Name = "clicontosoIPv4Subnet2" $subnet2Prefix = "10.0.1.0/24" $dnsLabel = "contoso09152016" $lbName = "myIPv4IPv6Lb"
Skapa en resursgrupp, en lastbalanserare, ett virtuellt nätverk och undernät
Skapa en resursgrupp:
az group create --name $rgName --location $location
Skapa en lastbalanserare:
$lb = az network lb create --resource-group $rgname --location $location --name $lbName
Skapa ett virtuellt nätverk:
$vnet = az network vnet create --resource-group $rgname --name $vnetName --location $location --address-prefixes $vnetPrefix
I det här virtuella nätverket skapar du två undernät:
$subnet1 = az network vnet subnet create --resource-group $rgname --name $subnet1Name --address-prefix $subnet1Prefix --vnet-name $vnetName $subnet2 = az network vnet subnet create --resource-group $rgname --name $subnet2Name --address-prefix $subnet2Prefix --vnet-name $vnetName
Skapa offentliga IP-adresser för klientdelspoolen
Konfigurera PowerShell-variablerna:
$publicIpv4Name = "myIPv4Vip" $publicIpv6Name = "myIPv6Vip"
Skapa en offentlig IP-adress för klientdels-IP-poolen:
$publicipV4 = az network public-ip create --resource-group $rgname --name $publicIpv4Name --location $location --version IPv4 --allocation-method Dynamic --dns-name $dnsLabel $publicipV6 = az network public-ip create --resource-group $rgname --name $publicIpv6Name --location $location --version IPv6 --allocation-method Dynamic --dns-name $dnsLabel
Viktigt!
Lastbalanseraren använder domänetiketten för den offentliga IP-adressen som sitt fullständigt kvalificerade domännamn (FQDN). Detta är en ändring från den klassiska distributionen, som använder molntjänstnamnet som lastbalanserarens FQDN.
I det här exemplet är det fullständiga domännamnet contoso09152016.southcentralus.cloudapp.azure.com.
Skapa klientdels- och serverdelspooler
I det här avsnittet skapar du följande IP-pooler:
- Klientdels-IP-poolen som tar emot inkommande nätverkstrafik i lastbalanseraren.
- Serverdels-IP-poolen där klientdelspoolen skickar den belastningsutjämningsbaserade nätverkstrafiken.
Konfigurera PowerShell-variablerna:
$frontendV4Name = "FrontendVipIPv4" $frontendV6Name = "FrontendVipIPv6" $backendAddressPoolV4Name = "BackendPoolIPv4" $backendAddressPoolV6Name = "BackendPoolIPv6"
Skapa en IP-klientdels-IP-pool och associera den med den offentliga IP-adress som du skapade i föregående steg och lastbalanseraren.
$frontendV4 = az network lb frontend-ip create --resource-group $rgname --name $frontendV4Name --public-ip-address $publicIpv4Name --lb-name $lbName $frontendV6 = az network lb frontend-ip create --resource-group $rgname --name $frontendV6Name --public-ip-address $publicIpv6Name --lb-name $lbName $backendAddressPoolV4 = az network lb address-pool create --resource-group $rgname --name $backendAddressPoolV4Name --lb-name $lbName $backendAddressPoolV6 = az network lb address-pool create --resource-group $rgname --name $backendAddressPoolV6Name --lb-name $lbName
Skapa regler för avsökning, NAT-regler och lastbalanserare
I det här exemplet skapas följande objekt:
- En avsökningsregel för att söka efter anslutning till TCP-port 80.
- En NAT-regel för att översätta all inkommande trafik på port 3389 till port 3389 för RDP.*
- En NAT-regel för att översätta all inkommande trafik på port 3391 till port 3389 för fjärrskrivbordsprotokoll (RDP).*
- En lastbalanseringsregel för att balansera all inkommande trafik på port 80 till port 80 på adresserna i serverdelspoolen.
* NAT-regler är associerade med en specifik virtuell datorinstans bakom lastbalanseraren. Nätverkstrafiken som anländer till port 3389 skickas till den specifika virtuella datorn och porten som är associerad med NAT-regeln. Du måste ange ett protokoll (UDP eller TCP) för en NAT-regel. Du kan inte tilldela båda protokollen till samma port.
Konfigurera PowerShell-variablerna:
$probeV4V6Name = "ProbeForIPv4AndIPv6" $natRule1V4Name = "NatRule-For-Rdp-VM1" $natRule2V4Name = "NatRule-For-Rdp-VM2" $lbRule1V4Name = "LBRuleForIPv4-Port80" $lbRule1V6Name = "LBRuleForIPv6-Port80"
Skapa avsökningen.
I följande exempel skapas en TCP-avsökning som söker efter anslutning till serverdelens TCP-port 80 var 15:e sekund. Efter två på varandra följande fel markerar den serverdelsresursen som otillgänglig.
$probeV4V6 = az network lb probe create --resource-group $rgname --name $probeV4V6Name --protocol tcp --port 80 --interval 15 --threshold 2 --lb-name $lbName
Skapa inkommande NAT-regler som tillåter RDP-anslutningar till serverdelsresurserna:
$inboundNatRuleRdp1 = az network lb inbound-nat-rule create --resource-group $rgname --name $natRule1V4Name --frontend-ip-name $frontendV4Name --protocol Tcp --frontend-port 3389 --backend-port 3389 --lb-name $lbName $inboundNatRuleRdp2 = az network lb inbound-nat-rule create --resource-group $rgname --name $natRule2V4Name --frontend-ip-name $frontendV4Name --protocol Tcp --frontend-port 3391 --backend-port 3389 --lb-name $lbName
Skapa regler för lastbalanserare som skickar trafik till olika serverdelsportar, beroende på klientdelen som tog emot begäran.
$lbruleIPv4 = az network lb rule create --resource-group $rgname --name $lbRule1V4Name --frontend-ip-name $frontendV4Name --backend-pool-name $backendAddressPoolV4Name --probe-name $probeV4V6Name --protocol Tcp --frontend-port 80 --backend-port 80 --lb-name $lbName $lbruleIPv6 = az network lb rule create --resource-group $rgname --name $lbRule1V6Name --frontend-ip-name $frontendV6Name --backend-pool-name $backendAddressPoolV6Name --probe-name $probeV4V6Name --protocol Tcp --frontend-port 80 --backend-port 8080 --lb-name $lbName
Kontrollera inställningarna:
az network lb show --resource-group $rgName --name $lbName
Förväntad utdata:
info: Executing command network lb show info: Looking up the load balancer "myIPv4IPv6Lb" data: Id : /subscriptions/########-####-####-####-############/resourceGroups/pscontosorg1southctrlus09152016/providers/Microsoft.Network/loadBalancers/myIPv4IPv6Lb data: Name : myIPv4IPv6Lb data: Type : Microsoft.Network/loadBalancers data: Location : southcentralus data: Provisioning state : Succeeded data: data: Frontend IP configurations: data: Name Provisioning state Private IP allocation Private IP Subnet Public IP data: --------------- ------------------ --------------------- ----------- ------ --------- data: FrontendVipIPv4 Succeeded Dynamic myIPv4Vip data: FrontendVipIPv6 Succeeded Dynamic myIPv6Vip data: data: Probes: data: Name Provisioning state Protocol Port Path Interval Count data: ------------------- ------------------ -------- ---- ---- -------- ----- data: ProbeForIPv4AndIPv6 Succeeded Tcp 80 15 2 data: data: Backend Address Pools: data: Name Provisioning state data: --------------- ------------------ data: BackendPoolIPv4 Succeeded data: BackendPoolIPv6 Succeeded data: data: Load Balancing Rules: data: Name Provisioning state Load distribution Protocol Frontend port Backend port Enable floating IP Idle timeout in minutes data: -------------------- ------------------ ----------------- -------- ------------- ------------ ------------------ ----------------------- data: LBRuleForIPv4-Port80 Succeeded Default Tcp 80 80 false 4 data: LBRuleForIPv6-Port80 Succeeded Default Tcp 80 8080 false 4 data: data: Inbound NAT Rules: data: Name Provisioning state Protocol Frontend port Backend port Enable floating IP Idle timeout in minutes data: ------------------- ------------------ -------- ------------- ------------ ------------------ ----------------------- data: NatRule-For-Rdp-VM1 Succeeded Tcp 3389 3389 false 4 data: NatRule-For-Rdp-VM2 Succeeded Tcp 3391 3389 false 4 info: network lb show
Skapa nätverkskort
Skapa nätverkskort och associera dem med NAT-regler, lastbalanseringsregler och avsökningar.
Konfigurera PowerShell-variablerna:
$nic1Name = "myIPv4IPv6Nic1" $nic2Name = "myIPv4IPv6Nic2" $subnet1Id = "/subscriptions/$subscriptionid/resourceGroups/$rgName/providers/Microsoft.Network/VirtualNetworks/$vnetName/subnets/$subnet1Name" $subnet2Id = "/subscriptions/$subscriptionid/resourceGroups/$rgName/providers/Microsoft.Network/VirtualNetworks/$vnetName/subnets/$subnet2Name" $backendAddressPoolV4Id = "/subscriptions/$subscriptionid/resourceGroups/$rgname/providers/Microsoft.Network/loadbalancers/$lbName/backendAddressPools/$backendAddressPoolV4Name" $backendAddressPoolV6Id = "/subscriptions/$subscriptionid/resourceGroups/$rgname/providers/Microsoft.Network/loadbalancers/$lbName/backendAddressPools/$backendAddressPoolV6Name" $natRule1V4Id = "/subscriptions/$subscriptionid/resourceGroups/$rgname/providers/Microsoft.Network/loadbalancers/$lbName/inboundNatRules/$natRule1V4Name" $natRule2V4Id = "/subscriptions/$subscriptionid/resourceGroups/$rgname/providers/Microsoft.Network/loadbalancers/$lbName/inboundNatRules/$natRule2V4Name"
Skapa ett nätverkskort för varje serverdel och lägg till en IPv6-konfiguration:
$nic1 = az network nic create --name $nic1Name --resource-group $rgname --location $location --private-ip-address-version "IPv4" --subnet $subnet1Id --lb-address-pools $backendAddressPoolV4Id --lb-inbound-nat-rules $natRule1V4Id $nic1IPv6 = az network nic ip-config create --resource-group $rgname --name "IPv6IPConfig" --private-ip-address-version "IPv6" --lb-address-pools $backendAddressPoolV6Id --nic-name $nic1Name $nic2 = az network nic create --name $nic2Name --resource-group $rgname --location $location --private-ip-address-version "IPv4" --subnet $subnet2Id --lb-address-pools $backendAddressPoolV4Id --lb-inbound-nat-rules $natRule2V4Id $nic2IPv6 = az network nic ip-config create --resource-group $rgname --name "IPv6IPConfig" --private-ip-address-version "IPv6" --lb-address-pools $backendAddressPoolV6Id --nic-name $nic2Name
Skapa de virtuella serverdelsresurserna och koppla varje nätverkskort
Om du vill skapa virtuella datorer måste du ha ett lagringskonto. För belastningsutjämning måste de virtuella datorerna vara medlemmar i en tillgänglighetsuppsättning. Mer information om hur du skapar virtuella datorer finns i Skapa en virtuell Azure-dator med hjälp av PowerShell.
Konfigurera PowerShell-variablerna:
$availabilitySetName = "myIPv4IPv6AvailabilitySet" $vm1Name = "myIPv4IPv6VM1" $vm2Name = "myIPv4IPv6VM2" $nic1Id = "/subscriptions/$subscriptionid/resourceGroups/$rgname/providers/Microsoft.Network/networkInterfaces/$nic1Name" $nic2Id = "/subscriptions/$subscriptionid/resourceGroups/$rgname/providers/Microsoft.Network/networkInterfaces/$nic2Name" $imageurn = "MicrosoftWindowsServer:WindowsServer:2012-R2-Datacenter:latest" $vmUserName = "vmUser" $mySecurePassword = "PlainTextPassword*1"
Varning
I det här exemplet används användarnamnet och lösenordet för de virtuella datorerna i klartext. Var noga när du använder dessa autentiseringsuppgifter i klartext. En säkrare metod för att hantera autentiseringsuppgifter i PowerShell finns i cmdleten
Get-Credential
.Skapa tillgänglighetsuppsättningen:
$availabilitySet = az vm availability-set create --name $availabilitySetName --resource-group $rgName --location $location
Skapa de virtuella datorerna med associerade nätverkskort:
az vm create --resource-group $rgname --name $vm1Name --image $imageurn --admin-username $vmUserName --admin-password $mySecurePassword --nics $nic1Id --location $location --availability-set $availabilitySetName --size "Standard_A1" az vm create --resource-group $rgname --name $vm2Name --image $imageurn --admin-username $vmUserName --admin-password $mySecurePassword --nics $nic2Id --location $location --availability-set $availabilitySetName --size "Standard_A1"
Feedback
https://aka.ms/ContentUserFeedback.
Kommer snart: Under hela 2024 kommer vi att fasa ut GitHub-problem som feedbackmekanism för innehåll och ersätta det med ett nytt feedbacksystem. Mer information finns i:Skicka och visa feedback för