Cloudflareのサヌビス1.1.1.1および1.0.0.1、たたは「パブリックDNSシェルフが到着したした」

1.1.1.1







Cloudflare は次の堎所でパブリックDNSを導入したした。









ナヌザヌがリク゚ストの内容に぀いお萜ち着くこずができるように、「プラむバシヌ優先」ポリシヌが䜿甚されおいるず蚀われおいたす。







このサヌビスは、通垞のDNSに加えお、 DNS-over-TLSおよびDNS-over-HTTPSテクノロゞヌを䜿甚する機胜を提䟛するずいう点で興味深いものです。これにより、プロバむダヌは、リク゚ストの途䞭でリク゚ストをリッスンしたり、統蚈の収集、監芖、および広告の管理を行えなくなりたす。 Cloudflareは、発衚日2018幎4月1日、たたは米囜の衚蚘では04/01が偶然遞択されなかったず䞻匵しおいたす。







Habrオヌディ゚ンスは技術的に粟通しおいるため、埓来のセクション「なぜDNSが必芁なのですか」 これを投皿の最埌に掲茉したす。ここでは、より実甚的な有甚事項の抂芁を説明したす。







新しいサヌビスの䜿甚方法は



最も簡単なのは、DNSクラむアントたたは䜿甚しおいるロヌカルDNSサヌバヌの蚭定の䞊流で、䞊蚘のDNSサヌバヌアドレスを指定するこずです。 GoogleのDNSの通垞の倀8.8.8.8など、たたはあたり䞀般的ではないYandexパブリックDNSサヌバヌ 77.88.8.8などをCloudflareのサヌバヌに眮き換えるこずは意味がありたすか回答は、どのCloudflareがすべおの競合他瀟よりも速いかを瀺しおいたす明らかにしたすサヌドパヌティのサヌビスによっお枬定が行われ、特定のクラむアントぞの速床はもちろん異なる堎合がありたす。







パブリックDNS速床







䞊蚘のDNS-over-TLSおよびDNS-over-HTTPSずいう、暗号化された接続実際には応答が返されるを介しお芁求がサヌバヌに送信される新しいモヌドで䜜業するこずは、はるかに興味深いです。 残念ながら、それらは「そのたた」ではサポヌトされおいたせん著者は「これたで」ず考えおいたすが、゜フトりェアたたはハヌドりェアで䜜業を敎理するこずは難しくありたせん。







DNS over HTTPDoH



名前が瀺すように、通信はHTTPSチャネルの䞊で行われたす。







  1. タッチポむント゚ンドポむントの存圚-https://cloudflare-dns.com/dns-queryにありたす 。
  2. 芁求を送信しお回答を受け取るこずができるクラむアント。


芁求は、 RFC1035 HTTP POSTおよびGETメ゜ッドで送信で定矩されたDNS Wireformat圢匏たたはJSON圢匏HTTP GETメ゜ッドを䜿甚のいずれかです。 個人的には、HTTPリク゚ストを介しおDNSク゚リを䜜成するずいうアむデアは予想倖のように思えたしたが、合理的なポむントがありたすそのようなリク゚ストは倚くのトラフィックフィルタリングシステムを通過し、応答の解析は非垞に簡単で、リク゚ストの䜜成はさらに簡単です。 通垞のラむブラリずプロトコルがセキュリティを担圓したす。







ドキュメントから盎接ク゚リのサンプル







DNS Wireformat圢匏のGETリク゚スト







$ 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 Wireformat圢匏の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" } ] }
      
      





明らかに、たれに少なくずも1぀はホヌムルヌタヌがこの方法でDNSを䜿甚できたすが、これはサポヌトが明日衚瀺されないずいう意味ではありたせん-そしお、興味深いこずに、ここでアプリケヌションでDNSを完党に䜿甚できたす既に行うように Mozilla 、Cloudflareサヌバヌ䞊のみ。







DNS over TLS



デフォルトでは、DNSク゚リは暗号化なしで送信されたす。 DNS over TLSは、安党な接続でそれらを送信する方法です。 Cloudflareは、 RFC7858で芏定されおいるように、暙準ポヌト853でDNS over TLSをサポヌトしおいたす。 cloudflare-dns.comホスト甚に発行された蚌明曞が䜿甚され、TLS 1.2およびTLS 1.3がサポヌトされたす。







通信の確立ずプロトコルでの䜜業はほが次のようになりたす。









DNS over 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
      
      





このオプションは、ロヌカルネットワヌクたたは単䞀のナヌザヌのニヌズに察応するロヌカルDNSサヌバヌにより適しおいるようです。 確かに、暙準をサポヌトするこずはあたり良くありたせんが、期埅したしょう







䌚話の内容に぀いお説明する2぀の蚀葉



DNSの略語はドメむンネヌムサヌビスの略語です぀たり、「DNSサヌビス」はやや冗長であり、略語には「サヌビス」ずいう単語が既にありたす。特定のホスト名がどのIPアドレスであるかを理解するための簡単なタスクを解決するために䜿甚されたす ナヌザヌがリンクをクリックするか、ブラりザヌのアドレスバヌにアドレスを入力するたびに「 https://habrahabr.ru/post/346430/ 」など、ナヌザヌのコンピュヌタヌはリク゚ストを送信するサヌバヌを芋぀けようずしたすペヌゞのコンテンツを受信したす。 habrahabr.ruの堎合、DNSからの応答には、WebサヌバヌのIPアドレス178.248.237.68の指瀺が含たれたす。その埌、ブラりザヌは、指定されたIPアドレスでサヌバヌに接続しようずしたす。







次に、「habrahabr.ruずいう名前のホストのIPアドレスは䜕ですか」ずいう芁求を受け取ったDNSサヌバヌは、指定されたホストに぀いお䜕かを知っおいるかどうかを刀断したす。 そうでない堎合、圌は䞖界の他のDNSサヌバヌに芁求を行い、ステップバむステップで、質問に察する答えを芋぀けようずしたす。 その結果、最終的な回答を芋぀けるず、芋぀かったデヌタはただ埅機しおいるクラむアントに送信され、さらにDNSサヌバヌ自䜓のキャッシュに保存されたす。これにより、次回同様の質問にはるかに速く回答できるようになりたす。







䞀般的な問題は、最初に、DNSク゚リのデヌタがオヌプンフォヌムで送信されるこずですこれにより、トラフィックフロヌにアクセスできるすべおの人がDNSク゚リず受信した回答を分離し、独自の目的で分析できるようになりたす;これにより、 DNSクラむアントの広告を正確にタヌゲティングする機胜。これは非垞に倚くのこずです。 第二に、䞀郚のむンタヌネットプロバむダヌ私たちは指を指さず、最小のものではありたせんは、1぀たたは別の芁求されたペヌゞの代わりに広告を衚瀺する傟向がありたす非垞に簡単に実装されたすホスト名habranabr.ruによるク゚リの指定されたIPアドレスの代わりに、人はランダムですこれは、広告を含むペヌゞが返されるプロバむダヌのWebサヌバヌのアドレスを返したす。 第䞉に、ブロックされたWebリ゜ヌスのIPアドレスに関する正しいDNS回答をスタブペヌゞを含むサヌバヌのIPアドレスに眮き換えるこずにより、個々のサむトをブロックする芁件を満たすメカニズムを実装するむンタヌネットアクセスプロバむダヌがありたすその結果、著しく耇雑なサむト、たたはフィルタリングを実行するプロキシサヌバヌのアドレスに送信されたす。







ここでは、おそらく、サヌビスぞの接続を説明するhttp://1.1.1.1/のサむトから画像を配眮する必芁がありたす。 ご芧のように、著者はDNSの品質に絶察的な自信を持っおいたすただし、Cloudflareに別のものを期埅するこずは困難です。







画像







サヌビスの䜜成者であるCloudflareを完党に理解できたす圌らは䞖界で最も人気のあるCDNネットワヌクコンテンツの配信だけでなく、DNSゟヌンのホスティングも含む機胜の1぀をサポヌトおよび開発するこずで利益を埗おいたす。サヌバヌのアドレスをブロックするこずで非垞に頻繁に苊しむグロヌバルネットワヌクのどこに行くべき かを知らない人に教えるために 、 あたり知らない人 、぀たり「叫び、who、萜曞き、「䌚瀟にずっお、圌らのバむぞの害が少ないこずを意味したす 知っおるよ。 そしお、技術的な利点些现なこずですが、特に、無料のCloudflare DNSの顧客にずっお、䌚瀟のDNSサヌバヌ䞊にあるリ゜ヌスのDNSレコヌドの曎新は瞬時に行われたすにより、この蚘事で説明されおいるサヌビスをさらに興味深いものにするこずができたす。








All Articles