From f8ffc0a8c987fc24ebc46f04189b5cce5c510459 Mon Sep 17 00:00:00 2001 From: shunf4 Date: Wed, 24 Jun 2020 01:54:17 +0800 Subject: [PATCH] doc: update name_resolution.svg about fake ips filtering --- doc/res/name_resolution.svg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/res/name_resolution.svg b/doc/res/name_resolution.svg index bd0299a..5f02743 100644 --- a/doc/res/name_resolution.svg +++ b/doc/res/name_resolution.svg @@ -1,3 +1,3 @@ -
GetAddrInfo() called
GetAddrInfo() called
N
N
Y
Y
Have match in hosts/custom hosts file and
resolve_locally_if_match_hosts is on?
Have match in hosts/custom hosts file and...
Y
Y
N
N
proxy_dns is on and client
is querying for an IPv4 and/or IPv6 address
for a TCP and/or UDP connection?
proxy_dns is on and client...
Get target from the hostname and rules
Get target from the hostname and rules
Y
Y
N
N
Should use a fake IP?
(match any rule or
use_fake_ip_when_hostname_not_matched
is on?)
Should use a fake IP?...
Y
Y
N
N
Target is DIRECT or
should not use a fake ip?
Target is DIRECT or...
Resolve locally
(match hosts/custom hosts first)
Resolve locally...
Generate a fake IP
and store the mapping
<fake IP - hostname, resolved IPs(if any), target>
Generate a fake IP...
Return fake IP
Return fake IP
Resolve locally from
hosts/custom hosts file
Resolve locally from...
Return resolved IP
Return resolved IP
Resolve locally
(match hosts/custom hosts first)
Resolve locally...
...Later proxified program connects to the fake IP, which is then mapped back to hostname (along with resolved IPs, if any) and the target
which is previously decided
...Later proxified program con...
...Later proxified program connects to one of resolved IPs, and the rules are applied on the IP to decide the target
...Later proxified program con...
Viewer does not support full SVG 1.1
\ No newline at end of file +
GetAddrInfo() called
GetAddrInfo() called
N
N
Y
Y
Have match in hosts/custom hosts file and
resolve_locally_if_match_hosts is on?
Have match in hosts/custom hosts file and...
Y
Y
N
N
proxy_dns is on and client
is querying for an IPv4 and/or IPv6 address
for a TCP and/or UDP connection?
proxy_dns is on and client...
Get target from the hostname and rules
Get target from the hostname and rules
Y
Y
N
N
Should use fake IPs?
(match any rule or
use_fake_ip_when_hostname_not_matched
is on?)
Should use fake IPs?...
Y
Y
N
N
Target is DIRECT or
should not use a fake ip?
Target is DIRECT or...
Resolve locally
(match hosts/custom hosts first)
Resolve locally...
Generate fake IPs
and store the mapping
<fake IP - hostname, resolved IPs(if any), target>
Generate fake IPs...
Return fake IP
Return fake IP
Resolve locally from
hosts/custom hosts file
Resolve locally from...
Return resolved IP
Return resolved IP
Resolve locally
(match hosts/custom hosts first)
Resolve locally...
...Later proxified program connects to the fake IP, which is then mapped back to hostname (along with resolved IPs, if any) and the target
which is previously decided
...Later proxified program con...
...Later proxified program connects to one of resolved IPs, and the rules are applied on the IP to decide the target
...Later proxified program con...
Y
Y
N
N
Target is DIRECT? (i.e.
resolved ips will be used?)
Target is DIRECT? (i.e....
Filter fake IPs by type, according to resolved IPs' types
(e.g. if resolved IPs contain only IPv6 address, then return fake IPv4 address only. We don't want the client to choose fake IPv4 address, finding it embarrassing that we can't replace it with a resolved IPv6 address, because the RFC-3089-style proxify-ing hack requires the same matching type of fake IP and resolved IP)
Filter fake IPs by type, according to resolved IPs...
Filter fake IPs by type, according to first_tunnel_uses_ipv4 and first_tunnel_uses_ipv6, because the RFC-3089-style proxify-ing hack requires the same matching type of fake IP and proxy server IP
Filter fake IPs by type, according...
Viewer does not support full SVG 1.1
\ No newline at end of file