DNSOPS.JP BoF nginxを利 した DNS over TLS 対応フルリゾルバの作り ( 株 ) ハートビーツ滝澤隆史

Similar documents
自己紹介 氏名 : 藤原和典 個人ページ : 勤務先 : 株式会社日本レジストリサービス (JPRS) 技術研究部 業務内容 :DNS 関連の研究 開発 IETFでの活動 (2004~) RFC (2004~

DNS と blocking anti-blocking 要素技術 ( みえてしまう要素技術 ) 藤原和典 株式会社日本レジストリサービス (JPRS) Internet Week 2018, DNS Day 2018 年 11 月 29 日 Copyrigh

2 フルサービスリゾルバ スタブリゾルバ からリクエストを 受け取る フルサービスリゾルバは権威ネームサーバに 対して反復復的に 問い合わせを 行行う ルートゾーンの権威サーバ スタブリゾルバ の IP アドレスを教えて? の IP アドレ

DNSSEC の仕組みと現状 平成 22 年 11 月 DNSSEC ジャパン

untitled

DNS の統計調査結果の紹介 ( 仮 ) DNS-OARC2014,ICANN51,IETF91 の話題 藤原和典 株式会社日本レジストリサービス (JPRS) dnsops.jp BoF, Nov.,2014

DNSとメール

Unboundの紹介

Powered BLUE メールプラス

DNSSEC性能確認手順書v1.2

SSL/TLSサーバ構築ガイドライン

2 注意事項 教材として会場を提供していただいている ConoHa さんのドメイン名とその権威ネームサーバを使 用しています conoha.jp ns1.gmointernet.jp

自己紹介 - 後藤浩之 ( グリー ) - インフラ担当 - ISOC-JP インターネット標準化推進委員会 - 興味 :Web, HTTP QUIC 関連

DNS DNS(Domain Name System) named(bind), tinydns(djbdns), MicrosoftDNS(Windows), etc 3 2 (1) ( ) IP IP DNS 4

DNSの負荷分散とキャッシュの有効性に関する予備的検討

更新履歴 Document No. Date Comments 次 D JP 2017/05/01 初版 1. 概要 はじめに 情報源 A10 Lightning Application Delivery Service(ADS) 導 構成 動作概要 構築概要 2. 事

注意事項 本文書は 2014 年 10 月 15 日時点で公開されている脆弱性情報にもとづいて作成されています 脆弱性の影響を受ける条件 改善策及び回避策等は公開情報をもとに記載しており 今後新 たに公開される情報により変更される可能性がありますのでご注意ください 目 次 1. 脆弱性の概要...

DNS (BIND, djbdns) JPNIC・JPCERT/CC Security Seminar 2005

サーバーで安全な設定とは 正しい情報を正しく提供する 不確かな情報を提供したりしない ( 安全というより正しい設定 ) サービス経由で侵入されない 万が一侵入されても被害を最小限にする 2

導入ドキュメント

MIRACLE LoadBalancerを使用したネットワーク構成と注意点

DNSを「きちんと」設定しよう

あなたのDNS運用は 来るべきDNSSEC時代に耐えられますか

HomeGatewayにまつわるDNS話あれこれ

リバースプロキシー(冗長構成)構築手順

第168回東京エリアDebian勉強会   debianにおけるnginxの設定例

(1) 鍵の更改 に追従するために 1 のソフトウェア ( 一般に BIND 又は Windows Server を利用 ) を最新版に更新する ( 今回の対策だけでなく 脆弱性への対応のためにも 最新版への更新は必須 ) 2 において DNSSEC のトラストアンカーの自動更新 の設定を行う 3

Mac OS X Server QuickTime Streaming Server 5.0 の管理(バージョン 10.3 以降用)

NetLec17TCPIP1.ppt

Web 関連 グリー株式会社後藤 2015/12/8 IETF 94 報告会

Cisco Unity と Unity Connection Server の設定

Microsoft PowerPoint - DNSSECとは.ppt

大阪大学キャンパスメールサービスの利用開始方法

F5 SSL Orchestrator による SSL/TLS通信の可視化(BIG-IP)

PowerPoint Presentation

SOC Report

TCP/IP Internet Week 2002 [2002/12/17] Japan Registry Service Co., Ltd. No.3 Internet Week 2002 [2002/12/17] Japan Registry Service Co., Ltd. No.4 2

学生実験

インターネットVPN_IPoE_IPv6_fqdn

ISP技術者SWG報告書 およびその後の検討状況

2014 年電子情報通信学会総合大会ネットワークシステム B DNS ラウンドロビンと OpenFlow スイッチを用いた省電力法 Electric Power Reduc8on by DNS round- robin with OpenFlow switches 池田賢斗, 後藤滋樹

ローカル ポリシーでの FIPS の有効化

SSL/TLSサーバ構築ガイドライン

リバースプロキシー (シングル構成) 構築手順

脆弱性 (CTX230612) の対応方法 対応方法設定手順 GUI での設定方法 realserver に対するクライアント証明書の認証解除 CipherSuite の DHE を無効化 CLI での設定方法 realserver に対するクライアント証明書の認証解除 CipherSuite の

IW2002-B5 1 Internet Week ( ) 9:30 12:30 ( ) Copyright 2002 All Rights Reserved, by Seiji Kumagai ADSL FTTH 24 IP LAN

Macintosh HD:Users:ks91:Documents:lect:nm2002s:nm2002s03.dvi

「DNSSECの現状と普及に向けた課題」

今後の予定 第 10 回 :6 月 22 日 暗号化ソフトウェア :SSL,SSH 第 11 回 :6 月 29 日 サーバセキュリティ 第 12 回 :7 月 6 日 理論 : 計算論, 暗号プロトコル 第 13 回 :7 月 13 日 企業 組織のセキュリティ :ISMS, 個人情報保護法 第

学生実験 3 日目 DNS IP ネットワークアーキテクチャ 江崎研究室

2.SSL/TLS と暗号プロトコルの安全性 恒久的に噴出する脆弱性との戦い クライアント ClientKeyExchange Verify ServerKeyExchange Request Done Request サーバ X Master Secret CCS MAC 図 -1 図

Powered BLUE メールプラス



Juniper Networks Corporate PowerPoint Template

SOC Report

UNIVERGE SG3000 から SG3600 Ver.6.2(2012 年モデル ) への 移行手順 All Rights Reserved, Copyright(C) NEC Corporation 2017 年 11 月 4 版

目次 SSL/TLS 暗号設定ガイドライン付録改訂案... 1 Appendix B: サーバ設定編... 1 B.1.1. Apache の場合... 1 B.2.1. Apache の場合... 2 B.2.2. lighttpd の場合... 3 B.2.4. Microsoft IIS の場

ScreenOS 5.0 ScreenOS 5.0 Deep Inspection VLAN NetScreen-25/-50/-204/-208 HA NetScreen-25 HA Lite NetScreen-25 NetScreen-50) ALG(Application Layer Gat

プロダクト仕様書 SLB

CDNを最大限活用する為の ZenlogicCDN導入チェックリスト

SURFNAVIへのW2003SP2適用時の注意

調査結果詳細 本書は SSL/TLS アプライアンス製品の暗号設定方法等の調査報告書 の 1 部分を取り出したもの である 調査の背景 調査方法等は報告書を参考にされたい 1.x.1 章記載の表 1.x.1-1 暗号設定内容 ( デフォルト ) の見方を以下に示す CipherSuite 選択優先権

HTTP2 HTTP2 http2fuzz ATS Firefox NodeJS

WebRTC P2P Web Proxy P2P Web Proxy WebRTC WebRTC Web, HTTP, WebRTC, P2P i

SOC Report

ご挨拶

PowerPoint プレゼンテーション

アライドテレシス・コアスイッチ AT-x900 シリーズとディストリビューションスイッチ AT-x600 シリーズで実現するACLトラフィックコントロール

conf_example_260V2_inet_snat.pdf

PowerPoint Presentation

F コマンド

<4D F736F F F696E74202D DB A B C C815B E >

情報通信の基礎

2017/8/2 HP SiteScope software 監視機能対応表 この監視機能対応表は HP SiteScope software v11.33) に対応しています モニタ モニタ説明 モニタ説明 SiteScope for Windows SiteScope for Linux ネット

PowerPoint プレゼンテーション

antiabuse.gby

アライドテレシス ディストリビューション・スイッチ AT-x600シリーズで実現するMicrosoft® NAP

Web 環境におけるレイヤー別負荷の 2 違い DB サーバ AP サーバ 後ろのレイヤーほど負荷が高く ボトルネックになりやすい

調査結果詳細 本書は SSL/TLS アプライアンス製品の暗号設定方法等の調査報告書 の 1 部分を取り出したもの である 調査の背景 調査方法等は報告書を参考にされたい 1.x.1 章記載の表 1.x.1-1 暗号設定内容 ( デフォルト ) の見方を以下に示す CipherSuite 選択優先権

Microsoft PowerPoint attacktool.pptx

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション

IPSEC(Si-RGX)

168 Debian.Deb 銀河系唯一の Debian 専門誌 nginx

tcp/ip.key

大阪大学キャンパスメールサービスの利用開始方法

Microsoft Word - SE第15回.doc

memcached 方式 (No Replication) 認証情報は ログインした tomcat と設定された各 memcached サーバーに認証情報を分割し振り分けて保管する memcached の方系がダウンした場合は ログインしたことのあるサーバーへのアクセスでは tomcat に認証情報

Powered BLUE メールプラス

Lync Server 2010 Lync Server Topology Builder BIG-IP LTM Topology Builder IP Lync 2010 BIG IP BIG-IP VE Virtual Edition BIG-IP SSL/TLS BIG-IP Edge Web

i TCP/IP NIC Intel 3com NIC TCP/IP *1 20 IPv4 IPv6 IPv6 TCP/IP TCP/IP *1 3

LAN

Windows2008Serverの キャッシュDNSサーバと.biz

D. Amazon EC2 のインスタンスストアボリュームへ 1 時間ごとに DB のバックアップ取得を行うと共に Amazon S3 に 5 分ごとのトランザクションログを保管する 正解 = C 会社のマーケティング担当ディレクターから " 何気ない親切 " と思われる善行を目にしたら 80 文字

実務に役立つサーバー運用管理の基礎 CompTIA Server+ テキスト SK0-004 対応

ict2-.key

Windows Server2003環境向け Deep Security 推奨ポリシーの考え方 と適用イメージ

PowerPoint プレゼンテーション

Microsoft Word - 08平成23年度広報_内藤.docx

Testing XML Performance

Transcription:

DNSOPS.JP BoF nginxを利 した DNS over TLS 対応フルリゾルバの作り ( 株 ) ハートビーツ滝澤隆史

2 私は誰 名 : 滝澤隆史 @ttkzw 所属 : 株式会社ハートビーツ ウェブ系のサーバの構築 運 や 24 時間 365 の有 監視をやっている会社 いわゆる MSP( マネージドサービスプロバイダ ) 本 Unbound ユーザー会 Unbound/NSD の 書の翻訳 DNS をネタとして遊んでいるおじさんです DNS RFC 系統図 を作っています

3 DNS Privacy IETF の dprive ワーキンググループ DNS PRIVate Exchange (DPRIVE) DNS トランザクション中のプライバシーを守る仕組み RFC 7626: DNS Privacy Considerations I-D: DNS over TLS: Initiation and Performance Considerations I-D: DNS over DTLS (DNSoD)

4 DNS トランザクション ルートゾーンの権威サーバ スタブリゾルバ ( クライアント ) www.example.jp の IP アドレスを教えて? www.example.jp の IP アドレスは 192.0.2.4 フルリゾルバ ( キャッシュネームサーバ ) 権威ネームサーバ jp ゾーンの 権威サーバ example.jp ゾーンの 権威サーバ

5 DNS トランザクションの暗号化 DNS over TLS DNS over DTLS ルートゾーンの権威サーバ スタブリゾルバ ( クライアント ) www.example.jp の IP アドレスを教えて? www.example.jp の IP アドレスは 192.0.2.4 フルリゾルバ ( キャッシュネームサーバ ) 権威ネームサーバ jp ゾーンの 権威サーバ example.jp ゾーンの 権威サーバ

6 DNS over TLS 対応リゾルバ draft-ietf-dprive-dns-over-tls-01 8. Implementation Status 8.1. Unbound 8.2. ldns 8.3. digit 8.4. getdns

7 DNS over TLS 対応リゾルバ draft-ietf-dprive-dns-over-tls-01 8. Implementation Status 8.1. Unbound 8.2. ldns 8.3. digit 8.4. getdns

8 DNS over TLS 対応リゾルバ Unbound ssl-port, ssl-upstream 機能 DNS over TLS に対応

9 Unbound の ssl-upstream 機能の利 例 クエリーを TCP 853 ポートにフォワードする TCP 853 ポートで リッスンする DNS over TLS スタブ リゾルバ スタブリゾルバ ( クライアント ) server: ssl-upstream: yes forward-zone: name: "." forward-addr: 192.0.2.1@853 フルサービスリゾルバ ( キャッシュネームサーバ ) server: interface: 0.0.0.0@853 ssl-service-key: "/etc/unbound/unbound_server.key" ssl-service-pem: "/etc/unbound/unbound_server.pem" ssl-port: 853

10 Unboundならできるのは わかった では フルリゾルバ側で Unbound 以外を 利 したいときには?

11 そうだ nginx( ウェブサーバ ) の streamモジュールを 使おう

12 nginx( えんじんえっくす ) とは HTTP server reverse proxy server (HTTP) mail proxy server (SMTP, POP3, IMAP) TCP proxy server SSL/TLS termination 対応 HTTP/2 対応 ウェブサーバのシェアは Apache HTTP Server に続いて 2 位 (Netcraft の調査 Market share of active sites) http://news.netcraft.com/archives/ 2015/10/16/october-2015-web-serversurvey.html

13 nginx( えんじんえっくす ) とは HTTP server reverse proxy server (HTTP) mail proxy server (SMTP, POP3, IMAP) TCP proxy server SSL/TLS termination 対応 HTTP/2 対応 ウェブサーバのシェアは Apache HTTP Server に続いて 2 位 (Netcraft の調査 Market share of active sites) http://news.netcraft.com/archives/ 2015/10/16/october-2015-web-serversurvey.html

14 なぜ nginx なのか stream モジュール (TCP proxy 機能 ) は TLS termination 対応 そこに nginx があったから 今時の実装 ( イベント駆動 ノンブロッキング 同期 I/O)

15 nginx で DNS パケットを転送 おまえは何を っているんだ! クエリーを TCP 853 ポートにフォワードする TCP 853 ポートで リッスンする DNS over TLS nginx TCP 53 ポートにフォワードする スタブ リゾルバ フル リゾルバ スタブリゾルバ ( クライアント ) フルリゾルバ ( キャッシュネームサーバ )

16 nginx.conf stream { upstream backend { server 127.0.0.1:53; } server { listen *:853 ssl; listen [::]:853 ssl; フルリゾルバを指定 複数個記述することで負荷分散できる リッスンするポートを TCP 853 に指定 SSL/TLS を有効に ssl_prefer_server_ciphers on; ssl_protocols TLSv1.2; ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM- SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128- SHA:ECDHE-RSA-AES128-SHA; ssl_certificate /etc/nginx/tls/server.crt; ssl_certificate_key /etc/nginx/tls/server.key; ssl_session_cache shared:dns:5m; ssl_session_timeout 5m; ssl_session_ticket_key /etc/nginx/tls/ticket.key; ssl_session_tickets on; } } proxy_pass backend; アップストリーム先の指定

17

18 ベンチマーク環境 ベンチマークツール dnsperf 2.0.0.0 -c 10 -n 200000 "localhost A" を問い合わせ サーバ AWS EC2 c4.large クライアントとサーバは 同 リージョン同 アベイラビリティゾーンであるため ネットワークレイテンシは さい 結果について 3 回計測し その平均値を有効数字 2 桁で四捨五 今 思いつきでベンチマークをやったので精度はよくない さらに クラウド上の仮想マシンですし クライアント側がボトルネックになっていて負荷があまりかけられていない でも CPU 負荷は数 % CPU Usage は steal が数 % コンテキストスイッチが 6 桁台 クラウド環境な時点で負け そのため 相対的な 雑把な 較

19 ベンチマーク環境 クライアント側の unbound 経由で対象サーバにクエリーを う キャッシュ無しのフォワーダーとして動作 cache-max-ttl: 0 localhost に対する回答を返せるので無効化 local-zone: "localhost" transparent クライアント側の nginx 経由で TLS 化 TLS セッション再利 の有無の 違いも計測 proxy_ssl on; proxy_ssl_session_reuse on; stream { upstream backend { server 10.0.0.38:853; } server { listen *:80; proxy_ssl on; proxy_ssl_session_reuse on; proxy_ssl_protocols TLSv1.2; proxy_pass backend; } }

20 ベンチマーク環境 TLS 化 TLS セッション 再利 検証 nginx (TCP/80) (UDP/53) DNS over TLS DNS over TLS nginx (TCP/853, TLS) (UDP TCP/53) dnsperf 基準値 スタブリゾルバ ( クライアント ) フルリゾルバ ( キャッシュネームサーバ )

21 1. 基準値 (UDP) 項番 1 qps 82000 (UDP/53) UDP (UDP/53) dnsperf スタブリゾルバ ( クライアント ) フルリゾルバ ( キャッシュネームサーバ )

22 2. 基準値 (TCP) 項番 1 2 qps 82000 71000 (UDP/53) TCP (TCP/53) dnsperf スタブリゾルバ ( クライアント ) フルリゾルバ ( キャッシュネームサーバ )

23 3. 基準値 (DNS over TLS) 項番 1 2 3 qps 82000 71000 1000 (UDP/53) DNS over TLS (TCP/853, TLS) dnsperf スタブリゾルバ ( クライアント ) フルリゾルバ ( キャッシュネームサーバ )

24 4. nginx(tls なし ) 項番 1 2 4 qps 82000 71000 69000 (UDP/53) TCP nginx (TCP/80) (TCP/53) dnsperf スタブリゾルバ ( クライアント ) フルリゾルバ ( キャッシュネームサーバ )

25 5. nginx(tls) 項番 1 3 5 qps 82000 1000 2100 (UDP/53) DNS over TLS nginx (TCP/853, TLS) (TCP/53) dnsperf スタブリゾルバ ( クライアント ) フルリゾルバ ( キャッシュネームサーバ )

26 6. クライアント側 nginx(tls) サーバ側 unbound(tls) 項番 3 5 6 qps 1000 2100 2400 nginx (TCP/80) (UDP/53) (TCP/853, TLS) dnsperf スタブリゾルバ ( クライアント ) フルリゾルバ ( キャッシュネームサーバ )

27 7. クライアント側 nginx で TLS 化 項番 1 3 7 qps 82000 1000 15000 nginx (TCP/80) DNS over TLS nginx (TCP/853, TLS) (UDP/53) (TCP/53) dnsperf スタブリゾルバ ( クライアント ) フルリゾルバ ( キャッシュネームサーバ )

28 8. クライアント側 nginx で TLS 化 (TLS セッション再利 あり ) 項番 1 7 8 qps 82000 15000 44000 nginx (TCP/80) DNS over TLS nginx (TCP/853, TLS) (UDP/53) (TCP/53) dnsperf スタブリゾルバ ( クライアント ) フルリゾルバ ( キャッシュネームサーバ )

29 結果 有効数字 2 桁 として四捨五 項番 説明 プロト コル qps 1 基準値 ([unbound] [unbound]) UDP 82000 2 基準値 ([unbound] [unbound]) TCP 71000 3 基準値 ([unbound] [unbound]) TLS 1000 4 5 6 7 8 nginx で TCP 転送 ([unbound] [nginx unbound]) nginx で TLS termination ([unbound] [nginx unbound]) クライアント側を nginx で TLS 化 ([unbound nginx] [unbound]) クライアント側を nginx で TLS 化 ([unbound nginx] [nginx unbound]) クライアント側を nginx で TLS 化 ( セッション再利 ) ([unbound nginx] [nginx unbound]) TCP TLS TLS TLS TLS 69000 2100 2400 15000 44000

30 ベンチマークのまとめ 負荷が 分にかけられていない状況では UDP と TCP による性能の違いは きくはない ベンチマーク環境のネットワークレイテンシーが さいのでより差が出にくい? unbound の TLS 周り性能はよくない nginx の TLS 周りの性能はよい TLS termination TLS proxy

31 ベンチマークのまとめ TLS のハンドシェイクのオーバーヘッドは きい TLS セッション再利 を わないと性能がかなり落ちる TLS 周りでは次の機能のどちらかを利 しないと性能的には い TLS session cache TLS Session Resumption / TLS Session Tickets RFC 5077 Transport Layer Security (TLS) Session Resumption without Server-Side State draft-ietf-dnsop-5966bis (DNS Transport over TCP - Implementation Requirements) で性能は改善するはず? Connection Re-use Query Pipelining TCP Fast Open

32