vyattaのL2TPではまった
vyattaのVPN設定してるとき、再起動したら全然つながらなくなって今日1日を台無しにしたのでここに書いておく。
設定はこんなん。
vpn { ipsec { ipsec-interfaces { interface eth1 } nat-networks { allowed-network 172.16.0.0/12 { } } nat-traversal enable } l2tp { remote-access { authentication { local-users { username {ないしょ} { password **************** } username {ないしょ} { password **************** } } mode local } client-ip-pool { start 192.168.1.160 stop 192.168.1.180 } ipsec-settings { authentication { mode pre-shared-secret pre-shared-secret **************** } ike-lifetime 3600 } outside-address 172.31.93.159 } } }
これで再起動したら、何か全然つながらなくなった。で、はまったのは以下が理由なのかどうなのかよーわからんが…。
なので、再起動したらこんな風に手動でたたいてあげて対応した。なおrootユーザへのスイッチが必須なので、rootユーザの有効化方法はここ参照。
> restart vpn > su # /etc/init.d/xl2tpd start
または、vyattaの設定からvpnの下のl2tpツリーを全部一旦削除してコミットして、設定を復旧すればいつのまにかxl2tpdが起き上がってます。
…なんでー。
ちなみに、Windows7とかで接続するとNATトラバーサル設定がないときと同じエラーコードなのでその辺で検索の罠にはまりやすい。っていうか事例少なかったしどうしてなんだろうなぁ。
(追記)あ、わかった。HAクラスタを組んでいるときは以下のように、クラスタサービスにipsecとxl2tpdを追加するとよい。ipsecだけでもいい気もするんだけど、付けても別にエラーにならなかったのでOK。
cluster { dead-interval 10000 group vycl1 { auto-failback true primary dcdavrt01 secondary dcdavrt02 service 192.168.1.254/24/eth0 service 172.31.93.159/24/eth1 service 172.31.93.151/24/eth1 service 172.31.93.152/24/eth1 service ipsec service xl2tpd } interface eth0 keepalive-interval 2000 monitor-dead-interval 20000 pre-shared-secret **************** }