Em karûbarê ji Cloudflare re li navnîşanên 1.1.1.1 û 1.0.0.1, an jî "refika DNS-ya giştî hat!"

Em karûbarê ji Cloudflare re li navnîşanên 1.1.1.1 û 1.0.0.1, an jî "refika DNS-ya giştî hat!"

Şirketa Cloudflare pêşkêş kirin DNS giştî li navnîşanan:

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

Tê îdiakirin ku polîtîkaya "Pêşî Nepenîtiyê" tê bikar anîn, da ku bikarhêner dikarin ji naveroka daxwazên xwe ewle bin.

Karûbar balkêş e ji ber ku, ji bilî DNS-ya asayî, ew derfeta karanîna teknolojiyê peyda dike DNS-ser-TLS и DNS-ser-HTTPS, ya ku dê pir rê li ber pêşkêşvanan bigire ku li ser riya daxwaznameyê guhdariya daxwazên we bikin - û berhevkirina statîstîkan, şopandin û birêvebirina reklamê. Cloudflare îdîa dike ku tarîxa ragihandinê (1ê Avrêl, 2018, an 04/01 bi nîşana Amerîkî) ne bi tesadufî hatî hilbijartin: Di kîjan roja din a salê de dê "çar yekîne" were pêşkêş kirin?

Ji ber ku temaşevanên Habr ji hêla teknîkî ve jêhatî ne, beşa kevneşopî "çima em hewceyê DNS in?" Ez ê di dawiya postê de bidim, û li vir ez ê tiştên bikêrtir ên pratîkî diyar bikim:

Meriv çawa karûbarê nû bikar tîne?

Tişta herî hêsan ev e ku hûn navnîşanên servera DNS-ya jorîn di xerîdarê xweya DNS-ê de destnîşan bikin (an jî di mîhengên servera DNS-ya herêmî ya ku hûn bikar tînin de wekî jor veguhezînin). Ma watedar e ku meriv nirxên asayî biguhezîne? Google DNS (8.8.8.8, hwd.), an hinekî kêmtir hevpar Pêşkêşkerên DNS yên gelemperî Yandex (77.88.8.8 û yên wekî wan) pêşkêşkerên ji Cloudflare - ew ê ji bo we biryar bidin, lê ew ji bo destpêkek diaxive pîlan leza bersivan, li gorî ku Cloudflare ji hemî hevrikan zûtir dixebite (bihêle ez zelal bikim: pîvandin ji hêla karûbarek sêyemîn ve hatine çêkirin, û leza ji xerîdarek taybetî, bê guman, dibe ku cûda bibe).

Em karûbarê ji Cloudflare re li navnîşanên 1.1.1.1 û 1.0.0.1, an jî "refika DNS-ya giştî hat!"

Zêdetir balkêş e ku meriv bi modên nû re bixebite ku tê de daxwaz bi pêwendiyek şîfrekirî digihîje serverê (bi rastî, bersiv bi wê ve tê vegerandin), DNS-ser-TLS û DNS-ser-HTTPS. Mixabin, ew ji qutîkê nayên piştgirî kirin (nivîskar bawer dikin ku ev "hê" ye), lê organîzekirina xebata wan di nermalava we de (an tewra li ser cîhaza we) ne dijwar e:

DNS li ser HTTP (DoH)

Wekî ku ji navê xwe diyar dike, ragihandinê li ser kanalek HTTPS-ê pêk tê, ku tê vê wateyê

  1. hebûna xalek dakêşanê (xala dawî) - ew li wê derê ye https://cloudflare-dns.com/dns-queryû
  2. xerîdarek ku dikare daxwazan bişîne û bersivan bistîne.

Daxwaz dikarin di DNS Wireformat-a ku tê de hatî destnîşan kirin de bin RFC1035 (bi karanîna rêbazên POST û GET HTTP ve hatî şandin), an jî di formata JSON de (bi karanîna rêbaza GET HTTP). Ji bo min bixwe, ramana çêkirina pirsên DNS-ê bi navgîniya daxwazên HTTP-ê nediyar xuya bû, lê di nav wê de gewreyek maqûl heye: daxwazek wusa dê gelek pergalên fîlterkirina trafîkê derbas bike, bersivên parskirinê pir hêsan e, û çêkirina daxwazan hê hêsantir e. Pirtûkxane û protokolên nas ji ewlehiyê berpirsiyar in.

Pirsên nimûne, rasterast ji belgeyê:

Daxwaza GET di formata Wireformat DNS de

$ 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

Daxwaza POST di DNS Wireformat de

$ 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

Heman tişt, lê JSON bikar tînin

$ 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"
    }
  ]
}

Eşkere ye, hindik (heke hebe) routerên malê dikarin bi DNS-ê re bi vî rengî bixebitin, lê ev nayê vê wateyê ku piştgirî sibê xuya nake - û, balkêş e, li vir em dikarin bi hêsanî xebata bi DNS-ê re di serîlêdana xwe de bicîh bikin (wek berê dê Mozilla çêbike, tenê li ser serverên Cloudflare).

DNS li ser TLS

Bi xwerû, pirsên DNS bêyî şîfrekirinê têne şandin. DNS li ser TLS rêyek e ku meriv wan li ser pêwendiyek ewledar bişîne. Cloudflare li ser porta standard 853 wekî ku hatî destnîşan kirin DNS-ê li ser TLS piştgirî dike RFC7858. Ev sertîfîkayek ku ji bo mêvandarê cloudflare-dns.com hatî weşandin bikar tîne, TLS 1.2 û TLS 1.3 têne piştgirî kirin.

Damezrandina têkiliyek û xebata bi protokolê re tiştek weha diçe:

  • Berî ku pêwendiyek bi DNS-ê re saz bike, xerîdar hashek SHA64-a kodkirî ya base256 ya sertîfîkaya TLS ya cloudflare-dns.com (bi navê SPKI) hilîne.
  • Xerîdarê DNS pêwendiyek TCP bi cloudflare-dns.com:853 re saz dike
  • Xerîdar DNS prosedûra destanên TLS dide destpêkirin
  • Di dema desthejandina TLS de, mêvandarê cloudflare-dns.com sertîfîkaya xwe ya TLS pêşkêşî dike.
  • Dema ku pêwendiya TLS hate saz kirin, xerîdar DNS dikare pirsên DNS-ê li ser kanalek ewledar bişîne, ku pêşî li guhdarîkirin û sextekariya daxwaz û bersivan digire.
  • Pêdivî ye ku hemî daxwazên DNS-ê yên ku li ser pêwendiyek TLS têne şandin divê li gorî diyardeyê tevbigerin şandina DNS li ser TCP.

Mînaka daxwazek bi DNS-ê li ser 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

Wusa dixuye ku ev vebijark ji bo serverên DNS yên herêmî yên ku ji hewcedariyên torgilokek herêmî an bikarhênerek yekane re xizmet dikin çêtir e. Rast e, piştgiriya standard ne pir baş e, lê em hêvî bikin!

Du gotinên ravekirina tiştên ku em li ser dipeyivin

Kurtenivîsa DNS ji bo Karûbarê Navê Domainê radiweste (ji ber vê yekê gotina "xizmeta DNS" hinekî zêde ye; kurteya berê peyva "xizmetê" dihewîne), û ji bo çareserkirina peywirek hêsan tê bikar anîn - da ku fêm bikin ka navnîşana IP-ya navek mêvandarek taybetî heye. Her cara ku kesek li ser lînkê bitikîne, an navnîşanek têxe barika navnîşana gerokê (bibêje, tiştek wekî "https://habrahabr.ru/post/346430/"), komputera kesek hewl dide ku fêr bibe ka kîjan server daxwazek ji bo wergirtina naveroka rûpelê bişîne. Di doza habrahabr.ru de, bersiva ji DNS-ê dê navnîşana IP-ya servera malperê nîşan bide: 178.248.237.68, û dûv re gerok dê hewl bide ku bi navnîşana IP-ya diyarkirî re bi serverê re têkilî dayne.

Di encamê de, servera DNS, piştî ku daxwaza "navnîşana IP-ya mêvandarê bi navê habrahabr.ru çi ye?", destnîşan dike ka ew di derheqê mêvandarê diyarkirî de tiştek dizane. Heke ne, ew ji serverên din ên DNS yên li cîhanê pirsek dike, û, gav bi gav, hewl dide ku bersiva pirsa ku hatî pirsîn bibîne. Wekî encamek, bi dîtina bersiva dawîn re, daneyên ku hatine dîtin ji xerîdarek hê li bendê re têne şandin, plus ew di cache ya servera DNS-ê bixwe de tê hilanîn, ku dê bihêle hûn carek din pir zûtir bersiva pirsek weha bidin.

Pirsgirêkek hevpar ev e ku, pêşî, daneyên lêpirsîna DNS bi zelalî têne şandin (ku rê dide her kesê ku xwe bigihîne seyrûsefera seyrûseferê ku pirsên DNS û bersivên encamê veqetîne, û dûv re wan ji bo mebestên xwe pars bike; ev yek destûrê dide karîna ji bo muwekîlê DNS-ê reklamê bi hûrgulî armanc bikin, û ev pir pir e!). Ya duyemîn, hin pêşkêşkerên Înternetê (em ê tiliyan nedin, lê ne yên herî piçûk) meyla dikin ku reklamê li şûna yek an rûpelek daxwazkirî nîşan bidin (ya ku pir bi hêsanî tête bicîh kirin: li şûna navnîşana IP-ya diyarkirî ji bo daxwazek ji bo navê mêvandar. habranabr.ru ji kesek rasthatî re Bi vî rengî, navnîşana servera malperê ya pêşkêşker tê vegerandin, ku rûpela ku reklam tê de tê pêşkêş kirin). Ya sêyemîn, peydakiroxên gihîştina Înternetê hene ku mekanîzmayek ji bo bicihanîna hewcedariyên ji bo astengkirina malperên kesane bi cîh kirina bersivên DNS yên rast ên di derheqê navnîşanên IP-yên çavkaniyên webê yên astengkirî de bi navnîşana IP-ya servera wan a ku rûpelên stûyê vedihewîne (di encamê de, gihîştina malperên weha bi rengek berbiçav tevlihevtir dibin), an jî navnîşana servera weya proxy ya ku fîlterkirinê dike.

Dibe ku hûn wêneyek ji malperê li vir bixin http://1.1.1.1/, ku ji bo danasîna girêdana bi karûbarê re xizmet dike. Nivîskar, xuya ye, bi kalîteya DNS-ya xwe bi tevahî pêbawer in (lêbelê, dijwar e ku meriv ji Cloudflare tiştek cûda hêvî bike):

Em karûbarê ji Cloudflare re li navnîşanên 1.1.1.1 û 1.0.0.1, an jî "refika DNS-ya giştî hat!"

Meriv dikare Cloudflare, afirînerê karûbarê bi tevahî fêm bike: ew nanê xwe bi piştgirî û pêşvebirina yek ji torên CDN-ê yên herî populer ên li cîhanê (fonksiyonên ku ne tenê belavkirina naverokê, lê di heman demê de mazûvaniya deverên DNS-ê jî vedigirin) qezenc dikin, û, ji ber daxwaza wan, kî pir nizane, wan hîn bike yê ku ew nas nakin, ji bo wê ku here li ser tora gerdûnî, pir caran ji astengkirina navnîşanên servera xwe ji hêla xwe ve diêşe em ê nebêjin kî - Ji ber vê yekê hebûna DNS-ya ku ji hêla "qîrîn, bilbil û nivisandinê" ve nayê bandor kirin ji bo pargîdaniyek tê wateya kêmtir zirarê dide karsaziya wan. Û avantajên teknîkî (tiştek piçûk, lê xweş: bi taybetî, ji bo xerîdarên DNS Cloudflare-ya belaş, nûvekirina tomarên DNS-yên çavkaniyên ku li ser serverên DNS-ê yên pargîdanî têne mêvandar kirin dê tavilê be) karanîna karûbarê ku di postê de hatî destnîşan kirin hîn balkêştir dike. .

Tenê bikarhênerên qeydkirî dikarin beşdarî anketê bibin. Têketinji kerema xwe.

Ma hûn ê karûbarê nû bikar bînin?

  • Erê, tenê bi destnîşankirina wê di OS û/an li ser routerê de

  • Erê, û ez ê protokolên nû bikar bînim (DNS li ser HTTP û DNS li ser TLS)

  • Na, ez têra serverên heyî hene (ev pêşkêşkarek gelemperî ye: Google, Yandex, hwd.)

  • Na, ez jî nizanim ez niha çi bikar tînim

  • Ez DNS-ya xweya vegerî bi tunelek SSL-yê berî wan bikar tînim

693 bikarhêneran deng dan. 191 bikarhêner jî betal bûn.

Source: www.habr.com

Add a comment