Виртуальные сети и подсети
Проектируйте виртуальную сеть Azure (VNet) с подсетями, изучите адресацию CIDR и изолируйте рабочие нагрузки с помощью сетевых границ.
«Виртуальные сети и подсети» — бесплатный урок Azure Fundamentals на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Azure Fundamentals, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Azure Fundamentals содержит 4 уроков всего.
Что такое виртуальная сеть Azure
Виртуальная сеть Azure (VNet) — это логически изолированная сеть в облаке Azure, которую Вы определяете и контролируете. Она является фундаментальным компонентом сетевой инфраструктуры Azure и позволяет ресурсам Azure, таким как виртуальные машины, базы данных и службы приложений, безопасно взаимодействовать друг с другом, с интернетом и локальными сетями. VNet относится к одному региону Azure и определённому Вами адресному пространству IPv4 (и, при необходимости, IPv6), которое задаётся при её создании.
# Create a VNet with address space 10.0.0.0/16
az network vnet create \
--resource-group myRG \
--name myVNet \
--address-prefix 10.0.0.0/16 \
--location eastusАдресное пространство VNet и нотация CIDR
При создании VNet Вы назначаете адресное пространство с использованием нотации CIDR. Нотация CIDR (бесклассовая маршрутизация между доменами) указывает сетевой адрес и количество битов, используемых для сетевого префикса. Например, 10.0.0.0/16 предоставляет 65 536 IP-адресов (от 10.0.0.0 до 10.0.255.255). Адресное пространство должно относиться к частному диапазону IP-адресов (10.0.0.0/8, 172.16.0.0/12 или 192.168.0.0/16 согласно RFC 1918). Выбирайте адресное пространство, достаточно большое для всех запланированных подсетей и дальнейшего расширения, но избегайте пересечения с локальными сетями, если планируете гибридное подключение.
Что такое подсети
Подсеть разделяет адресное пространство VNet на небольшие сетевые сегменты. У каждой подсети есть собственный диапазон IP-адресов (часть адресного пространства VNet), и она может содержать ресурсы разных типов. Подсети выполняют две задачи: организацию (группировку связанных ресурсов) и изоляцию (применение разных правил безопасности к разным группам ресурсов). Например, у Вас могут быть подсеть веб-уровня (10.0.1.0/24) для веб-серверов, подсеть уровня приложений (10.0.2.0/24) для серверов приложений и подсеть уровня данных (10.0.3.0/24) для баз данных.
# Create a web-tier subnet within the VNet
az network vnet subnet create \
--resource-group myRG \
--vnet-name myVNet \
--name web-tier \
--address-prefix 10.0.1.0/24Зарезервированные IP-адреса Azure
В каждой подсети Azure резервирует первые четыре IP-адреса и последний IP-адрес для собственных нужд. Для подсети 10.0.1.0/24 это: 10.0.1.0 (сетевой адрес), 10.0.1.1 (шлюз по умолчанию), 10.0.1.2 и 10.0.1.3 (зарезервированы для Azure DNS), а также 10.0.1.255 (широковещательный адрес). В подсети /24 остаётся 251 доступный IP-адрес. Учитывайте это резервирование при выборе размера подсетей: в подсети /28 доступен только 11 адресов (16 минус 5 зарезервированных).
Взаимодействие ресурсов друг с другом
По умолчанию ресурсы в пределах одной VNet могут взаимодействовать друг с другом по своим частным IP-адресам, даже если они находятся в разных подсетях. Для взаимодействия внутри VNet дополнительная настройка не требуется. Ресурсы в разных VNet по умолчанию взаимодействовать не могут — их необходимо явно соединить с помощью пирингового подключения VNet. Ресурсы в одной подсети используют один и тот же сетевой сегмент, поэтому взаимодействие между ними происходит по самому прямому из возможных путей на уровне программно определяемой сети Azure.
Взаимодействие с интернетом
Виртуальные машины в VNet по умолчанию могут инициировать исходящие подключения к интернету — Azure автоматически предоставляет исходящий доступ в интернет через управляемую службу NAT. Для входящего доступа из интернета ресурсу требуется общедоступный IP-адрес, назначенный его сетевому интерфейсу или подсистеме балансировки нагрузки. Затем входящий доступ контролируется с помощью правил группы безопасности сети (NSG), в которых точно указываются разрешённые порты и протоколы. В распространённой архитектуре веб-серверы размещают в общедоступной подсети с общедоступными IP-адресами, а серверы приложений — в частной подсети, доступной только из веб-уровня.
# Assign a public IP to a VM's network interface
az network public-ip create \
--resource-group myRG \
--name myPublicIP \
--sku Standard
az network nic ip-config update \
--resource-group myRG \
--nic-name myVMNic \
--name ipconfig1 \
--public-ip-address myPublicIPТаблицы маршрутизации и настраиваемая маршрутизация
По умолчанию Azure автоматически управляет маршрутизацией: трафик между подсетями остаётся внутри VNet, исходящий интернет-трафик преобразуется с помощью NAT, а трафик к службам Azure использует магистральную сеть Azure. Это поведение можно изменить с помощью определяемых пользователем маршрутов (UDR) в таблице маршрутизации. Распространённый вариант применения — направить весь исходящий интернет-трафик через сетевое виртуальное устройство (NVA) или Azure Firewall в центральной VNet для централизованной проверки. Для этого создайте таблицу маршрутизации, добавьте записи маршрутов и свяжите таблицу с одной или несколькими подсетями.
# Force all internet traffic through Azure Firewall
az network route-table create \
--resource-group myRG \
--name myRouteTable
az network route-table route create \
--resource-group myRG \
--route-table-name myRouteTable \
--name defaultRoute \
--address-prefix 0.0.0.0/0 \
--next-hop-type VirtualAppliance \
--next-hop-ip-address 10.0.0.4Делегированные подсети для служб Azure
Некоторые службы Azure — например, Служба приложений Azure (интеграция VNet), Служба Azure Kubernetes, Управляемый экземпляр Azure SQL и Azure Databricks — требуют выделенной подсети, делегированной этой службе. Делегированная подсеть означает, что Azure может от имени пользователя добавлять в неё ресурсы, специфичные для службы (сетевые интерфейсы, внутренние IP-адреса). Развёртывать другие типы ресурсов в делегированной подсети нельзя — она полностью зарезервирована для этой службы Azure. При планировании использования служб, которым требуется делегирование, всегда выделяйте отдельную подсеть с достаточным пространством IP-адресов.
Рекомендации по проектированию VNet
Основные рекомендации по проектированию VNet: планируйте адресное пространство до создания VNet — изменить его без повторного создания ресурсов нельзя. Используйте отдельные подсети для каждого уровня приложения, чтобы применять разные политики безопасности. Избегайте пересечения адресных пространств с локальными сетями, если планируете подключение через VPN или ExpressRoute. Резервируйте подсети большего размера для служб, которым требуется масштабирование (например, пулов узлов AKS). Давайте ресурсам понятные имена (например, vnet-prod-eastus-001), чтобы упростить управление в больших масштабах. Хорошо спроектированный VNet намного проще защищать и устранять в нём неполадки, чем сеть, созданную бессистемно.
Подключение локальных сетей к VNet
VNet Azure можно подключить к локальным сетям двумя способами: шлюз VPN — зашифрованный туннель IPsec/IKE через общедоступный интернет; экономичный вариант для умеренной пропускной способности. Azure ExpressRoute — частное выделенное оптоволоконное подключение через партнёра — поставщика сетевых услуг; оно обеспечивает более высокую пропускную способность, меньшую задержку и более предсказуемую производительность по сравнению с VPN. Для конфиденциальных рабочих нагрузок или сценариев, где требуется гарантированная пропускная способность, предпочтителен ExpressRoute, хотя он значительно дороже и требует больше времени на подготовку.
Рекомендации по определению размера VNet
Определение размера адресного пространства VNet требует планирования с учётом текущих и будущих потребностей. Распространённый шаблон для корпоративных сред: адресное пространство VNet: /16 (65 536 адресов). Подсети: /24 для каждого уровня рабочей нагрузки (по 251 доступному адресу). VNet с префиксом /16 может содержать 256 подсетей /24 — этого более чем достаточно для большинства сред. Для очень больших сред используйте /8 или запросите несколько непересекающихся диапазонов. Всегда оставляйте запас для роста: если сегодня выделить /24, а в следующем году понадобится /22, позднее это приведёт к трудоёмкому перераспределению адресов.
Быстрая проверка
Проверьте своё понимание концепций Microsoft Azure Fundamentals (AZ-900), рассмотренных в этом уроке.
Итоги урока
В этом уроке Вы узнали, что VNet Azure — это логически изолированная сеть с заданным адресным пространством CIDR, относящаяся к одному региону, подсети делят VNet на сегменты для организации и изоляции политик безопасности, а Azure резервирует 5 IP-адресов в каждой подсети, и ресурсы в одном VNet по умолчанию взаимодействуют по частной сети без дополнительной настройки. Далее мы рассмотрим группы безопасности сети и группы безопасности приложений для фильтрации трафика.
Часто задаваемые вопросы
Урок «Виртуальные сети и подсети» бесплатный?
Да — полный текст урока «Виртуальные сети и подсети» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Azure Fundamentals, подпишись на CoddyKit PRO. Курс Azure Fundamentals содержит 4 уроков всего.
Чему я научусь в уроке «Виртуальные сети и подсети»?
Проектируйте виртуальную сеть Azure (VNet) с подсетями, изучите адресацию CIDR и изолируйте рабочие нагрузки с помощью сетевых границ. Ты практикуешь Azure Fundamentals с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Azure Fundamentals?
Предыдущий опыт не требуется. Azure Fundamentals на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.
Сколько времени занимает урок «Виртуальные сети и подсети»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Azure Fundamentals?
Да. Каждый урок Azure Fundamentals включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Виртуальные сети и подсети
- Группы сетевой безопасности и группы безопасности приложений
- Пиринг виртуальных сетей и конечные точки служб
- Основы Azure DNS и балансировщика нагрузки