ゲスト OS ルーターのセットアップ

おうちサーバーの ESXi 移行を、少しずつ進めています。ちなみに、以前は iSCSI にこだわっていたのですが、最近はとりあえず NFS でも良いかな、と思えてきました。ちなみに NFS サーバーも、FreeNAS 0.69.2 にやらせています。
さて。ルーターのセットアップですが、実際にインターネットに繋がないと、設定作業は少し厄介です。特に IP フィルタリング(ファイアーウォール)は、机上設計だけでは完全な設定が難しいものです。時間をかけて、旧ルーターと新ルーターを行ったり来たりの実験をできれば良いのでしょうが、移行を速やかにすませないと、家族からの信頼を失いかねません*1。しかし、この設定作業にはいくつかの障害があります。

  • ファイアーウォールの設定が中途の状態で、インターネットに繋ぐのは危険だ
  • 私の作業部屋には、有線 LAN が来ていない

後者は私個人の都合なのですが、これらを解決しないと、腰を据えてのルーター作業ができません。

PC をルーターにする

そんな折、ふとアイデアが思いつきました。Windows PC をルーターに仕立てれば良いのではないか! 実際、Windows XP ではレジストリをいじることで IP forwarding が有効になるらしいのです。しかし現状、私の Windows PC では実験用に複数の VLAN が動いているのですが、特定のポートだけでルーティングを許可したり、NAT を動かしたりするなんてことはできるのでしょうか?*2
次善策として考えたのは、Windows PC 上で動いている VMware Server 上にルーターを仕立てるというものです。Intel 製の EMAC 上で VLAN を動かせているので、ESXi サーバーと Windows PC の間に、インターネットの代わりになる VLAN を引き回せば、ESXi 上のゲスト OS ルーターの評価ができると考えました。しかし、実際に VMware Server の仮想ネットワーク環境を操作して、VLAN を擬似インターネットに仕立てようと思ったのですが、私の場合はうまくいきませんでした。
しばらくの間、アイデアが詰まって作業が壁にぶつかっていたのですが、ふと思い立ちました。よく考えたら、無理に VLAN など使わなくても、もう一台 NIC があれば良いのではないか! と。自宅のジャンク箱を探したら、むかし買って使わなくなっていた、3Com Megahertz の 100Base-TX NIC (CardBus) が出てきました。もう一本の LAN ケーブルも出てきたので、問題解決です。Windows XP の PC にこの NIC を差したところ、特別なドライバなしで認識して、VMware Server からも増設 NIC が見えるようになりました*3

仮設ルーターを作る

早速、VMware Serve 上に仮設ルーターを作りました。このルーターは、新ルーターのセットアップが終われば不要になるので、「仮設」なのです。このような用途には、仮想 OS (ゲスト OS)はぴったりですね。
なお、OS は NetBSD 5.0 です。IP fowarding を有効にし、DHCP サーバーと NAT を動かしました。DHCP サーバーは、新ルーターDHCP クライアントの設定に必要です。NAT のほうは必要性が定かでなかったのですが、簡便さを考えて導入しました*4

ルーターの設定

ようやく、ESXi ゲスト OS による新ルーター設定の下準備ができました。実際にインターネットに繋がるので、作業や動作確認がはかどります。短い時間で、DHCP クライアント、IP フィルタリング、NAT、DHCP サーバー、BIND、NTP など、設定をほぼ終えることができました。IP フィルタリング(ファイアーウォール)も、防火壁の中で防火壁の実験をしているようなものなので、安心して作業を進めることができました。
今度、家族が寝静まった夜中に、新ルーターの実環境試験をしてみようと思ってます。それが終われば、週末あたりには実際のネット環境移行ができそうです。

*1:ただでさえ、巨大なサーバーが 2台も来ているので、妻の期待値は高いのです。新しいルーターでネット接続環境が不安定になったりすると、冷たい視線が待っていることになります。

*2:NetBSD ならば、経験があるから簡単なのに!

*3:この段階で私の PC は、無線 LAN 1 チャネル、有線 LAN 2 チャネル、VLAN 2 チャネルという、すごい構成になっています。ああ、うっとり。

*4:結果として、自宅内での NAT 3段カスケードという、見るも恐ろしい構成になってしまった。これまた、うっとり。