BSD界隈四方山話

第117回EuroBSDCon 2017 - 過去最大規模

EuroBSDCon 2017 - 過去最大規模

 EuroBSDCon 2017オープニング
図 EuroBSDCon 2017オープニング

2017年9月23日(土)と24日(日)にフランスのパリでEuroBSDCon 2017が開催されました。今回のフランスでの開催はこれまでのEuroBSDConの中で最も参加人数が多くなりました。フランスのパリという参加しやすい立地も理由になっているのかもしれません。EuroBSDCon 2017の前日2日間には別の会場でFreeBSD DevSummitも開催されました。

EuroBSDCon 2017は3トラック+BOFや検定試験用の1トラックで実施されました。なかでも特に興味深かった次のセッションを紹介します。

Tuning FreeBSD for routing and firewalling, Olivier Cochard-Labbé

 Tuning FreeBSD for routing and firewalling, Olivier Cochard-Labbé
図 Tuning FreeBSD for routing and firewalling, Olivier Cochard-Labbé

現在はOrange(フランスの大手通信会社)でネットワークエンジニアを務めるOlivier Cochard-Labbé氏。FreeNASおよびBSD Router Projectの創立者。同氏からFreeBSDをルータやファイアウォールマシンとして使う場合にどのような設定を行うことでパフォーマンスを引き上げることができるかといった発表が行われました。同氏の調査データおよび設定方法はGitHub: ocochard/netbenchesにまとまっていますので、こちらのデータを見ることでより詳しい設定方法がわかります。

Olivier Cochard-Labbé氏はさまざまな設定と組み合わせでベンチマークを実施し、最終的に次の設定で高いパフォーマンスが得られることを説明しました。

  • Yandexパッチを適用する
  • ハイパースレッディング機能を無効化する
  • harvest_maskを351に設定する(ただし、セキュリティ的に許されるのであれば)
  • rx_process_limitを無効化する

rxqを増やすことでもパフォーマンスは向上するのですが、それよりもrxqの数はそのままにしてハイパースレッディング機能を無効にした方が性能が向上しています。これは実装を考えるとわかりやすい結論ですが、自力でここまで思い至るのは難しいかもしれません。

またハードウェアとして10G Emulex OneConnect (be3)は避けた方がよいだろうといった説明もありました(チューニングがほとんどできない⁠⁠。Yandexのパッチでパフォーマンスの向上が期待できることはこれまでも知られていましたが、このパッチはすべての状況において仕様通りに動作するものではないので、デフォルトでの取り込みは行われていません(その極端な状況がやってくるかどうかは別として、デフォルトのコードとしては取り込めないわけです。残念ですけども⁠⁠。

Olivier Cochard-Labbé氏の紹介した設定方法は結果的にはloader.confやrc.confに数行追加するだけでネットワーク通信性能が向上する結果になりますので、通信速度が必要な多くのケースで参考になるものだと思います。すでにサービスを提供している場合でも設定ファイルを変更するだけで効果が期待できるので恩恵を受けられるベンダやユーザは多いのではないかと思います。

上記も含めてvBSDcon 2017とEuroBSDCon 2017で発表のあったものから特に興味深かったものを第66回FreeBSD勉強会で取り上げます。興味のある方は参加をご検討いただければと思います。詳細は下記を参考にしてください。

勉強会

10月4日(水) 19:00~ 第66回 FreeBSD勉強会:vBSD 2017とEuroBSDCon 2017から旬な技術をご報告! - ヴァル研究所 セミナールーム

9月に米国バージニア州で開催されたvBSDcon 2017とフランスで開催されたEuroBSDCon 2017から、最新の*BSDトピックを面白いところにしぼってお伝えします。カンファレンスへの渡航費用と参加費用を見ると、日本でこの情報を得られるのはとってもお得です。みなさまのお越しをお待ちしております。

vBSDcon 2017から取り上げる内容

  • Isolated build BSD environments using virtual and hardware machines, Michael Dexter
  • Thinking About BSD Community Dynamics, Kyle Kneisl
  • The History and Future of Core Dumps in FreeBSD, Sam Gwydir
  • Using pkgsrc for multi-platform deployments in heterogeneous environments, G Clifford
  • Oblivious sandboxing: developments in transparent sandboxing with Capsicum, Jonathan Anderson
  • Modern Multicore Synchronization and Concurrency Kit, Samy Bahra
  • BSD Certification Exams administered by BSDCertification.org
  • The Realities of DTrace on FreeBSD, George Neville-Neil
  • Deep Dive into FreeBSD’s Kernel RNG, John-Mark Gurney and Dean Freeman
  • The State of Network Security Tools on BSD, Michael Shirk
  • Making gets() and its Friends more like SIGPIPE and SIGILL, Paul Vixie
  • GELI Support for UEFI, Eric McCorkle
  • BSD Systems Management with Ansible, Benedict Reuschling

EuroBSDCon 2017から取り上げる内容

  • Keynote 1: Software Development in the Age of Heroes, Thomas Pornin
  • Keynote 2: A French story on cybercrime, Éric Freyssinet
  • Keynote 3: System Performance Analysis Methodologies, Brendan Gregg
  • Tuning FreeBSD for routing and firewalling, Olivier Cochard-Labbé
  • My BSD sucks less than yours, Act I/II, Antoine Jacoutot & Baptiste Daroussin
  • From NanoBSD to ZFS and Jails - FreeBSD as a Hosting Platform, Revisited
  • Patrick M. Hausen
  • OpenBSD Testing Infrastructure Behind bluhm.genua.de, Jan Klemkow
  • Case studies of sandboxing base system with Capsicum, Mariusz Zaborski
  • OpenBSD’s small steps towards DTrace (a tale about DDB and CTF), Jasper Lievisse Adriaanse
  • The OpenBSD web stack, Michael W. Lucas
  • Running BSD on AWS, Julien simon & Nicolas David
  • Hoisting: lessons learned integrating pledge into 500 programs, Theo de Raadt

本勉強会への参加者には抽選か勝ち抜きかデーモンTシャツなどのグッズをお渡しします。振るってご参加ください。参加登録はこちらから。

10月26日(木) 19:00~ 第67回 FreeBSD勉強会:blacklistd(8)でsshd/ftpd DoS攻撃を防止する方法 基礎から応用まで - ドワンゴ セミナールーム

FreeBSD 11.0-RELEASEにはblacklistd(8)と呼ばれるデーモンが取り込まれました。これはNetBSDのblacklistd(8)をマージしたもので、設定に従ってサーバに対するDoS攻撃とみられるアクセスに対し、自動的にアクセスを閉じるといった処理をしてくれます。

FreeBSD 11.1-RELEASEからはシステムのsshd(8)がblacklistd(8)に対応するようになりました。ftpd(8)にもすでに同様の機能が取り込まれています。ログインに何回か失敗したら何時間の間アクセスをブロックするといった設定を行うことができます。ホワイトリスト的な設定も追加することでき、全体としてのブロック設定をおこないつつ、特定のホストからのアクセスは許可したり、特定のホストからのアクセスは規制を緩くしておくといったことも可能です。

blacklistd(8)と類似した機能を提供するソフトウェアにはsshguard、fail2ban、denyhostsなどがあります。これらソフトウェアと比較したblasklistd(8)の特徴は処理の軽快さにあります。また、ipfw、pf、ipfilterというFreeBSDが提供しているすべてのファイアウォール機能に対応しているほか、もちろんNetBSD npfに対応しています。

blacklistd(8)はライブラリとしてlibblacklistを提供しているため、sshdに限らずほかのさまざまなソフトウェアからも利用できる汎用的な機能です。いくらかのコードの書き換えでblacklistd(8)を利用できるようにすることができます。

今回の勉強会ではblacklistd(8)がどのように動作しているのか紹介するとともに、設定方法などの基本的な方法から、既存のソフトウェアをblacklistd(8)に対応させる場合にどのように開発を行えばよいかなどを紹介します。

参加登録はこちらから。

FreeBSD勉強会 発表者募集

FreeBSD勉強会では発表者を募集しています。FreeBSDに関して発表を行いたい場合、@daichigotoまでメッセージをお願いします。30分~1時間ほどの発表資料を作成していただき発表をお願いできればと思います。

おすすめ記事

記事・ニュース一覧