Intermittent TCP connect issues when using tinc 1.0.23 and IPv6

tomp at Tomp.co.uk tomp at Tomp.co.uk
Thu Nov 28 12:49:50 CET 2013


Hi,

I am using tinc 1.0.23 in router mode and am having trouble with 
intermittent TCP connect timeouts that do not occur when routing the TCP 
over the internet directly.

I am using a pure IPv6 setup (i.e direct IPv6 connections, and tunneled 
IPv6 subnets).

My configs are as follows:

Site 1:
-----------------------

tinc.conf:

Name = rsukmhb
AddressFamily = ipv6
BindToAddress = 2001:1b40:5000:19::2
ConnectTo = rps
IffOneQueue = yes

tinc-up:

#!/bin/sh
logger -t tinc Bringing up interface $INTERFACE
ip -6 link set "$INTERFACE" up
ip -6 link set "$INTERFACE" txqueuelen 10
ip -6 addr add fdd1:c52a:3c24:3384::2/64 dev "$INTERFACE"

subnet-up:

#!/bin/sh
[ -z "$NAME" ] && exit 0
[ "$NAME" = "$NODE" ] && exit 0
logger -t tinc Adding route to $SUBNET for $NODE on $NAME
ip -6 route replace $SUBNET dev $INTERFACE

Site 2:
-----------------------

tinc.conf:

Name = rps
AddressFamily = ipv6
BindToAddress = 2001:1b40:5000:9::2
ConnectTo = rsukmhb
IffOneQueue = yes

tinc-up:

#!/bin/sh
logger -t tinc Bringing up interface $INTERFACE
ip -6 link set "$INTERFACE" up
ip -6 link set "$INTERFACE" txqueuelen 10
ip -6 addr add fdd1:c52a:3c24:3384::1/64 dev "$INTERFACE

subnet-up:

#!/bin/sh
[ -z "$NAME" ] && exit 0
[ "$NAME" = "$NODE" ] && exit 0
logger -t tinc Adding route to $SUBNET for $NODE on $NAME
ip -6 route replace $SUBNET dev $INTERFACE

The VPN tun interfaces use private IPv6 IP addresses in the 
fdd1:c52a:3c24:3384::/64 range.

I am then using the host entries at each site to advertise an IPv6 /64 
subnet used internally (although still publically routable address 
subnet) so that it is routed over the VPN tunnel to the other side.


This is working pretty well and I am getting around 80MBits/sec 
throughput.

However we have an cron process that runs every 1 minute and makes 
several HTTP requests over the VPN every 10s.

About 10-12 times a day we are getting these errors after the specified 
5 second connect timeout set in the app.

Request failed: connect() timed out!


If we disable the VPN and just route the requests over the internet (as 
I said they are publically routable addresses) then we do not see these 
errors, suggesting this is not an application problem.

We are also running Cacti and Nagios over the VPN for monitoring the 
remote site.

The traffic level is low, averaging about 20 kbps, but quiet bursty, as 
every few minutes nagios/cacti runs, and the rest of the time the tunnel 
is quiet except for this cron app that makes a very small HTTP request 
every 10s.


Do you know what I could be looking at to fix this?

I have found these posts that suggest a similar connect() timeout 
issue:

Page 12 of this doc: 
http://tinc-vpn.org/presentations/fosdem-2011/ec2_vpn_fosdem2011.pdf

http://thr3ads.net/tinc-devel/2010/10/1964008-Tweaks-for-high-bandwidth-tinc

I have tried disabled replay protection, setting IffOneQueue, lowering 
and increasing the txqueuelen, setting priority of the tinc process.

None of these settings have improved things though.

Any thoughts would be much appreciated.

Thanks
Tom









More information about the tinc mailing list