āĻšā§āϝāĻžāϞ⧠āĻšāĻžāĻŦāϰ, āĻāĻŽāĻžāϰ āύāĻžāĻŽ āĻāϞāĻŋāϝāĻŧāĻž, āĻāĻŽāĻŋ Exness-āĻāϰ āĻĒā§āϞā§āϝāĻžāĻāĻĢāϰā§āĻŽ āĻāĻŋāĻŽā§ āĻāĻžāĻ āĻāϰāĻŋāĨ¤ āĻāĻŽāĻžāĻĻā§āϰ āĻĒā§āϰā§āĻĄāĻžāĻā§āĻ āĻĄā§āĻā§āϞāĻĒāĻŽā§āύā§āĻ āĻāĻŋāĻŽāĻā§āϞāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻāĻŽāϰāĻž āĻŽā§āϞ āĻ āĻŦāĻāĻžāĻ āĻžāĻŽā§āϰ āĻāĻĒāĻžāĻĻāĻžāύāĻā§āϞāĻŋāϰ āĻŦāĻŋāĻāĻžāĻļ āĻāĻŦāĻ āĻŦāĻžāϏā§āϤāĻŦāĻžāϝāĻŧāύ āĻāϰāĻŋāĨ¤
āĻāĻ āύāĻŋāĻŦāύā§āϧā§, āĻāĻŽāĻŋ āĻĒāĻžāĻŦāϞāĻŋāĻ āĻāϝāĻŧā§āĻŦāϏāĻžāĻāĻā§āϰ āĻĒāϰāĻŋāĻāĻžāĻ āĻžāĻŽā§āϤ⧠āĻāύāĻā§āϰāĻŋāĻĒā§āĻā§āĻĄ SNI (ESNI) āĻĒā§āϰāϝā§āĻā§āϤāĻŋ āĻŦāĻžāϏā§āϤāĻŦāĻžāϝāĻŧāύā§āϰ āĻāĻŽāĻžāϰ āĻ āĻāĻŋāĻā§āĻāϤāĻž āĻļā§āϝāĻŧāĻžāϰ āĻāϰāϤ⧠āĻāĻžāĻāĨ¤

āĻāĻāĻāĻŋ āϏāϰā§āĻŦāĻāύā§āύ āĻāϝāĻŧā§āĻŦāϏāĻžāĻāĻā§āϰ āϏāĻžāĻĨā§ āĻāĻžāĻ āĻāϰāĻžāϰ āϏāĻŽāϝāĻŧ āĻāĻŦāĻ āĻā§āĻŽā§āĻĒāĻžāύāĻŋāϰ āĻā§āĻšā§āϤ āĻ
āĻā§āϝāύā§āϤāϰā§āĻŖ āύāĻŋāϰāĻžāĻĒāϤā§āϤāĻž āĻŽāĻžāύāĻā§āϞāĻŋ āĻŽā§āύ⧠āĻāϞāĻžāϰ āϏāĻŽāϝāĻŧ āĻāĻ āĻĒā§āϰāϝā§āĻā§āϤāĻŋāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āύāĻŋāϰāĻžāĻĒāϤā§āϤāĻžāϰ āĻŽāĻžāϤā§āϰāĻž āĻŦā§āĻĻā§āϧāĻŋ āĻāϰāĻŦā§āĨ¤
āĻĒā§āϰāĻĨāĻŽāϤ, āĻāĻŽāĻŋ āĻāϞā§āϞā§āĻ āĻāϰāϤ⧠āĻāĻžāĻ āϝ⧠āĻĒā§āϰāϝā§āĻā§āϤāĻŋāĻāĻŋ āĻŽāĻžāύāϏāĻŽā§āĻŽāϤ āύāϝāĻŧ āĻāĻŦāĻ āĻāĻāύāĻ āĻāϏāĻĄāĻŧāĻžāϝāĻŧ āϰāϝāĻŧā§āĻā§, āϤāĻŦā§ āĻā§āϞāĻžāĻāĻĄāĻĢā§āϞā§āϝāĻŧāĻžāϰ āĻāĻŦāĻ āĻŽāĻāĻŋāϞāĻž āĻāϤāĻŋāĻŽāϧā§āϝā§āĻ āĻāĻāĻŋāĻā§ āϏāĻŽāϰā§āĻĨāύ āĻāϰ⧠( ) āĻāĻ āϧāϰāύā§āϰ āĻāĻāĻāĻŋ āĻĒāϰā§āĻā§āώāĻžāϰ āĻāύā§āϝ āĻāĻŽāĻžāĻĻā§āϰ āĻ āύā§āĻĒā§āϰāĻžāĻŖāĻŋāϤ.
āϤāϤā§āϤā§āĻŦ āĻāĻāĻāĻŋ āĻŦāĻŋāĻ
ESNI TLS 1.3 āĻĒā§āϰā§āĻā§āĻāϞā§āϰ āĻāĻāĻāĻŋ āĻāĻā§āϏāĻā§āύāĻļāύ āϝāĻž TLS āĻšā§āϝāĻžāύā§āĻĄāĻļā§āĻ "āĻā§āϞāĻžāϝāĻŧā§āύā§āĻ āĻšā§āϝāĻžāϞā§" āĻŦāĻžāϰā§āϤāĻžāϝāĻŧ SNI āĻāύāĻā§āϰāĻŋāĻĒāĻļāύā§āϰ āĻ āύā§āĻŽāϤāĻŋ āĻĻā§āϝāĻŧ⧎ ESNI āϏāĻŽāϰā§āĻĨāύā§āϰ āϏāĻžāĻĨā§ āĻā§āϞāĻžāϝāĻŧā§āύā§āĻ āĻšā§āϝāĻžāϞ⧠āĻā§āĻŽāύ āĻĻā§āĻāĻžāϝāĻŧ āϤāĻž āĻāĻāĻžāύ⧠(āϏāĻžāϧāĻžāϰāĻŖ SNI āĻāϰ āĻĒāϰāĻŋāĻŦāϰā§āϤ⧠āĻāĻŽāϰāĻž ESNI āĻĻā§āĻāĻŋ):

ESNI āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤā§, āĻāĻĒāύāĻžāϰ āϤāĻŋāύāĻāĻŋ āĻāĻĒāĻžāĻĻāĻžāύ āĻĒā§āϰāϝāĻŧā§āĻāύ:
- DNS;
- āĻā§āϞāĻžāϝāĻŧā§āύā§āĻ āϏāĻŽāϰā§āĻĨāύ;
- āϏāĻžāϰā§āĻāĻžāϰ āϏāĻžāĻāĻĄ āϏāĻŽāϰā§āĻĨāύ.
āĻĄāĻŋāĻāύāĻāϏ
āĻāĻĒāύāĻžāĻā§ āĻĻā§āĻāĻŋ DNS āϰā§āĻāϰā§āĻĄ āϝā§āĻ āĻāϰāϤ⧠āĻšāĻŦā§ - AāĻāĻŦāĻ TXT (TXT āϰā§āĻāϰā§āĻĄā§ āϏāϰā§āĻŦāĻāύā§āύ āĻā§ āϰāϝāĻŧā§āĻā§ āϝāĻž āĻĻāĻŋāϝāĻŧā§ āĻā§āϞāĻžāϝāĻŧā§āύā§āĻ SNI āĻāύāĻā§āϰāĻŋāĻĒā§āĻ āĻāϰāϤ⧠āĻĒāĻžāϰā§) - āύā§āĻā§ āĻĻā§āĻā§āύāĨ¤ āĻāĻĒāϰāύā§āϤā§, āϏāĻŽāϰā§āĻĨāύ āĻĨāĻžāĻāϤ⧠āĻšāĻŦā§ DoH (HTTPS āĻāϰ āĻāĻĒāϰ DNS) āĻāĻžāϰāĻŖ āĻāĻĒāϞāĻŦā§āϧ āĻā§āϞāĻžāϝāĻŧā§āύā§āĻ (āύā§āĻā§ āĻĻā§āĻā§āύ) DoH āĻāĻžāĻĄāĻŧāĻž ESNI āϏāĻŽāϰā§āĻĨāύ āϏāĻā§āώāĻŽ āĻāϰ⧠āύāĻžāĨ¤ āĻāĻāĻŋ āϝā§āĻā§āϤāĻŋāĻ, āϝā§āĻšā§āϤ⧠ESNI āĻĻā§āĻŦāĻžāϰāĻž āĻāĻŽāϰāĻž āϝ⧠āϏāĻāϏā§āĻĨāĻžāύāĻāĻŋ āĻ ā§āϝāĻžāĻā§āϏā§āϏ āĻāϰāĻāĻŋ āϤāĻžāϰ āύāĻžāĻŽ āĻāύāĻā§āϰāĻŋāĻĒāĻļāύ āĻŦā§āĻāĻžāϝāĻŧ, āĻ āϰā§āĻĨāĻžā§, UDP-āĻāϰ āĻŽāĻžāϧā§āϝāĻŽā§ DNS āĻ ā§āϝāĻžāĻā§āϏā§āϏ āĻāϰāĻžāϰ āĻā§āύ āĻŽāĻžāύ⧠āĻšāϝāĻŧ āύāĻžāĨ¤ āϤāĻžāĻāĻžāĻĄāĻŧāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāĻ āĻĒāϰāĻŋāϏā§āĻĨāĻŋāϤāĻŋāϤ⧠āĻā§āϝāĻžāĻļā§ āĻŦāĻŋāώāĻā§āϰāĻŋāϝāĻŧāĻžāϰ āĻāĻā§āϰāĻŽāĻŖ āĻĨā§āĻā§ āϰāĻā§āώāĻž āĻāϰāĻžāϰ āĻ āύā§āĻŽāϤāĻŋ āĻĻā§āϝāĻŧāĨ¤
āĻŦāϰā§āϤāĻŽāĻžāύ⧠āϏāĻšāĻāϞāĻā§āϝ , āϤāĻžāĻĻā§āϰ āĻŽāϧā§āϝā§:
CloudFlare (āĻāĻŽāĻžāϰ āĻŦā§āϰāĻžāĻāĻāĻžāϰ āĻā§āĻ āĻāϰā§āύ â āĻāύāĻā§āϰāĻŋāĻĒā§āĻā§āĻĄ SNI â āĻāϰāĻ āĻāĻžāύā§āύ) āϝ⧠āϤāĻžāĻĻā§āϰ āϏāĻžāϰā§āĻāĻžāϰāĻā§āϞāĻŋ āĻāϤāĻŋāĻŽāϧā§āϝā§āĻ ESNI āϏāĻŽāϰā§āĻĨāύ āĻāϰā§, āĻ āϰā§āĻĨāĻžā§, DNS-āĻ CloudFlare āϏāĻžāϰā§āĻāĻžāϰāĻā§āϞāĻŋāϰ āĻāύā§āϝ āĻāĻŽāĻžāĻĻā§āϰ āĻ āύā§āϤāϤ āĻĻā§āĻāĻŋ āϰā§āĻāϰā§āĻĄ āϰāϝāĻŧā§āĻā§ - A āĻāĻŦāĻ TXT⧎ āύā§āĻā§āϰ āĻāĻĻāĻžāĻšāϰāĻŖā§ āĻāĻŽāϰāĻž Google DNS (HTTPS āĻāϰ āĻāĻĒāϰ) āĻāĻŋāĻā§āĻāĻžāϏāĻž āĻāϰāĻŋ:
Đ āĻāύā§āĻā§āϰāĻŋ:
curl 'https://dns.google.com/resolve?name=www.cloudflare.com&type=A'
-s -H 'accept: application/dns+json'
{
"Status": 0,
"TC": false,
"RD": true,
"RA": true,
"AD": true,
"CD": false,
"Question": [
{
"name": "www.cloudflare.com.",
"type": 1
}
],
"Answer": [
{
"name": "www.cloudflare.com.",
"type": 1,
"TTL": 257,
"data": "104.17.210.9"
},
{
"name": "www.cloudflare.com.",
"type": 1,
"TTL": 257,
"data": "104.17.209.9"
}
]
}
TXT āϰā§āĻāϰā§āĻĄ, āĻ āύā§āϰā§āϧ āĻāĻāĻāĻŋ āĻā§āĻŽāĻĒā§āϞā§āĻ āĻ āύā§āϝāĻžāϝāĻŧā§ āĻāϤā§āĻĒāύā§āύ āĻšāϝāĻŧ _esni.FQDN:
curl 'https://dns.google.com/resolve?name=_esni.www.cloudflare.com&type=TXT'
-s -H 'accept: application/dns+json'
{
"Status": 0,
"TC": false,
"RD": true,
"RA": true,
"AD": true,
"CD": false,
"Question": [
{
"name": "_esni.www.cloudflare.com.",
"type": 16
}
],
"Answer": [
{
"name": "_esni.www.cloudflare.com.",
"type": 16,
"TTL": 1799,
"data": ""/wEUgUKlACQAHQAg9SiAYQ9aUseUZr47HYHvF5jkt3aZ5802eAMJPhRz1QgAAhMBAQQAAAAAXtUmAAAAAABe3Q8AAAA=""
}
],
"Comment": "Response from 2400:cb00:2049:1::a29f:209."
}
āϏā§āϤāϰāĻžāĻ, āĻāĻāĻāĻŋ DNS āĻĻā§āώā§āĻāĻŋāĻā§āĻŖ āĻĨā§āĻā§, āĻāĻŽāĻžāĻĻā§āϰ āĻāĻāĻŋāϤ DoH āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž (āĻŦāĻŋāĻļā§āώāϤ DNSSEC āĻāϰ āϏāĻžāĻĨā§) āĻāĻŦāĻ āĻĻā§āĻāĻŋ āĻāύā§āĻā§āϰāĻŋ āϝā§āĻ āĻāϰāĻžāĨ¤
āĻā§āϰāĻžāĻšāĻ āϏāĻŽāϰā§āĻĨāύ
āĻāĻŽāϰāĻž āϝāĻĻāĻŋ āĻŦā§āϰāĻžāĻāĻāĻžāϰ āϏāĻŽā§āĻĒāϰā§āĻā§ āĻāĻĨāĻž āĻŦāϞāĻŋ, āϤāĻžāĻšāϞ⧠āĻāĻ āĻŽā§āĻšā§āϰā§āϤ⧠. āĻĢāĻžāϝāĻŧāĻžāϰāĻĢāĻā§āϏ⧠āĻā§āĻāĻžāĻŦā§ ESNI āĻāĻŦāĻ DoH āϏāĻŽāϰā§āĻĨāύ āϏāĻā§āϰāĻŋāϝāĻŧ āĻāϰāϤ⧠āĻšāϝāĻŧ āϤāĻžāϰ āύāĻŋāϰā§āĻĻā§āĻļāĻžāĻŦāϞ⧠āĻāĻāĻžāύ⧠āϰāϝāĻŧā§āĻā§āĨ¤ āĻŦā§āϰāĻžāĻāĻāĻžāϰāĻāĻŋ āĻāύāĻĢāĻŋāĻāĻžāϰ āĻāϰāĻžāϰ āĻĒāϰā§, āĻāĻŽāĻžāĻĻā§āϰ āĻāϰāĻāĻŽ āĻāĻŋāĻā§ āĻĻā§āĻāϤ⧠āĻšāĻŦā§:

āĻŦā§āϰāĻžāĻāĻāĻžāϰ āĻā§āĻ āĻāϰāϤā§āĨ¤
āĻ āĻŦāĻļā§āϝāĻ, ESNI āϏāĻŽāϰā§āĻĨāύ āĻāϰāĻžāϰ āĻāύā§āϝ TLS 1.3 āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āĻāĻŦāĻļā§āϝāĻ, āϝā§āĻšā§āϤ⧠ESNI āĻšāϞ TLS 1.3-āĻāϰ āĻāĻāĻāĻŋ āĻāĻā§āϏāĻā§āύāĻļāύ⧎
ESNI āϏāĻŽāϰā§āĻĨāύ āϏāĻš āĻŦā§āϝāĻžāĻāĻāύā§āĻĄ āĻĒāϰā§āĻā§āώāĻž āĻāϰāĻžāϰ āĻāĻĻā§āĻĻā§āĻļā§āϝā§, āĻāĻŽāϰāĻž āĻā§āϞāĻžāϝāĻŧā§āύā§āĻ āĻāĻžāϞ⧠āĻāϰā§āĻāĻŋ go, āĻāĻŋāύā§āϤ⧠āĻĒāϰ⧠āϝ⧠āĻāϰā§.
āϏāĻžāϰā§āĻāĻžāϰ āϏāĻžāĻāĻĄ āϏāĻžāĻĒā§āϰā§āĻ
āĻŦāϰā§āϤāĻŽāĻžāύā§, ESNI nginx/apache āĻāϤā§āϝāĻžāĻĻāĻŋāϰ āĻŽāϤ⧠āĻāϝāĻŧā§āĻŦ āϏāĻžāϰā§āĻāĻžāϰ āĻĻā§āĻŦāĻžāϰāĻž āϏāĻŽāϰā§āĻĨāĻŋāϤ āύāϝāĻŧ, āϝā§āĻšā§āϤ⧠āϤāĻžāϰāĻž TLS-āĻāϰ āϏāĻžāĻĨā§ OpenSSL/BoringSSL-āĻāϰ āĻŽāĻžāϧā§āϝāĻŽā§ āĻāĻžāĻ āĻāϰā§, āϝāĻž āĻāύā§āώā§āĻ āĻžāύāĻŋāĻāĻāĻžāĻŦā§ ESNI āϏāĻŽāϰā§āĻĨāύ āĻāϰ⧠āύāĻžāĨ¤
āĻ āϤāĻāĻŦ, āĻāĻŽāϰāĻž āĻāĻŽāĻžāĻĻā§āϰ āύāĻŋāĻāϏā§āĻŦ āĻĢā§āϰāύā§āĻ-āĻāύā§āĻĄ āĻāĻŽā§āĻĒā§āύā§āύā§āĻ (āĻāĻāϏāĻāύāĻāĻ āϰāĻŋāĻāĻžāϰā§āϏ āĻĒā§āϰāĻā§āϏāĻŋ) āϤā§āϰāĻŋ āĻāϰāĻžāϰ āϏāĻŋāĻĻā§āϧāĻžāύā§āϤ āύāĻŋāϝāĻŧā§āĻāĻŋ, āϝāĻž āĻāĻāϏāĻāύāĻāĻ āϏāĻš TLS 1.3 āϏāĻŽāĻžāĻĒā§āϤāĻŋ āϏāĻŽāϰā§āĻĨāύ āĻāϰāĻŦā§ āĻāĻŦāĻ āĻāĻĒāϏā§āĻā§āϰāĻŋāĻŽā§ āĻĒā§āϰāĻā§āϏāĻŋ HTTP(S) āĻā§āϰāĻžāĻĢāĻŋāĻ āϝāĻž ESNI āϏāĻŽāϰā§āĻĨāύ āĻāϰ⧠āύāĻžāĨ¤ āĻāĻāĻŋ āĻŽā§āϞ āĻāĻĒāĻžāĻĻāĻžāύāĻā§āϞāĻŋ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āύāĻž āĻāϰ⧠āĻĒā§āϰāϝā§āĻā§āϤāĻŋāĻāĻŋāĻā§ āĻāϤāĻŋāĻŽāϧā§āϝ⧠āĻŦāĻŋāĻĻā§āϝāĻŽāĻžāύ āĻĒāϰāĻŋāĻāĻžāĻ āĻžāĻŽā§āϤ⧠āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻžāϰ āĻ āύā§āĻŽāϤāĻŋ āĻĻā§āϝāĻŧ - āĻ āϰā§āĻĨāĻžā§, āĻŦāϰā§āϤāĻŽāĻžāύ āĻāϝāĻŧā§āĻŦ āϏāĻžāϰā§āĻāĻžāϰāĻā§āϞāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āϝāĻž ESNI āϏāĻŽāϰā§āĻĨāύ āĻāϰ⧠āύāĻžā§ˇ
āϏā§āĻĒāώā§āĻāϤāĻžāϰ āĻāύā§āϝ, āĻāĻāĻžāύ⧠āĻāĻāĻāĻŋ āĻāĻŋāϤā§āϰ āϰāϝāĻŧā§āĻā§:

āĻāĻŽāĻŋ āϞāĻā§āώā§āϝ āĻāϰāĻŋ āϝ⧠āĻĒā§āϰāĻā§āϏāĻŋāĻāĻŋ ESNI āĻāĻžāĻĄāĻŧāĻžāĻ āĻāĻāĻāĻŋ TLS āϏāĻāϝā§āĻ āĻŦāύā§āϧ āĻāϰāĻžāϰ āĻā§āώāĻŽāϤāĻž āϏāĻš, ESNI āĻāĻžāĻĄāĻŧāĻž āĻā§āϞāĻžāϝāĻŧā§āύā§āĻāĻĻā§āϰ āϏāĻŽāϰā§āĻĨāύ āĻāϰāĻžāϰ āĻāύā§āϝ āĻĄāĻŋāĻāĻžāĻāύ āĻāϰāĻž āĻšāϝāĻŧā§āĻāĻŋāϞ⧎ āĻāĻāĻžāĻĄāĻŧāĻžāĻ, āĻāĻĒāϏā§āĻā§āϰāĻŋāĻŽā§āϰ āϏāĻžāĻĨā§ āϝā§āĻāĻžāϝā§āĻā§āϰ āĻĒā§āϰā§āĻā§āĻāϞāĻāĻŋ HTTP āĻŦāĻž HTTPS āĻšāϤ⧠āĻĒāĻžāϰ⧠āϝāĻžāϰ TLS āϏāĻāϏā§āĻāϰāĻŖ 1.3 āĻāϰ āĻā§āϝāĻŧā§ āĻāĻŽ (āϝāĻĻāĻŋ āĻāĻĒāϏā§āĻā§āϰāĻŋāĻŽ 1.3 āϏāĻŽāϰā§āĻĨāύ āύāĻž āĻāϰā§)āĨ¤ āĻāĻ āϏā§āĻāĻŋāĻŽ āϏāϰā§āĻŦā§āĻā§āĻ āύāĻŽāύā§āϝāĻŧāϤāĻž āĻĻā§āϝāĻŧāĨ¤
āĻāĻĒāϰ ESNI āϏāĻŽāϰā§āĻĨāύ āĻŦāĻžāϏā§āϤāĻŦāĻžāϝāĻŧāύ go āĻāĻŽāϰāĻž āĻĨā§āĻā§ āϧāĻžāϰ āĻāϰā§āĻāĻŋ . āĻāĻŽāĻŋ āĻ āĻŦāĻŋāϞāĻŽā§āĻŦā§ āύā§āĻ āĻāϰāϤ⧠āĻāĻžāĻ āϝ⧠āĻŦāĻžāϏā§āϤāĻŦāĻžāϝāĻŧāύ āύāĻŋāĻā§āĻ āĻŦā§āĻļ āĻ -āϤā§āĻā§āĻ, āĻāĻžāϰāĻŖ āĻāϤ⧠āϏā§āĻā§āϝāĻžāύā§āĻĄāĻžāϰā§āĻĄ āϞāĻžāĻāĻŦā§āϰā§āϰāĻŋāϤ⧠āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻāĻĄāĻŧāĻŋāϤ āĻā§āϰāĻŋāĻĒā§āĻā§/āĻāĻŋāĻāϞāĻāϏ āĻāĻŦāĻ āϤāĻžāĻ "āĻĒā§āϝāĻžāĻāĻŋāĻ" āĻĒā§āϰāϝāĻŧā§āĻāύ āĻā§āϰā§āĻ āϏāĻŽāĻžāĻŦā§āĻļā§āϰ āĻāĻā§āĨ¤
ESNI āĻā§ āϤā§āϰāĻŋ āĻāϰāϤ⧠āĻāĻŽāϰāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āĻāĻŋ (āĻāĻāĻžāĻĄāĻŧāĻžāĻ āĻā§āϞāĻžāĻāĻĄāĻĢā§āϞā§āϝāĻŧāĻžāϰā§āϰ āĻŽāϏā§āϤāĻŋāώā§āĻāĻĒā§āϰāϏā§āϤ)āĨ¤ āĻāĻ āĻā§āĻā§āϞāĻŋ SNI āĻāύāĻā§āϰāĻŋāĻĒāĻļāύ/āĻĄāĻŋāĻā§āϰāĻŋāĻĒāĻļāύā§āϰ āĻāύā§āϝ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āĻšāϝāĻŧāĨ¤
āĻāĻŽāϰāĻž āĻā§ ā§§.ā§§ā§Š āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻŦāĻŋāϞā§āĻĄāĻāĻŋ āĻĒāϰā§āĻā§āώāĻž āĻāϰā§āĻāĻŋ Linux (Debian, Alpine) āĻāĻŦāĻ MacOSāĨ¤
āĻ āĻĒāĻžāϰā§āĻļāύāĻžāϞ āĻŦā§āĻļāĻŋāώā§āĻā§āϝ āϏāĻŽā§āĻĒāϰā§āĻā§ āĻāϝāĻŧā§āĻāĻāĻŋ āĻļāĻŦā§āĻĻ
ESNI āϰāĻŋāĻāĻžāϰā§āϏ āĻĒā§āϰāĻā§āϏāĻŋ āĻĒā§āϰāĻŽāĻŋāĻĨāĻŋāĻāϏ āĻĢāϰāĻŽā§āϝāĻžāĻā§ āĻŽā§āĻā§āϰāĻŋāĻā§āϏ āĻĒā§āϰāĻĻāĻžāύ āĻāϰā§, āϝā§āĻŽāύ rps, āĻāĻĒāϏā§āĻā§āϰāĻŋāĻŽ āϞā§āĻā§āύā§āϏāĻŋ āĻāĻŦāĻ āϰā§āϏāĻĒāύā§āϏ āĻā§āĻĄ, āĻŦā§āϝāϰā§āĻĨ/āϏāĻĢāϞ TLS āĻšā§āϝāĻžāύā§āĻĄāĻļā§āĻ āĻāĻŦāĻ TLS āĻšā§āϝāĻžāύā§āĻĄāĻļā§āĻ āϏāĻŽāϝāĻŧāĻāĻžāϞāĨ¤ āĻĒā§āϰāĻĨāĻŽ āύāĻāϰā§, āĻĒā§āϰāĻā§āϏāĻŋ āĻā§āĻāĻžāĻŦā§ āĻā§āϰā§āϝāĻžāĻĢāĻŋāĻ āĻĒāϰāĻŋāĻāĻžāϞāύāĻž āĻāϰ⧠āϤāĻž āĻŽā§āϞā§āϝāĻžāϝāĻŧāύ āĻāϰāĻžāϰ āĻāύā§āϝ āĻāĻāĻŋ āϝāĻĨā§āώā§āĻ āĻŦāϞ⧠āĻŽāύ⧠āĻšāĻā§āĻā§āĨ¤
āĻāĻŽāϰāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰā§āϰ āĻāĻā§ āϞā§āĻĄ āĻā§āϏā§āĻāĻŋāĻāĻ āĻāϰā§āĻāĻŋāĨ¤ āύā§āĻā§āϰ āĻĢāϞāĻžāĻĢāϞ:
wrk -t50 -c1000 -d360s 'https://esni-rev-proxy.npw:443' --timeout 15s
Running 6m test @ https://esni-rev-proxy.npw:443
50 threads and 1000 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 1.77s 1.21s 7.20s 65.43%
Req/Sec 13.78 8.84 140.00 83.70%
206357 requests in 6.00m, 6.08GB read
Requests/sec: 573.07
Transfer/sec: 17.28MB
āĻāĻŽāϰāĻž ESNI āĻŦāĻŋāĻĒāϰā§āϤ āĻĒā§āϰāĻā§āϏāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻāĻŦāĻ āĻāĻžāĻĄāĻŧāĻž āϏā§āĻāĻŋāĻŽā§āϰ āϤā§āϞāύāĻž āĻāϰāĻžāϰ āĻāύā§āϝ āϏāĻŽā§āĻĒā§āϰā§āĻŖāϰā§āĻĒā§ āĻā§āĻŖāĻāϤ āϞā§āĻĄ āĻĒāϰā§āĻā§āώāĻž āĻāĻžāϞāĻŋāϝāĻŧā§āĻāĻŋāĨ¤ āĻŽāϧā§āϝāĻŦāϰā§āϤ⧠āĻāĻĒāĻžāĻĻāĻžāύāĻā§āϞāĻŋāϤ⧠"āĻšāϏā§āϤāĻā§āώā§āĻĒ" āĻĻā§āϰ āĻāϰāĻžāϰ āĻāύā§āϝ āĻāĻŽāϰāĻž āϏā§āĻĨāĻžāύā§āϝāĻŧāĻāĻžāĻŦā§ āĻā§āϰā§āϝāĻžāĻĢāĻŋāĻ "āĻĸāĻžāϞāĻž" āĻāϰā§āĻāĻŋāĨ¤
āϏā§āϤāϰāĻžāĻ, ESNI āϏāĻŽāϰā§āĻĨāύ āĻāĻŦāĻ HTTP āĻĨā§āĻā§ āĻāĻĒāϏā§āĻā§āϰāĻŋāĻŽā§ āĻĒā§āϰāĻā§āϏāĻŋ āĻāϰāĻžāϰ āϏāĻžāĻĨā§, āĻāĻŽāϰāĻž āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāϰāĻŖ āĻĨā§āĻā§ āĻĒā§āϰāĻžāϝāĻŧ ~550 rps āĻĒā§āϝāĻŧā§āĻāĻŋ, ESNI āĻŦāĻŋāĻĒāϰā§āϤ āĻĒā§āϰāĻā§āϏāĻŋāϰ āĻāĻĄāĻŧ CPU/RAM āĻāϰāĻ āϏāĻš:
- ā§Žā§Ļ% āϏāĻŋāĻĒāĻŋāĻāĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ (ā§ĒāĻāĻŋ āĻāĻŋ-āϏāĻŋāĻĒāĻŋāĻāĻ, ā§Ē āĻāĻŋāĻŦāĻŋ āϰâā§āϝāĻžāĻŽ āĻšā§āϏā§āĻ) Linux)
- 130 āĻāĻŽāĻŦāĻŋ āĻŽā§āĻŽ āĻāϰāĻāϏāĻāϏ

āϤā§āϞāύāĻž āĻāϰāĻžāϰ āĻāύā§āϝ, TLS (HTTP āĻĒā§āϰā§āĻā§āĻāϞ) āĻāĻžāĻĄāĻŧāĻžāĻ āĻāĻāĻ nginx āĻāĻĒāϏā§āĻā§āϰāĻŋāĻŽā§āϰ āĻāύā§āϝ RPS āĻšāϞ ~ 1100:
wrk -t50 -c1000 -d360s 'http://lb.npw:80' â-timeout 15s
Running 6m test @ http://lb.npw:80
50 threads and 1000 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 1.11s 2.30s 15.00s 90.94%
Req/Sec 23.25 13.55 282.00 79.25%
393093 requests in 6.00m, 11.35GB read
Socket errors: connect 0, read 0, write 0, timeout 9555
Non-2xx or 3xx responses: 8111
Requests/sec: 1091.62
Transfer/sec: 32.27MB
āĻāĻžāĻāĻŽāĻāĻāĻā§āϰ āĻāĻĒāϏā§āĻĨāĻŋāϤāĻŋ āϰāĻŋāϏā§āϰā§āϏā§āϰ āĻ āĻāĻžāĻŦ āύāĻŋāϰā§āĻĻā§āĻļ āĻāϰ⧠(āĻāĻŽāϰāĻž ā§ĒāĻāĻŋ vCPU, ā§Ē āĻāĻŋāĻŦāĻŋ āϰâā§āϝāĻžāĻŽā§āϰ āĻšā§āϏā§āĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āĻāĻŋ, Linux), āĻāĻŦāĻ āĻĒā§āϰāĻā§āϤāĻĒāĻā§āώ⧠āϏāĻŽā§āĻāĻžāĻŦā§āϝ RPS āĻāϰāĻ āĻŦā§āĻļāĻŋ (āĻāĻŽāϰāĻž āĻāϰāĻ āĻļāĻā§āϤāĻŋāĻļāĻžāϞ⧠āϰāĻŋāϏā§āϰā§āϏāĻā§āϞāĻŋāϤ⧠⧍ā§ā§Ļā§Ļ RPS āĻĒāϰā§āϝāύā§āϤ āĻŽāĻžāύ āĻĒā§āϝāĻŧā§āĻāĻŋ)āĨ¤
āĻāĻĒāϏāĻāĻšāĻžāϰā§, āĻāĻŽāĻŋ āύā§āĻ āϝ⧠ESNI āĻĒā§āϰāϝā§āĻā§āϤāĻŋ āĻŦā§āĻļ āĻāĻļāĻžāĻĒā§āϰāĻĻ āĻĻā§āĻāĻžāϝāĻŧāĨ¤ āĻāĻāύāĻ āĻ
āύā§āĻāĻā§āϞāĻŋ āĻā§āϞāĻž āĻĒā§āϰāĻļā§āύ āϰāϝāĻŧā§āĻā§, āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ, DNS-āĻ āϏāϰā§āĻŦāĻāύā§āύ ESNI āĻā§ āϏāĻāϰāĻā§āώāĻŖ āĻāϰāĻžāϰ āĻāĻŦāĻ ESNI āĻā§āĻā§āϞāĻŋ āĻā§āϰāĻžāύā§āϰ āϏāĻŽāϏā§āϝāĻžāĻā§āϞāĻŋ - āĻāĻ āϏāĻŽāϏā§āϝāĻžāĻā§āϞāĻŋ āϏāĻā§āϰāĻŋāϝāĻŧāĻāĻžāĻŦā§ āĻāϞā§āĻāύāĻž āĻāϰāĻž āĻšāĻā§āĻā§ āĻāĻŦāĻ ESNI āĻāϏāĻĄāĻŧāĻžāϰ āϏāϰā§āĻŦāĻļā§āώ āϏāĻāϏā§āĻāϰāĻŖ (āϞā§āĻāĻžāϰ āϏāĻŽāϝāĻŧ) āĻāϤāĻŋāĻŽāϧā§āϝā§āĻ āϰāϝāĻŧā§āĻā§ .
āĻāϤā§āϏ: www.habr.com
