Nou rankontre sèvis Cloudflare nan adrès 1.1.1.1 ak 1.0.0.1, oswa "etajè DNS piblik la rive!"

Nou rankontre sèvis Cloudflare nan adrès 1.1.1.1 ak 1.0.0.1, oswa "etajè DNS piblik la rive!"

Konpayi Cloudflare prezante DNS piblik nan adrès:

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

Yo pretann ke yo itilize yon politik "Konfidansyalite an premye", pou itilizatè yo ka gen asirans sou kontni demann yo.

Sèvis la enteresan paske, anplis DNS abityèl la, li bay opòtinite pou yo sèvi ak teknoloji DNS-sou-TLS и DNS-sou-HTTPS, ki pral anpil anpeche founisè yo koute demann ou yo sou chemen demann lan - ak kolekte estatistik, siveyans, ak jere piblisite. Cloudflare reklame ke dat anons la (1 avril 2018, oswa 04/01 nan notasyon Ameriken) pa te chwazi pa chans: nan ki lòt jou nan ane a "kat inite" ta dwe prezante?

Piske odyans Habr a gen konesans teknik, seksyon tradisyonèl la "Poukisa nou bezwen DNS?" Mwen pral mete li nan fen pòs la, epi isit la mwen pral dekri bagay ki pi itil pratikman:

Ki jan yo sèvi ak nouvo sèvis la?

Bagay ki pi senp la se presize adrès sèvè DNS ki anwo yo nan kliyan DNS ou (oswa kòm yon en nan anviwònman sèvè DNS lokal ou itilize a). Èske li fè sans pou ranplase valè nòmal yo? Google DNS (8.8.8.8, elatriye), oswa yon ti kras mwens komen Yandex sèvè DNS piblik yo (77.88.8.8 ak lòt moun tankou yo) nan serveurs nan Cloudflare - yo pral deside pou ou, men li pale pou yon debutan orè vitès nan repons yo, dapre ki Cloudflare travay pi vit pase tout konpetitè (kite m 'klarifye: mezi yo te fè pa yon sèvis twazyèm pati, ak vitès la nan yon kliyan espesifik, nan kou, ka diferan).

Nou rankontre sèvis Cloudflare nan adrès 1.1.1.1 ak 1.0.0.1, oswa "etajè DNS piblik la rive!"

Li pi enteresan pou travay ak nouvo mòd kote demann lan vole nan sèvè a atravè yon koneksyon chiffres (an reyalite, repons lan retounen atravè li), DNS-sou-TLS mansyone ak DNS-sou-HTTPS. Malerezman, yo pa sipòte soti nan bwat la (otè yo kwè ke sa a se "ankò"), men òganize travay yo nan lojisyèl ou (oswa menm sou pyès ki nan konpitè ou) pa difisil:

DNS sou HTTPs (DoH)

Kòm non an sijere, kominikasyon fèt sou yon kanal HTTPS, ki vle di

  1. prezans nan yon pwen aterisaj (endpoint) - li sitiye nan https://cloudflare-dns.com/dns-query, Ak
  2. yon kliyan ki ka voye demann epi resevwa repons.

Demann yo ka swa nan DNS Wireformat defini nan RFC1035 (yo voye lè l sèvi avèk metòd POST ak GET HTTP), oswa nan fòma JSON (itilize metòd GET HTTP). Pou mwen pèsonèlman, lide pou fè demann DNS atravè demann HTTP te sanble inatandi, men gen yon grenn rasyonèl nan li: yon demann konsa pral pase anpil sistèm filtraj trafik, analiz repons se byen senp, ak jenere demann se menm pi senp. Bibliyotèk abitye ak pwotokòl yo responsab pou sekirite.

Egzanp demann, dirèkteman nan dokiman an:

GET demann nan fòma 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 demann nan 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

Menm bagay la tou, men lè l sèvi avèk 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"
    }
  ]
}

Li evidan, kèk (si genyen) routeurs lakay yo ka travay ak dns tankou sa a, men sa pa vle di ke sipò pa pral parèt demen - epi, enteresan, isit la nou ka fasilman aplike travay ak dns nan aplikasyon nou an (tankou deja pral fè Mozilla, jis sou serveurs Cloudflare).

DNS sou TLS

Pa default, demann DNS yo voye san chifreman. DNS sou TLS se yon fason pou voye yo sou yon koneksyon an sekirite. Cloudflare sipòte DNS sou TLS sou pò estanda 853 jan sa preskri RFC7858. Sa a sèvi ak yon sètifika ki bay pou lame cloudflare-dns.com, TLS 1.2 ak TLS 1.3 yo sipòte.

Etabli yon koneksyon ak travay ak pwotokòl la ale yon bagay tankou sa a:

  • Anvan etabli yon koneksyon ak dns, kliyan an estoke yon hash SHA64 kode baz256 nan sètifika TLS cloudflare-dns.com a (ki rele SPKI)
  • Kliyan DNS la etabli yon koneksyon TCP ak cloudflare-dns.com:853
  • Kliyan DNS inisye pwosedi TLS lanmen
  • Pandan lanmen TLS la, lame cloudflare-dns.com prezante sètifika TLS li.
  • Yon fwa yo etabli koneksyon TLS la, kliyan DNS la ka voye demann DNS sou yon kanal ki an sekirite, ki anpeche ekout ak falsifikasyon nan demann ak repons.
  • Tout demann DNS voye sou yon koneksyon TLS dwe konfòme yo ak spesifikasyon la dapre voye DNS sou TCP.

Egzanp yon demann atravè DNS sou 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

Opsyon sa a sanble pi byen adapte pou sèvè DNS lokal k ap sèvi bezwen yon rezo lokal oswa yon sèl itilizatè. Se vre, sipò pou estanda a pa trè bon, men ann espere!

De mo eksplikasyon sou sa n ap pale a

Abreviyasyon DNS la vle di Sèvis non domèn (donk di "sèvis DNS" se yon ti jan redondants; akwonim nan deja gen mo "sèvis"), epi li itilize pou rezoud yon travay ki senp - pou konprann ki adrès IP yon non lame espesifik genyen. Chak fwa yon moun klike sou yon lyen, oswa antre nan yon adrès (di, yon bagay tankou "https://habrahabr.ru/post/346430/"), òdinatè yon moun ap eseye konnen ki sèvè pou voye yon demann pou resevwa sa ki nan paj la. Nan ka a nan habrahabr.ru, repons lan soti nan dns la pral gen yon endikasyon sou adrès la IP nan sèvè entènèt la: 178.248.237.68, ak Lè sa a, navigatè a pral eseye kontakte sèvè a ak adrès la IP espesifye.

Nan vire, sèvè a dns, li te resevwa demann lan "ki adrès IP lame a yo te rele habrahabr.ru?", detèmine si li konnen anyen sou lame a espesifye. Si ou pa, li fè yon rechèch nan lòt sèvè dns nan mond lan, epi, etap pa etap, ap eseye kalkile repons lan nan kesyon an. Kòm yon rezilta, lè yo jwenn repons final la, done yo jwenn yo voye bay kliyan an toujou ap tann, plis li estoke nan kachèt sèvè dns la tèt li, ki pral pèmèt ou reponn yon kesyon ki sanble anpil pi vit pwochen fwa.

Yon pwoblèm komen se ke, premyèman, done rechèch DNS yo voye nan klè (ki pèmèt nenpòt moun ki gen aksè a kouran trafik la izole demann DNS yo ak repons yo, epi analize yo pou pwòp rezon pa yo; sa pèmèt kapasite a. vize piblisite ak presizyon pou kliyan an dns, e sa a se byen anpil!). Dezyèmman, kèk founisè Entènèt (nou pa pral montre dwèt, men se pa sa ki pi piti yo) yo gen tandans montre piblisite olye pou yo youn oswa yon lòt paj mande (ki se aplike trè tou senpleman: olye pou yo espesifye adrès IP la pou yon demann pou non an lame. habranabr.ru bay yon moun o aza Nan fason sa a, adrès sèvè entènèt founisè a retounen, kote paj la ki gen reklam la sèvi). Twazyèmman, gen founisè aksè Entènèt ki aplike yon mekanis pou ranpli kondisyon yo pou bloke sit endividyèl yo lè yo ranplase repons DNS kòrèk yo sou adrès IP resous entènèt bloke yo ak adrès IP sèvè yo ki gen paj souch (kòm rezilta, aksè a sit sa yo vin pi konplike), oswa nan adrès sèvè proxy ou a ki fè filtraj.

Ou ta dwe pwobableman mete yon foto nan sit entènèt la isit la http://1.1.1.1/, ki sèvi pou dekri koneksyon an ak sèvis la. Otè yo, aparamman, gen konfyans konplètman nan bon jan kalite a nan DNS yo (sepandan, li difisil pou atann yon bagay diferan de Cloudflare):

Nou rankontre sèvis Cloudflare nan adrès 1.1.1.1 ak 1.0.0.1, oswa "etajè DNS piblik la rive!"

Yon moun ka konprann konplètman Cloudflare, kreyatè sèvis la: yo touche pen yo lè yo sipòte ak devlope youn nan rezo CDN ki pi popilè nan mond lan (fonksyon yo ki gen ladan non sèlman distribisyon kontni, men tou hosting zòn DNS), ak, akòz dezi sa yo, ki pa konn anpil, anseye sa yo ki moun yo pa konnen, pou sa ki kote pou ale sou rezo mondyal la, byen souvan soufri de bloke nan adrès sèvè li yo pa nou pap di kiyès - Se konsa, gen yon DNS ki pa enfliyanse pa "rèl, siflèt ak scribbles" vle di mwens mal nan biznis yo pou yon konpayi. Ak avantaj teknik yo (yon ti bagay, men bèl: an patikilye, pou kliyan nan gratis DNS Cloudflare a, mete ajou dosye yo DNS nan resous ki anime sou sèvè dns konpayi an yo pral enstantane) fè lè l sèvi avèk sèvis ki dekri nan pòs la menm plis enteresan. .

Se sèlman itilizatè ki anrejistre ki ka patisipe nan sondaj la. Enskri, tanpri.

Èske w ap itilize nouvo sèvis la?

  • Wi, jis pa espesifye li nan eksplwatasyon an ak/oswa sou routeur la

  • Wi, epi mwen pral sèvi ak nouvo pwotokòl (DNS sou HTTPs ak DNS sou TLS)

  • Non, mwen gen ase serveurs aktyèl (sa a se yon founisè piblik: Google, Yandex, elatriye)

  • Non, mwen pa menm konnen sa m ap itilize kounye a

  • Mwen sèvi ak pwòp DNS rekursif mwen ak yon tinèl SSL devan yo

693 itilizatè yo te vote. 191 itilizatè te absteni.

Sous: www.habr.com

Add nouvo kòmantè