[OpenVPN] Crasht/reconnect elk uur

Pagina: 1
Acties:
  • 254 views sinds 30-01-2008
  • Reageer

  • Atomstar
  • Registratie: Juli 2002
  • Laatst online: 06-03 21:43
Ik weet niet of dit het goede forum is, zo niet, dan hoor ik dat graag.

Ik heb sinds kort een OpenVPN server draaien op een Debian stable server die bij mij thuis staat. Deze staat 24/7 aan en is direct verbonden met internet. Als ik dan onderweg ben maak ik hiermee verbinding vanaf mijn MacBook met het programma TunnelBlick (een openvpn gui voor OS X).

Alles werkt prima alleen het valt me op dat stipt elk uur de verbinding met IRC (Colloquy) wegvalt. Al mijn andere verbindingen (lijken te) blijven werken, maar IRC valt netjes elk uur weg. Ik heb hier niet eerder last van gehad, en het gebeurt ook niet als ik geen OpenVPN tunnel gebruik, dus volgens mij moet het hier aan liggen. Als ik in de logs van mijn MacBook kijk dan word ik ook niet veel wijzer:

/var/log/system.log op mijn MacBook:
code:
1
2
3
4
5
Jul 27 10:30:32 Tims-Computer configd[38]: posting notification com.apple.system.config.network_change
Jul 27 10:30:32 Tims-Computer openvpn[12916]: MANAGEMENT: TCP send error: Broken pipe
Jul 27 10:30:32 Tims-Computer openvpn[12916]: MANAGEMENT: Client disconnected
Jul 27 10:30:32 Tims-Computer openvpn[12916]: TCP/UDP: Closing socket
...

En hierna valt de tunnel weg, de routes worden gedelete, openvpn wordt afgesloten en opnieuw opgestart en de tunnel herstelt zichzelf.

Het lijkt geen probleem van de server te zijn, want daar vind ik niks verdachts in de logs:
code:
1
2
3
4
5
6
7
8
9
Jul 27 09:30:56 neptune ovpn-openvpn[404]: macbook.domein.nl/82.xxx.xxx.xxx:65391 NOTE: --mute triggered...
Jul 27 10:30:41 neptune ovpn-openvpn[404]: 66 variation(s) on previous 20 message(s) suppressed by --mute
Jul 27 10:30:41 neptune ovpn-openvpn[404]: read UDPv4 [ECONNREFUSED]: Connection refused (code=111)
Jul 27 10:30:41 neptune last message repeated 19 times
Jul 27 10:30:41 neptune ovpn-openvpn[404]: NOTE: --mute triggered...
Jul 27 10:30:42 neptune ovpn-openvpn[404]: 26 variation(s) on previous 20 message(s) suppressed by --mute
Jul 27 10:30:42 neptune ovpn-openvpn[404]: MULTI: multi_create_instance called
Jul 27 10:30:42 neptune ovpn-openvpn[404]: 82.xxx.xxx.xxx:65409 Re-using SSL/TLS context
Jul 27 10:30:42 neptune ovpn-openvpn[404]: 82.xxx.xxx.xxx:65409 LZO compression initialized

Er is een tijdje geen verbinding mogelijk (connection refused) en daarna wordt de verbinding opnieuw opgezet. N.B. de klok op mijn MacBook loopt ongeveer 10 seconde voor op de klok van mijn server.

Op de een of andere manier valt de verbinding dus gewoon weg, en tegelijkertijd wordt er wat aan com.apple.system.config.network_change verandert. Zoeken op deze string levert alleen op dat dit een soort hook is om dingen te runnen als er iets met je netwerk gebeurt.

Ik heb gekeken naar de OpenVPN configuratie en het enige wat daar elk uur gebeurt is een rekeying van TLS. Die heb ik nu om elke 10 uur gezet, maar het probleem blijft. Ik weet niet wat het is en waarom het precies elk uur gebeurt. De reden dat alleen IRC er last van heeft ligt misschien aan het soort verbinding, en misschien mis ik een PING/PONG event oid. MSN heeft er dan weer geen last van...

Hebben jullie enig idee wat dit kan zijn en waarom het precies elk uur gebeurt? Alvast bedankt! :)

[ Voor 0% gewijzigd door Atomstar op 27-07-2007 12:03 . Reden: IP adressen verwijderd ]


Verwijderd

Vraagje deel jij dhcp uit over openvpn? Zo ja, hoelang is de leasetime? is die 3600, dan is dat een uur en zou het dit kunnen verklaren, btw haal ff dat ip weg uit je log ;)

  • Atomstar
  • Registratie: Juli 2002
  • Laatst online: 06-03 21:43
OpenVPN zit in routing mode, en deelt wel IP's uit op de 10.10.0/24 range. Ik weet echter niet wat de leastijd hiervan is. Verder krijg ik ook IP's via DHCP op mijn 'fysieke' netwerk, dit gaat (op dit moment) via een speedtouch 510. Ik kan hier echter niet vinden wat de leastijd is.

Als ik netstat -rn uitvoer op mijn macbook krijg ik (ongeveer) het volgende:

code:
1
2
3
4
5
6
7
8
9
10
11
12
Internet:
Destination        Gateway            Flags    Refs      Use  Netif Expire
0/1                10.10.0.5          UGSc        9        0   tun0
default            10.0.0.138         UGSc        0      152    en1
10/24              link#5             UCS         1        0    en1
10.0.0.117         127.0.0.1          UHS         0        0    lo0
10.0.0.138         0:e:50:2e:d8:3f    UHLW        4      235    en1   1178
10.10/24           10.10.0.5          UGSc        0        0   tun0
10.10.0.5          10.10.0.6          UH         20        0   tun0
128.0/1            10.10.0.5          UGSc       10       20   tun0
145.xxx.xxx.xxx/32  10.0.0.138         UGSc        1        0    en1
169.254            link#5             UCS         0        0    en1


tun0 is de OpenVPN interface, en1 is de fysieke interface (Airport Extreme, Wlan dus). Zoals te zien is is mijn lokale ip (10.0.0.117) een dhcp adres die over 1178 seconden expired. 10.10.0.5, mijn tunnel adres, heeft geen leastime dus ben ik geneigd te denken dat dit min of meer statisch is (totdat de tunnel verbroken wordt).

Verder lijkt de expire tijd niet overeen te komen met de tijd waarop mijn verbinding kapot gaat. Ik kan ook in mijn log files niet vinden wanneer mijn dhcp lease vernieuwd wordt. Op de speedtouch kon ik dit ook niet zo een twee drie vinden (die logt alleen upnp zut).

Edit: het is niet de lokale 10.0.0.0/24 lease die voor de disconnect zorgt. Ik had nog ~20 minuten over en ik disconnecte ondanks dat weer.

[ Voor 3% gewijzigd door Atomstar op 27-07-2007 12:32 ]


  • Atomstar
  • Registratie: Juli 2002
  • Laatst online: 06-03 21:43
Subtiele kick :P Heeft niemand een idee wat dit kan zijn? De tunnel werkt op zich prima, alleen elk uur en disconnect is een beetje vervelend. Kan een modje deze thread anders naar NT moven?

  • Daedalus
  • Registratie: Mei 2002
  • Niet online

Daedalus

Moderator Apple Talk

Keep tryin'

Dat is idd wel een goed plan :Y)
» NT

“You know what I've noticed Hobbes? Things don't bug you if you don't think about them. So from now on, I simply won't think about anything I don't like, and I'll be happy all the time!” | 宇多田ヒカル \o/


  • pinockio
  • Registratie: Juli 2001
  • Laatst online: 29-01 15:40
Wegvallende verbindingen (debian server, windows clients) met OpenVPN heb ik alleen wanneer twee clients dezelfde key gebruiken en proberen te connecten. Dan valt ombeurten op beide elke paar minuten de verbinding weg.

Zit hier wat bij: http://openvpn.net/archiv...ers/2006-12/msg00112.html?

Disclaimer: P. aanvaardt geen aansprakelijkheid op grond van dit bericht.


  • Atomstar
  • Registratie: Juli 2002
  • Laatst online: 06-03 21:43
Het gaat om een debian server (stable) en os x (10.4.10) als client, en dit is tevens de enige client, dus er zijn niet meerdere clients met dezelfde key.

Verder dacht ik ook dat het om renegotiation ging, maar dat heb ik in beide configuratie files dus op 10 uur gezet (reneg-sec, zie http://openvpn.net/man.html), wat blijkbaar het probleem niet oplost. Bovendien begint de logfile met een broken TCP pipe, niet dat er en renegotiation is...

  • Erik Jan
  • Registratie: Juni 1999
  • Niet online

Erik Jan

Langzaam en zeker

Die broken pipe wil zeggen dat jouw applicatie (ovpn dus), na een tijdje idle te hebben gestaan, iets probeert te schrijven naar een TCP verbinding, maar van het OS te horen krijgt dat de verbinding niet meer bestaat. Dit kan meerdere oorzaken hebben, o.a.:
  • DHCP leasetime issues zoals hierboven genoemd, aan server en client kant
  • Jouw OS sluit de verbinding af omdat er een tijd lang geen data over is verstuurd, probeer hiervoor de "--keepalive" optie van OpenVPN (zie man)
  • Dingen als bittorrent willen ook nog wel eens dusdanig veel TCP connecties opzetten, dat de NAT tables van huis-tuin-en-keuken routers vollopen. Zet deze apps dus uit.
De kortste klap is om te tunnelen over UDP, dat is sneller, verbindingloos en maar een minimale aanpassing aan de OpenVPN configuratie. Dat heeft tevens geen last van de fundamentele bezwaren tegen tcp-over-tcp tunneling.

This can no longer be ignored.


  • Atomstar
  • Registratie: Juli 2002
  • Laatst online: 06-03 21:43
Op het moment gebruik ik al UDP als tunnel protocol (standaard in de voorbeeld configs ook). Keepalive staat ook aan, als 'keepalive 10 120', dus een disconnect na 120s geen ping terug te hebben gekregen. Verder gebruik ik geen bittorrent, en zou dat ook niet verklaren waarom het vaak precies om het uur gebeurt.

Het enige wat dan overblijft is dat de dhcp lease verloopt, alleen dan vraag ik me af waarom de verbinding wegvalt, zonder openvpn heb ik hier geen last van. Het lijkt er in ieder geval niet op dat dit op het client-netwerk gebeurt, daar had ik nog leasetijd over toen ik een disconnect kreeg (aldus netstat -rn). Dan zou het dus de dhcp lease van de server kunnen zijn, of de dhcp lease over de vpn tunnel, waarbij de laatste het waarschijnlijkst lijkt. Ik zal eens kijken of het dan toch daar aan ligt...

Edit:
Ter verduidelijking, de server is direct verbonden met internet (krijgt een IP via DHCP), zonder NAT of modem, en de client is verbonden via een router/modem (PPPoA), dus via NAT.

[ Voor 10% gewijzigd door Atomstar op 30-07-2007 00:34 ]


  • Atomstar
  • Registratie: Juli 2002
  • Laatst online: 06-03 21:43
[edit] NM, in de PSK situatie werkte de push opties van de server niet omdat de client niet als client ingesteld stond (en dus geen configuratie accepteerde van de server). Morgen even proberen of dit inderdaad de reden was dat het wel bleef werken...

Update:

Het disconnect/reconnect probleem heb ik niet met de volgende (eenvoudigere?) configuratie met pre shared keys (nameservers zijn vervangen door NS#):

psk server:
code:
1
2
3
4
5
6
7
8
9
10
11
dev tun
ifconfig 10.10.0.1 10.10.0.2
secret keys/psk.key
user nobody
group nogroup
daemon
push "redirect-gateway def1"
push "dhcp-option DNS NS1"
push "dhcp-option DNS NS2"
push "dhcp-option DNS NS3"
push "dhcp-option DOMAIN domein.nl"


psk client:
code:
1
2
3
4
remote openvpnserver.adres.com
dev tun
ifconfig 10.10.0.2 10.10.0.1
secret keys/psk.key


En met certificates heb ik dus wel reconnects:

CA server:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
port 1194
proto udp

dev tun

ca keys/ca.crt
cert keys/neptune.crt
key keys/neptune.key  # This file should be kept secret

askpass keys/password

dh keys/dh2048.pem
server 10.10.0.0 255.255.255.0

ifconfig-pool-persist ipp.txt

push "redirect-gateway def1"
push "dhcp-option DNS NS1"
push "dhcp-option DNS NS2"
push "dhcp-option DNS NS3"
push "dhcp-option DOMAIN domein.nl"

client-to-client

keepalive 10 120

tls-auth keys/ta.key 0 # This file is secret

comp-lzo

max-clients 10

user nobody
group nogroup
daemon

persist-key
persist-tun

status openvpn-status.log

verb 6
mute 20
reneg-sec 36000


CA client:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
client

dev tun
proto udp

remote openvpnserver.adres.com 1194

resolv-retry infinite
nobind
user nobody
group nogroup
daemon

persist-key
persist-tun
mute-replay-warnings

ca keys/ca.crt
cert keys/macbook.crt
key keys/macbook.key

askpass 
ns-cert-type server
tls-auth keys/ta.key 1

comp-lzo
verb 5
mute 20
reneg-sec 36000


Heeft iemand enig idee waar het probleem zit? De DHCP lease van de server op het fysieke adres kan het ook niet zijn, deze krijgt om de 45 minuten een nieuw IP, dus niet precies om het uur:

code:
1
2
3
4
5
Jul 31 18:13:40 neptune dhclient: bound to 145.97.195.134 -- renewal in 3408 seconds.
Jul 31 19:10:28 neptune dhclient: bound to 145.97.195.134 -- renewal in 3520 seconds.
Jul 31 20:09:08 neptune dhclient: bound to 145.97.195.134 -- renewal in 3235 seconds.
Jul 31 21:03:03 neptune dhclient: bound to 145.97.195.134 -- renewal in 3441 seconds.
Jul 31 22:00:24 neptune dhclient: bound to 145.97.195.134 -- renewal in 3301 seconds.


Het enige wat ik kan bedenken wat het kan zijn is dus de DHCP lease over de vpn tunnel zelf, alleen heb ik geen idee hoe daar de leasetijd aangepast kan worden of hoe het transparanter gemaakt kan worden. De man page van openvpn biedt hierover ook geen uitsluitsel (althans, ik kan het niet vinden).

Iemand een idee?

[ Voor 4% gewijzigd door Atomstar op 31-07-2007 23:43 ]

Pagina: 1