మేము Cloudflare నుండి సేవను 1.1.1.1 మరియు 1.0.0.1 చిరునామాలలో లేదా "పబ్లిక్ DNS షెల్ఫ్ వచ్చింది!"

మేము Cloudflare నుండి సేవను 1.1.1.1 మరియు 1.0.0.1 చిరునామాలలో లేదా "పబ్లిక్ DNS షెల్ఫ్ వచ్చింది!"

క్లౌడ్‌ఫ్లేర్ కంపెనీ సమర్పించారు చిరునామాలలో పబ్లిక్ DNS:

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

ఈ విధానం "మొదట గోప్యత" అని చెప్పబడింది, తద్వారా వినియోగదారులు తమ అభ్యర్థనల కంటెంట్ గురించి మనశ్శాంతి కలిగి ఉంటారు.

సేవ ఆసక్తికరంగా ఉంటుంది, సాధారణ DNSతో పాటు, ఇది సాంకేతిక పరిజ్ఞానాన్ని ఉపయోగించగల సామర్థ్యాన్ని అందిస్తుంది. DNS-ఓవర్-TLS и DNS-ఓవర్-HTTPS, ఇది అభ్యర్థనల మార్గంలో మీ అభ్యర్థనలను వినకుండా ప్రొవైడర్‌లను బాగా నిరోధిస్తుంది - మరియు గణాంకాలను సేకరించడం, పర్యవేక్షించడం, ప్రకటనలను నిర్వహించడం. ప్రకటన తేదీ (ఏప్రిల్ 1, 2018, లేదా అమెరికన్ సంజ్ఞామానంలో 04/01) యాదృచ్ఛికంగా ఎంపిక చేయబడలేదని క్లౌడ్‌ఫ్లేర్ పేర్కొంది: సంవత్సరంలో మరో ఏ రోజు “నాలుగు యూనిట్లు” ప్రదర్శించబడతాయి?

Habr యొక్క ప్రేక్షకులు సాంకేతికంగా అవగాహన కలిగి ఉన్నందున, సాంప్రదాయ విభాగం "మీకు DNS ఎందుకు అవసరం?" నేను దానిని పోస్ట్ చివరలో ఉంచుతాను, కానీ ఇక్కడ నేను మరింత ఆచరణాత్మకంగా ఉపయోగకరమైన విషయాలను తెలియజేస్తాను:

కొత్త సేవను ఎలా ఉపయోగించాలి?

మీ DNS క్లయింట్‌లో (లేదా మీరు ఉపయోగించే స్థానిక DNS సర్వర్ సెట్టింగ్‌లలో అప్‌స్ట్రీమ్‌గా) ఎగువ DNS సర్వర్ చిరునామాలను పేర్కొనడం చాలా సులభమైన విషయం. సాధారణ విలువలను భర్తీ చేయడం సమంజసమేనా Google DNS (8.8.8.8, మొదలైనవి), లేదా కొంచెం తక్కువ సాధారణం Yandex పబ్లిక్ DNS సర్వర్లు (77.88.8.8 మరియు వారిలాంటి ఇతరులు) క్లౌడ్‌ఫ్లేర్ నుండి సర్వర్‌లకు - వారు మీ కోసం నిర్ణయిస్తారు, కానీ ఒక అనుభవశూన్యుడు కోసం మాట్లాడతారు టైమ్టేబుల్ ప్రతిస్పందన వేగం, దీని ప్రకారం క్లౌడ్‌ఫ్లేర్ అన్ని పోటీదారుల కంటే వేగంగా ఉంటుంది (నేను స్పష్టం చేస్తాను: కొలతలు మూడవ పక్ష సేవ ద్వారా తీసుకోబడ్డాయి మరియు నిర్దిష్ట క్లయింట్‌కు వేగం భిన్నంగా ఉండవచ్చు).

మేము Cloudflare నుండి సేవను 1.1.1.1 మరియు 1.0.0.1 చిరునామాలలో లేదా "పబ్లిక్ DNS షెల్ఫ్ వచ్చింది!"

గుప్తీకరించిన కనెక్షన్ ద్వారా అభ్యర్థన సర్వర్‌కు వెళ్లే కొత్త మోడ్‌లతో పని చేయడం చాలా ఆసక్తికరంగా ఉంటుంది (వాస్తవానికి, ప్రతిస్పందన దాని ద్వారా తిరిగి వస్తుంది), పేర్కొన్న DNS-over-TLS మరియు DNS-over-HTTPS. దురదృష్టవశాత్తూ, వారికి "అవుట్ ఆఫ్ ది బాక్స్" మద్దతు లేదు (రచయితలు ఇది "ఇంకా" అని నమ్ముతారు), కానీ మీ సాఫ్ట్‌వేర్‌లో (లేదా మీ హార్డ్‌వేర్‌లో కూడా) వారి పనిని నిర్వహించడం కష్టం కాదు:

HTTPల ద్వారా DNS (DoH)

పేరు సూచించినట్లుగా, HTTPS ఛానెల్ ద్వారా కమ్యూనికేషన్ జరుగుతుంది, అంటే

  1. ల్యాండింగ్ పాయింట్ (ఎండ్ పాయింట్) ఉనికి - ఇది చిరునామాలో ఉంది https://cloudflare-dns.com/dns-queryమరియు
  2. అభ్యర్థనలను పంపగల మరియు ప్రతిస్పందనలను స్వీకరించగల క్లయింట్.

అభ్యర్థనలు నిర్వచించిన DNS వైర్‌ఫార్మాట్ ఫార్మాట్‌లో ఉండవచ్చు RFC1035 (POST మరియు GET HTTP పద్ధతులను ఉపయోగించి పంపబడింది), లేదా JSON ఆకృతిలో (GET HTTP పద్ధతిని ఉపయోగించి). నాకు వ్యక్తిగతంగా, HTTP అభ్యర్థనల ద్వారా DNS అభ్యర్థనలు చేయాలనే ఆలోచన ఊహించనిదిగా అనిపించింది, కానీ దానిలో హేతుబద్ధమైన ధాన్యం ఉంది: అటువంటి అభ్యర్థన చాలా ట్రాఫిక్ ఫిల్టరింగ్ సిస్టమ్‌లను పాస్ చేస్తుంది, ప్రతిస్పందనలను అన్వయించడం చాలా సులభం మరియు అభ్యర్థనలను రూపొందించడం మరింత సులభం. సాధారణ లైబ్రరీలు మరియు ప్రోటోకాల్‌లు భద్రతకు బాధ్యత వహిస్తాయి.

డాక్యుమెంటేషన్ నుండి నేరుగా ఉదాహరణలను అభ్యర్థించండి:

DNS వైర్‌ఫార్మాట్ ఫార్మాట్‌లో అభ్యర్థనను పొందండి

$ 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

DNS వైర్‌ఫార్మాట్ ఫార్మాట్‌లో POST అభ్యర్థన

$ 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తో పనిని అమలు చేయవచ్చు. మొజిల్లా తయారు చేయబోతున్నారు, క్లౌడ్‌ఫ్లేర్ సర్వర్‌లలో మాత్రమే).

TLS ద్వారా DNS

డిఫాల్ట్‌గా, DNS ప్రశ్నలు ఎన్‌క్రిప్షన్ లేకుండానే ప్రసారం చేయబడతాయి. TLS ద్వారా DNS వాటిని సురక్షిత కనెక్షన్ ద్వారా పంపడానికి ఒక మార్గం. క్లౌడ్‌ఫ్లేర్ నిర్దేశించిన విధంగా ప్రామాణిక పోర్ట్ 853లో TLS ద్వారా DNSకి మద్దతు ఇస్తుంది RFC7858. ఇది cloudflare-dns.com హోస్ట్ కోసం జారీ చేయబడిన ప్రమాణపత్రాన్ని ఉపయోగిస్తుంది, TLS 1.2 మరియు TLS 1.3కి మద్దతు ఉంది.

కనెక్షన్‌ని ఏర్పాటు చేయడం మరియు ప్రోటోకాల్ ప్రకారం పని చేయడం ఇలా జరుగుతుంది:

  • DNS కనెక్షన్‌ని స్థాపించే ముందు, క్లయింట్ cloudflare-dns.com యొక్క TLS ప్రమాణపత్రం (SPKI అని పిలుస్తారు) యొక్క బేస్64 ఎన్‌కోడ్ SHA256 హాష్‌ను నిల్వ చేస్తుంది.
  • DNS క్లయింట్ cloudflare-dns.com:853కి TCP కనెక్షన్‌ని ఏర్పాటు చేస్తుంది
  • DNS క్లయింట్ TLS హ్యాండ్‌షేక్‌ని ప్రారంభిస్తుంది
  • TLS హ్యాండ్‌షేక్ ప్రక్రియలో, cloudflare-dns.com హోస్ట్ దాని TLS ప్రమాణపత్రాన్ని అందజేస్తుంది.
  • TLS కనెక్షన్‌ని ఏర్పాటు చేసిన తర్వాత, DNS క్లయింట్ సురక్షిత ఛానెల్ ద్వారా DNS అభ్యర్థనలను పంపగలదు, ఇది అభ్యర్థనలు మరియు ప్రతిస్పందనలను వినకుండా మరియు మోసగించకుండా నిరోధిస్తుంది.
  • TLS కనెక్షన్ ద్వారా పంపబడిన అన్ని DNS ప్రశ్నలు తప్పనిసరిగా దీనికి అనుగుణంగా ఉండాలి TCP ద్వారా DNSని పంపుతోంది.

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 అనే సంక్షిప్తీకరణ డొమైన్ నేమ్ సర్వీస్ (కాబట్టి "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 క్లయింట్ కోసం ఖచ్చితత్వంతో ప్రకటనలను లక్ష్యంగా చేసుకునే సామర్థ్యం, ​​ఇది చాలా ఎక్కువ!). రెండవది, కొన్ని ISPలు (మేము వేళ్లు చూపము, కానీ చిన్నవి కాదు) ఒకటి లేదా మరొక అభ్యర్థించిన పేజీకి బదులుగా ప్రకటనలను చూపుతాయి (ఇది చాలా సరళంగా అమలు చేయబడుతుంది: habranabr.ru ద్వారా ఒక ప్రశ్న కోసం పేర్కొన్న IP చిరునామాకు బదులుగా హోస్ట్ పేరు, యాదృచ్ఛిక వ్యక్తి కాబట్టి, ప్రొవైడర్ వెబ్ సర్వర్ చిరునామా తిరిగి ఇవ్వబడుతుంది, ఇక్కడ ప్రకటన ఉన్న పేజీ అందించబడుతుంది). మూడవదిగా, బ్లాక్ చేయబడిన వెబ్ వనరుల యొక్క IP చిరునామాల గురించి సరైన DNS ప్రతిస్పందనలను స్టబ్ పేజీలను కలిగి ఉన్న వారి సర్వర్ యొక్క IP చిరునామాతో భర్తీ చేయడం ద్వారా వ్యక్తిగత సైట్‌లను నిరోధించే అవసరాలను నెరవేర్చడానికి ఒక యంత్రాంగాన్ని అమలు చేసే ఇంటర్నెట్ యాక్సెస్ ప్రొవైడర్లు ఉన్నారు (ఫలితంగా, యాక్సెస్ అటువంటి సైట్‌లు గమనించదగ్గ విధంగా మరింత క్లిష్టంగా ఉంటాయి), లేదా ఫిల్టరింగ్ చేసే మీ ప్రాక్సీ సర్వర్ చిరునామాకు.

ఇది బహుశా సైట్ నుండి వచ్చిన చిత్రం అయి ఉండాలి. http://1.1.1.1/, సేవకు కనెక్షన్‌ని వివరించడానికి ఉపయోగిస్తారు. రచయితలు తమ DNS నాణ్యతపై చాలా నమ్మకంగా ఉన్నట్లు కనిపిస్తున్నారు (అయితే, క్లౌడ్‌ఫ్లేర్ నుండి మరేదైనా ఆశించడం కష్టం):

మేము Cloudflare నుండి సేవను 1.1.1.1 మరియు 1.0.0.1 చిరునామాలలో లేదా "పబ్లిక్ DNS షెల్ఫ్ వచ్చింది!"

సేవ యొక్క సృష్టికర్త అయిన క్లౌడ్‌ఫ్లేర్‌ను ఒకరు పూర్తిగా అర్థం చేసుకోగలరు: వారు ప్రపంచంలోని అత్యంత ప్రజాదరణ పొందిన CDN నెట్‌వర్క్‌లలో ఒకదానిని నిర్వహించడం మరియు అభివృద్ధి చేయడం ద్వారా వారి రొట్టెలను సంపాదిస్తారు (వీటిలో కంటెంట్‌ను పంపిణీ చేయడమే కాకుండా, DNS జోన్‌లను హోస్ట్ చేయడం కూడా ఉంటుంది), మరియు వారి కోరిక, బాగా పాండిత్యం లేనివాడు, వారికి నేర్పించండి ఎవరు వారికి తెలియదు, దానికి ఎక్కడికి వెళ్ళాలి గ్లోబల్ నెట్‌వర్క్‌లో, వారి సర్వర్‌ల చిరునామాలను బ్లాక్ చేయడం వల్ల చాలా తరచుగా బాధపడతారు ఎవరో చెప్పకూడదు - కాబట్టి కంపెనీకి "అరుపులు, ఈలలు మరియు స్క్రైబుల్స్" ద్వారా ప్రభావితం కాని DNSని కలిగి ఉండటం అంటే వారి వ్యాపారానికి తక్కువ హాని. మరియు సాంకేతిక ప్రయోజనాలు (ఒక చిన్న విషయం, కానీ బాగుంది: ప్రత్యేకించి, ఉచిత DNS క్లౌడ్‌ఫ్లేర్ క్లయింట్‌ల కోసం, కంపెనీ DNS సర్వర్‌లలో హోస్ట్ చేయబడిన వనరుల యొక్క DNS రికార్డులను తక్షణమే నవీకరించడం) పోస్ట్‌లో వివరించిన సేవను ఉపయోగించడం మరింత ఆసక్తికరంగా ఉంటుంది.

నమోదు చేసుకున్న వినియోగదారులు మాత్రమే సర్వేలో పాల్గొనగలరు. సైన్ ఇన్ చేయండిదయచేసి.

మీరు కొత్త సేవను ఉపయోగిస్తారా?

  • అవును, దీన్ని OS మరియు / లేదా రూటర్‌లో పేర్కొనడం ద్వారా

  • అవును, మరియు నేను కొత్త ప్రోటోకాల్‌లను ఉపయోగిస్తాను (HTTPల ద్వారా DNS మరియు TLS ద్వారా DNS)

  • లేదు, నాకు తగినంత ప్రస్తుత సర్వర్లు ఉన్నాయి (ఇది పబ్లిక్ ప్రొవైడర్: Google, Yandex, మొదలైనవి)

  • లేదు, నేను ప్రస్తుతం ఏమి ఉపయోగిస్తున్నానో కూడా నాకు తెలియదు

  • నేను వారికి SSL సొరంగంతో నా పునరావృత DNSని ఉపయోగిస్తాను

693 వినియోగదారులు ఓటు వేశారు. 191 వినియోగదారు దూరంగా ఉన్నారు.

మూలం: www.habr.com

ఒక వ్యాఖ్యను జోడించండి