社外向けテンプレート(プロジェクタ用)

Similar documents
DNSとメール

e164.arpa DNSSEC Version JPRS JPRS e164.arpa DNSSEC DNSSEC DNS DNSSEC (DNSSEC ) DNSSEC DNSSEC DNS ( ) % # (root)

BIND9.9から9.11へ移行のポイント(権威DNSサーバー編)

DNSSECトラブルシューティング

キャッシュポイズニング攻撃対策

BIND 9 BIND 9 IPv6 BIND 9 view lwres

untitled

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

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

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

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

enog-ryuichi

untitled

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

Microsoft PowerPoint - private-dnssec

スライド 1

上位 DNS の設定 YaST > Network Device > Network Card > HostName and DNS Server を開き DNS サーバとなる自分自身と上位となる ( プロバイダの指定 あるいは社内のマスター )DNS サーバを確認します この結果は /etc/re

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

untitled

rndc BIND

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

DNS DNS 2002/12/19 Internet Week 2002/DNS DAY 2

目次 1 本マニュアルについて 設定手順 (BIND 9 利用 ) 設定例の環境 設定例のファイル構成 named.conf の設定例 逆引きゾーンの設定例 動作確認 ( ゾーン転送 )

見抜く力を!データを見て対策を考える(権威サーバ)

DNSSEC性能確認手順書v1.2

権威DNSサーバ 脱自前運用のススメ

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

DNSのセキュリティとDNSに関する技術

R80.10_FireWall_Config_Guide_Rev1

キャッシュサーバの設定

Microsoft PowerPoint - BIND9新機能.ppt

PowerPoint プレゼンテーション

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

rndc BIND DNS 設定 仕組み

PowerPoint プレゼンテーション

初心者のためのDNSの設定とよくあるトラブル事例

新しいDNSサーバ、 NSDの紹介

Managed Firewall NATユースケース

日本語ドメイン名運用ガイド

2.

PowerPoint プレゼンテーション

MUA (Mail User Agent) MTA (Mail Transfer Agent) DNS (Domain Name System) DNS MUA MTA MTA MUA MB mailbox MB

untitled

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

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

VNX ファイル ストレージの管理

DNSの評価と計測の話

スライド 1

スライド 1

DNS(BIND9) BIND9.x のエラーをまとめたものです エラーと原因 ジオシティーズ容量大幅アップ セキュリティならお任せ! マイクロソフト 少ない初期導入コストで クラウド環境を構築! Ads by Yahoo!JAPAN 主にゾーン転送に関するエラー

2011 NTT Information Sharing Platform Laboratories

Root KSK更新に対応する方法

DNSSECの基礎概要

poisoning_ipsj

momentum Probe Type-R/C version 4.21 build-a04a Release Notes Release Version: momentum Probe Type-R/C version 4.21 build-a04a Release Date: 2018/06/2

JPRS JANOG13 1. JP DNS Update 2. ENUM (ETJP) 3. JP ( ) 3 1. JP DNS Update

ブロードバンドルータにおける問題(オープンリゾルバ)の解説、対策の説明

2. Save をクリックします 3. System Options - Network - TCP/IP - Advanced を開き Primary DNS server と Secondary DNS Server に AXIS ネットワークカメラ / ビデオエンコーダが参照できる DNS サ

Knot DNS

経 緯

Transcription:

Unbound の紹介とその運用 株式会社インターネットイニシアティブ 島村充 <simamura@iij.ad.jp> 1

Unbound とは オランダ NLnet Labs 製キャッシュ DNS サーバーソフトウェア ( フルサービスリゾルバ ) 2007/02 初版リリース 2008/05 1.0 リリース 最新版は 1.5.9 (2016/06/09 リリース ) そこそこ性能がいい (BIND9 比 3 倍強 ) 今日日性能が問題になることなんてよっぽど大規模な ISP 以外ないですが DNSSEC Validation 対応 FreeBSD10 のローカルの名前解決用 2

脆弱性 脆弱性は過去 4 件 (3 回 ) CVE-2012-1192 (2011/05/27) --enable-chcking OR --enable-debug で build し interface-automatic: yes の時に細工された DNS パケットを受け取ると crash つまりデフォルトでは影響なし CVE-2011-4528 CVE-2011-4869 (2011/12/20) 細工されたレコードの応答を処理すると crash CVE-2014-8602 (2014/12/08) delegation chain の段数制限がなく リソースを浪費 他の DNS サーバーソフトウェアも影響 3

BIND9 になく Unbound にある機能 Negative Trust Anchor DNSSEC 検証に失敗した特定のドメインだけ検証しない BIND9 も 9.11 で実装 ただし永続化はできない ( 最長 1 週間 ) DNSSEC 署名の expire を一定期間許す機能 use-caps-for-id (0x20) クエリのエントロピーを上げる キャッシュポイズニング攻撃の部分的検知 TXID の不一致をカウント Query Name Minimisation (RFC7816) 4

BIND9 になく Unbound にある機能 DNS over TLS DNStap high speed DNS logging without packet capture 5

BIND9 になく Unbound にある機能 prefetch もともとは Google Public DNS の機能 BIND も 9.10 で実装 速攻で crash bug! 2014/04/29 9.10.0 リリース 2014/05/09 9.10.0-P1 リリース (query) ratelimit 1.5.4(2015/07/09) で実装 cache 側で ratelimit が実装されることはないと思っていたが ゾーン (NS) 毎 cache されてない場合に所定の QPS を超えると SERVFAIL を返す ( らしい ) 6

BIND9 にあって Unbound にない機能 権威 DNS サーバー 権威 キャッシュの混在は不可 local-zone, local-data で上書き可能 additional は上書きしない ( 後述 ) みんな大好き view キャッシュ DNS サーバーに要るの? 実は昔 IIJ で使ってたんです RPZ (Response Policy Zone) 児ポブロックで使っている ISP があると聞いたことがあります ブロック自体は local-data で可能 7

BIND9 にあって Unbound にない機能 みんな大好き AAAA filter 止めたい でも ( だれも太鼓判を押してくれなくて ) 止められない! private-address: ::/0 と unbound.conf に書くとすべての AAAA を落とす contrib/aaaa-filter-iterator.patch by Stephane Lapie さん ( 朝日ネット ) A があるときだけ落とす (BIND9 と同じ ) 8

9 昔なかった機能 みんな大好き querylog 1.4.11(2011/06/30) で実装 unbound-control set_option log-queries: yes Jun 15 09:50:03 host unbound: [751:0] info: 127.0.0.1 github.com. AAAA IN Jun 15 09:58:24 host named[31170]: queries: info: client 127.0.0.1#60141 (github.com): view external: query: github.com IN AAAA + (127.0.0.1) 情報はちょっと少なめ みんな大好き Round Robin 1.4.17(2012/05/24) で実装 (by 東さん ) デフォルトでは無効 rrset-roundrobin: yes RFC3484 あるし 必要ですかね?

昔なかった機能 minimal-responses AUTHORITY, ADDITIONAL セクションを省略して良い場合に削って応答を返す 応答パケットサイズを小さくして帯域節約 TCP fallback を抑制 1.4.17(2012/05/24) で実装 (by 東さん ) デフォルトでは無効 minimal-responses: yes 10

Unbound 運用の実際 IIJ での Unbound 利用状況 法人向け回線サービスのキャッシュ DNS サーバー 2013/4 頭 ~ 一部サービス用 2014/6 末 ~ 全サービス 個人向けは? BIND9 です 昔 view を使っていた AAAA filter ( もう止めようよ ) そのうち Unbound に ( 年内にできたらいいな ) 脆弱性対応 1 回 (CVE-2014-8602) crash したことなどなし 11

ちょっとしたハマりどころ DSR 構成の LB を使っていたり anycast をしている場合 サービス用の IP アドレスと Interface の IP アドレスが異なる その場合に なにもケアしないと 応答を Interface の IP アドレスから返そうとする interface-automatic: yes とすると クエリを受けた IP アドレスから返す interface-automatic: <yes or no> Detect source interface on UDP queries and copy them to replies. This feature is experimental, and needs support in your OS for particular socket options. Default value is no. 12

Unbound 移行時 ( 後 ) のトラブル TCP 無応答問題 移行直後から たまに TCP クエリをこぼす incoming-num-tcp のデフォルト値 (10) が小さすぎて詰まっていた 当時 open resolver だったり 網内に open forwarder が大量にいた所為もあると思われる incoming-num-tcp: 1000 にして解消 13

Unbound 移行時 ( 後 ) のトラブル 応答 UDP パケットサイズ制限無し問題 まだ open resolver だった頃 ANY 応答が 61.5KB の名前をひたすら引かれ 1Gbps の uplink が埋まって死亡 1.4.21 で max-udp-size オプション導入 (by 東さん ) デフォルト 4KB BIND9 との応答内容の微妙な変化 応答の細かいところが微妙に違う 当時詳細は調べたけど忘れてしまいました 多少心配していたけど 問い合わせが来たことはない 14

パラメーターチューニング Unbound: Howto optimise (unbound.net) 基本はこれを熟読 日本 Unbound ユーザー会による和訳 DNS キャッシュサーバ設計と運用のノウハウ ( 東大亮 ) DNS キャッシュサーバチューニングの勘所 ( 東大亮 ) unbound だけではなく BIND9 も解説 15

これだけは変更しておけパラメータ ( 全員 ) rrset-cache-size/msg-cache-size ( デフォルト 4MB( 小さすぎでしょ!)) rrset-cache-size は msg-cache-size の 2 倍 サーバーのメモリに応じて malloc のオーバーヘッドにより 総メモリ使用量は設定ファイルに記入した総キャッシュメモリの 2 倍 ( あるいは 2.5 倍 ) まで増える可能性があります らしい 16

これだけは変更しておけパラメータ (ISP) libevent の利用 (compile 時 ) fd 1024 個制限の突破 num-threads ( デフォルト 1) CPU 個数と同じに ( 自動検出してよ ) incoming-num-tcp ( デフォルト 10( 低すぎ )) TCP クエリ数に応じて 1000 くらい? outgoing-num-tcp ( デフォルト 10( 低すぎ )) 水責め攻撃に加担している client 数に応じて 権威 DNS サーバー (UDP) が詰まる TCP で聞く TCP も詰まる こっちも詰まる 1000 くらい? 17

これだけは変更しておけパラメータ (ISP) num-queries-per-threads ( デフォルト 1024) QPS に応じて outgoing-range ( デフォルト 4096) num-queries-per-threads の 2 倍にする net.core.rmem_max, rmem_default カーネルパラメータ 適当に 4 or 8MB くらいらしい 18

Unbound の悩ましいところ unbound_control reload するとキャッシュが揮発する ACL の変更適用などで reload する場合 大抵のパラメータは unbound_control set_option で reload なしに変更可能なのですが 設定ファイルとの整合性に気を配る必要あり キャッシュ揮発 若干レスポンスが悪化する 大抵の場合はそんなに影響ない ( 即座に回復する ) 高アクセス時間帯にはやらない方がよいかも LB 配下に複数台いる場合 時間をずらすなど もっと丁寧にやるなら サービスから抜いて dump_cache して reload して dump を基に暖めてから戻すとか 19

Unbound の悩ましいところ? RD bit の立っていないクエリに応えない dig +trace するときに困る ユーザが普通に使う分には全く困らない はじめのクエリ (. の NS の検索 ) を resolv.conf の IP アドレスに RD bit 無しで投げるため access-control の第二パラメータに allow の代わりに allow_snoop と書くと応答する access-control: 192.0.2.0/24 allow access-control: 192.0.2.0/24 allow_snoop dig @a.root-servers.net +trace... する drill T... する (root-servers に直接聞く ) 20

Unbound の悩ましいところ? local-data が Additional を上書きしない ユースケース : 特定の MTA に対するメールの迂回配送をしたいような場合 local-data で MTA の IP アドレスを乗っ取る minimal-responses: yes にしていない場合 MX レコードを問い合わせると Additional に MTA の元々の A レコードが入っている MTA が乗っ取った IP アドレスではなく 元々の IP アドレスに配送してしまう ( ホント??) postfix/sendmail とも乗っ取った IP アドレスに配送をし 元々の IP アドレスには配送しない 21

Package RHEL(CentOS)7 にて base 入り ( パチパチパチ ~) これで BIND9 以外はベンダー保守がないから っていう言い訳ができなくなりますね! ところが version が 1.4.20 RHEL 7.0 Beta 2013/12/11 Unbound 1.4.21 2013/09/10 max-udp-size オプションなし Negative Trust Anchor なし cache-max-negative-ttl オプションなし CVE-2014-8602 patch 適用済み 22

参考文献 Unbound: Howto optimise (unbound.net) DNS キャッシュサーバ設計と運用のノウハウ ( 東大亮 ) Unbound と NSD の紹介 BIND9 との比較編 ( 東大亮 ) Unbound キャッシュ DNS サーバ大規模用途向け機能の実装 ( 東大亮 ) 23

Any Questions? 24