NATを使用していないOpenswan + xl2tpdサーバー(Ubuntu 12.04)があり、NATの背後にあるWindows8に接続しています。クライアントは、しばらく何もしなかった後(30〜60分の間ですが、時間を計りませんでした)、接続を失います。
クライアントは、非アクティブな接続を強制終了することを有効にしていません。また、スリープモードになることもありません。また、kill-after-timeを24時間に設定しようとしましたが、それは役に立ちませんでした。
NATクライアントが配置されているルーターはDebianLinuxであり、itsルーターは、サーバーがあるデータセンターに直接接続するCiscoです。 SSHのような他の接続は、非アクティブでドロップされます(ルーターが安価なため)。ただし、/etc/ipsec.conf
でキープアライブをオンにしてみました。
config setup
(...snip...)
nat_traversal=yes
force_keepalive=yes
keep_alive=10
しかし、それは役に立ちませんでした。
後で設定で確認できるように、デッドピア検出のアクションは明らかです。それは修正する最初の提案ですが、人々は台所の流し以外のどこからでも接続するので、明確にする必要があります。その上、私が言ったように、私が今持っているテストセットアップでは、接続を切断しているデバイスを見ることができません。 (編集:「再起動」も同じ効果があります)
これらは一度だけ起こったものです:
Jul 18 16:18:06 Host xl2tpd[1918]: Maximum retries exceeded for tunnel 49070. Closing.
Jul 18 16:18:06 Host xl2tpd[1918]: Terminating pppd: sending TERM signal to pid 18359
Jul 18 16:18:06 Host xl2tpd[1918]: Connection 4 closed to 89.188.x.y, port 1701 (Timeout)
Jul 18 16:18:11 Host xl2tpd[1918]: Unable to deliver closing message for tunnel 49070. Destroying anyway.
そしてこれらは別のものに:
Jul 18 17:44:39 Host xl2tpd[1918]: udp_xmit failed to 89.188.x.y:1701 with err=-1:Operation not permitted
Jul 18 17:44:43 xl2tpd[1918]: last message repeated 4 times
Jul 18 17:44:43 Host xl2tpd[1918]: Maximum retries exceeded for tunnel 10918. Closing.
Jul 18 17:44:43 Host xl2tpd[1918]: udp_xmit failed to 89.188.x.y:1701 with err=-1:Operation not permitted
Jul 18 17:44:43 Host xl2tpd[1918]: Terminating pppd: sending TERM signal to pid 26338
Jul 18 17:44:43 Host xl2tpd[1918]: Connection 6 closed to 89.188.x.y, port 1701 (Timeout)
Jul 18 17:44:44 Host xl2tpd[1918]: udp_xmit failed to 89.188.x.y:1701 with err=-1:Operation not permitted
Jul 18 17:44:48 xl2tpd[1918]: last message repeated 3 times
Jul 18 17:44:48 Host xl2tpd[1918]: Unable to deliver closing message for tunnel 10918. Destroying anyway.
Jul 18 17:44:59 Host xl2tpd[1918]: Can not find tunnel 10918 (refhim=0)
Jul 18 17:44:59 Host xl2tpd[1918]: network_thread: unable to find call or tunnel to handle packet. call = 0, tunnel = 10918 Dumping.
Jul 18 17:45:09 Host xl2tpd[1918]: Can not find tunnel 10918 (refhim=0)
Jul 18 17:45:09 Host xl2tpd[1918]: network_thread: unable to find call or tunnel to handle packet. call = 0, tunnel = 10918 Dumping.
Jul 18 17:45:19 Host xl2tpd[1918]: Can not find tunnel 10918 (refhim=0)
Jul 18 17:45:19 Host xl2tpd[1918]: network_thread: unable to find call or tunnel to handle packet. call = 0, tunnel = 10918 Dumping.
Jul 18 17:45:29 Host xl2tpd[1918]: Can not find tunnel 10918 (refhim=0)
Jul 18 17:45:29 Host xl2tpd[1918]: network_thread: unable to find call or tunnel to handle packet. call = 0, tunnel = 10918 Dumping.
Jul 18 17:45:39 Host xl2tpd[1918]: Can not find tunnel 10918 (refhim=0)
Jul 18 17:45:39 Host xl2tpd[1918]: network_thread: unable to find call or tunnel to handle packet. call = 0, tunnel = 10918 Dumping.
Jul 18 17:45:49 Host xl2tpd[1918]: Can not find tunnel 10918 (refhim=0)
Jul 18 17:45:49 Host xl2tpd[1918]: network_thread: unable to find call or tunnel to handle packet. call = 0, tunnel = 10918 Dumping.
バージョン:
構成:
/etc/ipsec.conf:
version 2.0 # conforms to second version of ipsec.conf specification
config setup
nat_traversal=yes
virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12,%v4:!10.152.2.0/24
oe=off
protostack=netkey
force_keepalive=yes
keep_alive=10
conn L2TP-PSK-NAT
rightsubnet=vhost:%priv
also=L2TP-PSK-noNAT
conn L2TP-PSK-noNAT
authby=secret
pfs=no
auto=add
keyingtries=2
rekey=no
dpddelay=30
dpdtimeout=120
dpdaction=clear
ikelifetime=8h
keylife=1h
type=transport
left=%defaultroute
leftprotoport=17/1701
right=%any
rightprotoport=17/%any
/etc/xl2tpd/xl2tpd.conf
[global]
ipsec saref = no
[lns default]
ip range = 10.152.2.2-10.152.2.254
local ip = 10.152.2.1
refuse chap = yes
refuse pap = yes
require authentication = yes
ppp debug = no
pppoptfile = /etc/ppp/options.xl2tpd
length bit = yes
/etc/ppp/options.xl2tpd:
require-mschap-v2
refuse-mschap
ms-dns 10.152.2.1
asyncmap 0
auth
crtscts
idle 1800
mtu 1200
mru 1200
lock
hide-password
local
#debug
name l2tpd
proxyarp
lcp-echo-interval 30
lcp-echo-failure 4
/etc/ppp/options.xl2tpdファイルには、「アイドル1800」、つまり30分があります。
その値をより高い数値に設定するか、次のようなひどいことをしてみてください。
while true; do echo "c default" 1>/var/run/xl2tpd/l2tp-control; sleep 1500; done
ほとんどの場合、セッションrekeing通信が完了しません。私は見ることから始めます:
-ubuntuファイアウォールルール(iptables-save
)
-ubuntuマシン上のipsec関連のネットワークトラフィック(tcpdump -s 0 -w capturefile.pcap -n -i $vpn_external_interface '$remote_client_ip or icmp or ip proto 50 or udp port 500'
)
-イベントログ内のipsec関連のイベント。 This 記事にはいくつかのイベントが記載されており、Windows 7向けに書かれていますが、Windows8にも適用されます。
-Ciscoルーター(アクセスできる場合)アイドル接続 タイムアウト パラメーター。