結論
以下を追加する.
password "your password" # nameの直後,usepeerdnsよりも前に記述
mtu 1200
mru 1200
LinuxでVPN接続
LinuxでVPN接続する場合に利用するプログラムにl2tp-ipsec-vpn
がある.
これを使ってVPN接続を試みたが,どうにも接続できない...
コードレベルでの原因解析は行っていないが,とりあえず安定した接続が得られるようになったので,どうやったかをまとめておく.
繋がらない...
必要な情報を入力して接続を試みたが,繋がらない.何が起こっているのか調べるために,ログを出力させるように変更した.
; noになっていたのをyesに
debug avp = yes
debug network = yes
debug packet = yes
debug state = yes
debug tunnel = yes
dubug # debugを有効に
#dump
#record /var/log/pppd
xxx.options.xl2tpd
のxxx
は,l2tp-ipsec-vpn
で追加した接続名に読み替えること.
あと,設定ファイルにコメントで書いてあるとおり,これらのファイルはl2tp-ipsec-vpn
で設定を書き換えると上書きされて元に戻るので注意すること.
ログを確認したところ,どうやら認証で失敗しているようだ.パスワードもちゃんと入力してあるのに,おかしい...
Googleで調べたところ,GUIから入力したパスワードがちゃんと供給されていないような記述を見かけた(ページのURIは忘れてしまったが).そこで,xxx.options.xl2tpd
にGUIで入力したものを追記した.
name "your name"
password "your password" # ここを追加
接続できた.
かなり致命的な不具合だと思うのだが,放置されているのだろうか?
接続が安定しない...
とりあえず接続できるようになったのだが,接続が安定しない.
- ブラウザでページを見ていると通信エラーが発生することがある
- Gmailで顕著
VirtualBoxのゲストOSとしてLinuxを動かしていたため,ネットワークアダプターが原因かと思ってNATからBridgeに変えてみた.すると今度は,
- 突然切れて,再接続を試みるが失敗する
挙動は変わったが,どうしてこうなるのか理解できない...
Googleでいろいろ調べてみたところ,以下が見つかった.
どうもこれのようだ.ifconfig
で確認するとMTUが1500になっている.
L2TPでは通常IPsecと併用する.トンネリングする場合は,もろもろのヘッダサイズを差し引いて考える必要があるため,少し減らした値に設定する必要がある.専門外なので細かいことまでは分からないが,利用しているプロバイダやルーターにも依存するようだ.
上記ページでは多くのクライアントで1200に設定していると書いてある.少し小さい気もするが,安全を考えてこれを設定してみた.
mtu 1200
mru 1200
安定した.