← Cloudflare One / cloudflare-one / networks / connectors / cloudflare-tunnel / private-net / cloudflared
Виртуальные сети
Доступность функций
| Режимы клиента | планы Zero Trust ↗ |
|---|---|
|
Все тарифы |
| Система | Доступность |
|---|---|
| Windows | ✅ |
| macOS | ✅ |
| Linux | ✅ |
| iOS | ✅ |
| Android | ✅ |
| ChromeOS | ✅ |
Виртуальные сети обеспечивают изоляцию маршрутизации в пределах вашего аккаунта Cloudflare. Каждая виртуальная сеть использует собственную таблицу маршрутизации, что позволяет разделять трафик между различными средами, партнёрами или приложениями.
Например, в организации могут быть отдельные VPC-сети «production» и «staging», использующие один и тот же диапазон частных IP-адресов (например, 10.128.0.0/24). Без виртуальных сетей Cloudflare не может различить 10.128.0.1 в рабочей среде и 10.128.0.1 в тестовой среде. Создав две виртуальные сети, вы сможете детерминированно направлять трафик в нужную среду. Пользователи сами выбирают, к какой виртуальной сети подключиться, в Cloudflare One Client.
Концептуальный обзор виртуальных сетей, включая их работу в разных продуктах Cloudflare, см. в Виртуальные сети.
Сценарии использования
Вот несколько сценариев, в которых виртуальные сети могут быть полезны:
- Управляйте производственными и тестовыми окружениями, использующими одно и то же адресное пространство.
- Управляйте приобретениями или слияниями между организациями, использующими одно и то же адресное пространство.
- Позволяет поставщикам профессиональных ИТ-услуг получать доступ к сети клиента для различных задач администрирования и управления.
- Позволяет разработчикам или пользователям homelab детерминированно направлять трафик через домашнюю сеть для применения дополнительных мер безопасности.
- Обеспечьте дополнительную сегментацию (помимо простого применения политик) между сетями и ресурсами в целях безопасности, сохранив всю конфигурацию в рамках одного аккаунта Cloudflare.
Предварительные требования
- Установка
cloudflaredв каждой частной сети. - Разверните Cloudflare One Client на устройствах пользователей.
Создать виртуальную сеть
В этом примере термин «частная сеть» обозначает отдельную среду (например, staging или production) с собственным пространством IP-адресов, которое может пересекаться с другими (10.128.0.1/32 промежуточную среду и 10.128.0.1/32 продакшена). Если в ваших средах используются непересекающиеся IP-адреса, отдельный туннель для каждой из них не требуется: вместо этого можно добавить несколько маршрутов в один туннель.
Чтобы направить перекрывающиеся IP-адреса через виртуальные сети:
- Создайте две уникальные виртуальные сети:
-
В панели управления Cloudflare перейдите в Сеть > Маршруты > Виртуальные сети.
Перейдите в Виртуальные сети ↗ -
Выберите Создать виртуальную сеть.
-
Назовите виртуальную сеть
staging-vnetи выберите Save. -
Повторите шаги 1a-1d, чтобы создать еще одну виртуальную сеть с именем
production-vnet.
-
- Создайте Cloudflare Tunnel для каждой частной сети с пересекающимися IP-адресами (один туннель на изолированную среду, например для staging и production):
-
Перейдите в Сеть > Tunnels.
-
Выберите Создать туннель.
-
Назовите туннель
Staging tunnelи выберите Создание. -
Установите коннектор в тестовой среде.
-
Перейдите в Сеть > Маршруты.
Перейдите в Маршруты ↗ -
Выберите Создать маршрут > Tunnel CIDR.
-
Выберите
Staging tunnel, введите10.128.0.1/32в качестве сети и выберите staging-vnet в качестве виртуальной сети. Выберите Создать маршрут. -
Повторите шаги 2a-2d, чтобы создать еще один туннель с именем
Production tunnel. Обязательно устанавливайте коннектор в рабочей среде. -
Повторите шаги 2e-2g, чтобы создать маршрут для
Production tunnelс10.128.0.1/32назначенный production-vnet.
-
Теперь у нас есть два перекрывающихся IP-адреса, маршрутизируемых через staging-vnet и production-vnet соответственно. Вы можете использовать Cloudflare One Client, чтобы переключаться между виртуальными сетями.
Чтобы направить перекрывающиеся IP-адреса через виртуальные сети:
-
Добавьте следующее разрешение в свой
cloudflare_api_token↗:Cloudflare Tunnel Write
-
Создайте две уникальные виртуальные сети:
resource "cloudflare_zero_trust_tunnel_cloudflared_virtual_network" "staging_vnet" { account_id = var.cloudflare_account_id name = "staging-vnet" comment = "Staging virtual network" is_default = false } resource "cloudflare_zero_trust_tunnel_cloudflared_virtual_network" "production_vnet" { account_id = var.cloudflare_account_id name = "production-vnet" comment = "Production virtual network" is_default = false } -
Создайте Cloudflare Tunnel для каждой частной сети с пересекающимися IP-адресами (один туннель на изолированную среду, например для staging и production):
resource "cloudflare_zero_trust_tunnel_cloudflared" "staging_tunnel" { account_id = var.cloudflare_account_id name = "Staging tunnel" config_src = "cloudflare" } resource "cloudflare_zero_trust_tunnel_cloudflared" "production_tunnel" { account_id = var.cloudflare_account_id name = "Production tunnel" config_src = "cloudflare" } -
Направьте
10.128.0.1/32черезStaging tunnelи назначьте его дляstaging-vnet. Направьте10.128.0.1/32черезProduction tunnelи назначьте его дляproduction-vnet.resource "cloudflare_zero_trust_tunnel_cloudflared_route" "staging_tunnel_route" { account_id = var.cloudflare_account_id tunnel_id = cloudflare_zero_trust_tunnel_cloudflared.staging_tunnel.id network = "10.128.0.1/32" comment = "Staging tunnel route" virtual_network_id = cloudflare_zero_trust_tunnel_cloudflared_virtual_network.staging_vnet.id } resource "cloudflare_zero_trust_tunnel_cloudflared_route" "production_tunnel_route" { account_id = var.cloudflare_account_id tunnel_id = cloudflare_zero_trust_tunnel_cloudflared.production_tunnel.id network = "10.128.0.1/32" comment = "Production tunnel route" virtual_network_id = cloudflare_zero_trust_tunnel_cloudflared_virtual_network.production_vnet.id } -
Получение токена для каждого туннеля.
-
С помощью токенов туннеля выполните
Staging tunnelв вашем тестовом окружении и выполнитеProduction tunnelв вашем производственном окружении. Обратитесь к Установите и запустите туннель.
Чтобы направить перекрывающиеся IP-адреса через виртуальные сети для туннели с локальным управлением:
-
Создайте Cloudflare Tunnel для каждой частной сети с пересекающимися IP-адресами (один туннель на изолированную среду, например для staging и production):
-
В тестовой среде выполните аутентификацию
cloudflared:cloudflared login -
Создайте туннель для подключения вашей staging-сети к Cloudflare.
cloudflared tunnel create staging-tunnel -
В рабочей среде выполните аутентификацию
cloudflared:cloudflared login -
Создайте туннель для подключения вашей производственной сети к Cloudflare.
cloudflared tunnel create production-tunnel
-
Следующие шаги можно выполнить с любого cloudflared инстанс.
-
Создайте две уникальные виртуальные сети.
cloudflared tunnel vnet add staging-vnet cloudflared tunnel vnet add production-vnet -
Прежде чем продолжить, выполните следующую команду, чтобы убедиться, что созданные вами виртуальные сети отображаются корректно:
cloudflared tunnel vnet list
-
Настройте свои туннели, указав диапазон IP/CIDR своих частных сетей, и назначьте эти туннели соответствующим виртуальным сетям.
cloudflared tunnel route ip add --vnet staging-vnet 10.128.0.3/32 staging-tunnel cloudflared tunnel route ip add --vnet production-vnet 10.128.0.3/32 production-tunnel -
Убедитесь, что IP-маршруты указаны правильно:
cloudflared tunnel route ip listТеперь у нас есть два перекрывающихся IP-адреса, маршрутизируемых через
staging-vnetиproduction-vnetсоответственно.-
В тестовой среде создайте файл конфигурации для
staging-tunnel. Файл конфигурации будет иметь следующую структуру:tunnel: <Tunnel-UUID> credentials-file: /root/.cloudflared/credentials-file.json warp-routing: enabled: true -
Запустите туннель.
cloudflared tunnel run staging-tunnel -
В рабочей среде повторите шаги 6 и 7 для
production-tunnel.
Теперь можно использовать Cloudflare One Client, чтобы переключаться между виртуальными сетями.
-
Удалите виртуальную сеть
Чтобы удалить виртуальную сеть:
-
В панели управления Cloudflare перейдите в Сеть > Маршруты.
Перейдите в Маршруты ↗ -
На Маршруты вкладке убедитесь, что виртуальной сети, которую вы пытаетесь удалить, не назначены маршруты. Если виртуальная сеть используется, сначала удалите эти маршруты или переназначьте их другой виртуальной сети.
-
Перейдите в Виртуальные сети вкладку и найдите вашу виртуальную сеть.
-
Выберите меню с тремя точками и выберите Удалить.
При желании можно удалить туннель, связанный с вашей виртуальной сетью.
Чтобы удалить виртуальную сеть для туннели с локальным управлением:
-
Удалите все IP-маршруты в виртуальной сети. Например,
cloudflared tunnel route ip delete --vnet staging-vnet 10.128.0.3/32 -
(Необязательно) Удалите туннель, связанный с виртуальной сетью.
cloudflared tunnel delete staging-tunnel -
Удалите виртуальную сеть.
cloudflared tunnel vnet delete staging-vnet
Убедиться, что виртуальная сеть успешно удалена, можно, введя cloudflared tunnel vnet list.
Подключение к виртуальной сети
Windows, macOS и Linux
- Откройте Cloudflare One Client.
- Перейдите в Главная.
- В VNET раскрывающемся списке выберите виртуальную сеть, к которой нужно подключиться (например,
staging-vnet).
- Откройте Cloudflare One Client.
- Перейдите в Настройки > Режим Traffic and DNS > Виртуальные сети.
- Выберите виртуальную сеть, к которой нужно подключиться, например
staging-vnet.
Когда вы посещаете 10.128.0.3/32, Cloudflare One Client направит ваш запрос в тестовую среду.
iOS, Android и ChromeOS
- Запустите приложение Cloudflare One Agent.
- Перейдите в Продвинутый уровень > Варианты подключения > Виртуальные сети.
- Выберите виртуальную сеть, к которой нужно подключиться, например
staging-vnet.
Когда вы посещаете 10.128.0.3/32, Cloudflare One Client направит ваш запрос в тестовую среду.