MAR
21

この間、Windows Serverをもっと勉強したいという考えから、家のサーバー環境のハイパバイザをVMware ESXiからWS2008R2 with Hyper-V2.0+SCVMM2008R2にリプレースして検証環境を作りました。それに合わせて、OpenVPN(ブリッジモード)をHyper-V上で作り直しました。ほんとはESXiからV2Vすればよかったのですが、OpenVPNを動かしていたVMから設定を抜き忘れたまま消してしまったので一から作りました。。

折角なので、Hyper-V上でOpenVPNを動かす場合の情報はネット上に転がってなさそうなので、Hyper-Vと関係ない部分も含めて、OpenVPNを動かす際の注意点をエントリにまとめてみます。

Hyper-Vの設定で気を付ける点

OpenVPNの入ったVMをHyper-V上で動かす場合、そのVMの仮想NICの設定を変更してやる必要があります。

Hyper-V Managerの場合SCVMM2008R2の場合

VMの仮想NICの中で、OpenVPNのクライアントからのフレームを通過させたいNICについては「MACアドレスのスプーフィングを有効にする」というチェックボックスをONにする必要があります。これがONになっていない場合、Hyper-Vの仮想スイッチは、仮想NICの接続されたポートにおいて、仮想NICについたMACアドレス以外を送信元にするフレームを廃棄します。そうした場合、OpenVPNのクライアントが送出したフレーム(TAP-Win32 AdapterのMACアドレスを持つ)が通らなくなってしまいます。ESXiでいうところの、仮想スイッチのPromiscuous Mode(無差別モード)の設定と同じですね。これさえ気をつければHyper-Vの設定は多分大丈夫かと思います。

Hyper-V以外でOpenVPNの設定で気を付ける点

基本的に設定はネット上に色々載っているものに従って行えば動くかとおもいます。自分の環境でのconfig例は立った!OpenVPNが立った! – SharpLab.というエントリに載せています。ただ、そうは言っても、色々間違えやすいのも事実。注意点を一点だけ。server.confの中で、dev tapあるいはdev tunと設定しろ、といった具合にサンプルがなっている部分があります。ここで、よくコメントを読まないといけないのですが、OpenVPNを立ち上げる前に事前に作ったtapインターフェイスを使う場合は、その名前"tap0"などを明示的に指定してやる必要があります。dev tap0のようにです。こうしないと、新しくtap1インターフェイスなどが作られ、起動スクリプトの中でブリッジさせたtapインターフェイスのほうにはトラフィックが流れずVPNがセッションは張れているのに通信できない、ということになってしまいます。