SoftEther VPNが好きで色んな所で使っているんですが、先日、Hyper-Vの上で動かした際にエラーが出て困ったので、その解決法をまとめました。

SoftEther VPNって?

SoftEther VPN

SoftEther VPN はオープンソースの、無償で、複数プラットフォームおよび複数 VPN プロトコル対応の VPN ソフトウェアであり、筑波大学大学院システム情報工学研究科 産学間連携推進室 における研究プロジェクトとして開発されています。

要は、すごく簡単にVPNが作れちゃいますよっていうソフトです。
作者が大学一年生のときに1.0を作ったっていうもんですから、天才はいるんですね。

困ったこと

こいつをWindwos Server 2008 R2のHyper-Vで動かしたところ、以下のエラーが発生。

1
2
2014-07-30 02:15:17.709 L2TP PPP セッション [xxx.xx.xx.xx:1701]: DHCP サーバーから IP アドレスを取得しようと試行しています。
2014-07-30 02:15:22.720 L2TP PPP セッション [xxx.xx.xx.xx:1701]: DHCP サーバーからの IP アドレスの取得に失敗しました。PPP の通信を受諾するためには DHCP サーバーが必要です。仮想 HUB の Ethernet セグメント上で DHCP サーバーが正しく動作しているかどうか確認してください。DHCP サーバーを用意することができない場合は、仮想 HUB の SecureNAT 機能を用いることもできます。

エラーメッセージに合わせて、「SecureNAT」という解決法も教えてくれているので、とても親切ですね。
しかし、LAN上にはDHCPサーバがあるはずなのに、おかしいなあ、、と思っていました。

ふと、以下の記述があったことを思い出しました。
それは、SoftEther内に作成される仮想HUBとEthernetアダプタをつなぐ「ローカルブリッジ」という機能の説明で

注 1. ローカルブリッジ機能を使用するためにはプロミスキャスモードを有効にする必要があります

というもの。
どうやら、Hyper-Vの仮想NICはデフォルトでプロミスキャスモードに対応していないようで。
設定を変更します。

設定変更

  1. 仮想マシンをシャットダウンする
  2. 設定を開く
  3. ネットワークアダプタを「レガシ ネットワークアダプター」に変更する
  4. 「MACアドレスのスプーフィングを有効にする」にチェックを入れる

Hyper-Vでは、プロミスキャスモードを「MACアドレスのスプーフィング」というらしいですね。
これで、無事にDHCPからアドレスがもらえました。めでたしめでたし。