こんにちは。ハートビーツ運用スタッフの稗田です。
先日10月3日(土)、西新宿の会議室にて、ハートビーツ主催のインフラエンジニア勉強会 hbstudy の第4回が行われ、前半は藤倉和明さんより仮想化技術であるOpenVZについて、後半は民田雅人さんよりDNSの拡張であるDNSSECのお話を頂きました。
では、そのレポートをどうぞ。
OpenVZのお話 藤倉和明さん
(資料:http://www.slideshare.net/fujya/open-vz-2118072)
藤倉さんからは、OpenVZの使い方から、実際に現場で遭遇したトラブル・その解決策についてお話しして頂きました。
OpenVZはOSレベルでの仮想化技術であり、コンテナ(OpenVZではゲストOSのことをコンテナと呼ぶそうです)の実行速度がほぼネイティブでの実行速度と変わらないのが特徴です。そのかわり、コンテナのOSはホストOSによって制限されます。
藤倉さんの挙げるOpenVZの特徴の一つに、コンテナのメモリサイズを最大値で指定するというものがあります。そのため余っているメモリをフルに活用できるのが利点です。
OpenVZ固有のコマンドの説明もあり、その中でおもしろかったものは"vzyum"です。ホストOSからコンテナのパッケージ管理が行えるため、サーバ管理者には強力なコマンドになるでしょう。
そしてここからが本題ともいえる、現場で遭遇したトラブル集です。
一つ目は、memcachedが使えないというトラブル。 稼働中のコンテナが1つの場合は使えるのに、2つ以上になるとmemcachedが使えなくなるという事例があったそうです。 こちらはコンテナの仮想ネットワークインターフェースとの相性が悪かった(ルーティングキャッシュの遅延?)ことによるそうです。
二つ目は、Emailが送信できないトラブル。 アプリケーションサーバにて、perlのプロセスが3GB程のメモリを使っていたそうなのですが、ここからqmailにforkする際メモリ容量が足りなかったのが原因のようです。 そこで、"vmguarpages"コマンドにより、メモリサイズの保証できる下限値を設定することで解決できたそうです。
最後に、コンテナにてNFSが使えないというトラブル。 NFSはカーネルでサポートされているためコンテナ上でカーネルを再構築する必要があるためそのままでは使えませんが、UNFSというユーザスペースで稼働するNFSを導入することで解決できたそうです。
その後にOpenVZの注目の機能、P2V(物理サーバをコンテナ化できる)や、Live Migration(コンテナのメモリをダンプして別のサーバに移すことで、コンテナを停止することなく別サーバに移動する)の紹介がありました。
残念ながら藤倉さんのノートパソコンとプロジェクターの相性が悪く、予定していらっしゃったLive Migration等の実演はできなかったのですが、現場での使用感を聞くことができ、とても参考になりました。
今こそDNSSEC! 民田雅人さん
日本レジストリサービスの民田さんからは、DNSキャッシュポイズニングを防ぐための次世代DNSである、DNSSECのお話がありました。
ユーザはサイトの閲覧等をする際、ドメインに対応するIPアドレスをキャッシュDNSサーバに問い合わせますが、このIPアドレスは悪意のあるユーザによって詐称されることがあります。これがDNSキャッシュポイズニングです。
過去、Kashpureff型、偽装応答型といった攻撃方法が発見されましたが、前者はプログラム的に防ぐことができ、後者もキャッシュサーバがDNSレコードをキャッシュしておく時間(TTL)により、攻撃が成功する確率は非常に低いとされていました。 しかし、もともとDNSプロトコルは改ざんされやすいUDPを利用しているため、次なる方法が発見されることになります。 それがKaminsky型の攻撃であり、存在しないサブドメインに絞って総当り的に攻撃することでTTLの制約を無視し、高い成功率でDNSキャッシュポイズニングを実現することができました。 利用するポート番号をランダムにすることで攻撃の脅威は避けられましたが、それでも理想的な環境では、たった10時間でアタックに成功するという報告さえあるそうです。
そこでDNSに署名を行い、正当な管理者からの情報であること・改ざんのないことを保障するよう改善されたのがDNSSEC(DNS SECurity Extensions)です。 DNSSECはDNSの拡張であり、権威サーバが応答を署名することで、ルートサーバからドメインを管理するネームサーバまで連鎖的に情報が保障されます。 しかし、署名を行うための鍵の管理・更新が複雑になること、トラフィックやネームサーバの負荷が増大するなど、導入に向けて課題が残っています。スウェーデンでは2005年より導入されていますが、ルートサーバや日本等、多くのドメインでは導入に至っていません。
DNSは非常に身近なプロトコルでありながら関心を呼びづらいため、敷居を高く感じやすいものです。 知っているようで意外と知らないことが多いDNSを、この機会にもう一度勉強してみてはいかがでしょうか(このブログでもネームサーバの運用について触れられたらいいですね!。)
最後に
貴重なお話をして頂いた藤倉さん、民田さん、そしてお越しいただいた皆様、本当にありがとうございました。 次回hbstudyの詳細につきましてはhttps://heartbeats.jp/hbstudy/にて追って告知致します。興味のある方はぜひご確認ください!