a strange behavior on a small memory system with tun0
Joerg Schneider
js at cell.de
Sat Nov 4 00:24:19 EST 2006
Hello
I am using openssh as vpn on a router with freewrt.org and rsync to sync my local data to a remote server.
Everything works fine for me so far.
The only problem is that the channel-1 (tun0) goes down on the router after 50-200MB transfered via tun0
or after 5-20 hours only with a ping to the server . Channel-0 is still working.
Tcpdump shows that a ping from the router to the server via tun0 reaches the server
but the replay from Server doesn't the router. The tunnel goes unidirectional.
So far I think that must be e memory out problem on the router. What i did try till now is:
-I replaced the router from Linksys 16MB ram to Asus 32MB ram (24MB free), no change.
-I added 512MB swap via external usb harddrive (swap isn't even used when tun0 goes down!), no change.
-I switched from openssh 4.3p2 to 4.4p1 and chiper=blowfish, no difference.
-I switched from openwrt.org to freewrt.org, no difference.
-I tried the HPNPatch (www.psc.edu/networking/projects/hpn-ssh) and tested with HPNBufferSize=512kb, NoChiper=yes on server and router, not better.
-I tried with openvpn, works fine but i would prefer openssh for my backup solution.
-I changed for testing in channels.c:
debug2("channel %d: rcvd adjust %u", id, adjust); to
debug2("channel %d: rcvd adjust %u is_now: %u", id, adjust, c->remote_window);
debug on router shows:
..
..
..
Nov 3 12:26:51 (none) user.info : debug2: channel 1: rcvd adjust 1049336 is_now: 705152^M
Nov 3 12:26:59 (none) user.info : debug2: channel 1: rcvd adjust 1048663 is_now: 698457^M
Nov 3 12:27:01 (none) user.info : debug2: channel 1: window 108432 sent adjust 108524^M
Nov 3 12:27:06 (none) user.info : debug2: channel 1: rcvd adjust 1049535 is_now: 693233^M
Nov 3 12:27:14 (none) user.info : debug2: channel 1: rcvd adjust 1048580 is_now: 697384^M
Nov 3 12:27:22 (none) user.info : debug2: channel 1: rcvd adjust 1049529 is_now: 695099^M
Nov 3 12:28:30 (none) user.info : debug1: client_input_channel_req: channel 1 rtype keepalive at openssh.com reply 1^M
............
tun0 (channel-1) is unidirectional now and I close channel-0 manualy for testing:
............
Nov 3 12:28:33 (none) user.info : debug2: channel 0: rcvd ext data 22^M
Nov 3 12:28:33 (none) user.info : netmask: Unknown host
Nov 3 12:28:33 (none) user.info : debug2: channel 0: written 22 to efd 6^M
Nov 3 12:28:33 (none) user.info : debug1: client_input_channel_req: channel 0 rtype exit-status reply 0^M
Nov 3 12:28:33 (none) user.info : debug2: channel 0: rcvd eof^M
Nov 3 12:28:33 (none) user.info : debug2: channel 0: output open -> drain^M
Nov 3 12:28:33 (none) user.info : debug2: channel 0: rcvd close^M
Nov 3 12:28:33 (none) user.info : debug3: channel 0: will not send data after close^M
Nov 3 12:28:33 (none) user.info : debug3: channel 0: will not send data after close^M
Nov 3 12:28:33 (none) user.info : debug2: channel 0: obuf empty^M
Nov 3 12:28:33 (none) user.info : debug2: channel 0: close_write^M
Nov 3 12:28:33 (none) user.info : debug2: channel 0: output drain -> closed^M
Nov 3 12:28:33 (none) user.info : debug2: channel 0: almost dead^M
Nov 3 12:28:33 (none) user.info : debug2: channel 0: gc: notify user^M
Nov 3 12:28:33 (none) user.info : debug2: channel 0: gc: user detached^M
Nov 3 12:28:33 (none) user.info : debug2: channel 0: send close^M
Nov 3 12:28:33 (none) user.info : debug2: channel 0: is dead^M
Nov 3 12:28:33 (none) user.info : debug2: channel 0: garbage collecting^M
Nov 3 12:28:33 (none) user.info : debug1: channel 0: free: client-session, nchannels 2^M
Nov 3 12:28:33 (none) user.info : debug3: channel 0: status: The following connections are open:^M
Nov 3 12:28:33 (none) user.info : #0 client-session (t4 r0 i3/0 o3/0 fd -1/-1 cfd -1)^M
Nov 3 12:28:33 (none) user.info : #1 tun (t4 r1 i0/0 o0/0 fd 7/7 cfd -1)^M
Nov 3 12:31:19 (none) user.info : debug1: client_input_channel_req: channel 1 rtype keepalive at openssh.com reply 1^M
Nov 3 12:31:34 (none) user.info : debug1: client_input_channel_req: channel 1 rtype keepalive at openssh.com reply 1^M
Nov 3 12:31:49 (none) user.info : debug1: client_input_channel_req: channel 1 rtype keepalive at openssh.com reply 1^M
Nov 3 12:32:04 (none) user.info : debug1: client_input_channel_req: channel 1 rtype keepalive at openssh.com reply 1^M
Nov 3 12:32:19 (none) user.info : debug1: client_input_channel_req: channel 1 rtype keepalive at openssh.com reply 1^M
..
..
..
no reply from server.....
top:
Mem: 17476K used, 12760K free, 0K shrd, 0K buff, 2708K cached
Load average: 0.00, 0.00, 0.07 (State: S=sleeping R=running, W=waiting)
PID USER STATUS RSS PPID %CPU %MEM COMMAND
11303 root R 412 11294 2.9 1.3 top
252 root S 616 1 0.0 2.0 ssh
11293 root S 572 185 0.0 1.8 dropbear
11294 root S 472 11293 0.0 1.5 sh
3462 root S 420 1 0.0 1.3 hbc_sync.sh
11292 root S 412 3462 0.0 1.3 rsync
3383 root S 388 1 0.0 1.2 crond
84 root S 352 1 0.0 1.1 syslogd
73 root S 340 1 0.0 1.1 logger
1 root S 320 0 0.0 1.0 init
185 root S 296 1 0.0 0.9 dropbear
200 root S 296 1 0.0 0.9 httpd
87 root S 288 1 0.0 0.9 klogd
77 root S 288 1 0.0 0.9 init
4 root SW 0 1 0.0 0.0 kswapd
3 root SWN 0 1 0.0 0.0 ksoftirqd_CPU0
158 root SW 0 1 0.0 0.0 usb-storage-0
95 root SW 0 1 0.0 0.0 khubd
5 root SW 0 1 0.0 0.0 bdflush
2 root SW 0 1 0.0 0.0 keventd
160 root SW 0 1 0.0 0.0 scsi_eh_0
37 root SWN 0 1 0.0 0.0 jffs2_gcd_mtd2
6 root SW 0 1 0.0 0.0 kupdated
7 root SW 0 1 0.0 0.0 cifsoplockd
10 root SW 0 1 0.0 0.0 mtdblockd
My router's logfile (<-- means message from server via channel-0):
Sat Jan 1 01:00:08 CET 2000 --> client start up...
Sat Jan 1 01:00:08 CET 2000 --> storing server key
Sat Jan 1 01:00:08 CET 2000 --> storing remote-config
Sat Jan 1 01:00:08 CET 2000 --> storing DNS config
Sat Jan 1 01:00:08 CET 2000 --> creating partition_key
Sat Jan 1 01:00:08 CET 2000 --> starting tunnel tun0
ssh -vvv -w $TUN_ID:$TUN_ID root@$SERVER_IP -i /etc/ssh/id_rsa -o Cipher=blowfish -o Compression=no -o HPNBufferSize=512 -f /root/$REMOTE_CMD >>
/tmp/hbc_log
Sat Jan 1 01:00:15 CET 2000 --> ping to server
Sat Jan 1 01:00:15 CET 2000 --> PING 172.27.0.1 (172.27.0.1): 56 data bytes 84 bytes from 172.27.0.1: icmp_seq=0 ttl=64 time=32.8 ms --- 172.27.0.1
ping statistics --- 1 packets transmitted, 1 packets received, 0% packet loss round-trip min/avg/max = 32.8/32.8/32.8 ms
Sat Jan 1 01:00:15 CET 2000 --> storing crontabs
Sat Jan 1 01:00:15 CET 2000 --> restarting cron
Sat Jan 1 01:00:15 CET 2000 --> getting systime from server 172.27.0.1
Sat Jan 1 01:00:15 CET 2000 --> creating rsync_key
Fri Nov 3 11:47:00 CET 2006 --> creating rsync_exclude
Fri Nov 3 11:47:00 CET 2006 --> activating swap
Fri Nov 3 11:47:00 CET 2006 --> swap is activated ( 249976 kb)!
Fri Nov 3 11:47:00 CET 2006 --> client is ready and waiting for cron_start!
Fri Nov 3 11:46:59 CET 2006 <-- Unlock partition --- key slot 0 unlocked.
Fri Nov 3 11:47:01 CET 2006 <-- Server route to 192.168.3.0 255.255.255.0 via tun0
Fri Nov 3 11:47:01 CET 2006 <-- Server is ready for user: backup0
Fri Nov 3 11:52:12 CET 2006 <-- VPN is alive ---
Fri Nov 3 11:56:38 CET 2006 --> rsync start up...!
Fri Nov 3 11:56:38 CET 2006 --> free memory : 21004 kb
Fri Nov 3 11:56:38 CET 2006 --> free swap : 249976 kb
Fri Nov 3 11:56:38 CET 2006 --> tun0 statistic: RX bytes:68808 (67.1 KiB) TX bytes:69034 (67.4 KiB)
Fri Nov 3 11:56:38 CET 2006 --> eth0 statistic: RX bytes:242241 (236.5 KiB) TX bytes:192526 (188.0 KiB)
Fri Nov 3 11:56:38 CET 2006 --> mounting CIFS 1 ...
Fri Nov 3 11:56:38 CET 2006 --> mount.cifs //192.168.3.65/admin /tmp/mnt/SAMBA
Fri Nov 3 11:56:38 CET 2006 --> rsync CIFS_PATH1-1
Fri Nov 3 11:56:38 CET 2006 --> rsync -az --delete /tmp/mnt/SAMBA/samba backup0 at 172.27.0.1::backup0
Fri Nov 3 11:56:54 CET 2006 --> free memory : 15908 kb
Fri Nov 3 11:56:54 CET 2006 --> free swap : 249976 kb
Fri Nov 3 11:56:55 CET 2006 --> tun0 statistic: RX bytes:96641 (94.3 KiB) TX bytes:512489 (500.4 KiB)
Fri Nov 3 11:56:55 CET 2006 --> eth0 statistic: RX bytes:3029525 (2.8 MiB) TX bytes:844158 (824.3 KiB)
Fri Nov 3 12:02:44 CET 2006 <-- VPN is alive --- rsync 29736 backup0 7u REG 253,5 0 3604516
/home/backup0/daily.0/profiles/Anwendungsdaten/Thunderbird/Profiles/uemq90yi.default/Mail/Local Folders/.Inbox.jgORXx
Fri Nov 3 12:08:02 CET 2006 <-- VPN is alive --- rsync 29736 backup0 7u REG 253,5 0 3604522
/home/backup0/daily.0/profiles/Anwendungsdaten/Thunderbird/Profiles/uemq90yi.default/Mail/Local Folders/.Trash.F8Nsbv
Fri Nov 3 12:12:41 CET 2006 --> free memory : 5012 kb
Fri Nov 3 12:12:41 CET 2006 --> free swap : 248832 kb
Fri Nov 3 12:12:41 CET 2006 --> tun0 statistic: RX bytes:817137 (797.9 KiB) TX bytes:9740160 (9.2 MiB)
Fri Nov 3 12:12:41 CET 2006 --> eth0 statistic: RX bytes:592136574 (564.7 MiB) TX bytes:37319118 (35.5 MiB)
Fri Nov 3 12:12:41 CET 2006 --> unmounting CIFS 1 ...
Fri Nov 3 12:12:42 CET 2006 --> mounting CIFS 2 ...
Fri Nov 3 12:12:42 CET 2006 --> mount.cifs //192.168.3.65/home_admin /tmp/mnt/HOME
Fri Nov 3 12:12:42 CET 2006 --> rsync CIFS_PATH2-1
Fri Nov 3 12:12:42 CET 2006 --> rsync -az --delete /tmp/mnt/HOME backup0 at 172.27.0.1::backup0
Fri Nov 3 12:13:23 CET 2006 <-- VPN is alive --- rsync 2255 backup0 7u REG 253,5 7340032 3342346 /home/backup0/daily.0/HOME/.backup1.tar.eoRhST
Fri Nov 3 12:18:55 CET 2006 <-- VPN is alive --- rsync 2255 backup0 7u REG 253,5 37486592 3342358 /home/backup0/daily.0/HOME/.backup2.tar.jqlgVH
Fri Nov 3 12:24:29 CET 2006 <-- VPN is alive --- rsync 2255 backup0 7u REG 253,5 81002496 3342358 /home/backup0/daily.0/HOME/.backup2.tar.jqlgVH
Fri Nov 3 12:27:33 CET 2006 <-- !!! VPN is offline (count:1) !!!
Fri Nov 3 12:27:35 CET 2006 <-- !!! VPN is offline (count:2) !!!
Fri Nov 3 12:27:37 CET 2006 <-- !!! VPN is offline (count:3) !!!
Fri Nov 3 12:27:39 CET 2006 <-- !!! VPN is offline (count:4) !!!
Fri Nov 3 12:27:41 CET 2006 <-- !!! VPN is offline (count:5) !!!
Fri Nov 3 12:27:43 CET 2006 <-- !!! VPN is offline (count:6) !!!
Fri Nov 3 12:27:45 CET 2006 <-- !!! VPN is offline (count:7) !!!
Fri Nov 3 12:27:47 CET 2006 <-- !!! VPN is offline (count:8) !!!
Fri Nov 3 12:27:49 CET 2006 <-- !!! VPN is offline (count:9) !!!
Fri Nov 3 12:27:51 CET 2006 <-- !!! VPN is offline (count:10) !!!
Client backup0 is down!
Fri Nov 3 12:28:33 CET 2006 <-- killing process id: 2137 for user: backup0
Fri Nov 3 12:28:33 CET 2006 <-- killing process id: 2255 for user: backup0
Fri Nov 3 12:28:33 CET 2006 <-- Server shutdown for user: backup0 completed!
Fri Nov 3 12:30:01 CET 2006 --> free memory : 5154 kb
Fri Nov 3 12:30:01 CET 2006 --> free swap : 248832 kb
Fri Nov 3 12:30:01 CET 2006 --> tun0 statistic: RX bytes:2653208 (2.5 MiB) TX bytes:123763582 (118.0 MiB)
Fri Nov 3 12:30:01 CET 2006 --> eth0 statistic: RX bytes:732883585 (698.9 MiB) TX bytes:170591978 (162.6 MiB)
The server is gentoo on AMD with 1024kb RAM and only for my backups at my ISP.
I don't know what to do next....any Idea?
Many thanks in advanced
Joerg Schneider
More information about the openssh-unix-dev
mailing list