Unbound/NSD最新情報(OSC 2013 Tokyo/Spring)

14,577 views

Published on

Published in: Technology
1 Comment
15 Likes
Statistics
Notes
  • Please dear can you contact me on my email id jessicaduale@yahoo.com, i have something private to discuss with you. Thank, i will be happy to meet you in my email. Jessica
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total views
14,577
On SlideShare
0
From Embeds
0
Number of Embeds
9,330
Actions
Shares
0
Downloads
38
Comments
1
Likes
15
Embeds 0
No embeds

No notes for slide

Unbound/NSD最新情報(OSC 2013 Tokyo/Spring)

  1. 1. 1オープンソースカンファレンス  2013  Tokyo/SpringUnbound/NSD最新情報滝澤  隆史⽇日本Unboundユーザー会    http://unbound.jp/ OSC  2013  Tokyo/Spring 2013-‐‑‒02-‐‑‒23
  2. 2. 2私は誰•  ⽒氏名:  滝澤  隆史  @ttkzw•  所属:  株式会社ハートビーツ ▫  サーバの構築・運⽤用や 24時間365⽇日の有⼈人監視をやっている会社 ▫  いわゆるMSP(マネージド  サービス  プロバイダ)•  DNSとの関わり ▫  システム管理理者として1997年年から2006年年までネームサー バの運⽤用 –  BIND4,  BIND8,  djbdns,  BIND9 ▫  現在は個⼈人サーバでネームサーバを運⽤用 –  NSD,  Unbound ▫  ⽇日本Unboundユーザー会 –  Unbound/NSDの⽂文書の翻訳 ▫  DNSは趣味です(キリッ OSC  2013  Tokyo/Spring 2013-‐‑‒02-‐‑‒23
  3. 3. 3アジェンダ•  DNSサーバの遺伝的多様性•  Unboundの最新情報•  NSDの概要 ▫  NSD3の管理理運⽤用/仕様上の注意点 ▫  次期バージョンNSD4 ▫  おまけ:  NSD  4  beta4のインストール例例 ▫  おまけ:  NSD  4  の操作例例 OSC  2013  Tokyo/Spring 2013-‐‑‒02-‐‑‒23
  4. 4. 4注意事項•  Unboundについての基本的な機能の説明はしま せん。過去の資料料を⾒見見てください。 ▫  http://unbound.jp/unbound/•  NSDについての話はInternet  Week  2012の DNS  DAYで話した内容をベースとしています。 OSC  2013  Tokyo/Spring 2013-‐‑‒02-‐‑‒23
  5. 5. 5どうしてこうなった OSC  2013  Tokyo/Spring 2013-‐‑‒02-‐‑‒23
  6. 6. 6⽇日本Unboundユーザ会•  何となくノリで作った•  なぜか公式(NLnet  Labs)公認•  ユーザ会と名乗っている割にはコミュニティー として体をなしていない•  ときどき協⼒力力してくださる⽅方がいるので助かっ ている OSC  2013  Tokyo/Spring 2013-‐‑‒02-‐‑‒23
  7. 7. 7ユーザ会の主な活動•  ウェブサイトの公開 ▫  http://unbound.jp/•  マニュアル等の翻訳•  Unboundだけでなく、ldnsとNSDについてもマ ニュアルを翻訳して公開している(翻訳担当者 の趣味)•  技術検証はほとんどできていない(やりたいん だけどね) OSC  2013  Tokyo/Spring 2013-‐‑‒02-‐‑‒23
  8. 8. 8OSC  2013  Tokyo/Spring 2013-‐‑‒02-‐‑‒23
  9. 9. 9ソフトウェアとしての遺伝的多様性•  BINDがデファクトスタンダード•  Zero  Day  Attackがあると全滅•  種を保存するためには遺伝的多様性が必要 OSC  2013  Tokyo/Spring 2013-‐‑‒02-‐‑‒23
  10. 10. 10BIND  9以外のDNSサーバー•  BIND  10 ▫  2013年年2⽉月22⽇日  1.0.0リリース –  権威サーバー –  リゾルバーとしての機能はまだ開発中•  NSD ▫  権威サーバー•  Unbound ▫  フルサービスリゾルバー•  PowerDNS•  他 OSC  2013  Tokyo/Spring 2013-‐‑‒02-‐‑‒23
  11. 11. 11ここ1,2年年のトピック OSC  2013  Tokyo/Spring 2013-‐‑‒02-‐‑‒23
  12. 12. 121.0.0のリリースからもうすぐ5年年•  今年年の5⽉月で1.0.0正式リリースから5年年 ▫  2008年年5⽉月20⽇日  Unbound  1.0.0•  最初の開発リリースUnbound  0.0から6年年 ▫  2007年年2⽉月19⽇日  Unbound  0.0 OSC  2013  Tokyo/Spring 2013-‐‑‒02-‐‑‒23
  13. 13. 13まずは脆弱性について•  CVEデータベースを"Unbound"で検索索した結果 ▫  CVE-‐‑‒2012-‐‑‒1192 ▫  CVE-‐‑‒2011-‐‑‒4869 ▫  CVE-‐‑‒2011-‐‑‒4528 ▫  CVE-‐‑‒2011-‐‑‒1922 ▫  CVE-‐‑‒2010-‐‑‒0969 ▫  CVE-‐‑‒2009-‐‑‒4008 ▫  CVE-‐‑‒2009-‐‑‒3602 OSC  2013  Tokyo/Spring 2013-‐‑‒02-‐‑‒23
  14. 14. 14DNSラウンドロビン•  イベントでよく聞いた話 ▫  「UnboundはDNSラウンドロビンを実装して ないのですか?」 ▫  「Unboundはよいと思うんだけど、DNSラウ ンドロビンがつかえないから採⽤用できない」 OSC  2013  Tokyo/Spring 2013-‐‑‒02-‐‑‒23
  15. 15. 15DNSラウンドロビン•  開発メーリングリストにおいてDNSラウンドロ ビンの機能は却下され続けていた。 ▫  要望は初期の頃からあった。 ▫  パッチの投稿もあった。•  メインの開発者のW.C.A.  Wijngaardsさんは DNSラウンドロビンを実装することにより重く なることを嫌っていたような感じを受ける。 OSC  2013  Tokyo/Spring 2013-‐‑‒02-‐‑‒23
  16. 16. 16DNSラウンドロビン•  2012年年4⽉月7⽇日に東⼤大亮亮さんがunbound-‐‑‒users メーリングリストにパッチを投稿し、コミット される。•  Unbound  1.4.17で利利⽤用可能になった。 ▫  デフォルト無効なので設定が必要 ▫  rrset-‐‑‒roundrobin:  yes OSC  2013  Tokyo/Spring 2013-‐‑‒02-‐‑‒23
  17. 17. 17DNSラウンドロビン•  util/data/msgencode.cのpacked_̲rrset_̲encode()関数内の1⾏行行 ▫  j  =  (i  +  rr_̲offset)  %  data-‐‑‒>count; –  j:  レコードの順番 –  i:  元の順番 –  rr_̲offset:  クエリーIDの数値 –  data-‐‑‒>count:  RRset内のレコード数•  クエリーIDをレコード数で割った剰りをオフセットとする•  クエリーID⾃自体はキャッシュポイズニング対策としてランダムに⽣生 成されるため、乱雑さの素をクエリーIDを使って再利利⽤用している。•  W.C.A.  Wijngaardsさんのコメント ▫  Excellent!    The  patch  is  very  small,  and  contains  threadsafe   code.  The  queryID  is  a  very  good  way  to  make  the  rrset   rotate,  and  removes  my  concern  for  speed. OSC  2013  Tokyo/Spring 2013-‐‑‒02-‐‑‒23
  18. 18. 18DNSラウンドロビン•  「Unbound  キャッシュ  -‐‑‒  DNSサーバ⼤大規模⽤用 途向け機能の実装」 ▫  DNS  Summer  Days  2012(2012年年8⽉月開 催)における東⼤大亮亮さんによる発表資料料 ▫  http://dnsops.jp/event20120831.html OSC  2013  Tokyo/Spring 2013-‐‑‒02-‐‑‒23
  19. 19. 19minimal-‐‑‒responses•  応答においてAUTHORITYセクションと ADDITIONALセクションが必須で無い場合は省省 略略して応答サイズを⼩小さくする機能 ▫  実装者はrrset-‐‑‒roundrobinと同じく東さん ▫  詳しくは東さんの「Unbound  キャッシュ  -‐‑‒   DNSサーバ⼤大規模⽤用途向け機能の実装」•  Unbound  1.4.7から利利⽤用可能 ▫  デフォルト無効なので設定が必要 ▫  rrset-‐‑‒roundrobin:  yes OSC  2013  Tokyo/Spring 2013-‐‑‒02-‐‑‒23
  20. 20. 20DNSSECの暗号・ハッシュアルゴリズムのサポートの変更更•  RSAMD5サポートの廃⽌止  (1.4.18,  1.4.19)•  ECDSAサポートのデフォルト有効  (1.4.17) OSC  2013  Tokyo/Spring 2013-‐‑‒02-‐‑‒23
  21. 21. 21forward-‐‑‒first,  stub-‐‑‒first•  forwardあるいはstubのクエリーに失敗したと きに、forwardあるいはstubなしにクエリーを 試みる機能•  Unbound  1.4.7から利利⽤用可能 OSC  2013  Tokyo/Spring 2013-‐‑‒02-‐‑‒23
  22. 22. 22tcp-‐‑‒upstream•  DNS  over  TCP的なもの•  Unbound  1.4.13から利利⽤用可能•  サーバ側Unboundの設定 server: interface: 0.0.0.0@80•  クライアント側Unboundの設定 server: tcp-upstream: yes forward-zone: name: "." forward-addr: 192.0.2.1@80 OSC  2013  Tokyo/Spring 2013-‐‑‒02-‐‑‒23
  23. 23. 23ssl-‐‑‒upstream,  ssl-‐‑‒service-‐‑‒key,  ssl-‐‑‒service-‐‑‒pem,  ssl-‐‑‒port•  DNS  over  SSL的なもの•  Unbound  1.4.14から利利⽤用可能•  サーバ側Unboundの設定 server: interface: 0.0.0.0@443 server: ssl-service-key: "/etc/unbound/unbound_server.key" ssl-service-pem: "/etc/unbound/unbound_server.pem" ssl-port: 443•  クライアント側Unboundの設定 server: ssl-upstream: yes forward-zone: name: "." forward-addr: 192.0.2.1@443 OSC  2013  Tokyo/Spring 2013-‐‑‒02-‐‑‒23
  24. 24. 24unbound-‐‑‒controlの機能強化•  利利⽤用ポートを8953に変更更(IANAに登録) (1.4.11)•  forward_̲add,  forward_̲remove,  stub_̲add,   stub_̲remove  (1.4.17)•  flush_̲bogus  (1.4.18)•  -‐‑‒q  (quite)オプション  (1.4.19) OSC  2013  Tokyo/Spring 2013-‐‑‒02-‐‑‒23
  25. 25. 25OSC  2013  Tokyo/Spring 2013-‐‑‒02-‐‑‒23
  26. 26. 26NSDとは•  Name  Server  Daemon ▫  DNSのアナグラム?•  権威ネームサーバ ▫  権威ネームサーバのみの機能を提供•  オープンソース  ソフトウェア OSC  2013  Tokyo/Spring 2013-‐‑‒02-‐‑‒23
  27. 27. 27NSDの開発元•  NLnet  LabsとRIPE  NCCの共同チームによる開 発 ▫  NLnet  Labs –  オランダにある研究開発機関 –  主にDNSとDNSSECについての調査研究お よびソフトウェア開発をしている –  NSD,  Unbound,  drill,  ldns,  OpenDNSSEC ▫  RIPE  NCC –  欧州・中近東地域のRIR OSC  2013  Tokyo/Spring 2013-‐‑‒02-‐‑‒23
  28. 28. 28NSDのリリース•  NLnet  Labsからリリース ▫  http://www.nlnetlabs.nl/projects/nsd/•  最新版はNSD  3.2.15  (2013年年2⽉月4⽇日リリース)•  次期バージョンNSD4を開発中 ▫  http://www.nlnetlabs.nl/svn/nsd/trunk/ ▫  今⽇日の本題! OSC  2013  Tokyo/Spring 2013-‐‑‒02-‐‑‒23
  29. 29. 29NSDとルートサーバ•  ルートサーバの遺伝的多様性 ▫  BINDに対するゼロ  デイ  アタックへの対策•  2003年年2⽉月、RIPE  NCCが運⽤用しているルート サーバk.root-‐‑‒servers.netがBINDからNSDに切切 り替え•  現在、H,  K,  LがNSDで運⽤用している $ dig @h.root-servers.net. version.server. CH TXT +norec (中略略) ;; ANSWER SECTION: version.server. 0 CH TXT "NSD 3.2.14" OSC  2013  Tokyo/Spring 2013-‐‑‒02-‐‑‒23
  30. 30. 30NSD3の脆弱性•  全くないわけではないが少ない•  2006年年5⽉月〜~現在(2012年年11⽉月)の6年年半 ▫  2012年年7⽉月  CVE-‐‑‒2012-‐‑‒2979 ▫  2012年年7⽉月  CVE-‐‑‒2012-‐‑‒2978 ▫  2009年年5⽉月  CVE-‐‑‒2009-‐‑‒1755 OSC  2013  Tokyo/Spring 2013-‐‑‒02-‐‑‒23
  31. 31. 31性能•  Performance  tests  results  on  BIND9/NSD/ UNBOUND ▫  IEPG  Meeting  –  November  2010  @  IETF   79 –  http://iepg.org/2010-‐‑‒11-‐‑‒ietf79/ ▫  Orange  LabsのDaniel  Migault⽒氏の発表•  Alternaive  DNS  Servers ▫  Jan-‐‑‒Piet  Mens⽒氏の書籍 –  http://jpmens.net/2010/10/29/ alternative-‐‑‒dns-‐‑‒servers-‐‑‒the-‐‑‒book-‐‑‒as-‐‑‒pdf/ OSC  2013  Tokyo/Spring 2013-‐‑‒02-‐‑‒23
  32. 32. 32NSDの特徴•  権威ネームサーバ ▫  主要な機能は実装されている。 ▫  実装されていない機能 –  IXFR(差分ゾーン転送)のマスター側機能 –  Dynamic  Update OSC  2013  Tokyo/Spring 2013-‐‑‒02-‐‑‒23
  33. 33. 33機能  (REQUIREMENTSより)•  サポートしている機能 ▫  RFC  1995  (IXFR)  (スレーブ側のみ) ▫  RFC  1996  (NOTIFY) ▫  RFC  2845  (TSIG) ▫  RFC  2672  (DNAME) ▫  RFC  4509  (SHA-‐‑‒256  DS) ▫  RFC  4635  (HMAC  SHA  TSIG) ▫  RFC  5001  (NSID) ▫  RFC  5155  (NSEC3) ▫  RFC  5702  (SHA-‐‑‒2) ▫  RFC  5936  (AXFR) ▫  RFC  6605  (ECDSA) ▫  draft-‐‑‒ietf-‐‑‒dane-‐‑‒protocol  (DANE)•  サポートしてない機能 ▫  RFC  2136  (Dynamic  update) OSC  2013  Tokyo/Spring 2013-‐‑‒02-‐‑‒23
  34. 34. 34NSDの特徴•  リゾルバ機能無し ▫  ヒントファイルを持たない。 ▫  権威を持たないゾーンへのクエリーに対して SERVFAILを返す。 –  ヒントを持たないし、検索索もしないので referralを返しようがない。 ▫  NOTIFYの通知先やアクセス制御にゾーンの SOAやNSを参照しない。 OSC  2013  Tokyo/Spring 2013-‐‑‒02-‐‑‒23
  35. 35. 35NSDの特徴•  静的なメモリデータベースを利利⽤用 ▫  予めゾーンファイルをコンパイルしてデータ ベースファイルを作成 ▫  NSDのプロセスが起動時にデータベースをメ モリに読み込む OSC  2013  Tokyo/Spring 2013-‐‑‒02-‐‑‒23
  36. 36. 36NSD3  におけるゾーンファイルとデータベース ゾーンの更更新を反映させ nsd   るためには、ビルド後に (parent) nsdのリロードが必要。 nsd  (child) nsd  (child) nsd   メモリ (childen) nsdの起動時とリロード時に DB データベースをロードする。 ゾーン nsdc  rebuild ファイル (zonec) nsd.db ゾーンの データベース nsdはゾーン 事前にゾーンファイルをデータファイルを直接 ベースにコンパイルする。⾒見見ることは無い ⽂文法チェックも実施。 Intenet  Week  2012  DNS  DAY 2012-‐‑‒11-‐‑‒21
  37. 37. 37NSDの特徴•  設定ファイルがシンプル ▫  カスタマイズできる項⽬目が少ない。 ▫  設定ファイル –  /etc/nsd/nsd.conf ▫  形式 –  属性名:  値 OSC  2013  Tokyo/Spring 2013-‐‑‒02-‐‑‒23
  38. 38. 38設定例例(マスター)server: ip-address: 192.0.2.1key: name: tsig.example.jp algorithm: hmac-sha1 secret: "lCzS3R+oAZJp607jZ36eKw=="zone: NOTIFYによる通知先。 name: example.jp. スレーブのIPアドレスを明⽰示的に指定。 zonefile: example.jp.zone notify: 192.0.2.2 NOKEY provide-xfr: 192.0.2.2 tsig.example.jp ゾーン転送要求に対するアクセス制御。 デフォルト拒否。 スレーブのIPアドレスを明⽰示的に指定。 OSC  2013  Tokyo/Spring 2013-‐‑‒02-‐‑‒23
  39. 39. 39設定例例(スレーブ)server: ip-address: 192.0.2.2key: name: tsig.example.jp algorithm: hmac-sha1 secret: "lCzS3R+oAZJp607jZ36eKw=="zone: NOTIFYの受信のアクセス制御。 マスターのIPアドレスを明⽰示的に指定。 name: example.jp. zonefile: example.jp.zone allow-notify: 192.0.2.1 NOKEY nsdc  update⽤用 allow-notify: 127.0.0.1 NOKEY request-xfr: AXFR 192.0.2.1 tsig.example.jp ゾーン転送の要求先。 マスターのIPアドレスを明⽰示的に指定。 OSC  2013  Tokyo/Spring 2013-‐‑‒02-‐‑‒23
  40. 40. 402013年年2⽉月時点での情報です。nsd  4.0.0  beta  4で評価を⾏行行っています。将来、仕様や実装が変わる可能性がありますのでご了了承ください。 OSC  2013  Tokyo/Spring 2013-‐‑‒02-‐‑‒23
  41. 41. 41NSD3の課題・問題点•  設定ファイルのリロード(再読み込み)ができ ない。再起動が必要。 ▫  設定ファイルの変更更後には再起動が必要であ る。 ▫  再起動(プロセスの停⽌止と起動)するとサー ビスとしては瞬断が発⽣生する。 ▫  ゾーンの追加や削除も設定ファイルの変更更で あるため、再起動が必要になる。•  ゾーンファイルの更更新後にはリロード(プロセ スの起動し直し)が必要。 OSC  2013  Tokyo/Spring 2013-‐‑‒02-‐‑‒23
  42. 42. 42NSD4のプログラム(4.0.0  beta4)プログラム 説明nsd デーモンnsd-‐‑‒checkconf nsd.confをチェックするプログラムnsd-‐‑‒control デーモンを制御するプログラムnsd-‐‑‒control-‐‑‒setup nsd-‐‑‒control⽤用のプライベート鍵と公開鍵証明書を 作成するスクリプト 参考:  Unboundの場合 nsdc,  zonec,   unbound nsd-‐‑‒notify,  nsd-‐‑‒patch,   unbound-‐‑‒checkconf nsd-‐‑‒xferコマンドの廃⽌止 unbound-‐‑‒control unbound-‐‑‒control-‐‑‒setup unbound-‐‑‒host unbound-‐‑‒anchor OSC  2013  Tokyo/Spring 2013-‐‑‒02-‐‑‒23
  43. 43. 43 $ ps axf PID TTY STAT TIME COMMAND アーキテクチャ 21953 ? Ss 0:00 nsd -c /etc/nsd/nsd.conf 21954 ? S 0:00 _ nsd -c /etc/nsd/nsd.conf 21955 ? S 0:00 _ nsd -c /etc/nsd/nsd.conf 21956 ? S 0:00 _ nsd -c /etc/nsd/nsd.conf (nsd-‐‑‒controlからの)制御、 nsd  (xfrd) ゾーン転送の管理理 メモリDB nsd  (main) ⼦子プロセスの 管理理 UDB nsd  (child) nsd  (child) xfrd. zone. nsd.db state list クエリーの処理理セカンダリゾーンの ゾーン  refreshとexpireの データベース 時間管理理 動的に追加された ゾーンの⼀一覧 OSC  2013  Tokyo/Spring 2013-‐‑‒02-‐‑‒23
  44. 44. 44ゾーンファイルとデータベース nsd  (xfrd) nsd  (main) メモリDB UDB nsd  (child) nsd  (child) ゾーンの データベース nsd.db データベースを ロードする。nsdはゾーンファイルを ゾーンファイルをデータ コンパイル時にしか ゾーン ベースにコンパイルする。 扱わない。 ファイル ⽂文法チェックも実施。 OSC  2013  Tokyo/Spring 2013-‐‑‒02-‐‑‒23
  45. 45. 45nsd-‐‑‒controlによる制御•  unbound-‐‑‒controlのNSD版 ▫  TCP  8952番ポート ▫  TLSによる通信の暗号化 ▫  nsd-‐‑‒control-‐‑‒setupスクリプトによるプライ ベート鍵と公開鍵証明書の作成 OSC  2013  Tokyo/Spring 2013-‐‑‒02-‐‑‒23
  46. 46. 46nsd-‐‑‒controlのコマンド(サーバーの制御)コマンド 説明start サーバー(nsd)を起動する。stop サーバー(nsd)を停⽌止する。reconfig 設定ファイルを再読み込みする。repattern reconfigと同じ。log_̲reopen (ログローテーションのために)ログファイルを開き直す。status サーバーの状態を表⽰示する。stats 統計情報を出⼒力力する。stats_̲noreset 統計情報をリセットせずに出⼒力力する。verbosity  数値 ログレベルを変更更する。 OSC  2013  Tokyo/Spring 2013-‐‑‒02-‐‑‒23
  47. 47. 47nsd-‐‑‒controlのコマンド(ゾーンの制御)コマンド 説明reload  [ゾーン] ディスクから変更更したゾーンファイルを再読み込 みする。addzone  ゾーン  パターン パターン機能を使ったゾーンを追加する。delzone  ゾーン パターン機能を使ったゾーンを削除する。write  [ゾーン] ディスクにゾーンファイルを書き出す。notify  [ゾーン] NOTIFYメッセージをスレーブに送信する。transfer  [ゾーン] ゾーン転送を試みる。force_̲transfer  [ゾーン] シリアル値のチェック無しにAXFRでゾーン転送 を⾏行行い、スレーブのゾーンを更更新する。zonestatus  [ゾーン] ゾーンの状態、シリアル値を出⼒力力する。 OSC  2013  Tokyo/Spring 2013-‐‑‒02-‐‑‒23
  48. 48. 48設定ファイルのリロードゾーンの追加・削除•  NSD  3 ▫  設定ファイルのリロードができなかった。 ▫  ゾーンの追加・削除をするにはnsdの再起動が必 要であった。•  NSD  4 ▫  設定ファイルのリロードが可能になった。 –  nsd-‐‑‒control  reconfig ▫  ゾーンの追加・削除でもnsdの再起動が不不要に なった。 ▫  ただし、リロードに伴い⼦子プロセスは起動し直し になる。 OSC  2013  Tokyo/Spring 2013-‐‑‒02-‐‑‒23
  49. 49. 49ゾーンの更更新•  NSD  3 ▫  ⼿手動でゾーンファイルをコンパイルする必要が あった。 ▫  ⼿手順 –  nsdc  rebuild –  nsdc  reload•  NSD  4 ▫  nsdにゾーンコンパイラーの機能が統合された ▫  ⼿手動でゾーンファイルをコンパイルする必要はな くなった。 ▫  ⼿手順 –  nsd-‐‑‒control  reload OSC  2013  Tokyo/Spring 2013-‐‑‒02-‐‑‒23
  50. 50. 50パターンを使った動的なゾーンの追加・削除•  動的にゾーンの追加・削除が可能•  設定例例 ゾーンファイルの配置 pattern: (マクロ%sを使える) name: "masterzone" zonefile: "zones/%s.zone" notify: 192.0.2.1 NOKEY provide-xfr: 192.0.2.1 tsig.masterzone•  コマンド例例 ▫  nsd-control addzone example.jp masterzone nsd-control delzone example.jp•  パターンの定義そのもののリロードも可能 OSC  2013  Tokyo/Spring 2013-‐‑‒02-‐‑‒23
  51. 51. 51⾼高負荷への耐性•  libevent対応によるイベント駆動 ▫  元々それなりに処理理が速かったが、 ▫  もっと速くなる ▫  ベンチマーク –  http://www.nlnetlabs.nl/downloads/ presentations/NSD_̲Update_̲OARC_̲2011SF.pdf•  内部データベースの変更更•  Response  Rate  Limiting  (RRL)対応 ▫  NSD3でも3.2.15で対応 OSC  2013  Tokyo/Spring 2013-‐‑‒02-‐‑‒23
  52. 52. 52NSD4のまとめ•  特徴 ▫  nsd-‐‑‒controlによる制御 ▫  再起動無しに設定やゾーンの更更新が可能 ▫  パターンで動的にゾーンの追加・削除 ▫  ⾼高負荷への耐性、RRL対応•  ⇒  ⼤大規模サイトでも利利⽤用できる•  NSD  4.0.0  beta4の状況 ▫  検証で動かしている範囲では何も問題ない。 OSC  2013  Tokyo/Spring 2013-‐‑‒02-‐‑‒23
  53. 53. 53参考⽂文書•  公式サイト ▫  http://www.nlnetlabs.nl/projects/nsd/•  ドキュメントの邦訳(⽇日本Unboundユーザー会) ▫  http://unbound.jp/nsd/•  NSD3  an  Authoritative  Nameserver:  Technical   ▫  http://www.nlnetlabs.nl/downloads/presentations/ NSD_̲DenicTechnical.pdf•  Response  Differences  between  NSD  and  other  DNS  Servers ▫  http://www.nlnetlabs.nl/downloads/nsd/differences.pdf•  NSD  Evolution  of  a  name  server ▫  http://www.nlnetlabs.nl/downloads/presentations/ NSD_̲Update_̲OARC_̲2011SF.pdf•  nlnetlabs.nl  ::  Blog  ::  NSD4  Features ▫  http://www.nlnetlabs.nl/blog/2012/09/14/nsd4-‐‑‒features/•  nlnetlabs.nl  ::  Blog  ::  NSD  Response  Rate  Limiting ▫  http://www.nlnetlabs.nl/blog/2012/10/11/nsd-‐‑‒ratelimit/ OSC  2013  Tokyo/Spring 2013-‐‑‒02-‐‑‒23
  54. 54. 54Ubuntu  12.04.1  TLSにインストールする例例を紹介します。 OSC  2013  Tokyo/Spring 2013-‐‑‒02-‐‑‒23
  55. 55. 55準備•  標準的なCの開発環境および次のライブラリおよび そのヘッダファイルを事前にインストールする。 ▫  openssl ▫  libevent  (libevのlibeventラッパーも可)•  ダウンロードおよびハッシュ値の確認 $ wget http://nlnetlabs.nl/downloads/nsd/ nsd-4.0.0b4.tar.gz $ sha256sum -b nsd-4.0.0b4.tar.gz ed29019d6e8aface4c32e22c9968aa9688acf98f8356112c4ee8 9a923022cc2b *nsd-4.0.0b4.tar.gz http://open.nlnetlabs.nl/pipermail/nsd-‐‑‒users/ 2013-‐‑‒February/001613.html  のSHA256と⼀一致 することを確認する。 OSC  2013  Tokyo/Spring 2013-‐‑‒02-‐‑‒23
  56. 56. 56ビルドとインストール$ tar xvzf nsd-4.0.0b4.tar.gz$ cd nsd-4.0.0b4$ ./configure --prefix=/usr/local --enable-ratelimit --with-configdir=/etc/nsd --with-zonesdir=/etc/nsd --with-user=nsd --with-libevent --with-ssl$ make$ sudo make install$ sudo cp /etc/nsd/nsd.conf.sample /etc/nsd/nsd.conf OSC  2013  Tokyo/Spring 2013-‐‑‒02-‐‑‒23
  57. 57. 57実⾏行行ユーザとグループの作成およびディレクトリの権限変更更$ sudo groupadd -r nsd$ sudo useradd -r -d /etc/nsd -M -g nsd nsd$ sudo chown nsd:nsd /usr/local/var/db/nsd$ sudo chown nsd:nsd /etc/nsd OSC  2013  Tokyo/Spring 2013-‐‑‒02-‐‑‒23
  58. 58. 58nsd-‐‑‒control⽤用の公開鍵証明書とプライベート鍵の作成$ sudo /usr/local/sbin/nsd-control-setup$ sudo chgrp nsd /etc/nsd/nsd_server.{pem,key}$ sudo chgrp nsd /etc/nsd/nsd_control.{pem,key}$ ls -l /etc/nsd/*.{pem,key}-rw-r----- 1 root nsd 1277 Feb 9 20:04 nsd_control.key-rw-r----- 1 root nsd 790 Feb 9 20:04 nsd_control.pem-rw-r----- 1 root nsd 1281 Feb 9 20:04 nsd_server.key-rw-r----- 1 root nsd 782 Feb 9 20:04 nsd_server.pem OSC  2013  Tokyo/Spring 2013-‐‑‒02-‐‑‒23
  59. 59. 59NSD  4を設定して操作する例例を紹介します。 OSC  2013  Tokyo/Spring 2013-‐‑‒02-‐‑‒23
  60. 60. 60設定ファイルの編集$ sudo vim /etc/nsd/nsd.confserver: ip-address:192.0.2.1 最⼩小限の設定例例remote-control: control-enable: yes OSC  2013  Tokyo/Spring 2013-‐‑‒02-‐‑‒23
  61. 61. 61nsdの起動$ sudo nsd-control start$ ps axf | grep [n]sd23398 ? Ss 0:00 nsd -c /etc/nsd/nsd.conf23399 ? S 0:00 _ nsd -c /etc/nsd/nsd.conf23400 ? S 0:00 _ nsd -c /etc/nsd/nsd.conf$ sudo nsd-control statusversion: 4.0.0b4verbosity: 0$ dig @192.0.2.1 version.server. CH TXT;; ANSWER SECTION:version.server. 0 CH TXT "NSD 4.0.0b4" OSC  2013  Tokyo/Spring 2013-‐‑‒02-‐‑‒23
  62. 62. 62ゾーンファイルの配置とロード(マスター側)$ sudo mkdir /etc/nsd/primary$ sudo vim /etc/nsd/primary/example.jp.zone$ sudo vim /etc/nsd/nsd.conf ゾーンファイルの設置key: name: tsig.example.jp algorithm: hmac-sha1 secret: "lCzS3R+oAZJp607jZ36eKw=="zone: name: example.jp. zonefile: primary/example.jp.zone notify: 192.0.2.2 NOKEY provide-xfr: 192.0.2.2 tsig.example.jp$ sudo nsd-control reconfig 設定ファイルの 再読み込み OSC  2013  Tokyo/Spring 2013-‐‑‒02-‐‑‒23
  63. 63. 63ゾーンファイルの配置とロード(スレーブ側) ゾーンファイル出⼒力力⽤用$ sudo mkdir /etc/nsd/secondary のディレクトリの作成$ sudo chown nsd:nsd /etc/nsd/secondary$ sudo vim /etc/nsd/nsd.confkey: name: tsig.example.jp algorithm: hmac-sha1 secret: "lCzS3R+oAZJp607jZ36eKw=="zone: name: example.jp. zonefile: secondary/example.jp.zone allow-notify: 192.0.2.1 NOKEY request-xfr: AXFR 192.0.2.1 tsig.example.jp$ sudo nsd-control reconfig 設定ファイルの 再読み込み OSC  2013  Tokyo/Spring 2013-‐‑‒02-‐‑‒23
  64. 64. 64ゾーンファイルの出⼒力力 ゾーンデータはデータベース として保持しているため、 ゾーンファイルとして出⼒力力す(スレーブ側) る必要はない点に注意。$ sudo nsd-control zonestatuszone: example.jp. ゾーンの状態の出⼒力力 state: ok served-serial: "20130211 since 2013-02-11T14:33:07" commit-serial: "20130211 since 2013-02-11T14:33:07"$ ls -l /etc/nsd/secondary/total 0$ sudo nsd-control writeok ゾーンファイルの出⼒力力$ ls -l /etc/nsd/secondary/total 4-rw-r--r-- 1 nsd nsd 366 Feb 11 14:36 example.jp.zone OSC  2013  Tokyo/Spring 2013-‐‑‒02-‐‑‒23
  65. 65. 65パターンを利利⽤用する準備(マスター側)$ sudo mkdir /etc/nsd/primary ゾーンファイル配置⽤用$ /etc/nsd/nsd.conf のディレクトリの作成key: name: "master.key" algorithm: hmac-sha1 secret: "lCzS3R+oAZJp607jZ36eKw==" ゾーンファイルの配置pattern: (マクロ%sを使える) name: "master" zonefile: "primary/%s.zone" notify: 192.0.2.2 NOKEY provide-xfr: 192.0.2.2 master.key$ sudo nsd-control reconfig 設定ファイルの 再読み込み OSC  2013  Tokyo/Spring 2013-‐‑‒02-‐‑‒23
  66. 66. 66パターンを使った動的なゾーンの追加(マスター側)$ sudo vim /etc/nsd/primary/example.jp.zone ゾーンファイルの設置$ sudo nsd-control addzone example.jp mastersudo nsd-control zonestatuszone: example.jp masterパターンを使って example.jpゾーンを動的に pattern: master 追加 state: master OSC  2013  Tokyo/Spring 2013-‐‑‒02-‐‑‒23
  67. 67. 67パターンの準備(スレーブ側)$ sudo mkdir /etc/nsd/secondary/$ sudo chown nsd:nsd /etc/nsd/secondary ゾーンファイル出⼒力力⽤用$ sudo vim /etc/nsd/nsd.conf のディレクトリの作成key: name: "master.key" algorithm: hmac-sha1 secret: "lCzS3R+oAZJp607jZ36eKw=="pattern: ゾーンファイルの出⼒力力先 name: "slave" (マクロ%sを使える) zonefile: "secondary/%s.zone" allow-notify: 192.0.2.1 NOKEY request-xfr: AXFR 192.0.2.1 master.key$ sudo nsd-control reconfig 設定ファイルの 再読み込み OSC  2013  Tokyo/Spring 2013-‐‑‒02-‐‑‒23
  68. 68. 68パターンを使った動的なゾーンの追加(スレーブ側)$ sudo nsd-control addzone example.jp slave slaveパターンを使って example.jpゾーンを動的に$ sudo nsd-control zonestatus 追加zone: example.jp pattern: slave state: refreshing served-serial: "20130211 since 2013-02-11T14:33:07" commit-serial: "20130211 since 2013-02-11T14:33:07" OSC  2013  Tokyo/Spring 2013-‐‑‒02-‐‑‒23
  69. 69. 69ゾーンの更更新$ sudo nsd-control reload OSC  2013  Tokyo/Spring 2013-‐‑‒02-‐‑‒23
  70. 70. 70OSC  2013  Tokyo/Spring 2013-‐‑‒02-‐‑‒23

×