← Cloudflare One / cloudflare-one / team-and-resources / devices / cloudflare-one-client / configure / route-traffic
Architektura klienta
Tento návod vysvětluje, jak klient Cloudflare One Client (dříve WARP) spolupracuje s operačním systémem zařízení při směrování provozu v Traffic and DNS mode režimu.
V Režim pouze DNS režimu se informace o IP provozu nepoužijí. V Traffic only mode režimu se informace o DNS provozu nepoužijí.
Tok provozu klienta
Cloudflare One Client umožňuje organizacím podrobně řídit, ke kterým aplikacím mají koncová uživatelská zařízení přístup. Klient přeposílá DNS a síťový provoz ze zařízení do globální sítě Cloudflare, kde se v cloudu uplatňují zásady Zero Trust. Na všech operačních systémech udržuje démon WARP mezi zařízením a Cloudflare tři připojení:
| Připojení | Protokol | Účel |
|---|---|---|
| Tunel WARP (prostřednictvím WireGuard nebo MASQUE) | UDP | Odesílá IP pakety do Gateway za účelem vynucení síťových zásad, vynucení zásad HTTP a přístupu k privátní síti. |
| DoH ↗ | HTTPS | Odesílá požadavky DNS do Gateway za účelem vynucení zásad DNS. Připojení DoH je udržováno uvnitř tunelu WARP. |
| Orchestrace zařízení | HTTPS | Provede registraci uživatele, zkontroluje stav zařízení a použije nastavení profilu klienta zařízení. |
flowchart LR
subgraph Device
W[Cloudflare One Client] -.-> D
D[DNS proxy]
W -.-> V[Virtual interface]
end
subgraph Cloudflare
A[Zero Trust account]
subgraph Gateway
N[L3/L4 firewall]
G[DNS resolver]
end
end
W<--"Device
orchestration"-->A
subgraph tunnel["WARP tunnel"]
ip@{ shape: text, label: "Network traffic" }
dns@{ shape: text, label: "DNS traffic" }
end
V --- ip-->N
D --- dns-->G
N --> O[(Application)]
Váš Split Tunnel konfigurace určuje, jaký IP provoz se odesílá přes tunel WARP. Vaše Local Domain Fallback konfigurace určuje, které DNS požadavky se odesílají do Gateway přes DoH. Provoz na API pro orchestraci zařízení endpoint se neřídí pravidly Split Tunnel, protože spojení vždy funguje mimo tunel WARP.
Dále se dozvíte, jak Cloudflare One Client nastavuje váš operační systém tak, aby uplatňoval pravidla směrování Local Domain Fallback a Split Tunnel. Podrobnosti implementace se liší mezi desktopovými a mobilními klienty.
Windows, macOS a Linux
Desktopový klient se skládá ze dvou částí: služby/démona, který na vašem zařízení zajišťuje veškerou funkčnost klienta, a grafické nadstavby (GUI wrapperu), která uživateli usnadňuje interakci s démonem.
DNS provoz
Když se připojíte přes Cloudflare One Client, klient na zařízení vytvoří lokální DNS proxy a naváže ji na tyto IP adresy na portu 53 (port určený pro DNS provoz):
- IPv4:
127.0.2.2a127.0.2.3 - IPv6:
- macOS a Linux:
fd01:db8:1111::2afd01:db8:1111::3 - Windows:
::ffff:127.0.2.2
- macOS a Linux:
Cloudflare One Client poté nastaví operační systém tak, aby všechny DNS požadavky posílal na tyto IP adresy. Všechna síťová rozhraní zařízení nyní budou pro překlad DNS používat tuto místní DNS proxy. Jinými slovy, veškerý DNS provoz od této chvíle zajišťuje Cloudflare One Client.
Na základě konfigurace Local Domain Fallback přepošle Cloudflare One Client požadavek buď na Gateway kvůli vynucení DNS zásad, nebo na váš privátní DNS resolver.
- Požadavky do Gateway jsou odesílány přes naši DoH připojení uvnitř tunelu WARP.
- Požadavky na váš privátní DNS resolver se odesílají uvnitř nebo mimo tunel v závislosti na konfiguraci Split Tunnel. Další informace najdete v Jak Cloudflare One Client zpracovává požadavky DNS.
flowchart LR
D{{DNS request}}-->L["Local DNS proxy <br> (127.0.2.2 and 127.0.2.3)"]-->R{In local domain fallback?}
R -- Yes --> F[Private DNS resolver]
R -- No --> G[Cloudflare Gateway]
Můžete ověřit, že operační systém používá lokální DNS proxy nástroje Cloudflare One Client:
V systému macOS otevřete okno terminálu a spusťte scutil --dns. Servery DNS by měly být nastaveny na lokální IP adresy DNS proxy Cloudflare One Client.
scutil --dnsDNS configuration (for scoped queries)
resolver #1
search domain[0] : <DNS-SEARCH-DOMAIN>
nameserver[0] : 127.0.2.2
nameserver[1] : 127.0.2.3
if_index : 15 (en0)
flags : Scoped, Request A records
reach : 0x00030002 (Reachable,Local Address,Directly Reachable Address)
resolver #2
nameserver[0] : 127.0.2.2
nameserver[1] : 127.0.2.3
nameserver[2] : fd01:db8:1111::2
nameserver[3] : fd01:db8:1111::3
if_index : 23 (utun3)
flags : Scoped, Request A records, Request AAAA records
reach : 0x00030002 (Reachable,Local Address,Directly Reachable Address)Ve Windows otevřete okno PowerShellu a spusťte ipconfig. Servery DNS by měly být nastaveny na lokální IP adresy DNS proxy Cloudflare One Client.
ipconfigWindows 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. . . . . . . . : EnabledNa Linuxu zkontrolujte /etc/resolv.conf soubor. Servery DNS by měly být nastaveny na lokální IP adresy DNS proxy aplikace Cloudflare One Client.
cat /etc/resolv.conf# This file was generated by cloudflare-warp.
nameserver 127.0.2.2
nameserver 127.0.2.3
nameserver fd01:db8:1111::2
nameserver fd01:db8:1111::3
search <DNS-SEARCH-DOMAIN>
options edns0
options trust-adProvoz IP
Když se připojíte přes Cloudflare One Client, provede na zařízení tři změny, kterými řídí, zda se provoz odesílá uvnitř nebo mimo tunel WARP:
- Vytvoří virtuální síťové rozhraní.
- Upravuje operační systém směrovací tabulka podle vašich pravidel Split Tunnel.
- Upravuje operační systém firewall podle vašich pravidel Split Tunnel.
flowchart LR
P{{IP packet}}-->R["OS routing table"]-->F["OS firewall"] --> S{Excluded from Split Tunnels?}
S -- Yes --> A[(Application)]
S -- No --> U["Virtual interface<br> (172.16.0.2)"] --> G[Cloudflare Gateway]
Virtuální rozhraní
Virtuální rozhraní umožňují operačnímu systému logicky rozdělit fyzické rozhraní, například síťový řadič (NIC), na samostatná rozhraní pro účely směrování IP provozu. Právě virtuální rozhraní Cloudflare One Client udržuje připojení WireGuard/MASQUE mezi zařízením a Cloudflare. Jeho IPv4 adresa je ve výchozím nastavení pevně nastavena jako 172.16.0.2 pro zařízení používající WireGuard, zatímco zařízení používající MASQUE jsou přiřazena jedinečná IP z rozsahu IP adres CGNAT (100.96.0.0/12). Výchozí IP adresu virtuálního rozhraní můžete přepsat pomocí vlastní IP adresa zařízení.
Chcete-li zobrazit seznam všech síťových rozhraní v operačním systému:
Ve Windows spusťte ipconfig. Když je Cloudflare One Client zapnutý, uvidíte adaptér s názvem CloudflareWARP s IP adresou vašeho zařízení.
ipconfigWindows 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. . . . . . . . : EnabledV systému macOS spusťte ifconfig. Když je Cloudflare One Client zapnutý, uvidíte utun rozhraní s IP adresou vašeho zařízení.
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>Na Linuxu spusťte ifconfig nebo ip addr. Když je Cloudflare One Client zapnutý, uvidíte utun rozhraní s IP adresou vašeho zařízení.
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 foreverV uvedeném příkladu je IPv4 adresa zařízení 172.16.0.2.
Směrovací tabulka
Cloudflare One Client upravuje systémovou směrovací tabulku, aby řídil, jaký IP provoz jde do Gateway. Směrovací tabulka určuje, které síťové rozhraní má obsluhovat pakety pro danou IP adresu. Veškerý provoz se ve výchozím nastavení směruje přes virtuální rozhraní Cloudflare One Client, s výjimkou IP adres a domén na vašem seznamu výjimek Split Tunnel (ty používají výchozí rozhraní vašeho zařízení).
Můžete ověřit, že směrovací tabulka odpovídá pravidlům Split Tunnel:
Chcete-li zobrazit celou směrovací tabulku v systému macOS, spusťte netstat -r.
Ve směrovací tabulce můžete také vyhledávat podle domény nebo IP adresy. V tomto příkladu vidíme, že provoz do google.com se odesílá přes utun3, což je virtuální rozhraní Cloudflare One Client na tomto zařízení:
route get google.com route to: lga25s81-in-f14.1e100.net
destination: 136.0.0.0
mask: 248.0.0.0
interface: utun3
flags: <UP,DONE,PRCLONING>
recvpipe sendpipe ssthresh rtt,msec rttvar hopcount mtu expire
0 0 0 0 0 0 1280 0Naproti tomu tato adresa DHCP je z Cloudflare One Client vyloučena a používá výchozí rozhraní:
route get 169.254.0.0 route to: 169.254.0.0
destination: 169.254.0.0
mask: 255.255.0.0
interface: en0
flags: <UP,DONE,CLONING,STATIC>
recvpipe sendpipe ssthresh rtt,msec rttvar hopcount mtu expire
0 0 0 0 0 0 1500 -210842Chcete-li zobrazit celou směrovací tabulku v systému Windows, spusťte netstat -r.
Ve směrovací tabulce můžete také vyhledávat podle IP adresy. V tomto příkladu vidíme, že provoz do 1.1.1.1 se odesílá přes virtuální rozhraní Cloudflare One Client:
Find-NetRoute -RemoteIPAddress "1.1.1.1" | Select-Object InterfaceAlias -Last 1InterfaceAlias
--------------
CloudflareWARPNaproti tomu tato adresa DHCP je z Cloudflare One Client vyloučena a používá výchozí rozhraní:
Find-NetRoute -RemoteIPAddress "169.254.0.0" | Select-Object InterfaceAlias -Last 1InterfaceAlias
--------------
Wi-FiChcete-li zobrazit celou směrovací tabulku v systému Linux, spusťte ip -6 route show table all nebo ip -4 route show table all.
Ve směrovací tabulce můžete také vyhledávat podle IP adresy. V tomto příkladu vidíme, že provoz do 1.1.1.1 se odesílá přes virtuální rozhraní Cloudflare One Client:
ip route get 1.1.1.11.1.1.1 dev CloudflareWARP table 65743 src 172.16.0.2 uid 1000
cacheNaproti tomu tato adresa DHCP je z Cloudflare One Client vyloučena a používá výchozí rozhraní:
ip route get 169.254.0.0169.254.0.0 dev ens18 src 172.24.8.6 uid 1000
cacheSystémový firewall
Cloudflare One Client upravuje firewall operačního systému, aby vynutil vaše pravidla Split Tunnel. Přidává to další vrstvu ochrany pro případ, že by nějaká služba obešla směrovací tabulku a pokusila se poslat provoz přímo přes jiné rozhraní. Pokud by například provoz do 203.0.113.0 má být kontrolován pomocí Gateway, vytvoříme pravidlo firewallu, které blokuje 203.0.113.0 na všech rozhraních kromě utun.
iOS, Android a ChromeOS
Na iOS a Android/ChromeOS se Cloudflare One Agent nainstaluje jako VPN klient, který zachytává a směruje veškerý provoz. Aplikace je postavena na oficiálním VPN frameworku pro iOS a Android. Další informace najdete v dokumentaci Apple Dokumentace NetworkExtension ↗ a Google Dokumentace pro vývojáře Android ↗.
Upozorňujeme, že ChromeOS spouští aplikaci Android ve virtuálním stroji, nikoli jako nativní aplikaci Chrome.