рд╣реЕрд▓реЛ рд╣реЕрдмреНрд░, рдорд╛рдЭреЗ рдирд╛рд╡ рдЗрд▓реНрдпрд╛ рдЖрд╣реЗ, рдореА Exness рдпреЗрдереЗ рдкреНрд▓реЕрдЯрдлреЙрд░реНрдо рдЯреАрдордордзреНрдпреЗ рдХрд╛рдо рдХрд░рддреЛ. рдЖрдордЪреЗ рдЙрддреНрдкрд╛рджрди рд╡рд┐рдХрд╛рд╕ рдХрд╛рд░реНрдпрд╕рдВрдШ рд╡рд╛рдкрд░рдд рдЕрд╕рд▓реЗрд▓реЗ рдореВрд▓рднреВрдд рдкрд╛рдпрд╛рднреВрдд рдШрдЯрдХ рдЖрдореНрд╣реА рд╡рд┐рдХрд╕рд┐рдд рдЖрдгрд┐ рдЕрдВрдорд▓рд╛рдд рдЖрдгрддреЛ.
рдпрд╛ рд▓реЗрдЦрд╛рдд, рдореА рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╡реЗрдмрд╕рд╛рдЗрдЯреНрд╕рдЪреНрдпрд╛ рдкрд╛рдпрд╛рднреВрдд рд╕реБрд╡рд┐рдзрд╛рдВрдордзреНрдпреЗ рдПрдирдХреНрд░рд┐рдкреНрдЯреЗрдб SNI (ESNI) рддрдВрддреНрд░рдЬреНрдЮрд╛рди рд▓рд╛рдЧреВ рдХрд░рдгреНрдпрд╛рдЪрд╛ рдорд╛рдЭрд╛ рдЕрдиреБрднрд╡ рд╢реЗрдЕрд░ рдХрд░реВ рдЗрдЪреНрдЫрд┐рддреЛ.
рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╡реЗрдмрд╕рд╛рдЗрдЯрд╡рд░ рдХрд╛рдо рдХрд░рддрд╛рдирд╛ рдЖрдгрд┐ рдХрдВрдкрдиреАрдиреЗ рд╕реНрд╡реАрдХрд╛рд░рд▓реЗрд▓реНрдпрд╛ рдЕрдВрддрд░реНрдЧрдд рд╕реБрд░рдХреНрд╖рд╛ рдорд╛рдирдХрд╛рдВрдЪреЗ рдкрд╛рд▓рди рдХрд░рддрд╛рдирд╛ рдпрд╛ рддрдВрддреНрд░рдЬреНрдЮрд╛рдирд╛рдЪрд╛ рд╡рд╛рдкрд░ рд╕реБрд░рдХреНрд╖рд┐рддрддреЗрдЪреА рдкрд╛рддрд│реА рд╡рд╛рдврд╡реЗрд▓.
рд╕рд░реНрд╡ рдкреНрд░рдердо, рдореА рд╣реЗ рдирд┐рджрд░реНрд╢рдирд╛рд╕ рдЖрдгреВ рдЗрдЪреНрдЫрд┐рддреЛ рдХреА рддрдВрддреНрд░рдЬреНрдЮрд╛рди рдкреНрд░рдорд╛рдгрд┐рдд рдирд╛рд╣реА рдЖрдгрд┐ рдЕрджреНрдпрд╛рдк рдорд╕реБрджреНрдпрд╛рдд рдЖрд╣реЗ, рдкрд░рдВрддреБ рдХреНрд▓рд╛рдЙрдбрдлреНрд▓реЗрдЕрд░ рдЖрдгрд┐ рдореЛрдЭрд┐рд▓рд╛ рдЖрдзреАрдЪ рддреНрдпрд╛рд╕ рд╕рдорд░реНрдерди рджреЗрддрд╛рдд (рдордзреНрдпреЗ
рд╕рд┐рджреНрдзрд╛рдВрддрд╛рдЪрд╛ рдмрд┐рдЯ
ESNI рд╣рд╛ TLS 1.3 рдкреНрд░реЛрдЯреЛрдХреЙрд▓рдЪрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдЖрд╣реЗ рдЬреЛ TLS рд╣рдБрдбрд╢реЗрдХ "рдХреНрд▓рд╛рдпрдВрдЯ рд╣реЕрд▓реЛ" рд╕рдВрджреЗрд╢рд╛рдордзреНрдпреЗ SNI рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рдирд▓рд╛ рдЕрдиреБрдорддреА рджреЗрддреЛ. ESNI рд╕рдорд░реНрдердирд╛рд╕рд╣ рдХреНрд▓рд╛рдпрдВрдЯ рд╣реЕрд▓реЛ рдХрд╕рд╛ рджрд┐рд╕рддреЛ рддреЗ рдпреЗрдереЗ рдЖрд╣реЗ (рд╕рд╛рдорд╛рдиреНрдп SNI рдРрд╡рдЬреА рдЖрдореНрд╣реА ESNI рдкрд╛рд╣рддреЛ):
ESNI рд╡рд╛рдкрд░рдгреНрдпрд╛рд╕рд╛рдареА, рддреБрдореНрд╣рд╛рд▓рд╛ рддреАрди рдШрдЯрдХрд╛рдВрдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЖрд╣реЗ:
- DNS;
- рдЧреНрд░рд╛рд╣рдХ рд╕рдорд░реНрдерди;
- рд╕рд░реНрд╡реНрд╣рд░ рд╕рд╛рдЗрдб рд╕рдорд░реНрдерди.
DNS
рддреБрдореНрд╣рд╛рд▓рд╛ рджреЛрди DNS рд░реЗрдХреЙрд░реНрдб рдЬреЛрдбрдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ - AрдЖрдгрд┐ TXT (TXT рд░реЗрдХреЙрд░реНрдбрдордзреНрдпреЗ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреА рдЕрд╕рддреЗ рдЬреНрдпрд╛рджреНрд╡рд╛рд░реЗ рдХреНрд▓рд╛рдпрдВрдЯ SNI рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд░реВ рд╢рдХрддреЛ) - рдЦрд╛рд▓реА рдкрд╣рд╛. рдпрд╛рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд, рд╕рдорд░реНрдерди рдЕрд╕рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ DoH (HTTPS рд╡рд░ DNS) рдХрд╛рд░рдг рдЙрдкрд▓рдмреНрдз рдХреНрд▓рд╛рдпрдВрдЯ (рдЦрд╛рд▓реА рдкрд╣рд╛) DoH рд╢рд┐рд╡рд╛рдп ESNI рд╕рдорд░реНрдерди рд╕рдХреНрд╖рдо рдХрд░рдд рдирд╛рд╣реАрдд. рд╣реЗ рддрд╛рд░реНрдХрд┐рдХ рдЖрд╣реЗ, рдХрд╛рд░рдг ESNI рдордзреНрдпреЗ рдЖрдореНрд╣реА рдкреНрд░рд╡реЗрд╢ рдХрд░рдд рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рд╕реНрддреНрд░реЛрддрд╛рдЪреНрдпрд╛ рдирд╛рд╡рд╛рдЪреЗ рдХреВрдЯрдмрджреНрдзреАрдХрд░рдг рд╕реВрдЪрд┐рдд рдХрд░рддреЗ, рдореНрд╣рдгрдЬреЗрдЪ UDP рд╡рд░ DNS рдордзреНрдпреЗ рдкреНрд░рд╡реЗрд╢ рдХрд░рдгреНрдпрд╛рдд рдХрд╛рд╣реА рдЕрд░реНрде рдирд╛рд╣реА. рд╢рд┐рд╡рд╛рдп, рд╡рд╛рдкрд░
рд╕рдзреНрдпрд╛ рдЙрдкрд▓рдмреНрдз рдЖрд╣реЗ
CloudFlare
╨Р рдкреНрд░рд╡реЗрд╢:
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 рд▓рд╛ рд╕рдорд░реНрдерди рджреЗрдгреНрдпрд╛рд╕рд╛рдареА TLS 1.3 рд╡рд╛рдкрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ, рдХрд╛рд░рдг ESNI рд╣рд╛ TLS 1.3 рдЪрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдЖрд╣реЗ.
ESNI рд╕рдорд░реНрдердирд╛рд╕рд╣ рдмреЕрдХрдПрдВрдбрдЪреА рдЪрд╛рдЪрдгреА рдХрд░рдгреНрдпрд╛рдЪреНрдпрд╛ рдЙрджреНрджреЗрд╢рд╛рдиреЗ, рдЖрдореНрд╣реА рдХреНрд▓рд╛рдпрдВрдЯ рдСрди рд▓рд╛рдЧреВ рдХреЗрд▓реЗ go, рдкрдг рддреНрдпрд╛рдмрджреНрджрд▓ рдирдВрддрд░ рдЕрдзрд┐рдХ.
рд╕рд░реНрд╡реНрд╣рд░ рд╕рд╛рдЗрдб рд╕рдорд░реНрдерди
рд╕рдзреНрдпрд╛, ESNI рд▓рд╛ nginx/apache рдЗрддреНрдпрд╛рджреА рд╡реЗрдм рд╕рд░реНрд╡реНрд╣рд░рджреНрд╡рд╛рд░реЗ рд╕рдорд░реНрдерд┐рдд рдирд╛рд╣реА, рдХрд╛рд░рдг рддреЗ TLS рд╕рд╣ OpenSSL/BoringSSL рджреНрд╡рд╛рд░реЗ рдХрд╛рд░реНрдп рдХрд░рддрд╛рдд, рдЬреЗ рдЕрдзрд┐рдХреГрддрдкрдгреЗ ESNI рд▓рд╛ рд╕рдорд░реНрдерди рджреЗрдд рдирд╛рд╣реАрдд.
рдореНрд╣рдгреВрди, рдЖрдореНрд╣реА рдЖрдордЪрд╛ рд╕реНрд╡рддрдГрдЪрд╛ рдлреНрд░рдВрдЯ-рдПрдВрдб рдШрдЯрдХ (ESNI рд░рд┐рд╡реНрд╣рд░реНрд╕ рдкреНрд░реЙрдХреНрд╕реА) рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рдЪрд╛ рдирд┐рд░реНрдгрдп рдШреЗрддрд▓рд╛, рдЬреЛ ESNI рд╕рд╣ TLS 1.3 рдЯрд░реНрдорд┐рдиреЗрд╢рди рдЖрдгрд┐ рдЕрдкрд╕реНрдЯреНрд░реАрдорд╡рд░ рдкреНрд░реЙрдХреНрд╕реА HTTP(S) рд░рд╣рджрд╛рд░реАрд▓рд╛ рд╕рдорд░реНрдерди рджреЗрдИрд▓, рдЬреЗ ESNI рд▓рд╛ рд╕рдорд░реНрдерди рджреЗрдд рдирд╛рд╣реА. рд╣реЗ рдореБрдЦреНрдп рдШрдЯрдХ рди рдмрджрд▓рддрд╛, рдЖрдзреАрдкрд╛рд╕реВрди рдЕрд╕реНрддрд┐рддреНрд╡рд╛рдд рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдкрд╛рдпрд╛рднреВрдд рд╕реБрд╡рд┐рдзрд╛рдВрдордзреНрдпреЗ рддрдВрддреНрд░рдЬреНрдЮрд╛рдирд╛рдЪрд╛ рд╡рд╛рдкрд░ рдХрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддреЗ - рдореНрд╣рдгрдЬреЗ, ESNI рд▓рд╛ рд╕рдорд░реНрдерди рди рджреЗрдгрд╛рд░реЗ рд╡рд░реНрддрдорд╛рди рд╡реЗрдм рд╕рд░реНрд╡реНрд╣рд░ рд╡рд╛рдкрд░рдгреЗ.
рд╕реНрдкрд╖реНрдЯрддреЗрд╕рд╛рдареА, рдпреЗрдереЗ рдПрдХ рдЖрдХреГрддреА рдЖрд╣реЗ:
рдореА рд▓рдХреНрд╖рд╛рдд рдШреЗрддреЛ рдХреА рдкреНрд░реЙрдХреНрд╕реА ESNI рд╢рд┐рд╡рд╛рдп TLS рдХрдиреЗрдХреНрд╢рди рд╕рдВрдкреБрд╖реНрдЯрд╛рдд рдЖрдгрдгреНрдпрд╛рдЪреНрдпрд╛ рдХреНрд╖рдорддреЗрд╕рд╣, ESNI рд╢рд┐рд╡рд╛рдп рдХреНрд▓рд╛рдпрдВрдЯрд▓рд╛ рд╕рдорд░реНрдерди рджреЗрдгреНрдпрд╛рд╕рд╛рдареА рдбрд┐рдЭрд╛рдЗрди рдХреЗрд▓реЗ рд╣реЛрддреЗ. рддрд╕реЗрдЪ, рдЕрдкрд╕реНрдЯреНрд░реАрдорд╕рд╣ рд╕рдВрдкреНрд░реЗрд╖рдг рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдПрдХрддрд░ HTTP рдХрд┐рдВрд╡рд╛ HTTPS рдЕрд╕реВ рд╢рдХрддреЛ рдЬреНрдпрд╛рдЪреА TLS рдЖрд╡реГрддреНрддреА 1.3 рдкреЗрдХреНрд╖рд╛ рдХрдореА рдЕрд╕реЗрд▓ (рдЬрд░ рдЕрдкрд╕реНрдЯреНрд░реАрдо 1.3 рд▓рд╛ рд╕рдорд░реНрдерди рджреЗрдд рдирд╕реЗрд▓). рд╣реА рдпреЛрдЬрдирд╛ рдЬрд╛рд╕реНрддреАрдд рдЬрд╛рд╕реНрдд рд▓рд╡рдЪрд┐рдХрддрд╛ рджреЗрддреЗ.
рд╡рд░ ESNI рд╕рдорд░реНрдердирд╛рдЪреА рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА go рдЖрдореНрд╣реА рдХрдбреВрди рдХрд░реНрдЬ рдШреЗрддрд▓реЗ
ESNI рдХреА рд╡реНрдпреБрддреНрдкрдиреНрди рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдореНрд╣реА рд╡рд╛рдкрд░рд▓реЗ
рдЖрдореНрд╣реА Linux (рдбреЗрдмрд┐рдпрди, рдЕрд▓реНрдкрд╛рдЗрди) рдЖрдгрд┐ MacOS рд╡рд░ рдЧреЛ 1.13 рд╡рд╛рдкрд░реВрди рдмрд┐рд▓реНрдбрдЪреА рдЪрд╛рдЪрдгреА рдХреЗрд▓реА.
рдСрдкрд░реЗрд╢рдирд▓ рд╡реИрд╢рд┐рд╖реНрдЯреНрдпрд╛рдВрдмрджреНрджрд▓ рдХрд╛рд╣реА рд╢рдмреНрдж
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 рд░рд┐рд╡реНрд╣рд░реНрд╕ рдкреНрд░реЙрдХреНрд╕реА рд╡рд╛рдкрд░реВрди рдЖрдгрд┐ рддреНрдпрд╛рд╢рд┐рд╡рд╛рдп рдпреЛрдЬрдиреЗрдЪреА рддреБрд▓рдирд╛ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдкреВрд░реНрдгрдкрдгреЗ рдЧреБрдгрд╛рддреНрдордХ рд▓реЛрдб рдЪрд╛рдЪрдгреА рдХреЗрд▓реА. рдордзреНрдпрд╡рд░реНрддреА рдШрдЯрдХрд╛рдВрдордзреАрд▓ "рд╣рд╕реНрддрдХреНрд╖реЗрдк" рджреВрд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдореНрд╣реА рд╕реНрдерд╛рдирд┐рдХ рдкрд╛рддрд│реАрд╡рд░ рд░рд╣рджрд╛рд░реА "рдУрддрд▓реА".
рддреНрдпрд╛рдореБрд│реЗ, HTTP рд╡рд░реВрди ESNI рд╕рдорд░реНрдерди рдЖрдгрд┐ рдЕрдкрд╕реНрдЯреНрд░реАрдо рдкреНрд░реЙрдХреНрд╕реАрд╕рд╣, рдЖрдореНрд╣рд╛рд▓рд╛ ESNI рд░рд┐рд╡реНрд╣рд░реНрд╕ рдкреНрд░реЙрдХреНрд╕реАрдЪреНрдпрд╛ рд╕рд░рд╛рд╕рд░реА CPU/RAM рд╡рд╛рдкрд░рд╛рд╕рд╣, рдПрдХрд╛ рдкреНрд░рд╕рдВрдЧрд╛рддреВрди рд╕реБрдорд╛рд░реЗ ~550 rps рдорд┐рд│рд╛рд▓реЗ:
- 80% CPU рд╡рд╛рдкрд░ (4 vCPU, 4 GB RAM рд╣реЛрд╕реНрдЯ, Linux)
- 130 MB рдореЗрдо RSS
рддреБрд▓рдиреЗрд╕рд╛рдареА, 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
рдХрд╛рд▓рдмрд╛рд╣реНрдпрддреЗрдЪреА рдЙрдкрд╕реНрдерд┐рддреА рд╕реВрдЪрд┐рдд рдХрд░рддреЗ рдХреА рд╕рдВрд╕рд╛рдзрдирд╛рдВрдЪреА рдХрдорддрд░рддрд╛ рдЖрд╣реЗ (рдЖрдореНрд╣реА 4 vCPUs, 4 GB RAM рд╣реЛрд╕реНрдЯ, Linux рд╡рд╛рдкрд░рд▓реЗ), рдЖрдгрд┐ рдкреНрд░рддреНрдпрдХреНрд╖рд╛рдд рд╕рдВрднрд╛рд╡реНрдп RPS рдЬрд╛рд╕реНрдд рдЖрд╣реЗ (рдЖрдореНрд╣рд╛рд▓рд╛ рдЕрдзрд┐рдХ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рд╕рдВрд╕рд╛рдзрдирд╛рдВрд╡рд░ 2700 RPS рдкрд░реНрдпрдВрддрдЪреЗ рдЖрдХрдбреЗ рдорд┐рд│рд╛рд▓реЗ).
рд╢реЗрд╡рдЯреА, рдореА рд▓рдХреНрд╖рд╛рдд рдареЗрд╡рд╛ рдХреА ESNI рддрдВрддреНрд░рдЬреНрдЮрд╛рди рдЦреВрдк рдЖрд╢рд╛рджрд╛рдпрдХ рджрд┐рд╕рддреЗ. рдЕрдЬреВрдирд╣реА рдмрд░реЗрдЪ рдЦреБрд▓реЗ рдкреНрд░рд╢реНрди рдЖрд╣реЗрдд, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ ESNI рдХреА DNS рдордзреНрдпреЗ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░рдгреЗ рдЖрдгрд┐ ESNI рдХреА рдлрд┐рд░рд╡рдгреЗ - рдпрд╛ рд╕рдорд╕реНрдпрд╛рдВрд╡рд░ рд╕рдХреНрд░рд┐рдпрдкрдгреЗ рдЪрд░реНрдЪрд╛ рдХреЗрд▓реА рдЬрд╛рдд рдЖрд╣реЗ рдЖрдгрд┐ ESNI рдорд╕реБрджреНрдпрд╛рдЪреА рдирд╡реАрдирддрдо рдЖрд╡реГрддреНрддреА (рд▓реЗрдЦрдирд╛рдЪреНрдпрд╛ рд╡реЗрд│реА) рдЖрдзреАрдЪ рдЖрд╣реЗ.
рд╕реНрддреНрд░реЛрдд: www.habr.com