Tunakutana na huduma kutoka Cloudflare kwenye anwani 1.1.1.1 na 1.0.0.1, au "rafu ya umma ya DNS imefika!"

Tunakutana na huduma kutoka Cloudflare kwenye anwani 1.1.1.1 na 1.0.0.1, au "rafu ya umma ya DNS imefika!"

Kampuni ya Cloudflare imewasilishwa DNS ya umma kwenye anwani:

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

Sera inasemekana kuwa "Faragha kwanza" ili watumiaji wawe na amani ya akili kuhusu maudhui ya maombi yao.

Huduma hiyo inavutia kwa kuwa, pamoja na DNS ya kawaida, inatoa uwezo wa kutumia teknolojia DNS-over-TLS ΠΈ DNS-juu-HTTPS, ambayo itawazuia sana watoa huduma kukusikiliza maombi yako kupitia njia ya maombi - na kukusanya takwimu, kufuatilia, kudhibiti utangazaji. Cloudflare inadai kwamba tarehe ya tangazo (tarehe 1 Aprili 2018, au 04/01 katika nukuu ya Marekani) haikuchaguliwa kwa bahati nasibu: ni siku gani nyingine ya mwaka ambapo "vitengo vinne" vitawasilishwa?

Kwa kuwa hadhira ya Habr ni ya kitaalamu, sehemu ya jadi "kwa nini unahitaji DNS?" Nitaiweka mwishoni mwa chapisho, lakini hapa nitasema mambo muhimu zaidi:

Jinsi ya kutumia huduma mpya?

Jambo rahisi zaidi ni kubainisha anwani za seva za DNS zilizo hapo juu katika mteja wako wa DNS (au kama sehemu ya juu katika mipangilio ya seva ya ndani ya DNS unayotumia). Inaleta maana kuchukua nafasi ya maadili ya kawaida Google DNS (8.8.8.8, nk), au chini ya kawaida kidogo Seva za DNS za umma za Yandex (77.88.8.8 na wengine kama wao) kwa seva kutoka Cloudflare - wataamua kwa ajili yako, lakini wanazungumza kwa Kompyuta ratiba kasi ya majibu, kulingana na ambayo Cloudflare ni kasi zaidi kuliko washindani wote (Nitafafanua: vipimo vilichukuliwa na huduma ya tatu, na kasi kwa mteja maalum, bila shaka, inaweza kutofautiana).

Tunakutana na huduma kutoka Cloudflare kwenye anwani 1.1.1.1 na 1.0.0.1, au "rafu ya umma ya DNS imefika!"

Inafurahisha zaidi kufanya kazi na njia mpya ambazo ombi huruka kwa seva kupitia muunganisho uliosimbwa (kwa kweli, jibu hurejeshwa kupitia hiyo), DNS-over-TLS iliyotajwa na DNS-over-HTTPS. Kwa bahati mbaya, hazihimiliwi "nje ya sanduku" (waandishi wanaamini kuwa hii ni "bado"), lakini si vigumu kupanga kazi zao katika programu yako (au hata kwenye vifaa vyako):

DNS juu ya HTTPs (DoH)

Kama jina linavyopendekeza, mawasiliano hufanyika kupitia chaneli ya HTTPS, ambayo inamaanisha

  1. uwepo wa hatua ya kutua (mwisho) - iko kwenye anwani https://cloudflare-dns.com/dns-queryNa
  2. mteja anayeweza kutuma maombi na kupokea majibu.

Maombi yanaweza kuwa katika umbizo la DNS Wireformat iliyofafanuliwa 1035. Mchezaji hajali (imetumwa kwa kutumia mbinu za POST na GET HTTP), au katika umbizo la JSON (kwa kutumia mbinu ya GET HTTP). Kwangu mimi binafsi, wazo la kufanya maombi ya DNS kupitia ombi la HTTP lilionekana kuwa lisilotarajiwa, lakini kuna nafaka ya busara ndani yake: ombi kama hilo litapita mifumo mingi ya kuchuja trafiki, majibu ya kuchambua ni rahisi sana, na kutoa maombi ni rahisi zaidi. Maktaba na itifaki za kawaida zinawajibika kwa usalama.

Omba mifano, moja kwa moja kutoka kwa hati:

PATA ombi katika umbizo la 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

Ombi la POST katika umbizo la 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

Sawa lakini kwa kutumia 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"
    }
  ]
}

Kwa wazi, router ya nadra (ikiwa angalau moja) ya nyumbani inaweza kufanya kazi na DNS kwa njia hii, lakini hii haimaanishi kuwa msaada hautaonekana kesho - na, cha kufurahisha, hapa tunaweza kutekeleza kufanya kazi na DNS katika programu yetu (kama tayari. kwenda kutengeneza Mozilla, kwenye seva za Cloudflare).

DNS juu ya TLS

Kwa chaguo-msingi, hoja za DNS hutumwa bila usimbaji fiche. DNS kupitia TLS ni njia ya kuzituma kupitia muunganisho salama. Cloudflare hutumia DNS kupitia TLS kwenye bandari ya kawaida ya 853 kama ilivyoagizwa 7858. Mchezaji hajali. Hii hutumia cheti kilichotolewa kwa seva pangishi ya cloudflare-dns.com, TLS 1.2 na TLS 1.3 zinatumika.

Kuanzisha muunganisho na kufanya kazi kulingana na itifaki huenda kitu kama hiki:

  • Kabla ya kuanzisha muunganisho wa DNS, mteja huhifadhi heshi ya SHA64 iliyosimbwa ya base256 ya cheti cha TLS cha cloudflare-dns.com (kinachoitwa SPKI)
  • Mteja wa DNS huanzisha muunganisho wa TCP kwa cloudflare-dns.com:853
  • Mteja wa DNS anaanzisha TLS kupeana mkono
  • Wakati wa mchakato wa TLS wa kupeana mkono, mwenyeji wa cloudflare-dns.com huwasilisha cheti chake cha TLS.
  • Baada ya muunganisho wa TLS kuanzishwa, mteja wa DNS anaweza kutuma maombi ya DNS kupitia kituo salama, jambo ambalo huzuia maombi na majibu yasisikilizwe na kuibiwa.
  • Hoja zote za DNS zinazotumwa kupitia muunganisho wa TLS lazima zitii kutuma DNS kupitia TCP.

Mfano wa ombi kupitia DNS kupitia 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

Chaguo hili linaonekana kufanya kazi vyema zaidi kwa seva za ndani za DNS zinazohudumia mahitaji ya mtandao wa ndani au mtumiaji mmoja. Kweli, kwa msaada wa kiwango si nzuri sana, lakini - hebu tumaini!

Maneno mawili ya maelezo ya mazungumzo yanahusu nini

Kifupi cha DNS kinasimamia Huduma ya Jina la Kikoa (kwa hivyo kusema "huduma ya DNS" sio lazima, kifupi tayari kina neno "huduma"), na hutumiwa kutatua kazi rahisi - kuelewa ni anwani gani ya IP ambayo jina la mwenyeji fulani linayo. Kila wakati mtu anabofya kiungo, au anaingiza anwani kwenye upau wa anwani wa kivinjari (sema, kitu kama "https://habrahabr.ru/post/346430/"), kompyuta ya binadamu inajaribu kubaini ni seva gani itatuma ombi ili kupata maudhui ya ukurasa. Katika kesi ya habrahabr.ru, majibu kutoka kwa DNS yatakuwa na dalili ya anwani ya IP ya seva ya wavuti: 178.248.237.68, na kisha kivinjari kitajaribu tayari kuwasiliana na seva na anwani maalum ya IP.

Kwa upande wake, seva ya DNS, ikiwa imepokea ombi "anwani ya IP ya mwenyeji anayeitwa habrahabr.ru ni nini?", Huamua ikiwa anajua chochote kuhusu mwenyeji aliyetajwa. Ikiwa sivyo, hufanya ombi kwa seva zingine za DNS ulimwenguni, na, hatua kwa hatua, inajaribu kujua jibu la swali lililoulizwa. Kama matokeo, baada ya kupata jibu la mwisho, data iliyopatikana inatumwa kwa mteja ambaye bado anaingojea, pamoja na kuhifadhiwa kwenye kashe ya seva ya DNS yenyewe, ambayo itakuruhusu kujibu swali kama hilo haraka sana wakati ujao.

Shida ya kawaida ni kwamba, kwanza, data ya hoja ya DNS hupitishwa kwa uwazi (ambayo humpa mtu yeyote aliye na ufikiaji wa mtiririko wa trafiki uwezo wa kutenga maswali ya DNS na majibu wanayopokea na kisha kuyachanganua kwa madhumuni yao wenyewe; hii inatoa uwezo wa kulenga matangazo kwa usahihi kwa mteja wa DNS, ambayo ni mengi sana!). Pili, baadhi ya Watoa Huduma za Intaneti (hatutanyooshea vidole, lakini sio ndogo zaidi) huwa zinaonyesha matangazo badala ya ukurasa mmoja au mwingine ulioombwa (ambalo linatekelezwa kwa urahisi kabisa: badala ya anwani ya IP iliyoainishwa kwa hoja ya habranabr.ru. jina la mwenyeji, mtu wa nasibu Kwa hivyo, anwani ya seva ya wavuti ya mtoa huduma inarudishwa, ambapo ukurasa ulio na tangazo hutolewa). Tatu, kuna watoa huduma za mtandao ambao hutekeleza utaratibu wa kutimiza mahitaji ya kuzuia tovuti binafsi kwa kubadilisha majibu sahihi ya DNS kuhusu anwani za IP za rasilimali za wavuti zilizozuiwa na anwani ya IP ya seva zao zilizo na kurasa za stub (kama matokeo, upatikanaji wa tovuti kama hizo ni ngumu zaidi), au kwa anwani ya seva yako mbadala inayofanya uchujaji.

Labda hii inapaswa kuwa picha kutoka kwa wavuti. http://1.1.1.1/, inayotumika kuelezea muunganisho wa huduma. Waandishi wanaonekana kuwa na uhakika kabisa katika ubora wa DNS yao (hata hivyo, ni vigumu kutarajia kitu kingine chochote kutoka kwa Cloudflare):

Tunakutana na huduma kutoka Cloudflare kwenye anwani 1.1.1.1 na 1.0.0.1, au "rafu ya umma ya DNS imefika!"

Mtu anaweza kuelewa kikamilifu Cloudflare, muundaji wa huduma: wanapata mkate wao kwa kudumisha na kuendeleza mojawapo ya mitandao maarufu zaidi ya CDN duniani (ambayo kazi ni pamoja na sio tu kusambaza maudhui, lakini pia kukaribisha maeneo ya DNS), na, kutokana na hamu ya wale, ambaye hajui vizuri, wafundishe hao ambao hawamjui, kwa hiyo pa kwenda katika mtandao wa kimataifa, mara nyingi huteseka kutokana na kuzuia anwani za seva zao kutoka tusiseme nani - kwa hivyo kuwa na DNS ambayo haiathiriwi na "milio, filimbi na scribbles" kwa kampuni inamaanisha madhara kidogo kwa biashara zao. Na faida za kiufundi (kidogo, lakini nzuri: haswa, kwa wateja wa DNS Cloudflare ya bure, kusasisha rekodi za DNS za rasilimali zilizowekwa kwenye seva za DNS za kampuni itakuwa papo hapo) kufanya kutumia huduma iliyoelezewa kwenye chapisho kuvutia zaidi.

Watumiaji waliojiandikisha pekee ndio wanaweza kushiriki katika utafiti. Weka sahihitafadhali.

Je, utatumia huduma mpya?

  • Ndiyo, kwa kubainisha tu katika OS na / au kwenye router

  • Ndiyo, na nitatumia itifaki mpya (DNS juu ya HTTP na DNS juu ya TLS)

  • Hapana, nina seva za sasa za kutosha (huyu ni mtoa huduma wa umma: Google, Yandex, nk.)

  • Hapana, hata sijui ninatumia nini sasa hivi

  • Ninatumia DNS yangu ya kujirudia na handaki ya SSL kwao

Watumiaji 693 walipiga kura. Mtumiaji 191 alijizuia.

Chanzo: mapenzi.com

Kuongeza maoni