INTEGRITY Документация

Виртуальные сети

Доступность функций

Режимы клиента планы Zero Trust
  • Режим трафика и DNS
  • Режим только трафика
Все тарифы
Система Доступность
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, см. в Виртуальные сети.

Сценарии использования

Вот несколько сценариев, в которых виртуальные сети могут быть полезны:

Предварительные требования

Создать виртуальную сеть

В этом примере термин «частная сеть» обозначает отдельную среду (например, staging или production) с собственным пространством IP-адресов, которое может пересекаться с другими (10.128.0.1/32 промежуточную среду и 10.128.0.1/32 продакшена). Если в ваших средах используются непересекающиеся IP-адреса, отдельный туннель для каждой из них не требуется: вместо этого можно добавить несколько маршрутов в один туннель.

Чтобы направить перекрывающиеся IP-адреса через виртуальные сети:

  1. Создайте две уникальные виртуальные сети:
    1. В панели управления Cloudflare перейдите в Сеть > Маршруты > Виртуальные сети.

      Перейдите в Виртуальные сети ↗
    2. Выберите Создать виртуальную сеть.

    3. Назовите виртуальную сеть staging-vnet и выберите Save.

    4. Повторите шаги 1a-1d, чтобы создать еще одну виртуальную сеть с именем production-vnet.

  2. Создайте Cloudflare Tunnel для каждой частной сети с пересекающимися IP-адресами (один туннель на изолированную среду, например для staging и production):
    1. Перейдите в Сеть > Tunnels.

    2. Выберите Создать туннель.

    3. Назовите туннель Staging tunnel и выберите Создание.

    4. Установите коннектор в тестовой среде.

    5. Перейдите в Сеть > Маршруты.

      Перейдите в Маршруты ↗
    6. Выберите Создать маршрут > Tunnel CIDR.

    7. Выберите Staging tunnel, введите 10.128.0.1/32 в качестве сети и выберите staging-vnet в качестве виртуальной сети. Выберите Создать маршрут.

    8. Повторите шаги 2a-2d, чтобы создать еще один туннель с именем Production tunnel. Обязательно устанавливайте коннектор в рабочей среде.

    9. Повторите шаги 2e-2g, чтобы создать маршрут для Production tunnel с 10.128.0.1/32 назначенный production-vnet.

Теперь у нас есть два перекрывающихся IP-адреса, маршрутизируемых через staging-vnet и production-vnet соответственно. Вы можете использовать Cloudflare One Client, чтобы переключаться между виртуальными сетями.

Чтобы направить перекрывающиеся IP-адреса через виртуальные сети:

  1. Добавьте следующее разрешение в свой cloudflare_api_token:

    • Cloudflare Tunnel Write
  2. Создайте две уникальные виртуальные сети:

    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
    }
  3. Создайте 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"
    }
  4. Направьте 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
    }
  5. Получение токена для каждого туннеля.

  6. С помощью токенов туннеля выполните Staging tunnel в вашем тестовом окружении и выполните Production tunnel в вашем производственном окружении. Обратитесь к Установите и запустите туннель.

Чтобы направить перекрывающиеся IP-адреса через виртуальные сети для туннели с локальным управлением:

  1. Создайте Cloudflare Tunnel для каждой частной сети с пересекающимися IP-адресами (один туннель на изолированную среду, например для staging и production):

    1. В тестовой среде выполните аутентификацию cloudflared:

      cloudflared login
    2. Создайте туннель для подключения вашей staging-сети к Cloudflare.

      cloudflared tunnel create staging-tunnel
    3. В рабочей среде выполните аутентификацию cloudflared:

      cloudflared login
    4. Создайте туннель для подключения вашей производственной сети к Cloudflare.

      cloudflared tunnel create production-tunnel

Следующие шаги можно выполнить с любого cloudflared инстанс.

  1. Создайте две уникальные виртуальные сети.

    cloudflared tunnel vnet add staging-vnet
    cloudflared tunnel vnet add production-vnet
  2. Прежде чем продолжить, выполните следующую команду, чтобы убедиться, что созданные вами виртуальные сети отображаются корректно:

    cloudflared tunnel vnet list
  1. Настройте свои туннели, указав диапазон 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
  2. Убедитесь, что IP-маршруты указаны правильно:

    cloudflared tunnel route ip list

    Теперь у нас есть два перекрывающихся IP-адреса, маршрутизируемых через staging-vnet и production-vnet соответственно.

    1. В тестовой среде создайте файл конфигурации для staging-tunnel. Файл конфигурации будет иметь следующую структуру:

      tunnel: <Tunnel-UUID>
      credentials-file: /root/.cloudflared/credentials-file.json
      warp-routing:
         enabled: true
    2. Запустите туннель.

      cloudflared tunnel run staging-tunnel
    3. В рабочей среде повторите шаги 6 и 7 для production-tunnel.

    Теперь можно использовать Cloudflare One Client, чтобы переключаться между виртуальными сетями.

Удалите виртуальную сеть

Чтобы удалить виртуальную сеть:

  1. В панели управления Cloudflare перейдите в Сеть > Маршруты.

    Перейдите в Маршруты ↗
  2. На Маршруты вкладке убедитесь, что виртуальной сети, которую вы пытаетесь удалить, не назначены маршруты. Если виртуальная сеть используется, сначала удалите эти маршруты или переназначьте их другой виртуальной сети.

  3. Перейдите в Виртуальные сети вкладку и найдите вашу виртуальную сеть.

  4. Выберите меню с тремя точками и выберите Удалить.

При желании можно удалить туннель, связанный с вашей виртуальной сетью.

Чтобы удалить виртуальную сеть для туннели с локальным управлением:

  1. Удалите все IP-маршруты в виртуальной сети. Например,

    cloudflared tunnel route ip delete --vnet staging-vnet 10.128.0.3/32
  2. (Необязательно) Удалите туннель, связанный с виртуальной сетью.

    cloudflared tunnel delete staging-tunnel
  3. Удалите виртуальную сеть.

    cloudflared tunnel vnet delete staging-vnet

Убедиться, что виртуальная сеть успешно удалена, можно, введя cloudflared tunnel vnet list.

Подключение к виртуальной сети

Windows, macOS и Linux

  1. Откройте Cloudflare One Client.
  2. Перейдите в Главная.
  3. В VNET раскрывающемся списке выберите виртуальную сеть, к которой нужно подключиться (например, staging-vnet).
  1. Откройте Cloudflare One Client.
  2. Перейдите в Настройки > Режим Traffic and DNS > Виртуальные сети.
  3. Выберите виртуальную сеть, к которой нужно подключиться, например staging-vnet.

Когда вы посещаете 10.128.0.3/32, Cloudflare One Client направит ваш запрос в тестовую среду.

iOS, Android и ChromeOS

  1. Запустите приложение Cloudflare One Agent.
  2. Перейдите в Продвинутый уровень > Варианты подключения > Виртуальные сети.
  3. Выберите виртуальную сеть, к которой нужно подключиться, например staging-vnet.

Когда вы посещаете 10.128.0.3/32, Cloudflare One Client направит ваш запрос в тестовую среду.