web-dev-qa-db-ja.com

openswan + xl2tpd接続がしばらくするとタイムアウトします

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.

バージョン:

  • Ubuntu 12.04
  • オープンワン:2.6.37-1
  • xl2tpd:3.1 + dfsg-1
  • カーネル:3.2.0-49-ジェネリック

構成:

/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
1
Halfgaar

/etc/ppp/options.xl2tpdファイルには、「アイドル1800」、つまり30分があります。

その値をより高い数値に設定するか、次のようなひどいことをしてみてください。

while true; do echo "c default" 1>/var/run/xl2tpd/l2tp-control; sleep 1500; done
1
ic_

ほとんどの場合、セッション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ルーター(アクセスできる場合)アイドル接続 タイムアウト パラメーター。

0
Costin Gușă