L2TPについてLinuxをクライアントとして用いて接続を行ってみました。Windowsをクライアントとする場合、OS標準でサポートしているため単なる設定を行えばつながるようなので。
なお、サーバーは手軽にSoftEtherのオープンソース版で実験してみました。
Linuxクライアント
CentOS 6.4 x64を用いました。
softetherのLinux版を用いたら簡単に終わりかと思っていたのですが、L2TPで接続できなかったため、別の方法でチャレンジしました。
基本的にはこちらの記事(CentOS 6.0 で L2TP-VPN に接続する)を参考に行いました。
openswanとxl2tpd をyum でインストールして、環境設定を行っていきます。
/etc/ipsec.d/connection.conf はほぼ同じでこんな感じ
conn PEER_L2TP authby=secret pfs=no rekey=no keyingtries=3 type=transport left=%defaultroute leftprotoport=17/1701 right=192.168.2.1 rightprotoport=17/1701 auto=add
ちょっと違ったのは、/etc/ipsec.d/ipsec.secrets で、接続先を指定しました。
(サーバーのIP) %any : PSK "事前共有キー"
/etc/xl2tpd/xl2tpd.conf の設定もまた少し変えました。
なぜか一定時間経過すると L2TPのコネクションが切れてしまうので、再接続の項目をいれてあります。
[lac L2TP1] lns = 192.168.2.1 require chap = yes refuse pap = yes require authentication = yes ppp debug = yes pppoptfile = /etc/ppp/options.xl2tpd.conn-1 length bit = yes redial = yes redial timeout = 10 max redials = 3
また、L2TP 接続で使用する認証アカウントは “/etc/ppp/chap-secrets” や “/etc/ppp/pap-secrets” に記述するのですが、これもまた少々変更して、接続先名をアスタリスクにしています。こうしないとなぜかサーバーがアカウント情報を参照してくれませんでした。
"アカウント名" * "接続パスワード" *
一応これで接続はできるようになったのですが、途中での切断のこともありますし、若干不安定な気もします。またWindows環境ではデフォルトではNATトラバーサル無効とかのようですし、L2TPの魅力が減ってしまったため、実際の運用はしない感じです。