ہم 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 سرور استعمال کرتے ہیں اس کی سیٹنگز میں اپ اسٹریم کے طور پر)۔ کیا معمول کی اقدار کو تبدیل کرنے کا کوئی مطلب ہے؟ گوگل ڈی این ایس (8.8.8.8، وغیرہ)، یا قدرے کم عام Yandex عوامی DNS سرورز (77.88.8.8 اور ان جیسے دوسرے) Cloudflare سے سرورز تک - وہ آپ کے لئے فیصلہ کریں گے، لیکن یہ ایک ابتدائی کے لئے بولتا ہے شیڈول جوابات کی رفتار، جس کے مطابق کلاؤڈ فلیئر تمام حریفوں سے زیادہ تیزی سے کام کرتا ہے (مجھے واضح کرنے دو: پیمائش تیسرے فریق کی خدمت کے ذریعہ کی گئی تھی، اور کسی مخصوص کلائنٹ کی رفتار، یقیناً مختلف ہو سکتی ہے)۔

ہم Cloudflare کی سروس سے 1.1.1.1 اور 1.0.0.1 پتے پر ملتے ہیں، یا "عوامی DNS شیلف آ گیا ہے!"

نئے طریقوں کے ساتھ کام کرنا بہت زیادہ دلچسپ ہے جس میں درخواست ایک انکرپٹڈ کنکشن کے ذریعے سرور تک پہنچتی ہے (حقیقت میں، جواب اس کے ذریعے واپس کیا جاتا ہے)، ذکر کردہ DNS-over-TLS اور DNS-over-HTTPS۔ بدقسمتی سے، وہ باکس سے باہر کی حمایت نہیں کرتے ہیں (مصنفین کا خیال ہے کہ یہ "ابھی تک" ہے)، لیکن آپ کے سافٹ ویئر (یا آپ کے ہارڈ ویئر پر بھی) ان کے کام کو منظم کرنا مشکل نہیں ہے:

DNS اوور HTTPs (DoH)

جیسا کہ نام سے پتہ چلتا ہے، مواصلت HTTPS چینل پر ہوتی ہے، جس کا مطلب ہے۔

  1. لینڈنگ پوائنٹ (اینڈ پوائنٹ) کی موجودگی - یہ اس پر واقع ہے۔ https://cloudflare-dns.com/dns-queryاور
  2. ایک کلائنٹ جو درخواستیں بھیج سکتا ہے اور جوابات وصول کرسکتا ہے۔

درخواستیں یا تو DNS وائر فارمیٹ میں بیان کی گئی ہیں۔ آر ایف سی 1035 (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 وائر فارمیٹ میں پوسٹ کی درخواست

$ 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 کے ساتھ کام آسانی سے نافذ کر سکتے ہیں (جیسا کہ پہلے ہی موزیلا بنانے جا رہا ہے۔، صرف Cloudflare سرورز پر)۔

TLS پر DNS

پہلے سے طے شدہ طور پر، ڈی این ایس کے سوالات بغیر خفیہ کاری کے بھیجے جاتے ہیں۔ TLS پر DNS انہیں محفوظ کنکشن پر بھیجنے کا ایک طریقہ ہے۔ Cloudflare معیاری پورٹ 853 پر TLS پر DNS کو تجویز کردہ کے مطابق سپورٹ کرتا ہے۔ آر ایف سی 7858. یہ میزبان cloudflare-dns.com کے لیے جاری کردہ سرٹیفکیٹ کا استعمال کرتا ہے، TLS 1.2 اور TLS 1.3 تعاون یافتہ ہیں۔

کنکشن قائم کرنا اور پروٹوکول کے ساتھ کام کرنا کچھ اس طرح ہے:

  • DNS سے کنکشن قائم کرنے سے پہلے، کلائنٹ cloudflare-dns.com کے TLS سرٹیفکیٹ کا ایک base64 انکوڈ شدہ SHA256 ہیش اسٹور کرتا ہے (جسے SPKI کہتے ہیں)
  • 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 کلائنٹ کے لیے درستگی کے ساتھ اشتہارات کو نشانہ بنانا، اور یہ بہت کچھ ہے!) دوم، کچھ انٹرنیٹ فراہم کرنے والے (ہم انگلیاں نہیں اٹھائیں گے، لیکن سب سے چھوٹی نہیں) ایک یا دوسرے درخواست کردہ صفحہ کی بجائے اشتہارات دکھاتے ہیں (جو کہ بہت سادگی سے لاگو کیا جاتا ہے: میزبان کے نام کی درخواست کے لیے مخصوص آئی پی ایڈریس کے بجائے۔ habranabr.ru کسی بے ترتیب شخص کو اس طرح فراہم کرنے والے کے ویب سرور کا پتہ واپس کر دیا جاتا ہے، جہاں اشتہار پر مشتمل صفحہ پیش کیا جاتا ہے)۔ سوم، انٹرنیٹ تک رسائی فراہم کرنے والے ہیں جو بلاک شدہ ویب وسائل کے آئی پی ایڈریس کے بارے میں درست DNS جوابات کو ان کے سرور کے IP ایڈریس کے ساتھ تبدیل کرکے انفرادی سائٹس کو بلاک کرنے کی ضروریات کو پورا کرنے کے لیے ایک طریقہ کار کو نافذ کرتے ہیں (نتیجے کے طور پر، ان تک رسائی ایسی سائٹیں نمایاں طور پر زیادہ پیچیدہ ہو جاتی ہیں) یا آپ کے پراکسی سرور کے ایڈریس پر جو فلٹرنگ کرتا ہے۔

آپ کو شاید یہاں ویب سائٹ سے تصویر لگانی چاہیے۔ http://1.1.1.1/، جو سروس سے کنکشن کی وضاحت کرتا ہے۔ مصنفین، بظاہر، اپنے DNS کے معیار پر مکمل طور پر پراعتماد ہیں (تاہم، Cloudflare سے مختلف کسی چیز کی توقع کرنا مشکل ہے):

ہم Cloudflare کی سروس سے 1.1.1.1 اور 1.0.0.1 پتے پر ملتے ہیں، یا "عوامی DNS شیلف آ گیا ہے!"

سروس کے خالق کلاؤڈ فلیئر کو کوئی بھی مکمل طور پر سمجھ سکتا ہے: وہ دنیا کے سب سے مشہور CDN نیٹ ورکس میں سے ایک کی حمایت اور ترقی کر کے اپنی روٹی کماتے ہیں (جس کے افعال میں نہ صرف مواد کی تقسیم، بلکہ DNS زونز کی میزبانی بھی شامل ہے)، اور، ان لوگوں کی خواہش کی وجہ سے، جو زیادہ نہیں جانتا، ان کو سکھائیں۔ جنہیں وہ نہیں جانتے، اس کو کہاں جانا عالمی نیٹ ورک پر، اکثر اس کے سرور ایڈریس کو بلاک کرنے کا شکار ہوتا ہے۔ ہم یہ نہیں کہیں گے کہ کون ہے۔ - لہذا ایک DNS کا ہونا جو "چیخنے، سیٹیوں اور سکریبلز" سے متاثر نہیں ہوتا ہے، اس کا مطلب ہے کہ کمپنی کے لیے ان کے کاروبار کو کم نقصان پہنچے گا۔ اور تکنیکی فوائد (ایک چھوٹی سی چیز، لیکن اچھی: خاص طور پر، مفت DNS Cloudflare کے کلائنٹس کے لیے، کمپنی کے DNS سرورز پر میزبانی کردہ وسائل کے DNS ریکارڈز کو فوری طور پر اپ ڈیٹ کرنا) پوسٹ میں بیان کردہ سروس کو مزید دلچسپ بنا دیتا ہے۔ .

سروے میں صرف رجسٹرڈ صارفین ہی حصہ لے سکتے ہیں۔ سائن ان، برائے مہربانی.

کیا آپ نئی سروس استعمال کریں گے؟

  • ہاں، اسے صرف OS اور/یا روٹر میں بتا کر

  • ہاں، اور میں نئے پروٹوکول استعمال کروں گا (HTTPS پر DNS اور TLS پر DNS)

  • نہیں، میرے پاس کافی موجودہ سرورز ہیں (یہ ایک عوامی فراہم کنندہ ہے: Google، Yandex، وغیرہ)

  • نہیں، مجھے یہ بھی نہیں معلوم کہ میں ابھی کیا استعمال کر رہا ہوں۔

  • میں ان سے پہلے ایک SSL سرنگ کے ساتھ اپنا اپنا بار بار آنے والا DNS استعمال کرتا ہوں۔

693 صارفین نے ووٹ دیا۔ 191 صارف نے پرہیز کیا۔

ماخذ: www.habr.com

نیا تبصرہ شامل کریں