Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Шлюз приложений Azure поддерживает интерфейсные подключения с двумя стеками (IPv4 и IPv6) от клиентов. Чтобы использовать подключение к фронтенду через IPv6, необходимо создать новый Application Gateway. В настоящее время невозможно обновить существующие только для IPv4 шлюзы приложений до двухстековых (IPv4 и IPv6) шлюзов приложений. Кроме того, в настоящее время серверные IPv6-адреса не поддерживаются.
Чтобы поддерживать интерфейсную поддержку IPv6, необходимо создать виртуальную сеть с двумя стеками. Эта виртуальная сеть с двойным стеком содержит подсети для IPv4 и IPv6. Виртуальные сети Azure уже предоставляют двухстековую возможность.
Обзор
Azure PowerShell используется для создания Шлюз приложений Azure IPv6. Тестирование выполняется для проверки правильности работы.
Узнайте следующие темы:
- Настройка сети с двумя стеками
- Создание шлюза приложений с интерфейсом IPv6
- Создайте масштабируемый набор виртуальных машин с серверным пулом по умолчанию
Azure PowerShell используется для создания Шлюз приложений Azure IPv6 и тестирования для обеспечения правильной работы. Шлюз приложений может управлять и защищать веб-трафик на обслуживаемые серверы. Масштабируемый набор виртуальных машин предназначен для серверных серверов для управления веб-трафиком. Масштабируемый набор содержит два экземпляра виртуальной машины, которые добавляются в типовой серверный пул шлюза приложений. Дополнительные сведения о компонентах шлюза приложений см. в разделе "Компоненты шлюза приложений".
Вы также можете пройти это краткое руководство с помощью портала Azure.
Предварительные условия
Если у вас нет подписки Azure, создайте бесплатную учетную запись, прежде чем приступить к работе.
Чтобы установить и использовать PowerShell локально для работы с этой статьей, вам понадобится модуль Azure PowerShell 1.0.0 или более поздней версии. Чтобы узнать версию, выполните команду Get-Module -ListAvailable Az
. Если вам необходимо выполнить обновление, ознакомьтесь со статьей, посвященной установке модуля Azure PowerShell. При использовании PowerShell на локальном компьютере также нужно запустить Login-AzAccount
, чтобы создать подключение к Azure.
Регионы и доступность
IPv6 Шлюз Приложений доступен для всех общедоступных облачных регионов, где поддерживается SKU Шлюз Приложений версии 2. Она также доступна в Microsoft Azure под управлением 21Vianet и Azure для государственных организаций
Ограничения
- Только SKU версии v2 поддерживает интерфейс с адресами и IPv4, и IPv6.
- Серверы IPv6 в настоящее время не поддерживаются
- В настоящее время приватный канал IPv6 не поддерживается
- В настоящее время шлюз приложений, работающий только с IPv6, не поддерживается. Шлюз приложений должен быть двойным стеком (IPv6 и IPv4)
- Шлюз приложений контроллер входа (AGIC) не поддерживает конфигурацию IPv6.
- Существующие шлюзы приложений IPv4 не могут быть обновлены до двухстековых шлюзов приложений.
- Пользовательские правила WAF с условием соответствия IPv6 в настоящее время не поддерживаются
Создание группы ресурсов
Группа ресурсов — это логический контейнер, в котором происходит развертывание ресурсов Azure и управление ими. Создайте группу ресурсов Azure с помощью командлета New-AzResourceGroup.
New-AzResourceGroup -Name myResourceGroupAG -Location eastus
Настройка подсети двойного стека и серверной подсети
Настройте подсети с именами myBackendSubnet и myAGSubnet, выполнив командлет New-AzVirtualNetworkSubnetConfig.
$AppGwSubnetPrefix = @("10.0.0.0/24", "ace:cab:deca::/64")
$appgwSubnet = New-AzVirtualNetworkSubnetConfig `
-Name myAGSubnet -AddressPrefix $AppGwSubnetPrefix
$backendSubnet = New-AzVirtualNetworkSubnetConfig `
-Name myBackendSubnet -AddressPrefix 10.0.1.0/24
Создание виртуальной сети двойного стека
$VnetPrefix = @("10.0.0.0/16", "ace:cab:deca::/48")
$vnet = New-AzVirtualNetwork `
-Name myVNet `
-ResourceGroupName myResourceGroupAG `
-Location eastus `
-AddressPrefix $VnetPrefix `
-Subnet @($appgwSubnet, $backendSubnet)
Создание общедоступных IP-адресов фронтенда Шлюза приложений
$pipv4 = New-AzPublicIpAddress `
-Name myAGPublicIPAddress4 `
-ResourceGroupName myResourceGroupAG `
-Location eastus `
-Sku 'Standard' `
-AllocationMethod 'Static' `
-IpAddressVersion 'IPv4' `
-Force
$pipv6 = New-AzPublicIpAddress `
-Name myAGPublicIPAddress6 `
-ResourceGroupName myResourceGroupAG `
-Location eastus `
-Sku 'Standard' `
-AllocationMethod 'Static' `
-IpAddressVersion 'IPv6' `
-Force
Создание ip-конфигураций и портов
Свяжите созданную ранее подсеть myAGSubnet со шлюзом приложений, используя командлет New-AzApplicationGatewayIPConfiguration. Назначьте шлюзу приложений адрес myAGPublicIPAddress с помощью команды New-AzApplicationGatewayFrontendIPConfig.
$vnet = Get-AzVirtualNetwork `
-ResourceGroupName myResourceGroupAG `
-Name myVNet
$subnet = Get-AzVirtualNetworkSubnetConfig `
-VirtualNetwork $vnet `
-Name myAGSubnet
$gipconfig = New-AzApplicationGatewayIPConfiguration `
-Name myAGIPConfig `
-Subnet $subnet
$fipconfigv4 = New-AzApplicationGatewayFrontendIPConfig `
-Name myAGFrontendIPv4Config `
-PublicIPAddress $pipv4
$fipconfigv6 = New-AzApplicationGatewayFrontendIPConfig `
-Name myAGFrontendIPv6Config `
-PublicIPAddress $pipv6
$frontendport = New-AzApplicationGatewayFrontendPort `
-Name myAGFrontendIPv6Config `
-Port 80
Создание серверного пула и настройка параметров
Создайте пул серверов с именем appGatewayBackendPool для шлюза приложений, используя командлет New-AzApplicationGatewayBackendAddressPool. Настройте параметры для внутренних пулов адресов, используя командлет New-AzApplicationGatewayBackendHttpSettings.
$backendPool = New-AzApplicationGatewayBackendAddressPool `
-Name myAGBackendPool
$poolSettings = New-AzApplicationGatewayBackendHttpSetting `
-Name myPoolSettings `
-Port 80 `
-Protocol Http `
-CookieBasedAffinity Enabled `
-RequestTimeout 30
Создайте прослушиватель по умолчанию и правило
Прослушиватель требуется для того, чтобы шлюз приложений правильно маршрутизировал трафик на внутренние пулы. В этом примере создается базовый прослушиватель, который прослушивает трафик на корневом URL-адресе.
Создайте листенер с именем mydefaultListener, используя командлет New-AzApplicationGatewayHttpListener и ранее созданную конфигурацию внешнего интерфейса и внешний порт. Правило требуется для того, чтобы указать прослушивателю, какой внутренний пул использовать для входящего трафика. Создайте базовое правило rule1 с помощью New-AzApplicationGatewayRequestRoutingRule.
$listenerv4 = New-AzApplicationGatewayHttpListener `
-Name myAGListnerv4 `
-Protocol Http `
-FrontendIPConfiguration $fipconfigv4 `
-FrontendPort $frontendport
$listenerv6 = New-AzApplicationGatewayHttpListener `
-Name myAGListnerv6 `
-Protocol Http `
-FrontendIPConfiguration $fipconfigv6 `
-FrontendPort $frontendport
$frontendRulev4 = New-AzApplicationGatewayRequestRoutingRule `
-Name ruleIPv4 `
-RuleType Basic `
-Priority 10 `
-HttpListener $listenerv4 `
-BackendAddressPool $backendPool `
-BackendHttpSettings $poolSettings
$frontendRulev6 = New-AzApplicationGatewayRequestRoutingRule `
-Name ruleIPv6 `
-RuleType Basic `
-Priority 1 `
-HttpListener $listenerv6 `
-BackendAddressPool $backendPool `
-BackendHttpSettings $poolsettings
Создание шлюза приложений
Теперь, когда вы создали необходимые вспомогательные ресурсы, можно указать параметры для шлюза приложений с помощью New-AzApplicationGatewaySku. Новый шлюз приложений создается с помощью New-AzApplicationGateway. Создание шлюза приложений занимает несколько минут.
$sku = New-AzApplicationGatewaySku `
-Name Standard_v2 `
-Tier Standard_v2 `
-Capacity 2
New-AzApplicationGateway `
-Name myipv6AppGW `
-ResourceGroupName myResourceGroupAG `
-Location eastus `
-BackendAddressPools $backendPool `
-BackendHttpSettingsCollection $poolsettings `
-FrontendIpConfigurations @($fipconfigv4, $fipconfigv6) `
-GatewayIpConfigurations $gipconfig `
-FrontendPorts $frontendport `
-HttpListeners @($listenerv4, $listenerv6) `
-RequestRoutingRules @($frontendRulev4, $frontendRulev6) `
-Sku $sku `
-Force
Внутренние серверы
Теперь, когда вы создали шлюз приложений, вы можете создать серверные виртуальные машины для размещения веб-сайтов. Бекенд может состоять из сетевых адаптеров, масштабируемых наборов виртуальных машин, общедоступных IP-адресов, внутренних IP-адресов, полных доменных имен (FQDN) и мультитенантных бекендов, таких как служба приложений Azure.
Создание двух виртуальных машин
В этом примере вы создадите две виртуальные машины, которые будут использоваться как внутренние серверы для шлюза приложений. Службы IIS устанавливаются на виртуальных машинах, чтобы убедиться, что Azure успешно создал шлюз приложений. Масштабируемый набор назначается внутреннему пулу при настройке параметров IP-адреса.
Чтобы создать виртуальные машины, мы получаем конфигурацию недавно созданного внутреннего пула шлюза приложений с Get-AzApplicationGatewayBackendAddressPool. Эта информация используется в следующих целях:
- Создайте сетевой интерфейс с помощью командлета New-AzNetworkInterface.
- Создайте конфигурацию виртуальной машины, используя командлет New-AzVMConfig.
- Создайте виртуальные машины с помощью New-AzVM.
Примечание.
При запуске следующего примера кода для создания виртуальных машин Azure запрашивает учетные данные. Введите имя пользователя и пароль. Создание виртуальных машин занимает несколько минут.
$appgw = Get-AzApplicationGateway -ResourceGroupName myResourceGroupAG -Name myipv6AppGW
$backendPool = Get-AzApplicationGatewayBackendAddressPool -Name myAGBackendPool -ApplicationGateway $appgw
$vnet = Get-AzVirtualNetwork -ResourceGroupName myResourceGroupAG -Name myVNet
$subnet = Get-AzVirtualNetworkSubnetConfig -VirtualNetwork $vnet -Name myBackendSubnet
$cred = Get-Credential
for ($i=1; $i -le 2; $i++)
{
$nic = New-AzNetworkInterface `
-Name myNic$i `
-ResourceGroupName myResourceGroupAG `
-Location EastUS `
-Subnet $subnet `
-ApplicationGatewayBackendAddressPool $backendpool
$vm = New-AzVMConfig `
-VMName myVM$i `
-VMSize Standard_DS2_v2
Set-AzVMOperatingSystem `
-VM $vm `
-Windows `
-ComputerName myVM$i `
-Credential $cred
Set-AzVMSourceImage `
-VM $vm `
-PublisherName MicrosoftWindowsServer `
-Offer WindowsServer `
-Skus 2016-Datacenter `
-Version latest
Add-AzVMNetworkInterface `
-VM $vm `
-Id $nic.Id
Set-AzVMBootDiagnostic `
-VM $vm `
-Disable
New-AzVM -ResourceGroupName myResourceGroupAG -Location EastUS -VM $vm
Set-AzVMExtension `
-ResourceGroupName myResourceGroupAG `
-ExtensionName IIS `
-VMName myVM$i `
-Publisher Microsoft.Compute `
-ExtensionType CustomScriptExtension `
-TypeHandlerVersion 1.4 `
-SettingString '{"commandToExecute":"powershell Add-WindowsFeature Web-Server; powershell Add-Content -Path \"C:\\inetpub\\wwwroot\\Default.htm\" -Value $($env:computername)"}' `
-Location EastUS
}
Найдите общедоступный IP-адрес шлюза приложений
Get-AzPublicIPAddress -ResourceGroupName myResourceGroupAG -Name myAGPublicIPAddress6
Назначение DNS-имени интерфейсным IPv6-адресу
DNS-имя упрощает тестирование шлюза приложений IPv6. Вы можете назначить общедоступное DNS-имя с помощью собственного домена и регистратора или создать имя в azure.com.
Используйте следующие команды, чтобы задать имя на platforme azure.com. Имя устанавливается в метку, которую вы указываете, вместе с регионом и cloudapp.azure.com. В этом примере запись AAAA myipv6appgw создается в пространстве имен eastus.cloudapp.azure.com:
$publicIp = Get-AzPublicIpAddress -Name myAGPublicIPAddress6 -ResourceGroupName myResourceGroupAG
$publicIp.DnsSettings = @{"DomainNameLabel" = "myipv6appgw"}
Set-AzPublicIpAddress -PublicIpAddress $publicIp
Тестирование шлюза приложений
Ранее мы назначили DNS-имя myipv6appgw.eastus.cloudapp.azure.com общедоступному IPv6-адресу шлюза приложений. Чтобы проверить это подключение, выполните указанные ниже действия.
- Используя командлет Invoke-WebRequest, отправьте запрос на интерфейс IPv6.
- Проверьте ответ. Допустимый ответ myVM1 или myVM2 подтверждает, что шлюз приложений успешно создан и может подключиться к серверной инфраструктуре. При выполнении команды несколько раз, шлюз балансирует нагрузку и отвечает на последующие запросы с другого сервера.
PS C:\> (Invoke-WebRequest -Uri myipv6appgw.eastus.cloudapp.azure.com).Content
myVM2
Внимание
Если подключение к DNS-имени или IPv6-адресу завершается ошибкой, это может быть связано с тем, что вы не можете просматривать IPv6-адреса с устройства. Чтобы проверить, является ли проблема вашей проблемой, также проверьте адрес IPv4 шлюза приложений. Если IPv4-адрес успешно подключается, скорее всего, у вас нет общедоступного IPv6-адреса, назначенного устройству. В этом случае можно попробовать проверить подключение с помощью виртуальной машины с двумя стеками.
Очистка ресурсов
Если группа ресурсов, шлюз приложения и все связанные с ними ресурсы больше не требуются, удалите их с помощью командлета Remove-AzResourceGroup.
Remove-AzResourceGroup -Name myResourceGroupAG