DNSOPS.jp BoF
* 開会にあたって (JPIX 石田さん)
 オフレコにして欲しいときは言ってください。

* アジェンダ
・DNSSEC導入事例紹介
・Simplified DNS Query under IPv4/IPv6 Mixed Environment
・World IPv6 Day(AAAA Filter)
・LT
 - 「重複をお許しください」ができるまで
 - Number of DNSSEC Validators seen at .JP
 - DNSSEC World Map

* DNSSEC導入とトラブル事例 (SANNET 其田さん)
 - ご注意
  社名は口走っても記録しないように

 - まとめ
  キャッシュサーバへのDNSSECが起因でトラブルが報告
  された事例は無し(.ukなどのTLDのトラブルはあるが)

  権威サーバの対応は慎重に。ずばりqmailトラブル
  maillogでqmailの数を調べておいた方が良い
  qmailつかってるひとはpatchあてて!

 - 昨年度のSANNETのDNSSECへの取り組み
  2010/07/16 root zone署名
  2010/07/20 本番キャッシュサーバ署名検証開始
             ついでにfilter-aaaa-on-ipv6有効化
  2010/07-12 権威サーバ用署名システム開発・テスト
  2010/12    ホスティングサービス署名開始
  2011/01/16 JPDNS署名
  2011/01/17 ホスティングサービスユーザ向け署名サービス開始
  2011/02/07 sannet.ne.jp署名
  2011/03    IPv6対応, minimum response on

 - キャッシュサーバ構成
  LBが上にあり、下に何台かCNSがいる普通の構成

 - 権威サーバ構成
  導入前
   レコードデータサーバ → 設定/ゾーンファイル配布サーバ -(rsync)→ 権威サーバ

 - 署名 鍵管理システム
  OpenDNSSECを使いたかった
   HSM買うお金ない
   SoftHSMが重くて使えない(Sparc T1で1threadあたりの性能は...)
   DBの冗長性がx

  なので自分で作った

 - 概要図
  OpenDNSSECを模倣
  署名をする:signer, ゾーンと鍵の状態遷移を管理するデーモン:zone-manager
  ゾーンと鍵の状態遷移を監査するデーモン:auditor
  signer, zone-managerを自分で作ったので信用できないので
  auditorでチェックする。
  DBに鍵の状態を入れておいて、その状態になっているかをauditor
  で毎日4回checkしている。

 - トラブル事例
  * トランスファー時のトラブル
   DNSホスティングを利用している顧客がドメインをトランスファーアウト
   したらそのドメインのWebページが見れない。
   フローでは消すようになっているが、ミスった
   → DSレコードを削除しないでトランスファーアウトしちゃったから

   対処法:
     DSを消して検証を無効にする
     ユーザに移管先の会社に連絡してDSレコードを削除してもらうように依頼
     → 移管先がDSのas駆除に対応していることが必要

  Q: mailでDNS変更依頼を出すときにDSが(?)書いてなかったらDSってどうなる?
  A: 書いてなかったら消えるようにしてる
     トランスファーのときはそのままレコードを転送するので消えない。
     > 空白にしたら消えてないような… > あとは個別で...(笑)

  * メール受信トラブル
   qmailが512byteを超える応答を扱えない
   送受信先のメールサーバ管理者にパッチを当ててもらうように依頼
   SANNETのDNSSECのページにqmail関係の注意文を追加
   JPRSからのアナウンスで非常に説明しやすくなった、助かった
   qmail問題はDNSSECに限らない問題。パッチ当てて!

 - Q&A
 Q: IIJ山本 デフォルト署名っていうのは社内で議論にならなかった?
 A: お客様の安全安心が第一だ、という論調だった。
    qmailの問題だけが想定外だった

 Q: IIJ山本 .jp直下のドメインじゃなくて、サブドメインだけ預かって
    るというパターンはあるか?.jp直下ならDSの登録をJPRSに依頼すれば
    いいけど、サブドメインだとDSを上位ゾーンに依頼してください、と
    お客さんに言わないといけない。とりあえずIIJのサービスでは.jp直下
    だけにしたけど、どうしてる?
 A: 「このDSレコード登録してね」と表示するかメールするかするかとも考
    えたが、場合分け・考えることが多すぎて止めた

 Q: SO-NET山田 リソース食うよとか、データがデカくなるよと言う話があ
    ったかとおもうが、実運用して気がついた点があれば教えてください。
 A: CNSのCPU使用量は上がってない、メモリ使用量もたいして上がってない。
    DNSSECに対応しているところが少ないからだと思う。

* Simplified DNS Query under IPv4/IPv6 Mixed Environment
 IPv4/IPv6混在通信環境における適切なDNS名前解決方式(NEC/電通大 北村さん)

 表題の件で現在IETF DNSEX WGでI-dを議論中
 内容紹介および議論とコメントをお願いしたい

 現状1つのノードについてv4/v6両方のアドレスが設定 = A/AAAAと、種類
 の異なる複数アドレスが設定されている。これっていいの?もっとシンプ
 ルなトラブルの少ない方法があるんじゃないの?という想い。

 IPv6導入促進的な意味でユーザにとってA/AAAAはどうでもよくて、FQDNが
 重要で唯一のもの。DNSのクエリの所で失敗したらv6ダメじゃん。というこ
 とになってしまう。

 v4 onlyの世界でも、あるFQDNに対してAが複数というのはありうる。でも、
 これは1回qtype Aの問い合わせをして1つのパケットで応答が返ってくる。
 1pairである。

 v4/v6 dualではA/AAAA独立した問い合わせ・応答(2pair)になる。
 これは以下のような理由のため、2pairになっている。
 ・v6黎明期にv4に影響を与えないようにするため
 ・AAAAに対応していない権威サーバのため
 ・AAAAを優先させるため

 A/AAAA別に名前解決する場合、4種類の仕方がある
 ・4-6 serial(Windows7/FreeBSD)
 ・6-4 serial(WindowsXP)
 ・4-6 parallel
 ・6-4 parallel

 2pairの名前解決の問題点とは「複雑である」こと
  1pair片方だけ落ちたらどうするの?再送とか頭痛い
  simpleさを損なう
  serialでやると2倍時間がかかる。ペナルティを受けている

 DNSサーバのAAAA対応が進んだ。非対応のANSはほとんど無い
 クライアント側もAAAAにほとんど対応している

 提案:1pairでA/AAAAを取得できるようにしよう!
  1. two existing records combined型
  2. one new special record型
  3. one existing record w/ mapper transformation型

 1.
  query setcionのtypeにA/AAAA 2つ書けるようにする
  構造的には出来る。でも、そんな例はない
  クライアント側に手を入れるのが大変
  1queryには1つしか入れないという暗黙的なルール(?)を破ることになる

 2.
  新しいquery typeを作る
  AAAAA?(ペンタA?)
  やっぱりクライアントに手を入れる必要がある

 3.
  AAAAを聞いたらIPv4のmapped addressも返してあげる
  独創的
  全てののアドレスはIPv6アドレスで、AAAAレコードだけで事足りると考える
  クライアントに手を入れなくてもよい
  いささかトリッキーだが、基本的には問題ない

 まとめ
  長期・理想的な視点だとクライアント側の実装を変更する1, 2
  実用的な普及を重視するなら3.が有力

 ご意見
  Q: これって権威サーバでやる必要ある?
  A: キャッシュサーバでやってもいい。権威サーバでも良い

  2.はIPv6の次を考えないといけないから無いなぁ
  1.はまぁ動くんじゃないかな?

  mappedアドレスってもうobsoじゃないの?まだ生きてる。rfc3484で。

  mappedアドレスでびっくりするクライアントが無いか?
  > 何個かためしたが平気っぽい(?) > ホームゲートウェイあたりであるかも…

  mapped addresはLinux系では有効、BSD系では実装されているけど設定で無効
  になっている。

  DNSSECとかANYで聞かれたときのことも考えないとダメだね

  会場でアンケートとってみたら?
  取るなら現状維持もお願いします。

  アンケート結果:
  今のままがいい: いっぱい(短期的にはという声有り)
  1: ちらほら
  2: ほとんどいない
  3: ちらほら(1と3同じくらいか3が若干多いか?)

* AAAA filter(World IPv6 day) (IIJ 松崎さん)
 - めでたいこと
  APNIC IPv4通常在庫枯渇
   そろそろ心配してください
  /127がRFC(standar track)に
   ベンダーのみなさん実装をお願いします
  結婚しました!!
   おめでとうー!

 - (サーバー側)IPv6対応で生じる接続障害
  主にv6->v4 fallbackがうまく動作しない
  IE7だとよくわからないけど5%くらい失敗するらしい
  IPv6のInternetの疎通があれば問題ない

 - ごまかす方法
  キャッシュサーバーでAAAAを応答しない
  IPv6対応接続用のキャッシュサーバーには削らないものを、IPv4しかなくて
  IPv6閉域網に接続してる接続用のキャッシュサーバーには削るものを用意する

 - BINDでの設定方法
  ./configure --enable-aaaa-filter
  named.confのoptionsに"filter-aaaa-on-v4 yes"追加
  二回踏み抜いてください

 - BINDでfilterをONにしたときの挙動
  A/AAAA → AAAAを応答しない
  AAAAのみ → AAAAを応答する
   AAAAのみのホストを聞いていると言うことは、ユーザがなんらかv6の
   reachabilityがあるのではという推測から

  filterをonにするとちょこっと権威サーバへのqueryが増える
  キャッシュに乗ってない初回だけちょっと応答が遅くなる

 - 対応の利点
  コンテンツ事業者が安心してIPv6対応出来る
  IPv6閉域網に接続したユーザでfallbackが無くなる(遅延がなくなる)

 - 対応の懸念点
  IPv6閉域網に接続したユーザがインターネット側のAAAAを検索できなくなる
   IPv6トンネルとか使っててISPのキャッシュサーバーを見ていた場合
  ISPが運用するDNSサーバが増える

 - ご意見、Q&A
  Q:ISPは設定したらいつまでやる?
  A:状況が改善するまで。根本的にはIPv6の接続を提供すればいい

  Q: filterしたときのパフォーマンス劣化って計測した?
  A: 応答パケットを作るときにちょっと細工するだけだから、そんなに
     劣化しないはず。でもACLの行数は気にした方が良いと思うよ

  breakdnssecにしないと署名している場合は削らないよ
  IPv4アドレスベースでfilterするしないのACLを書けるので、1種類でも
  出し分けが出来る

  そのうち対策推奨の文章がでるかと。

* LT/「重複をお許しください」ができるまで (JPRS 森下さん)
 - アジェンダ
  - 生い立ちと状況
  - なぜいつも同じ書き出しなのか?
  - 主な分類
  - ケーススタディ
  - 出来るまでの流れ
  - (

 - 生い立ち
  技術コミュニティ系MLにマルチポストの形式で出す「お知らせ」の書き出し
  初出10/06/09 [janog:09571]/[DNSOPS dnsops 929]
  11/04/19までに24通。2週間に1通。DNSSEC関連アナウンス15通, BIND脆弱性5通  たいして多くない!

 - なぜいつも同じ書き出し?
  MewでEと打つと過去メールの再利用。自然と同じ書き出しに
  IW-2010の会場で「「重複をお許しください」をMLで見ると緊張が走る」
 「仕事が増えるフラグ」と言われた… 私が増やしているわけではないはずです!

 - 主な分類
  DNSに関連する…
   セキュリティホールや不具合などの注意喚起
   インターネット全体に影響がある情報のアナウンス
   技術文章公開のお知らせ

  今日は1番目を解説

 - ケーススタディ
  BIND9の脆弱性
  ISCからの"Advance Security Notification(ASN)"が重要な情報源
  JPRSがbind forumに入っていてpremimサービスを受けている
  大体1週間前にお知らせが来る
  2009/07のBINDコロリではASNでの公開から間を置かず公開された

 ASNが届いたら…
  1) ASNをざっと分析 危険度/対象/既にExploitがあるか など
  2) 出すかどうかを判断 severity:highだと青くなる
  3) ASNを再度詳しく分析
    何が悪いのか:実装?プロトコル?設計?構造?
    できちゃうことはなにか?
    何をすればいいか:  workaroundとsolution
  4) 文章の素案を作成
   タイトルを決める
   「(緊急)」の有無、推奨度(「〜を(強く)推奨」(など
   構成を決める
    基本的にはテンプレ
  5) 文章の中身を作成
    作成とレビュー
     テクニカルレビュー(正しい事を書いているか)
     広報的レビュー(わかりやすい文章か)
  6) 動作の確認(追試)
    書いてあることが実際に起こるかどうか。重要な事項では特に注意して実施
  7) アナウンス
   - ISCのWebで公開されているか。CVE/CERTも確認
   - JPRS Webの更新
   - MLへ送信
  8) アフターフォロー
   情報の広まり具合
    重要な2メディア: twitter, セキュリティホールmemo
     セキュリティホールmemoに載ると急速に広まる
    検索エンジンの状況(掲載状況、順位の変化)
    blog、各種メディアなど
   問い合わせ対応

 - 気をつけていること
  「概要」を読むだけで対象、何の不具合か、何が出来てしまうか、情報源、
  危険性、どうする必要があるか、をわかるようにする
  「対策」は簡潔に記述する。かつWorkaroundとsolutionを明確に区別
  「詳細」はこの場に来ているような人向け。興味を持った人のために記述
   「詳細」を読まなくても必要な対応が出来るように
   「例外条件」はここに記述

 - ケーススタディ: qmailの512byte問題
  開発元の公式発表などではないので情報源の項目がない=JPRSが発表した
  ことになる
  なので「背景」に根拠と事実を書いた

 - まとめ
  必要に応じて、出来るだけ迅速に出す予定です
  文章作成技術や広報技術に関する様々なノウハウを蓄積・共有していけれ
  ばいいなと思います
  繰り返しますがさんが仕事を増やしているわけではないです
  淡々と必要な対応をお願いします

 - 番外: qmailの件について5+1の「まずいところ」
  - 送り側が何年も設定を変えていないのにおかしくなる
    → 送れないのは自分の性だという認識が薄い
  - 受け側がDNSSECを入れたところだけがおかしくなる
    → 相手が設定を間違えたに違いないと思われる
  - SMTPセッションが張られる前にこける
    → 受け側でエラーが起こっていることがわからない
  - エラーメッセージからは真の原因がわかりにくい。しかも4xx(tempfail)
    "CNAME lookup failed temporarily. (#4.4.3)"
  - デフォルトでは1週間後に初めてエラーメールが戻る
    → 受け側でのDNSSEC導入後、しばらくは発覚しない
  - +1: qmailの"q"は大文字じゃねぇ!というご指摘

* LT/Number of DNSSEC Validators seen at .JP (JPRS 藤原さん)
 - DNSSECの普及率を数えろとのお達し
 - どうやって数えるか
  .jpのDNSKEYのTTLは1日
  → DNSSEC対応のキャッシュサーバはJPのDNSKEYを1日に1回取りに来るはず
  → a.dns.jpで数えて7倍すりゃ良いじゃん

 - JPRSのデータ
  年2回のpacket capture
  7年分のquery log

 - captureした1日でvalidator 2400-2700くらいでした
 - 緩やかに増えていってる。震災直後はちょっと減りました。

* LT/各ccTLDのDNSSECのステータス地図を作ってみました。
  (ブロードバンドタワー 大本さん)

 - きっかけ
  DNSSECジャパンの技術検証WGで海外動向を調べていこう
  .toドメイン持ちだったので

 - 作り方
  最初はtwitterやwebサイトの情報収集で手作業
  自動収集にしたい

 - 自動収集
  メールで定期的にdigして結果をおくるshell scriptを作った
  KSKの存在確認していたが、.nuがZSKのみの運用だったので変更した

 - 地図あそび
  初めはkmzファイルをgoogle earthでas区政
  kmlファイルの作成が大変
   Google earthで国境をなぞってポリゴン作って、色つけて…
  これでもccTLDのDNSSEC対応のスピードが緩やかだったので事足りていた
  rootが署名された7月以降、2010/9から急に速度が上がった
  とても間に合わない

  そうこうしていたら公開していた地図・資料が10末頃から消えた
  > 師匠に相談したら「自分で作ったら?」

 - 作ろう
  Helio WorldでWeb向け地図を生成できるらしい
  phpで理解しやすいコードとconfig

  できた。けど、ヨーロッパは国が小さくてわかりずらい
  モンテネグロがなぜか色が出ない。というか国がない
  マレーシアとシンガポールが逆
  プエルトリコは島自体がない
  > 国境定義用のphpコードを弄って変更

  完成した直後に.net/.asiaがDNSKEY公開したのでgTLDの更新状況も対応
  させるようにした
  履歴を残すようにした

  最終的には現在の1枚ページになりました
  http://www.ohmo.to/dnssec/maps/

 - 傾向
  小さい島国のDNSSEC対応速度が速い

 - 今後
  IDNどうするかなぁ
  DNSSECテストしているというアナウンスを自動的に拾う仕組みがない
  .gi .li .scとか小さい国はhelioは元々地図表記を準備していない
  > とりあえず.liは書いてみた

  白地図だとどこの国が対応したかわかんない
  > ヨーロッパは国コードを埋め込むようにした