Мо хидматро аз Cloudflare дар суроғаҳои 1.1.1.1 ва 1.0.0.1 пешвоз мегирем, ё "рафъи ҷамъиятии DNS расидааст!"

Мо хидматро аз Cloudflare дар суроғаҳои 1.1.1.1 ва 1.0.0.1 пешвоз мегирем, ё "рафъи ҷамъиятии DNS расидааст!"

Ширкати Cloudflare муаррифӣ кард DNS ҷамъиятӣ дар суроғаҳо:

  • 1.1.1.1
  • 1.0.0.1
  • 2606: 4700: 4700 1111 ::
  • 2606: 4700: 4700 1001 ::

Гуфта мешавад, ки сиёсат "аввал махфият" аст, то корбарон дар бораи мундариҷаи дархостҳои худ оромӣ дошта бошанд.

Хизматрасонӣ аз он ҷолиб аст, ки ба ғайр аз DNS муқаррарӣ, он қобилияти истифодаи технологияҳоро фароҳам меорад DNS-бар-TLS и DNS-бар-HTTPS, ки провайдерҳоро аз гӯш кардани дархостҳои шумо дар роҳи дархостҳо пешгирӣ мекунад ва омор ҷамъ кунед, назорат кунед, таблиғро идора кунед. Cloudflare иддао дорад, ки санаи эълон (1 апрели соли 2018 ё 04/01 дар нотаҳои амрикоӣ) тасодуфан интихоб нашудааст: кадом рӯзи дигари сол "чор воҳид" пешниҳод карда мешавад?

Азбаски шунавандагони Ҳабр аз ҷиҳати техникӣ донишманданд, бахши анъанавии "чаро ба шумо DNS лозим аст?" Ман онро дар охири мақола мегузорам, аммо дар ин ҷо ман чизҳои бештар муфидро баён мекунам:

Чӣ тавр истифода бурдани хидмати нав?

Оддӣтарин чиз ин аст, ки суроғаҳои сервери DNS-и дар боло зикршударо дар муштарии DNS-и худ (ё ҳамчун боло дар танзимоти сервери маҳаллии DNS истифода мебаред) нишон диҳед. Оё иваз кардани арзишҳои муқаррарӣ маъно дорад Google DNS (8.8.8.8, ва ғайра), ё каме камтар маъмул Серверҳои ҷамъиятии DNS Yandex (77.88.8.8 ва дигарон ба монанди онҳо) ба серверҳои Cloudflare - онҳо барои шумо қарор хоҳанд дод, аммо барои шурӯъкунандагон гап мезанад ҷадвали суръати посух, ки мувофиқи он Cloudflare нисбат ба ҳама рақибон тезтар аст (ман фаҳмонам: андозагирӣ аз ҷониби хидмати тарафи сеюм гирифта шудааст ва суръат ба муштарии мушаххас, албатта, метавонад фарқ кунад).

Мо хидматро аз Cloudflare дар суроғаҳои 1.1.1.1 ва 1.0.0.1 пешвоз мегирем, ё "рафъи ҷамъиятии DNS расидааст!"

Кор бо шеваҳои нав, ки дархост ба сервер тавассути пайвасти рамзгузоришуда парвоз мекунад (воқеан, посух тавассути он баргардонида мешавад), DNS-over-TLS ва DNS-over-HTTPS, хеле ҷолибтар аст. Мутаассифона, онҳо "аз қуттӣ" дастгирӣ намешаванд (муаллифон боварӣ доранд, ки ин "ҳанӯз" аст), аммо ташкили кори онҳо дар нармафзори шумо (ё ҳатто дар сахтафзори шумо) душвор нест:

DNS тавассути HTTPs (DoH)

Тавре ки аз ном бармеояд, муошират тавассути канали HTTPS сурат мегирад, ки маънои онро дорад

  1. мавҷудияти нуқтаи фуруд (нуқтаи ниҳоӣ) - он дар суроға ҷойгир аст https://cloudflare-dns.com/dns-queryва
  2. муштарӣ, ки метавонад дархост фиристад ва посух бигирад.

Дархостҳо метавонанд ё дар формати Wireformat DNS бошад, ки дар RFC1035 (бо истифода аз усулҳои POST ва GET HTTP фиристода мешавад) ё дар формати JSON (бо истифода аз усули GET HTTP). Барои ман шахсан идеяи қабули дархостҳои DNS тавассути дархостҳои HTTP ғайричашмдошт менамуд, аммо дар он як донаи оқилона мавҷуд аст: чунин дархост аз бисёр системаҳои филтркунии трафик мегузарад, таҳлили ҷавобҳо хеле содда аст ва тавлиди дархостҳо боз ҳам осонтар аст. Китобхонаҳо ва протоколҳои муқаррарӣ барои амният масъуланд.

Намунаҳоро мустақиман аз ҳуҷҷатҳо дархост кунед:

Дархости GET дар формати DNS Wireformat

$ curl -v "https://cloudflare-dns.com/dns-query?ct=application/dns-udpwireformat&dns=q80BAAABAAAAAAAAA3d3dwdleGFtcGxlA2NvbQAAAQAB" | hexdump
* Using HTTP2, server supports multi-use
* Connection state changed (HTTP/2 confirmed)
* Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0
* Using Stream ID: 1 (easy handle 0x7f968700a400)
GET /dns-query?ct=application/dns-udpwireformat&dns=q80BAAABAAAAAAAAA3d3dwdleGFtcGxlA2NvbQAAAQAB HTTP/2
Host: cloudflare-dns.com
User-Agent: curl/7.54.0
Accept: */*

* Connection state changed (MAX_CONCURRENT_STREAMS updated)!
HTTP/2 200
date: Fri, 23 Mar 2018 05:14:02 GMT
content-type: application/dns-udpwireformat
content-length: 49
cache-control: max-age=0
set-cookie: __cfduid=dd1fb65f0185fadf50bbb6cd14ecbc5b01521782042; expires=Sat, 23-Mar-19 05:14:02 GMT; path=/; domain=.cloudflare.com; HttpOnly
server: cloudflare-nginx
cf-ray: 3ffe69838a418c4c-SFO-DOG

{ [49 bytes data]
100    49  100    49    0     0    493      0 --:--:-- --:--:-- --:--:--   494
* Connection #0 to host cloudflare-dns.com left intact
0000000 ab cd 81 80 00 01 00 01 00 00 00 00 03 77 77 77
0000010 07 65 78 61 6d 70 6c 65 03 63 6f 6d 00 00 01 00
0000020 01 c0 0c 00 01 00 01 00 00 0a 8b 00 04 5d b8 d8
0000030 22
0000031

Дархости POST дар формати DNS Wireformat

$ echo -n 'q80BAAABAAAAAAAAA3d3dwdleGFtcGxlA2NvbQAAAQAB' | base64 -D | curl -H 'Content-Type: application/dns-udpwireformat' --data-binary @- https://cloudflare-dns.com/dns-query -o - | hexdump

{ [49 bytes data]
100    49  100    49    0     0    493      0 --:--:-- --:--:-- --:--:--   494
* Connection #0 to host cloudflare-dns.com left intact
0000000 ab cd 81 80 00 01 00 01 00 00 00 00 03 77 77 77
0000010 07 65 78 61 6d 70 6c 65 03 63 6f 6d 00 00 01 00
0000020 01 c0 0c 00 01 00 01 00 00 0a 8b 00 04 5d b8 d8
0000030 22
0000031

Худи ҳамон, аммо бо истифода аз JSON

$ curl 'https://cloudflare-dns.com/dns-query?ct=application/dns-json&name=example.com&type=AAAA'

{
  "Status": 0,
  "TC": false,
  "RD": true,
  "RA": true,
  "AD": true,
  "CD": false,
  "Question": [
    {
      "name": "example.com.",
      "type": 1
    }
  ],
  "Answer": [
    {
      "name": "example.com.",
      "type": 1,
      "TTL": 1069,
      "data": "93.184.216.34"
    }
  ]
}

Аён аст, ки роутери хонагии нодир (агар ҳадди аққал як) метавонад бо DNS ин тавр кор кунад, аммо ин маънои онро надорад, ки дастгирӣ фардо пайдо нахоҳад шуд - ва ҷолиб он аст, ки дар ин ҷо мо метавонем кор бо DNS-ро дар замимаи худ комилан амалӣ кунем (чун аллакай аллакай). Mozilla-ро месозад, танҳо дар серверҳои Cloudflare).

DNS бар TLS

Бо нобаёнӣ, дархостҳои DNS бе рамзгузорӣ интиқол дода мешаванд. DNS тавассути TLS роҳи фиристодани онҳо тавассути пайвасти бехатар аст. Cloudflare DNS-ро тавассути TLS дар порти стандартии 853 мувофиқи муқарраршуда дастгирӣ мекунад RFC7858. Ин сертификатеро истифода мебарад, ки барои мизбони cloudflare-dns.com дода шудааст, TLS 1.2 ва TLS 1.3 дастгирӣ карда мешавад.

Пайвастшавӣ ва кор аз рӯи протокол чунин аст:

  • Пеш аз таъсис додани пайвасти DNS, муштарӣ як хэши SHA64-и рамзгузоришудаи base256-ро аз сертификати TLS-и cloudflare-dns.com (бо номи SPKI) нигоҳ медорад.
  • Мизоҷи DNS ба cloudflare-dns.com:853 пайвасти TCP муқаррар мекунад
  • Мизоҷи DNS дастфишори TLS-ро оғоз мекунад
  • Дар ҷараёни дастфишори TLS, мизбони cloudflare-dns.com сертификати TLS-и худро пешниҳод мекунад.
  • Пас аз таъсиси пайвасти TLS, муштарии DNS метавонад дархостҳои DNS-ро тавассути канали амн фиристад, ки аз гӯш кардани дархостҳо ва посухҳо ва қаллобӣ пешгирӣ мекунад.
  • Ҳама дархостҳои DNS, ки тавассути пайвасти TLS фиристода мешаванд, бояд ба фиристодани DNS тавассути TCP.

Намунаи дархост тавассути DNS тавассути TLS:

$ kdig -d @1.1.1.1 +tls-ca +tls-host=cloudflare-dns.com  example.com
;; DEBUG: Querying for owner(example.com.), class(1), type(1), server(1.1.1.1), port(853), protocol(TCP)
;; DEBUG: TLS, imported 170 system certificates
;; DEBUG: TLS, received certificate hierarchy:
;; DEBUG:  #1, C=US,ST=CA,L=San Francisco,O=Cloudflare, Inc.,CN=*.cloudflare-dns.com
;; DEBUG:      SHA-256 PIN: yioEpqeR4WtDwE9YxNVnCEkTxIjx6EEIwFSQW+lJsbc=
;; DEBUG:  #2, C=US,O=DigiCert Inc,CN=DigiCert ECC Secure Server CA
;; DEBUG:      SHA-256 PIN: PZXN3lRAy+8tBKk2Ox6F7jIlnzr2Yzmwqc3JnyfXoCw=
;; DEBUG: TLS, skipping certificate PIN check
;; DEBUG: TLS, The certificate is trusted.
;; TLS session (TLS1.2)-(ECDHE-ECDSA-SECP256R1)-(AES-256-GCM)
;; ->>HEADER<<- opcode: QUERY; status: NOERROR; id: 58548
;; Flags: qr rd ra; QUERY: 1; ANSWER: 1; AUTHORITY: 0; ADDITIONAL: 1

;; EDNS PSEUDOSECTION:
;; Version: 0; flags: ; UDP size: 1536 B; ext-rcode: NOERROR
;; PADDING: 408 B

;; QUESTION SECTION:
;; example.com.             IN  A

;; ANSWER SECTION:
example.com.            2347    IN  A   93.184.216.34

;; Received 468 B
;; Time 2018-03-31 15:20:57 PDT
;; From 1.1.1.1@853(TCP) in 12.6 ms

Чунин ба назар мерасад, ки ин хосият барои серверҳои маҳаллии DNS, ки ба эҳтиёҷоти шабакаи маҳаллӣ ё як корбари ягона хидмат мекунанд, беҳтарин кор мекунад. Дуруст аст, ки бо дастгирии стандарт он қадар хуб нест, аммо - биёед умедворем!

Ду калима фаҳмонд, ки сӯҳбат дар бораи чӣ меравад

Ихтисораи DNS маънои хидмати номи домейнро дорад (ба ҳамин тариқ гуфтани "хизматрасонии DNS" то ҳадде зиёдатист, ихтисора аллакай калимаи "хизматрасониро" дар бар мегирад) ва барои ҳалли як вазифаи оддӣ истифода мешавад - барои фаҳмидани кадом суроғаи IP номи ҳост. Ҳар дафъае, ки шахс истинодро клик мекунад ё суроғаро дар сатри суроғаҳои браузер ворид мекунад (бигӯед, чизе монанди "https://habrahabr.ru/post/346430/"), компютери инсонӣ кӯшиш мекунад, ки бифаҳмад, ки кадом сервер барои гирифтани мундариҷаи саҳифа дархост фиристад. Дар мавриди habrahabr.ru, посух аз DNS дорои нишони суроғаи IP-сервери веб: 178.248.237.68 ва он гоҳ браузер аллакай кӯшиш мекунад, ки бо сервер бо суроғаи IP-и мушаххас тамос гирад.

Дар навбати худ, сервери DNS бо гирифтани дархости "адреси IP-и ҳост бо номи habrahabr.ru чист?" муайян мекунад, ки оё вай дар бораи хости зикршуда чизе медонад. Дар акси ҳол, он ба дигар серверҳои DNS дар ҷаҳон дархост мекунад ва қадам ба қадам кӯшиш мекунад, ки ҷавоби саволи додашударо фаҳмад. Дар натиҷа, ҳангоми дарёфти ҷавоби ниҳоӣ, маълумоти ёфтшуда ба муштарӣ фиристода мешавад, ки то ҳол онҳоро интизор аст ва инчунин он дар кэши худи сервери DNS нигоҳ дошта мешавад, ки ба шумо имкон медиҳад, ки дафъаи оянда ба саволи шабеҳ тезтар ҷавоб диҳед.

Мушкилоти умумӣ дар он аст, ки аввалан, маълумоти дархости DNS ба таври равшан интиқол дода мешавад (ки ба ҳар касе, ки ба ҷараёни трафик дастрасӣ дорад, имкон медиҳад, ки дархостҳои DNS ва посухҳои онҳоро ҷудо кунад ва сипас онҳоро барои мақсадҳои худ таҳлил кунад; ин медиҳад қобилияти ҳадафи таблиғоти дақиқ барои муштарии DNS, ки хеле зиёд аст!). Сониян, баъзе провайдерҳо (мо ангуштонро нишон намедиҳем, аммо хурдтаринҳо) одатан ба ҷои ин ё он саҳифаи дархостшуда таблиғ нишон медиҳанд (ки хеле содда иҷро карда мешавад: ба ҷои суроғаи IP-и муайяншуда барои дархости habranabr.ru номи мизбон, шахси тасодуфӣ Ҳамин тариқ, суроғаи веб-сервери провайдер баргардонида мешавад, ки дар он саҳифаи дорои таблиғот пешниҳод карда мешавад). Сеюм, провайдерҳои дастрасӣ ба Интернет вуҷуд доранд, ки механизми иҷрои талаботи бастани сайтҳои алоҳидаро тавассути иваз кардани ҷавобҳои дурусти DNS дар бораи суроғаҳои IP-ресурсҳои интернетии басташуда бо суроғаи IP-и сервери худ, ки дорои саҳифаҳои ноустувор мебошанд (дар натиҷа, дастрасӣ ба чунин сайтҳо ба таври назаррас мураккабтар) ё ба суроғаи сервери прокси шумо, ки филтрро иҷро мекунад.

Эҳтимол ин бояд акс аз сайт бошад. http://1.1.1.1/, барои тавсифи пайвастшавӣ ба хидмат истифода мешавад. Чунин ба назар мерасад, ки муаллифон ба сифати DNS-и худ комилан итминон доранд (аммо, аз Cloudflare чизи дигареро интизор шудан душвор аст):

Мо хидматро аз Cloudflare дар суроғаҳои 1.1.1.1 ва 1.0.0.1 пешвоз мегирем, ё "рафъи ҷамъиятии DNS расидааст!"

Cloudflare, созандаи хидматро пурра фаҳмидан мумкин аст: онҳо нони худро аз ҳисоби нигоҳдорӣ ва рушди яке аз шабакаҳои маъмултарини CDN дар ҷаҳон ба даст меоранд (ки вазифаҳо на танҳо паҳн кардани мундариҷа, балки инчунин хостинги минтақаҳои DNS-ро дар бар мегиранд) ва аз сабаби он. хоҳиши онҳо, ки нагз намедонад, ба онҳо таълим диҳед ки онхо намедонанд, ба он ба куҷо рафтан дар шабакаи ҷаҳонӣ аксар вақт аз бастани суроғаҳои серверҳои худ азият мекашанд нагуем, ки кй - Ҳамин тавр, доштани DNS, ки аз "фарёдҳо, ҳуштакҳо ва скриптҳо" таъсир накунад, барои ширкат маънои камтар ба тиҷорати онҳо дорад. Ва бартариҳои техникӣ (як ночиз, аммо хуб: махсусан, барои муштариёни DNS Cloudflare ройгон, навсозии сабтҳои DNS-и захираҳои дар серверҳои DNS ширкат ҷойгиршуда фаврӣ хоҳанд буд) истифодаи хидмати дар ин паём тавсифшударо боз ҳам ҷолибтар мегардонад.

Танҳо корбарони сабтиномшуда метавонанд дар пурсиш иштирок кунанд. даромад, Лутфан.

Оё шумо аз хидмати нав истифода мебаред?

  • Бале, танҳо бо нишон додани он дар OS ва/ё дар роутер

  • Бале, ва ман протоколҳои навро истифода хоҳам кард (DNS тавассути HTTPs ва DNS тавассути TLS)

  • Не, ман серверҳои ҷории кофӣ дорам (ин провайдери ҷамъиятӣ аст: Google, Yandex ва ғайра).

  • Не, ман ҳатто намедонам, ки ман ҳоло чӣ истифода мекунам

  • Ман ба онҳо DNS рекурсивии худро бо нақби SSL истифода мебарам

693 корбар овоз доданд. 191 корбар худдорӣ кард.

Манбаъ: will.com

Илова Эзоҳ