Настройка принудительного туннелирования с помощью классической модели развертывания
Оно позволяет перенаправлять или "принудительно направлять" весь Интернет-трафик обратно в локальное расположение через VPN типа "сеть — сеть" для проверки и аудита. Это критически важное требование безопасности, имеющееся в большинстве корпоративных ИТ-политик. Без принудительного туннелирования Интернет-трафик из виртуальных машин в Azure будет всегда поступать из инфраструктуры сети Azure непосредственно в Интернет, без возможности его проверки или аудита. Неавторизованный доступ в Интернет может привести к раскрытию информации или другим нарушениям безопасности.
Действия, описанные в этой статье, применяются к классической (устаревшей) модели развертывания и не применяются к текущей модели развертывания Resource Manager. Если вы не хотите работать в классической модели развертывания, рекомендуется использовать версию Resource Manager этой статьи.
Примечание.
Эта статья написана для классической (устаревшей) модели развертывания. Вместо этого рекомендуется использовать последнюю модель развертывания Azure. Модель развертывания Resource Manager — это последняя модель развертывания, которая предоставляет дополнительные возможности и совместимость функций, чем классическая модель развертывания. Чтобы понять разницу между этими двумя моделями развертывания, ознакомьтесь с разделом "Общие сведения о моделях развертывания" и состоянии ресурсов.
Если вы хотите использовать другую версию этой статьи, используйте оглавление в левой области.
Требования и рекомендации
В Azure принудительное туннелирование настраивается с помощью определяемых пользователем маршрутов виртуальной сети (UDR). Перенаправление трафика на локальный сайт выполняется с помощью маршрута по умолчанию к VPN-шлюзу Azure. В разделе ниже перечислены текущие ограничения таблицы маршрутизации и маршрутов для виртуальной сети Azure.
Каждая подсеть виртуальной сети имеет встроенные системные таблицы маршрутизации. Системная таблица маршрутизации содержит три указанные ниже группы маршрутов.
- Маршруты локальной виртуальной сети. Они ведут непосредственно к виртуальным машинам назначения в той же виртуальной сети.
- Локальные маршруты. Ведут к VPN-шлюзу Azure.
- Маршрут по умолчанию. Ведет напрямую в Интернет. Пакеты, предназначенные для частных IP-адресов, не входящих в предыдущие два маршрута, будут удалены.
Задав пользовательские маршруты, вы сможете создать таблицу маршрутизации для добавления маршрута по умолчанию, а затем сопоставить таблицу маршрутизации с подсетями вашей виртуальной сети для включения принудительного туннелирования в этих подсетях.
Из числа локальных межорганизационных сайтов, подключенных к виртуальной сети, необходимо выбрать "сайт по умолчанию".
Принудительное туннелирование должно быть сопоставлено с виртуальной сетью, в которой есть VPN-шлюз с динамической маршрутизацией (а не статический шлюз).
Принудительное туннелирование ExpressRoute не настроено с помощью этого механизма, но вместо этого включается путем рекламы маршрута по умолчанию через сеансы пиринга ExpressRoute BGP. Дополнительные сведения см. в разделе "Что такое ExpressRoute"?
Общие сведения о настройке
В следующем примере подсеть Frontend не принудительно туннелирована. Рабочие нагрузки в интерфейсной подсети могут продолжать принимать запросы клиентов непосредственно из Интернета и отвечать на них. Для подсетей среднего уровня и внутренних подсетей применяется принудительное туннелирование. Все исходящие подключения из этих двух подсетей к Интернету принудительно или перенаправляются обратно на локальный сайт через один из vpn-туннелей S2S.
Это позволяет ограничивать и проверять доступ в Интернет с виртуальных машин или облачных служб в Azure, при этом поддерживая необходимую многоуровневую архитектуру служб. Кроме того, вы можете применять принудительное туннелирование для всех виртуальных сетей, если в них нет рабочих нагрузок, требующих взаимодействия с Интернетом.
Необходимые компоненты
Перед началом настройки убедитесь, что у вас есть следующее:
- Подписка Azure. Если у вас нет подписки Azure, вы можете активировать преимущества для подписчиков MSDN или зарегистрировать бесплатную учетную запись.
- Настроенная виртуальная сеть.
- При работе с классической моделью развертывания нельзя использовать Azure Cloud Shell. Вместо этого нужно установить локально на компьютере последнюю версию командлетов PowerShell из набора программных интерфейсов по управлению службами Azure. Эти командлеты отличаются от командлетов AzureRM или Az. Сведения об установке командлетов из набора программных интерфейсов по управлению службами см. в статье Установка командлетов из набора программных интерфейсов по управлению службами. Дополнительные сведения общего характера об Azure PowerShell см. в документации по Azure PowerShell.
Настройка принудительного туннелирования
Следующая процедура помогает указать принудительное туннелирование для виртуальной сети. Рекомендации по настройке относятся к файлу конфигурации виртуальной сети. В этом примере виртуальная сеть MultiTier-VNet имеет три подсети: Frontend, Midtier и Внутренние подсети с четырьмя локальными подключениями: DefaultSiteHQ и тремя ветвями.
<VirtualNetworkSite name="MultiTier-VNet" Location="North Europe">
<AddressSpace>
<AddressPrefix>10.1.0.0/16</AddressPrefix>
</AddressSpace>
<Subnets>
<Subnet name="Frontend">
<AddressPrefix>10.1.0.0/24</AddressPrefix>
</Subnet>
<Subnet name="Midtier">
<AddressPrefix>10.1.1.0/24</AddressPrefix>
</Subnet>
<Subnet name="Backend">
<AddressPrefix>10.1.2.0/23</AddressPrefix>
</Subnet>
<Subnet name="GatewaySubnet">
<AddressPrefix>10.1.200.0/28</AddressPrefix>
</Subnet>
</Subnets>
<Gateway>
<ConnectionsToLocalNetwork>
<LocalNetworkSiteRef name="DefaultSiteHQ">
<Connection type="IPsec" />
</LocalNetworkSiteRef>
<LocalNetworkSiteRef name="Branch1">
<Connection type="IPsec" />
</LocalNetworkSiteRef>
<LocalNetworkSiteRef name="Branch2">
<Connection type="IPsec" />
</LocalNetworkSiteRef>
<LocalNetworkSiteRef name="Branch3">
<Connection type="IPsec" />
</LocalNetworkSiteRef>
</Gateway>
</VirtualNetworkSite>
</VirtualNetworkSite>
Следующие шаги задают значение DefaultSiteHQ в качестве подключения сайта по умолчанию для принудительного туннелирования и настраивают подсети Midtier и Backend для использования принудительного туннелирования.
Откройте консоль PowerShell с повышенными правами. Подключитесь к своей учетной записи, используя следующий пример:
Add-AzureAccount
Создайте таблицу маршрутизации. Для этого воспользуйтесь указанным ниже командлетом.
New-AzureRouteTable –Name "MyRouteTable" –Label "Routing Table for Forced Tunneling" –Location "North Europe"
Добавьте маршрут по умолчанию в таблицу маршрутизации.
В примере ниже показано, как добавить маршрут по умолчанию в таблицу маршрутизации, созданную в действии 1. Единственным поддерживаемым маршрутом является префикс назначения "0.0.0.0/0" в "VPNGateway" NextHop.
Get-AzureRouteTable -Name "MyRouteTable" | Set-AzureRoute –RouteTable "MyRouteTable" –RouteName "DefaultRoute" –AddressPrefix "0.0.0.0/0" –NextHopType VPNGateway
Сопоставьте таблицу маршрутизации с подсетями.
После создания таблицы маршрутизации и добавления маршрута с помощью примера ниже добавьте таблицу маршрутизации в подсеть виртуальной сети или сопоставьте таблицу с этой подсетью. В примере ниже показано, как добавить таблицу маршрутизации MyRouteTable в подсети Midtier и Backend виртуальной сети MultiTier-VNet.
Set-AzureSubnetRouteTable -VirtualNetworkName "MultiTier-VNet" -SubnetName "Midtier" -RouteTableName "MyRouteTable" Set-AzureSubnetRouteTable -VirtualNetworkName "MultiTier-VNet" -SubnetName "Backend" -RouteTableName "MyRouteTable"
Назначьте сайт по умолчанию для принудительного туннелирования.
В предыдущем действии с помощью сценариев с командлетами была создана таблица маршрутизации, которая затем была сопоставлена с двумя подсетями виртуальной сети. В последнем действии среди подключений к нескольким сайтам в виртуальной сети необходимо выбрать локальный сайт, который будет сайтом по умолчанию или туннелем.
$DefaultSite = @("DefaultSiteHQ") Set-AzureVNetGatewayDefaultSite –VNetName "MultiTier-VNet" –DefaultSite "DefaultSiteHQ"
Дополнительные командлеты PowerShell
Удаление таблицы маршрутизации
Remove-AzureRouteTable -Name <routeTableName>
Отображение таблицы маршрутизации
Get-AzureRouteTable [-Name <routeTableName> [-DetailLevel <detailLevel>]]
Удаление маршрута из таблицы маршрутизации
Remove-AzureRouteTable –Name <routeTableName>
Удаление маршрута из подсети
Remove-AzureSubnetRouteTable –VirtualNetworkName <virtualNetworkName> -SubnetName <subnetName>
Отображение таблицы маршрутизации, сопоставленной с подсетью
Get-AzureSubnetRouteTable -VirtualNetworkName <virtualNetworkName> -SubnetName <subnetName>
Удаление сайта по умолчанию из VPN-шлюза виртуальной сети
Remove-AzureVnetGatewayDefaultSite -VNetName <virtualNetworkName>