Azure Load Balancer : 支持 IPv6

》中介绍了通过 Azure 门户站点创建基础的 Azure Load Balancer 配置,本文将接着介绍如何创建支持 IPv6 的 Azure Load Balancer。

):

= = <span style="color: #008000">#<span style="color: #008000"> vm user name
<span style="color: #800080">$userName
= <span style="color: #800000">"
<span style="color: #800000">nick
<span style="color: #800000">"

<span style="color: #008000">#
<span style="color: #008000"> vm user public key

<span style="color: #800080">$sshPublicKey = <span style="color: #800000">"<span style="color: #800000">xxxxxxxxxx<span style="color: #800000">"

<span style="color: #008000">#<span style="color: #008000"> resource loacation
<span style="color: #800080">$location = <span style="color: #800000">"<span style="color: #800000">japaneast<span style="color: #800000">"
<span style="color: #008000">#<span style="color: #008000"> resource group name
<span style="color: #800080">$rgName = <span style="color: #800080">$prodNamePrefix + <span style="color: #800000">"<span style="color: #800000">LBGroup<span style="color: #800000">"<span style="color: #000000">
...

New-AzureRmResourceGroup -Name -location

<span style="color: #008000">#<span style="color: #008000"> 虚拟网络及其虚拟子网
<span style="color: #800080">$backendSubnet = New-<span style="color: #000000">AzureRmVirtualNetworkSubnetConfig </span>-Name <span style="color: #800080"&gt;$subnetName</span><span style="color: #000000"&gt;
-AddressPrefix <span style="color: #800080">$subnetPrefix
<span style="color: #800080">$vnet = New-AzureRmvirtualNetwork -Name <span style="color: #800080">$vnetName<span style="color: #000000"> </span>-ResourceGroupName <span style="color: #800080"&gt;$rgName</span><span style="color: #000000"&gt;
-Location <span style="color: #800080">$location<span style="color: #000000"> </span>-AddressPrefix <span style="color: #800080"&gt;$vnetPrefix</span><span style="color: #000000"&gt;
-Subnet <span style="color: #800080">$backendSubnet

= New--Name -ResourceGroupName -Location ---DomainNameLabel = New--Name -ResourceGroupName -Location ---DomainNameLabel

<span style="color: #008000">#<span style="color: #008000"> 创建 Load Balancer 的 Frontend IP
<span style="color: #800080">$FEIPConfigv4 = New-<span style="color: #000000">AzureRmLoadBalancerFrontendIpConfig </span>-Name <span style="color: #800080"&gt;$frontendV4Name</span><span style="color: #000000"&gt;
-PublicIpAddress <span style="color: #800080">$publicIPv4
<span style="color: #800080">$FEIPConfigv6 = New-<span style="color: #000000">AzureRmLoadBalancerFrontendIpConfig </span>-Name <span style="color: #800080"&gt;$frontendV6Name</span><span style="color: #000000"&gt;
-PublicIpAddress <span style="color: #800080">$publicIPv6

<span style="color: #008000">#<span style="color: #008000"> 创建 Load Balancer 的 Backend pools
<span style="color: #800080">$backendpoolipv4 = New-<span style="color: #000000">AzureRmLoadBalancerBackendAddressPoolConfig </span>-Name <span style="color: #800080"&gt;$backendAddressPoolV4Name</span> <span style="color: #800080"&gt;$backendpoolipv6</span> = New-<span style="color: #000000"&gt;AzureRmLoadBalancerBackendAddressPoolConfig
-Name <span style="color: #800080">$backendAddressPoolV6Name

<span style="color: #008000">#<span style="color: #008000"> 创建 Load Balancer 的 Inbound NAT rules
<span style="color: #800080">$inboundNATRule1v4 = New-<span style="color: #000000">AzureRmLoadBalancerInboundNatRuleConfig </span>-Name <span style="color: #800080"&gt;$natRule1V4Name</span><span style="color: #000000"&gt;
-FrontendIpConfiguration <span style="color: #800080">$FEIPConfigv4<span style="color: #000000"> </span>-<span style="color: #000000"&gt;Protocol TCP
-FrontendPort 10022<span style="color: #000000"> </span>-BackendPort 22 <span style="color: #800080"&gt;$inboundNATRule2v4</span> = New-<span style="color: #000000"&gt;AzureRmLoadBalancerInboundNatRuleConfig
-Name <span style="color: #800080">$natRule2V4Name<span style="color: #000000"> </span>-FrontendIpConfiguration <span style="color: #800080"&gt;$FEIPConfigv4</span><span style="color: #000000"&gt;
-<span style="color: #000000">Protocol TCP </span>-FrontendPort 20022<span style="color: #000000"&gt;
-BackendPort 22

<span style="color: #008000">#<span style="color: #008000"> 创建 Load Balancer 的 Health probes
<span style="color: #800080">$healthProbe = New-AzureRmLoadBalancerProbeConfig -Name <span style="color: #800080">$probeV4V6Name<span style="color: #000000"> </span>-<span style="color: #000000"&gt;Protocol Tcp
-Port 22<span style="color: #000000"> </span>-IntervalInSeconds 15<span style="color: #000000"&gt;
-ProbeCount 2

<span style="color: #008000">#<span style="color: #008000"> 创建 Load Balancer 的 Load balancing rules
<span style="color: #800080">$lbrule1v4http = New-<span style="color: #000000">AzureRmLoadBalancerRuleConfig </span>-Name <span style="color: #800080"&gt;$lbRule1V4HTTPName</span><span style="color: #000000"&gt;
-FrontendIpConfiguration <span style="color: #800080">$FEIPConfigv4<span style="color: #000000"> </span>-BackendAddressPool <span style="color: #800080"&gt;$backendpoolipv4</span><span style="color: #000000"&gt;
-Probe <span style="color: #800080">$healthProbe<span style="color: #000000"> </span>-<span style="color: #000000"&gt;Protocol Tcp
-FrontendPort 80<span style="color: #000000"> </span>-BackendPort 80 <span style="color: #800080"&gt;$lbrule1v6http</span> = New-<span style="color: #000000"&gt;AzureRmLoadBalancerRuleConfig
-Name <span style="color: #800080">$lbRule1V6HTTPName<span style="color: #000000"> </span>-FrontendIpConfiguration <span style="color: #800080"&gt;$FEIPConfigv6</span><span style="color: #000000"&gt;
-BackendAddressPool <span style="color: #800080">$backendpoolipv6<span style="color: #000000"> </span>-Probe <span style="color: #800080"&gt;$healthProbe</span><span style="color: #000000"&gt;
-<span style="color: #000000">Protocol Tcp </span>-FrontendPort 80<span style="color: #000000"&gt;
-BackendPort 80
<span style="color: #800080">$lbrule1v4https = New-<span style="color: #000000">AzureRmLoadBalancerRuleConfig </span>-Name <span style="color: #800080"&gt;$lbRule1V4HTTPSName</span><span style="color: #000000"&gt;
-FrontendIpConfiguration <span style="color: #800080">$FEIPConfigv4<span style="color: #000000"> </span>-BackendAddressPool <span style="color: #800080"&gt;$backendpoolipv4</span><span style="color: #000000"&gt;
-Probe <span style="color: #800080">$healthProbe<span style="color: #000000"> </span>-<span style="color: #000000"&gt;Protocol Tcp
-FrontendPort 443<span style="color: #000000"> </span>-BackendPort 443 <span style="color: #800080"&gt;$lbrule1v6https</span> = New-<span style="color: #000000"&gt;AzureRmLoadBalancerRuleConfig
-Name <span style="color: #800080">$lbRule1V6HTTPSName<span style="color: #000000"> </span>-FrontendIpConfiguration <span style="color: #800080"&gt;$FEIPConfigv6</span><span style="color: #000000"&gt;
-BackendAddressPool <span style="color: #800080">$backendpoolipv6<span style="color: #000000"> </span>-Probe <span style="color: #800080"&gt;$healthProbe</span><span style="color: #000000"&gt;
-<span style="color: #000000">Protocol Tcp </span>-FrontendPort 443<span style="color: #000000"&gt;
-BackendPort 443

<span style="color: #008000">#<span style="color: #008000"> 创建 Load Balancer
<span style="color: #800080">$loadbalancer = New-<span style="color: #000000">AzureRmLoadBalancer </span>-ResourceGroupName <span style="color: #800080"&gt;$rgName</span><span style="color: #000000"&gt;
-Name <span style="color: #800080">$lbName<span style="color: #000000"> </span>-Location <span style="color: #800080"&gt;$location</span><span style="color: #000000"&gt;
-FrontendIpConfiguration <span style="color: #800080">$FEIPConfigv4,<span style="color: #800080">$FEIPConfigv6<span style="color: #000000"> </span>-InboundNatRule <span style="color: #800080"&gt;$inboundNATRule2v4</span>,<span style="color: #800080"&gt;$inboundNATRule1v4</span><span style="color: #000000"&gt;
-BackendAddressPool <span style="color: #800080">$backendpoolipv4,<span style="color: #800080">$backendpoolipv6<span style="color: #000000"> </span>-Probe <span style="color: #800080"&gt;$healthProbe</span><span style="color: #000000"&gt;
-LoadBalancingRule <span style="color: #800080">$lbrule1v4http,<span style="color: #800080">$lbrule1v6http<span style="color: #000000">,`
<span style="color: #800080">$lbrule1v4https,<span style="color: #800080">$lbrule1v6https

= Get-AzureRmVirtualNetwork -Name -ResourceGroupName = Get--Name -VirtualNetwork

<span style="color: #800080">$nic1IPv4 = New-<span style="color: #000000">AzureRmNetworkInterfaceIpConfig </span>-Name <span style="color: #800000"&gt;"</span><span style="color: #800000"&gt;IPv4IPConfig</span><span style="color: #800000"&gt;"</span><span style="color: #000000"&gt;
-PrivateIpAddressVersion <span style="color: #800000">"<span style="color: #800000">IPv4<span style="color: #800000">"<span style="color: #000000"> </span>-Subnet <span style="color: #800080"&gt;$backendSubnet</span><span style="color: #000000"&gt;
-LoadBalancerBackendAddressPool <span style="color: #800080">$backendpoolipv4<span style="color: #000000"> </span>-LoadBalancerInboundNatRule <span style="color: #800080"&gt;$inboundNATRule1v4</span> <span style="color: #800080"&gt;$nic1IPv6</span> = New-<span style="color: #000000"&gt;AzureRmNetworkInterfaceIpConfig
-Name <span style="color: #800000">"<span style="color: #800000">IPv6IPConfig<span style="color: #800000">"<span style="color: #000000"> </span>-PrivateIpAddressVersion <span style="color: #800000"&gt;"</span><span style="color: #800000"&gt;IPv6</span><span style="color: #800000"&gt;"</span><span style="color: #000000"&gt;
-LoadBalancerBackendAddressPool <span style="color: #800080">$backendpoolipv6
<span style="color: #800080">$nic1 = New-<span style="color: #000000">AzureRmNetworkInterface </span>-Name <span style="color: #800080"&gt;$nic1Name</span><span style="color: #000000"&gt;
-IpConfiguration <span style="color: #800080">$nic1IPv4,<span style="color: #800080">$nic1IPv6<span style="color: #000000"> </span>-ResourceGroupName <span style="color: #800080"&gt;$rgName</span><span style="color: #000000"&gt;
-Location <span style="color: #800080">$location

<span style="color: #800080">$nic2IPv4 = New-<span style="color: #000000">AzureRmNetworkInterfaceIpConfig </span>-Name <span style="color: #800000"&gt;"</span><span style="color: #800000"&gt;IPv4IPConfig</span><span style="color: #800000"&gt;"</span><span style="color: #000000"&gt;
-PrivateIpAddressVersion <span style="color: #800000">"<span style="color: #800000">IPv4<span style="color: #800000">"<span style="color: #000000"> </span>-Subnet <span style="color: #800080"&gt;$backendSubnet</span><span style="color: #000000"&gt;
-LoadBalancerBackendAddressPool <span style="color: #800080">$backendpoolipv4<span style="color: #000000"> </span>-LoadBalancerInboundNatRule <span style="color: #800080"&gt;$inboundNATRule2v4</span> <span style="color: #800080"&gt;$nic2IPv6</span> = New-<span style="color: #000000"&gt;AzureRmNetworkInterfaceIpConfig
-Name <span style="color: #800000">"<span style="color: #800000">IPv6IPConfig<span style="color: #800000">"<span style="color: #000000"> </span>-PrivateIpAddressVersion <span style="color: #800000"&gt;"</span><span style="color: #800000"&gt;IPv6</span><span style="color: #800000"&gt;"</span><span style="color: #000000"&gt;
-LoadBalancerBackendAddressPool <span style="color: #800080">$backendpoolipv6
<span style="color: #800080">$nic2 = New-<span style="color: #000000">AzureRmNetworkInterface </span>-Name <span style="color: #800080"&gt;$nic2Name</span><span style="color: #000000"&gt;
-IpConfiguration <span style="color: #800080">$nic2IPv4,<span style="color: #800080">$nic2IPv6<span style="color: #000000"> </span>-ResourceGroupName <span style="color: #800080"&gt;$rgName</span><span style="color: #000000"&gt;
-Location <span style="color: #800080">$location

New-AzureRmAvailabilitySet -Name --PlatformFaultDomainCount 2-PlatformUpdateDomainCount 5-ResourceGroupName -location = Get--Name -ResourceGroupName

<span style="color: #008000">#<span style="color: #008000"> 创建用户 Credential
<span style="color: #800080">$securePassword = ConvertTo-SecureString <span style="color: #800080">$userPassword<span style="color: #000000"> </span>-AsPlainText -<span style="color: #000000"&gt;Force </span><span style="color: #800080"&gt;$userCred</span> = New-<span style="color: #000000"&gt;Object System.Management.Automation.PSCredential
(<span style="color: #800080">$userName,<span style="color: #800080">$securePassword<span style="color: #000000">)

<span style="color: #008000">#<span style="color: #008000"> 创建第一台虚机,可以以同样的方式创建第二台虚机
<span style="color: #800080">$vm1 = New-AzureRmVMConfig -VMName <span style="color: #800080">$vm1Name<span style="color: #000000"> </span>-VMSize <span style="color: #800080"&gt;$vmSize</span><span style="color: #000000"&gt;
-AvailabilitySetId <span style="color: #800080">$availabilitySet<span style="color: #000000">.Id
<span style="color: #800080">$vm1 = Set-<span style="color: #000000">AzureRmVMOperatingSystem </span>-VM <span style="color: #800080"&gt;$vm1</span><span style="color: #000000"&gt;
-<span style="color: #000000">Linux </span>-ComputerName <span style="color: #800080"&gt;$vm1ComputerHostName</span><span style="color: #000000"&gt;
-Credential <span style="color: #800080">$userCred<span style="color: #000000"> </span>-<span style="color: #000000"&gt;DisablePasswordAuthentication </span><span style="color: #800080"&gt;$vm1</span> = Set-<span style="color: #000000"&gt;AzureRmVMSourceImage
-VM <span style="color: #800080">$vm1<span style="color: #000000"> </span>-<span style="color: #000000"&gt;PublisherName Canonical
-<span style="color: #000000">Offer UbuntuServer </span>-Skus <span style="color: #800080"&gt;$vmVersion</span><span style="color: #000000"&gt;
-Version <span style="color: #800000">"<span style="color: #800000">latest<span style="color: #800000">"
<span style="color: #800080">$vm1 = Set-<span style="color: #000000">AzureRmVMBootDiagnostics </span>-VM <span style="color: #800080"&gt;$vm1</span><span style="color: #000000"&gt;
-<span style="color: #000000">Disable
<span style="color: #800080">$vm1 = Add-<span style="color: #000000">AzureRmVMNetworkInterface </span>-VM <span style="color: #800080"&gt;$vm1</span><span style="color: #000000"&gt;
-Id <span style="color: #800080">$nic1<span style="color: #000000">.Id </span>-<span style="color: #000000"&gt;Primary </span><span style="color: #800080"&gt;$vm1</span> = Set-<span style="color: #000000"&gt;AzureRmVMOSDisk
-VM <span style="color: #800080">$vm1<span style="color: #000000"> </span>-Name <span style="color: #800080"&gt;$vm1DiskName</span><span style="color: #000000"&gt;
-<span style="color: #000000">CreateOption FromImage </span>-StorageAccountType <span style="color: #800080"&gt;$storageAccountTypeName</span><span style="color: #000000"&gt; Add</span>-<span style="color: #000000"&gt;AzureRmVMSshPublicKey
-VM <span style="color: #800080">$vm1<span style="color: #000000"> </span>-KeyData <span style="color: #800080"&gt;$sshPublicKey</span><span style="color: #000000"&gt;
-Path <span style="color: #800000">"<span style="color: #800000">/home/$userName/.ssh/authorized_keys<span style="color: #800000">"<span style="color: #000000">
New-AzureRmVM -ResourceGroupName <span style="color: #800080">$rgName<span style="color: #000000"> </span>-Location <span style="color: #800080"&gt;$location</span><span style="color: #000000"&gt;
-VM <span style="color: #800080">$vm1

相关文章

Microsoft云包括了Azure、PowerPlatform、Microsoft365、Git...
《WindowsAzurePlatform系列文章目录》 我们在使用AzureAPI...
微软免费使用一年的Azure虚拟机,默认提供了一个64G的磁盘,...
上篇请访问这里做一个能对标阿里云的前端APM工具(上)样本多...
一年一度的MicrosoftBuild终于来了,带来了非常非常多的新技...