FreeBSD Daily Topics

2009年1月6日7.1に導入された複数ルーティング機能(Multiple FIB, setfib(1))、VarnishでHTTPアクセラレーション

heads-up

Multiple FIB

current/stable - FreeBSD committer 佐藤氏が、HRS's Web PageにおいてFreeBSD 7.1に導入された新機能の1つ、複数ルーティング機能を紹介しています。複数ルーティング機能は8-CURRENTで導入されている機能ですが、先日リリースされた7.1にも機能の一部がマージされています。氏の説明にあるように、同機能を有効にするには「options ROUTETABLES=2」といったオプションを追加してカーネルを再構築する必要があります。

複数ルーティング機能を使うとプロセスごとにルーティングテーブルが設定できるようになります。複数ルーティング機能は高性能ルータではすでに提供されている機能です。FreeBSDをルータとして運用する場合に活用できます。この機能を使うと、たとえば次のようなことができるようになります。

  • マルチホーム活用の改善。ルーティングテーブルが1つしかない状況では、マルチホームを構築してネットワークの入力方向を複数用意したとしても、デフォルトルータを1つしか設定できないため、出て行く方向が1ヶ所になってしまう問題がありました。ファイアウォールレベルでフォワーディングすることもできますが、この方法はプロセス単位には適用できませんし、フォワーディングできないパターンもあります。プロセスごとの複数ルーティングがサポートされたことでデフォルトルータの設定がプロセスごとに行えるようになり、マルチホームの活用が向上します
  • これもマルチホーム活用の1つとなりますが、通信量の増大に対応するために新しい接続経路を追加したとしても、ルーティングテーブルが一つしかない状況では出て行く方向の経路を活用しにくい状況にありました。複数ルーティングではプロセス単位でデフォルトルータを設定できるのでこういったケースでの利用が改善されます
  • セキュリティを考慮した設定が従来よりも簡単に実現できるようになります。プロセスごとにルーティングを設定できるため、不要なルートを通らせないことでよりセキュリティ的に好ましい状況を作ることができます。たとえば特定のSSHアクセスを提供したいとか、RPCを提供したいといった場合に、従来よりも簡単にセキュリティ的に好ましい状況を構築できます
  • RIPやOSPFなどのルーティングプロトコルを使う場合、誤った設定や誤った学習で通信が重くなることがあります。複数ルーティングを使ってあらかじめ別のルーティングテーブルでRIPやOSPFを動作させ、設定や学習が適切に行われているかを確認できます
  • Jailと組み合わせることで、Jail内部のネットワークルーティングをホストや他のJailと分離することができます

佐藤氏の説明文書には複数のルーティングを使う場合にどのようなルールが適用されるのか、実際にどうやって設定するのか(setfib(1))が簡潔にまとめられており、かなり有益なドキュメントです。興味がある方は氏のドキュメントをチェックしてみてください。

Varnish on FreeBSD

current - FreeBSD committer 重村氏が2008年12月29日付けの日記でVarnishを使う例を紹介しています。VarnishはFreeBSD committer, Poul-Henning Kamp氏らが開発したHTTPアクセラレータで、OSの機能をフルに活用するように開発されているところに特徴があります。Squidをリバースプロクシに採用しているのであれば、代わりにVarnishを採用することで良好な高速化が期待できます。

おすすめ記事

記事・ニュース一覧