Ubiquiti Networks Edgerouter X (ER-X) から QVPN Service へ PPTP で接続してみた備忘録です.なお,多分 QVPN Service 以外でもほぼ同じだと思う.
QVPN Service というのは QNAP の NAS で使える VPN アプリなんですが,これ,
- PPTP
- L2TP/IPSec (PSK)
- OpenVPN
のサーバーにもクライアントにもなるというものです.アプリを入れて GUI から簡単にVPNの設定ができ,さらに,接続状況なんかもわかりやすい画面で行えると言うなかなかの優れものです.
で,昨日,自宅の ER-X で遊んでる最中に,こいつを PPTP クライアントにできるということに気がつきました(PPTP サーバーにもなります).どちらかというと,ER-X のこの機能の方が「へー」という感じかもしれません.
設定の詳細
最低限の設定は以下の通りとっても簡単です(QVPN Service の設定は見れば分かるレベルなのでここでは詳細は省略します).
$ show configure ..... interfaces { .... pptp-client pptpc0 { default-route none description connection to qvpn service by pptp name-server auto password **************** require-mppe server-ip fqdn.qvpn.service user-id hyt } .... }
なお,server-ip, user-id, password はそのままの意味ですが,default-route, name-server は以下のオプションを選択できます.
# default-route Possible completions: auto Install default route when link comes up force Install default route (replace existing one if any) none Don't install default route when link comes up # name-server Possible completions: auto Use name server entries provided by peer none Do not use name server entries provided by peer
あと,require-mppe を設定しておかないと QVPN Service には繋がりません.と言うか,多分,大方の PPTP サーバーで require-mppe は設定しておかないといけないんじゃないかと思います.
上記の設定を行って,commit すると,すぐに接続が行われ,成功すると,
$ show interfaces Codes: S - State, L - Link, u - Up, D - Down, A - Admin Down Interface IP Address S/L Description --------- ---------- --- ----------- .... pptpc0 10.0.0.2 u/u connection to qvpn service by pptp .... $ show interfaces pptp-client pptpc0 pptpc0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1396 qdisc pfifo_fast state UNKNOWN group default qlen 100 link/ppp inet 10.0.0.2 peer 10.0.0.1/32 scope global pptpc0 valid_lft forever preferred_lft forever RX: bytes packets errors dropped overrun mcast 9122605 9875 0 0 0 0 TX: bytes packets errors dropped carrier collsns 991738 7270 0 0 0 0 RX: bytes packets errors dropped overrun mcast 9122605 9875 0 0 0 0 TX: bytes packets errors dropped carrier collisions 991738 7270 0 0 0 0
の様に確認できます.ちなみに,切断と接続は,
$ disconnect interface pptpc0 Bringing interface pptpc0 down... $ $ connect interface pptpc0 Bringing interface pptpc0 up...
で可能です.なお,これら操作は基本的には GUI ではできず,ターミナルから(SSH 等を使って)行う必要があります.
もちろんこれだけではただ接続できたと言うだけで,このままだと,つなげた先にあるサーバー等にアクセスできません.もちろん全ての通信をこの PPTP を経由して行うというのであれば,単に
# set interfaces pptp-client pptpc0 default-route auto
とすれば良いと思いますが,普通は必要な通信だけ PPTP 経由で行いたいのが普通ですので静的ルートを設定する等はしないといけません.例えば,PPTP でつなげた先のネットワークが 192.168.1.0/24 の場合は,
protocols { static { .... route 192.168.1.0/24 { next-hop 10.0.0.1 { description connection to qvpn service by pptp } } .... }
のような設定を追加すればOKのはずです.
雑感
設定はあんまり難しくないとは思いますが,セッション数が多くなると,なぜか切断が多発するので,残念ながら安定性はあんまり期待できなさそうです(ER-X の問題なのか QVPN の問題なのかは今のところわかってない).
あと,PPTP は安全性に問題があると言われているのと,なぜか QVPN Service だと ipv6 では接続できないことも気になるところです.と言うことで,使うとしたら LAN 内で使われるサーバーを簡易的な認証付きにしたいとかいう場合に限定されるんじゃないかと思います.
インターネットを経由する VPN の場合は,やはり L2TPv3 とか OpenVPN とかを利用すべきでしょう.ただし,ER-X だと処理能力の問題があるかなぁ…….暇があれば試してみるかなぁ…….
以上!