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

IP-адреса устройства

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

Режимы клиента планы Zero Trust
  • Режим трафика и DNS
  • Режим только трафика
Все тарифы
Система Доступность Минимальная версия клиента
Windows 2025.10.186.0
macOS 2025.10.186.0
Linux 2025.10.186.0
iOS
Android
ChromeOS

IP-адрес устройства идентифицирует конкретное устройство в вашей организации Zero Trust и направляет трафик к нему. Когда пользователь регистрирует Cloudflare One Client (ранее WARP), Cloudflare назначает виртуальный адрес IPv4 и IPv6 для регистрация устройства. Cloudflare One Client использует эти IP-адреса для создания виртуальный сетевой интерфейс на устройстве, что позволяет вашей частной сети обращаться к устройству через Cloudflare Mesh или Cloudflare WAN on-ramps.

Можно проверить IP-адреса устройств и при необходимости перенастроить пулы адресов, чтобы избежать пересечения с IP-адресами существующих внутренних ресурсов.

IP-адреса устройств по умолчанию

По умолчанию Cloudflare назначает IP-адреса устройств из следующего адресного пространства:

Если ваша организация уже использует диапазон IPv4 по умолчанию для внутренней сети или вам необходимо более точное распределение IP-адресов для управления политиками межсетевого экрана, можно настроить пользовательские подсети IPv4 для устройств. Разные подсети IPv4 можно назначать устройствам в зависимости от личности пользователя.

Диапазон IPv6 по умолчанию принадлежит Cloudflare, поэтому он не может конфликтовать со службами в вашей частной сети. Диапазон IPv6 для устройства не настраивается.

Создать подсеть IP

Создайте пользовательскую подсеть IP, когда диапазон IPv4 по умолчанию конфликтует со службами в вашей частной сети.

Чтобы задать пользовательскую подсеть IPv4 для IP-адресов устройств:

  1. В Панель управления Cloudflare, перейдите в Zero Trust > Команда и ресурсы > Устройства > Профили устройств.

  2. В разделе Подсети IP-адресов устройства, выберите Добавить новую подсеть IP.

  3. Введите любое имя для подсети.

  4. В CIDR, введите допустимый блок IPv4 CIDR из поддерживаемых приватных диапазонов:

    • 10.0.0.0/8
    • 172.16.0.0/12
    • 192.168.0.0/16
    • 100.64.0.0/10

    Настроенный блок CIDR должен быть не меньше /24.

  5. Выберите Добавить подсеть и сохраните.

Затем, назначить эту подсеть к группе устройств.

Назначить IP-адреса устройств

Назначить пользовательские IP-подсети чтобы гарантировать, что устройствам выделяются адреса в пределах предсказуемого адресного пространства на основе определённых критериев идентификации пользователя.

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

Создать профиль IP

Чтобы назначить IP-подсети вашим устройствам:

  1. В Панель управления Cloudflare, перейдите в Zero Trust > Команда и ресурсы > Устройства > Профили устройств.
  2. В разделе Профили IP-адресов устройства, выберите Добавить новый профиль IP.
  3. Введите имя для этой группы устройств (например, IT department).
  4. Создайте правила, определяющие пользователей или устройства, которые будут получать эти IP-адреса. Подробнее о доступных Селекторы, Операторы, а также Значения.
  5. Выберите существующую подсеть IPv4 в раскрывающемся меню либо создать новую подсеть.
  6. Выберите Назначить IP-адрес.
  7. (Необязательно) В Профили IP-адресов устройства таблице измените порядок приоритета профилей IP.

Устройствам, соответствующим вашим правилам, при регистрации назначается случайный IP-адрес из этого адресного пространства. Новый IP-адрес получат только вновь зарегистрированные устройства; на уже существующие устройства это не повлияет. Чтобы назначить новый IP-адрес уже существующему устройству, необходимо удалить свою регистрацию и затем повторно зарегистрировать устройство в вашей организации Zero Trust.

В настоящее время организации ограниченный до 30 пользовательских профилей IP-адресов устройств на аккаунт.

Селекторы

Вы можете настроить IP-профили для сопоставления со следующими селекторами или критериями. Селекторы на основе идентификации доступны только в том случае, если пользователь зарегистрировал устройство путём входа через поставщика идентификации (IdP).

Email пользователя

Примените профиль устройства на основе адреса электронной почты пользователя.

UI name Пример значения API
Email пользователя identity.email == "[email protected]"

Email-адреса групп пользователей

Примените профиль IP-адреса устройства на основе группа IdP адрес электронной почты, для которого пользователь настроен как участник в IdP.

UI name Пример API
Email-адреса групп пользователей identity.groups.email == "[email protected]"

ID групп пользователей

Примените профиль IP-адреса устройства на основе группа IdP Идентификатор, в котором пользователь настроен как участник в IdP.

UI name Пример API
ID групп пользователей identity.groups.id == "12jf495bhjd7893ml09o"

Названия групп пользователей

Примените профиль IP-адреса устройства на основе группа IdP название которой пользователь настроен как участник в IdP.

UI name Пример API
Названия групп пользователей identity.groups.name == "\"finance\""

Имя пользователя

UI name Пример API
User Name identity.name == "user-name"

атрибуты SAML

Примените профиль IP-адреса устройства на основе имени и значения атрибута из SAML IdP.

UI name Пример API
SAML Attributes identity.saml_attributes == "\"group=finance\""

Операторы сравнения

Операторы сравнения определяют, как IP-профили устройств сопоставляются с селектором.

Оператор Значение
in соответствует хотя бы одному из указанных значений
not in не соответствует ни одному из заданных значений
является равно заданному значению
совпадения регулярное выражение (regex) возвращает true

Значение

В Значение поле можно ввести единственное значение при использовании оператора сравнения на равенство (например, является) или несколько значений при использовании оператора сравнения на вхождение (например, in). Кроме того, вы можете использовать регулярные выражения (или regex), чтобы задать диапазон значений для поддерживаемых селекторов.

Регулярные выражения

Регулярные выражения обрабатываются с использованием Rust. Реализация Rust немного отличается от библиотек regex, используемых в других местах. Дополнительную информацию см. в нашем руководстве по Подстановочные знаки. Чтобы проверить, соответствует ли ваше регулярное выражение, вы можете использовать Rustexp.

Чтобы сопоставить несколько значений, можно использовать символ вертикальной черты (|) в качестве оператора OR. Использовать escape-символ не требуется (\) до символа "|". Например, следующее выражение возвращает true, если домен электронной почты пользователя совпадает с одним из значений: @acme.com или @widgets.com:

Селектор Оператор Значение
Email пользователя совпадения @acme.com|@widgets.com

Помимо регулярных выражений, вы можете использовать логические операторы чтобы соответствовать нескольким значениям.

Логические операторы

Чтобы оценить несколько условий в выражении, выберите логический оператор:

Оператор Значение
И соответствуют всем условиям в выражении
Или соответствуют хотя бы одному из условий в выражении

Порядок приоритета

Cloudflare One Client проверяет IP-профили сверху вниз в том порядке, в котором они указаны в панели управления Cloudflare One (профиль с наименьшим числом приоритета проверяется первым). Клиент следует принципу первого совпадения: как только устройство соответствует IP-профилю, клиент прекращает проверку, и ни один из последующих IP-профилей не может изменить это решение. Вы можете изменить порядок IP-профилей в панели управления Cloudflare One в соответствии с нужным вам порядком приоритета.

Проверить IP-адреса устройств

Через панель управления

Чтобы проверить виртуальные IP-адреса, назначенные конкретной регистрации устройства:

  1. В Панель управления Cloudflare, перейдите в Zero Trust > Команда и ресурсы > Устройства.

  2. Выберите своё устройство > Просмотр сведений.

  3. Прокрутите вниз до Пользователи. Появятся регистрации, связанные с этим устройством, вместе с назначенными им адресами IPv4 и IPv6.

Через CLI

Чтобы проверить IP устройства, используемый виртуальным сетевым интерфейсом клиента на устройстве:

В Windows выполните ipconfig. Когда Cloudflare One Client включен, вы увидите адаптер с именем CloudflareWARP с IP-адресом вашего устройства.

ipconfig
Windows IP Configuration

Unknown adapter CloudflareWARP:

   Connection-specific DNS Suffix  . :
   Description . . . . . . . . . . . : Cloudflare WARP Interface Tunnel
   Physical Address. . . . . . . . . :
   DHCP Enabled. . . . . . . . . . . : No
   Autoconfiguration Enabled . . . . : Yes
   IPv6 Address. . . . . . . . . . . : 2606:4700:110:8f79:145:f180:fc4:8106(Preferred)
   Link-local IPv6 Address . . . . . : fe80::83b:d647:4bed:d388%49(Preferred)
   IPv4 Address. . . . . . . . . . . : 172.16.0.2(Preferred)
   Subnet Mask . . . . . . . . . . . : 255.255.255.255
   Default Gateway . . . . . . . . . :
   DNS Servers . . . . . . . . . . . : 127.0.2.2
                                       127.0.2.3
   NetBIOS over Tcpip. . . . . . . . : Enabled

В macOS выполните ifconfig. Когда Cloudflare One Client включен, вы увидите utun интерфейс с IP-адресом вашего устройства.

ifconfig
<redacted>
utun3: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1280
	inet 172.16.0.2 --> 172.16.0.2 netmask 0xffffffff
	inet6 fe80::f6d4:88ff:fe82:6d9e%utun3 prefixlen 64 scopeid 0x17
	inet6 2606:4700:110:8c7d:7369:7526:a59b:5636 prefixlen 128
	nd6 options=201<PERFORMNUD,DAD>

В Linux выполните ifconfig или ip addr. Когда Cloudflare One Client включен, вы увидите utun интерфейс с IP-адресом вашего устройства.

ip addr
<redacted>
3: CloudflareWARP: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1280 qdisc mq state UNKNOWN group default qlen 500
    link/none
    inet 172.16.0.2/32 scope global CloudflareWARP
       valid_lft forever preferred_lft forever
    inet6 2606:4700:110:8a2e:a5f7:a8de:a1f9:919/128 scope global
       valid_lft forever preferred_lft forever
    inet6 fe80::117e:276b:8a79:c498/64 scope link stable-privacy
       valid_lft forever preferred_lft forever

В примере выше IPv4-адрес устройства 172.16.0.2.

Просмотр использования подсети

Отслеживайте использование ваших подсетей IPv4, чтобы убедиться, что у вас достаточно адресов для регистрации новых устройств. Устройства не смогут зарегистрироваться, если они попадают в подсеть без доступных IP-адресов.

Используйте панель управления Cloudflare One, чтобы получить общий обзор назначенных и доступных IP-адресов:

  1. В Панель управления Cloudflare, перейдите в Zero Trust > Команда и ресурсы > Устройства > Профили устройств.
  2. Найдите Подсети IP-адресов устройства в таблице.
  3. Назначенные IP-адреса столбец отображает общее количество IP-адресов, назначенных активным регистрациям устройств, относительно общей емкости блока CIDR.

Если ваша подсеть приближается к пределу вместимости, можно расширить подсеть чтобы увеличить количество доступных IP-адресов. Также можно освободить IP-адреса за счёт удаление существующих регистраций устройств, особенно отозванные регистрации, которые могут занимать IP-пространство, даже если устройство больше не используется.

Чтобы получить список всех регистраций устройств в подсети (включая отозванные регистрации), используйте Cloudflare API. Например, следующий скрипт получает все регистрации устройств и их IP-адреса, а затем выводит все регистрации, попадающие в указанный блок CIDR.

Пример скрипта для фильтрации регистраций по IP-адресу

  1. Создайте новый файл с именем filter-device-ips.py который содержит следующий код:

    import requests
    import ipaddress
    import json
    
    # --- Configuration ---
    AUTH_EMAIL = "<CLOUDFLARE_ACCOUNT_EMAIL>"
    AUTH_KEY = "<CLOUDFLARE_API_KEY>"  # Refer to https://developers.cloudflare.com/fundamentals/api/get-started/keys/. API token authentication is not currently supported for fetching device IPs.
    ACCOUNT_ID = "<CLOUDLFARE_ACCOUNT_ID"  # Refer to https://developers.cloudflare.com/fundamentals/account/find-account-and-zone-ids/.
    TARGET_CIDR = "100.64.0.0/10"
    
    # --- API request headers ---
    headers = {
    		"X-Auth-Email": AUTH_EMAIL,
    		"X-Auth-Key": AUTH_KEY,
    		"Content-Type": "application/json"
    }
    
    def get_all_registrations():
    		"""Fetches all device registrations including revoked registrations. """
    		devices = {}
    		url = f"https://api.cloudflare.com/client/v4/accounts/{ACCOUNT_ID}/devices/registrations"
    		params = {"per_page": 50, "status": "all"}
    
    		while True:
    				response = requests.get(url, headers=headers, params=params).json()
    				if not response.get('success'):
    						print(f"Error fetching registrations: {response.get('errors')}")
    						break
    
    				for d in response.get('result', []):
    						# We use the ID as the key to link with IP data later
    						devices[d['id']] = d
    
    				cursor = response.get('result_info', {}).get('cursor')
    				if not cursor:
    						break
    				params['cursor'] = cursor
    
    		return devices
    
    def filter_by_cidr(device_map, network):
    		"""Fetch device IPs and return devices that fall within the target CIDR block."""
    		matches = []
    		device_ids = list(device_map.keys())
    
    		# API limits IP correlation to batches of 20
    		for i in range(0, len(device_ids), 20):
    				batch = device_ids[i:i+20]
    				# Construct parameters for the IP endpoint
    				params = {f"device_ids[{idx}]": d_id for idx, d_id in enumerate(batch)}
    				url = f"https://api.cloudflare.com/client/v4/accounts/{ACCOUNT_ID}/teamnet/devices/ips"
    
    				res = requests.get(url, headers=headers, params=params).json()
    
    				if not res.get('success'):
    						print(f"Error fetching IPs: {res.get('errors')}")
    						continue
    
    				for item in res.get('result', []):
    						d_id = item.get('device_id')
    						ip_data = item.get('device_ips', {})
    						ipv4_str = ip_data.get('ipv4')
    
    						if ipv4_str:
    								try:
    										if ipaddress.IPv4Address(ipv4_str) in network:
    												if d_id in device_map:
    														full_data = device_map[d_id]
    														full_data['device_ips'] = ip_data
    														matches.append(full_data)
    								except ValueError:
    										continue
    
    		return matches
    
    if __name__ == "__main__":
    		try:
    				net = ipaddress.IPv4Network(TARGET_CIDR, strict=False)
    
    				print(f"[*] Fetching registrations (status=all)...")
    				all_devices = get_all_registrations()
    				print(f"[*] Found {len(all_devices)} total registrations.")
    
    				print(f"[*] Checking IP ranges for match...")
    				filtered_list = filter_by_cidr(all_devices, net)
    
    				if filtered_list:
    						print(f"\n--- Found {len(filtered_list)} Device(s) in {TARGET_CIDR} ---\n")
    						for dev in filtered_list:
    								print(json.dumps(dev, indent=2))
    								print("-" * 50)
    				else:
    						print(f"\nNo devices found within the {TARGET_CIDR} range.")
    
    		except Exception as e:
    				print(f"Script Error: {e}")
  2. В разделе настройки скрипта укажите учётные данные Cloudflare API и диапазон подсети IP.

  3. Откройте терминал и перейдите в каталог со скриптом. Чтобы запустить скрипт, введите:

    python3 filter-device-ips.py

Измените IP-подсеть

Cloudflare не поддерживает изменение уже заданной подсети IPv4. Чтобы назначить своим устройствам другую подсеть IPv4:

  1. В Панель управления Cloudflare, перейдите в Zero Trust > Команда и ресурсы > Устройства > Профили устройств.
  2. В разделе Профили IP-адресов устройства, найдите группу устройств, связанную со старой подсетью, и выберите Изменить.
  3. Выберите Создать новый диапазон IP-адресов подсети чтобы определить новую подсеть.
  4. Выберите Save.

Новая подсеть появится в Подсети IP-адресов устройства таблице. Теперь старую подсеть можно удалить. Устройства будут получать IP-адрес из новой подсети только тогда, когда они повторно зарегистрироваться; существующие регистрации сохранят свои текущий IP-адрес.