Մենք հանդիպում ենք 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-over-TLS и DNS- ից ավելի HTTPS, ինչը մեծապես կխանգարի պրովայդերներին գաղտնալսել ձեր հարցումները հարցումների ճանապարհին - և հավաքել վիճակագրություն, վերահսկել, կառավարել գովազդը: Cloudflare-ը պնդում է, որ հայտարարության ամսաթիվը (ապրիլի 1, 2018 կամ 04/01 ամերիկյան նշումով) պատահական չի ընտրվել. տարվա ո՞ր օրն է ներկայացվելու «չորս միավորները»:

Քանի որ Habr-ի լսարանը տեխնիկապես խելամիտ է, ավանդական «Ինչու՞ է քեզ անհրաժեշտ DNS» բաժինը: Գրառման վերջում կդնեմ, բայց այստեղ գործնականում ավելի օգտակար բաներ նշեմ.

Ինչպե՞ս օգտվել նոր ծառայությունից:

Ամենապարզն այն է, որ նշեք վերը նշված DNS սերվերի հասցեները ձեր DNS հաճախորդում (կամ ձեր օգտագործած տեղական DNS սերվերի կարգավորումներում որպես վերին հոսանքով): Արդյոք իմաստ ունի փոխարինել սովորական արժեքները Google DNS (8.8.8.8 և այլն), կամ մի փոքր ավելի քիչ տարածված Yandex հանրային DNS սերվերներ (77.88.8.8 և նրանց նման այլք) Cloudflare-ի սերվերներին. նրանք կորոշեն ձեր փոխարեն, բայց խոսում են սկսնակների համար ցուցակագրել արձագանքման արագությունը, ըստ որի Cloudflare-ն ավելի արագ է, քան բոլոր մրցակիցները (ես կհստակեցնեմ. չափումները կատարվել են երրորդ կողմի ծառայության կողմից, և կոնկրետ հաճախորդի արագությունը, իհարկե, կարող է տարբերվել):

Մենք հանդիպում ենք Cloudflare-ի ծառայությանը 1.1.1.1 և 1.0.0.1 հասցեներով, կամ «հանրային DNS դարակը հասել է»:

Շատ ավելի հետաքրքիր է աշխատել նոր ռեժիմների հետ, որոնց դեպքում հարցումը սերվեր է թռչում գաղտնագրված կապով (իրականում պատասխանը վերադարձվում է դրա միջոցով), նշված DNS-over-TLS և DNS-over-HTTPS: Ցավոք, դրանք չեն աջակցվում «առանց տուփի» (հեղինակները կարծում են, որ սա «դեռևս» է), բայց դժվար չէ նրանց աշխատանքը կազմակերպել ձեր ծրագրաշարում (կամ նույնիսկ ձեր սարքաշարում).

DNS HTTP-ների միջոցով (DoH)

Ինչպես անունն է հուշում, հաղորդակցությունը տեղի է ունենում HTTPS ալիքով, ինչը նշանակում է

  1. վայրէջքի կետի (վերջնակետի) առկայությունը - այն գտնվում է հասցեում https://cloudflare-dns.com/dns-queryԻսկ
  2. հաճախորդ, որը կարող է հարցումներ ուղարկել և ստանալ պատասխաններ:

Հարցումները կարող են լինել նաև DNS Wireformat ձևաչափով, որը սահմանված է այստեղ RFC1035- ը (ուղարկվում է POST և GET HTTP մեթոդներով) կամ JSON ձևաչափով (GET HTTP մեթոդի օգտագործմամբ): Անձամբ ինձ համար HTTP հարցումների միջոցով DNS հարցումներ կատարելու գաղափարը անսպասելի էր թվում, բայց դրա մեջ կա ռացիոնալ հատիկ. նման հարցումը կանցնի բազմաթիվ երթևեկության զտման համակարգեր, վերլուծական պատասխանները բավականին պարզ են, և հարցումներ ստեղծելն ավելի հեշտ է: Անվտանգության համար պատասխանատու են սովորական գրադարաններն ու արձանագրությունները:

Խնդրեք օրինակներ՝ ուղղակի փաստաթղթերից.

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 կապ հաստատելը, հաճախորդը պահում է cloudflare-dns.com-ի TLS վկայագրի base64 կոդավորված SHA256 հեշը (կոչվում է SPKI)
  • DNS հաճախորդը TCP կապ է հաստատում cloudflare-dns.com:853-ի հետ
  • DNS հաճախորդը սկսում է TLS ձեռքսեղմում
  • TLS ձեռքսեղմման գործընթացի ընթացքում cloudflare-dns.com հոսթը ներկայացնում է իր TLS վկայականը:
  • TLS կապի հաստատումից հետո DNS հաճախորդը կարող է ուղարկել DNS հարցումներ անվտանգ ալիքով, ինչը թույլ չի տալիս գաղտնալսել հարցումները և պատասխանները:
  • TLS կապով ուղարկված բոլոր DNS հարցումները պետք է համապատասխանեն ուղարկելով DNS TCP-ով.

TLS-ի միջոցով DNS-ի միջոցով հարցման օրինակ.

$ 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 հապավումը նշանակում է Domain Name Service (այսպես՝ «DNS ծառայություն» ասելը որոշ չափով ավելորդ է, հապավումն արդեն պարունակում է «ծառայություն» բառը) և օգտագործվում է պարզ առաջադրանք լուծելու համար՝ հասկանալու համար, թե ինչ IP հասցե ունի հյուրընկալողի որոշակի անունը: Ամեն անգամ, երբ մարդը սեղմում է հղման վրա կամ մուտքագրում է հասցե բրաուզերի հասցեագոտում (ասենք, նման բան «https://habrahabr.ru/post/346430/«), մարդու համակարգիչը փորձում է պարզել, թե որ սերվերին պետք է հարցում ուղարկի էջի բովանդակությունը ստանալու համար: Habrahabr.ru-ի դեպքում DNS-ի պատասխանը կպարունակի վեբ սերվերի IP հասցեի նշում՝ 178.248.237.68, այնուհետև բրաուզերն արդեն կփորձի կապվել սերվերի հետ նշված IP հասցեով:

Իր հերթին, DNS սերվերը, ստանալով հարցումը «որն է habrahabr.ru անունով հոսթի IP հասցեն», որոշում է, թե արդյոք նա որևէ բան գիտի նշված հոսթի մասին: Եթե ​​ոչ, ապա այն հարցում է կատարում աշխարհի այլ DNS սերվերներին և քայլ առ քայլ փորձում է պարզել տրված հարցի պատասխանը: Արդյունքում, վերջնական պատասխանը գտնելուն պես, գտնված տվյալները ուղարկվում են հաճախորդին, որը դեռ սպասում է նրանց, գումարած այն պահվում է հենց DNS սերվերի քեշում, ինչը թույլ կտա ձեզ հաջորդ անգամ շատ ավելի արագ պատասխանել նմանատիպ հարցին:

Ընդհանուր խնդիրն այն է, որ, նախ, DNS հարցման տվյալները փոխանցվում են թափանցիկ (որը երթևեկության հոսքին հասանելիություն ունեցողին հնարավորություն է տալիս մեկուսացնել DNS հարցումները և ստացած պատասխանները, այնուհետև դրանք վերլուծել իրենց նպատակների համար. DNS հաճախորդի համար գովազդները ճշգրտությամբ թիրախավորելու ունակություն, ինչը բավականին շատ է): Երկրորդ, որոշ պրովայդերներ (մենք մատով ցույց չենք տա, բայց ոչ ամենափոքրը) հակված են գովազդ ցուցադրել այս կամ այն ​​պահանջվող էջի փոխարեն (որն իրականացվում է բավականին պարզ. habranabr.ru-ի կողմից հարցման համար նշված IP հասցեի փոխարեն): հյուրընկալողի անուն, պատահական մարդ Այսպիսով, վերադարձվում է պրովայդերի վեբ սերվերի հասցեն, որտեղ մատուցվում է գովազդ պարունակող էջը): Երրորդ, կան ինտերնետ հասանելիության պրովայդերներ, որոնք իրականացնում են առանձին կայքերի արգելափակման պահանջների կատարման մեխանիզմ՝ արգելափակված վեբ ռեսուրսների IP հասցեների վերաբերյալ ճիշտ DNS պատասխանները փոխարինելով իրենց սերվերի 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 գրառումների թարմացումը ակնթարթորեն կլինի) ավելի հետաքրքիր կդարձնեն գրառման մեջ նկարագրված ծառայության օգտագործումը:

Հարցմանը կարող են մասնակցել միայն գրանցված օգտվողները։ Մուտք գործել, խնդրում եմ:

Կօգտվե՞ք նոր ծառայությունից։

  • Այո, պարզապես նշելով այն ՕՀ-ում և/կամ երթուղիչում

  • Այո, և ես կօգտագործեմ նոր արձանագրություններ (DNS՝ HTTP-ի վրա և DNS՝ TLS-ի վրա)

  • Ոչ, ես ունեմ բավականաչափ ընթացիկ սերվերներ (սա հանրային մատակարար է՝ Google, Yandex և այլն)

  • Ոչ, ես նույնիսկ չգիտեմ, թե ինչ եմ օգտագործում այս պահին

  • Ես օգտագործում եմ իմ ռեկուրսիվ DNS-ը SSL թունելով նրանց համար

Քվեարկել է 693 օգտատեր։ 191 օգտատեր ձեռնպահ է մնացել։

Source: www.habr.com

Добавить комментарий