メニュー 閉じる

Blog

VMwareESXi5+Linux仮想マシンでPPPoE/DMZ/LAN(内部LAN)構成の2段NAT/NAPTルータを作る

というわけで家庭用ルータ撲滅計画の終着点。
結局LinuxでNAT/NAPT箱を作りました(笑)
でも普通に作ったらマシンが増えるので仮想化で。
否、プライベートクラウドで!(笑)
#pfSenseで一度作ったけど、あまりに不安定なので潰しました(爆)

[作るもの]
DMZを備えたNAT/NAPTルータ2つを用意して、公開サーバをDMZに置く構成を作ります。
ルータはすべてVMwareESXi5ホストに仮想マシンとして載せてしまい、必要な接続点のNICだけを外部と接続します。
まあこんな感じですので図を見てください(笑)
20111218router

[だがしかしその前に。]
・VMwareESXiのゲストからPPPoEできるの?→普通にできます。
・他のゲストに負荷かかったら?→ESX/ESXiはリソースを予約したり制限したりできます。
・仮想マシンでルータを作ってもホストにアタックされたらだめじゃん? → VMware管理ポートをPPPセグメントに接続しなければ外部からホストに直接アクセスするのは難しいです。

これで概ね不安はなくなりましたかね?

[用意するもの]
・VMware ESXi 対応NIC×3ポート以上(必須) → VMware Compatibility Guide: I/O Device Search
・IntelVTまたはAMD-V対応CPU(必須)
・適当なマザー、メモリ、部屋に転がってたHDD(注:まだ使えること)
・ESXi5のインストールメディア(ISOイメージ)  → VMware vSphere Hypervisor™ (ESXi)
・Linuxインストールメディア(ISOイメージ) → Software archives at ftp.riken.jp (任意)

こんなところですかね。今回はゲストOSにはRedHat系のLinuxを使いました。
あとは先に進むだけです(´∀`)ノ

(1)ハードウェアを組み上げて、ネットワークカード(NIC)を挿します。

とりあえず組み立てますが、PPPoEのテスト時以外は物理SWに繋ぐ必要はありません。
ESXiを入れてNICが3ポート以上認識できるか祈ります(笑)
3ポートの内訳は、

・NIC#1はPPPoE接続用セグメント

・NIC#2はDMZ(公開サーバ設置用セグメント)
・NIC#3はVMware管理+内部LANセグメントを兼ねます。
です。

(2)ESXi5をインストールし、仮想スイッチを物理NICと関連付け。
(3)仮想マシンを2つ作り、図のように4つのNICを仮想スイッチに関連付けます。

ちょっと追加設定をしてしまっていますのでこんな感じで(笑)

20111218router2

この設定では上からLAN(内部ネットワーク)、DMZ、PPPになります。
(図ではVM MGTが内部セグメント、VM DMZが公開セグメント、VM WAN/PPPが外部接続点。)

(4)ゲストOSをインストールしてルータを作ります。

これで完成!(おいw)

まあ、いちおう必要なパッケージだけ書いておきましょうかw
インストールしたのは、これくらい。
・iptables
・dhcpd
・bind(named)
・rp-pppoe

ルータ機能としてはほとんどiptablesなので、iptables設定だけ必死で頭を使って設定します(笑)
まあ、iptablesだけは起動停止とPPPoE接続用にスクリプトを書いてリブート/PPP切断時も自動で接続&設定されるようにしておくといいですね。
それ以外は設定ファイルを書いて終わりなのですぐにできます。

おわりに。

ルータの仮想化って他にやってる人がいなかったのですが、あっさり動いちゃって拍子抜けでした。
ハードウェアとしてはまあNIC対応が厳しい点と、CPUのVT/AMD-V対応くらいが満たせれば、あとは適当でも簡単に動くので結構おすすめかもです。
もちろんルータ部分はLinuxじゃなくてもよいので、pfSenseなどを使う場合も同じですね。
ルータを作るのはFreeBSDが良いという話ですし。

というわけで、サーバーを公開しているけど現在家庭用ルータの人、家庭用ルータが機能不足でなんとかしたい方、ルータが不安定で困っている方、いかがでしょうか。

それでは今日はこのへんで。

どろん!