OpenVPN probléma

Fórumok

Üdv!

Működik egy két telephelyet összekötő rendszerünk, mindkét helyen ADSL van, egyik oldalon fix IP cimmel, a másikon dinamikussal. Mindkét oldalon egy Debian Linuxos gép engedi ki a netre a helyi hálózatot, a fix IP cimes telephelyen fut egy OpenVPN szerver, a dinamikus IP cimes telephelyen pedig egy OpenVPN kliens is a gépen. Tökéletesen működik a rendszer, egy hálózatnak látszik a két hálózat, de amikor a dinamikus IP cimes telephelyen a T-Com 24 óránként megbontja a vonalat, akkor az OpenVPN kapcsolat szétszakad és nem indul újra magától. A net az megy szépen mindkét helyen, de a két háló nem látja egymást. Csak akkor jön össze újra a kapcsolat, ha CTRL+ALT+DEL nyomásával a dinamikus IP cimes gépet újrainditom.
Legyen szives segitsen valaki, hogy milyen beállitásokat kellene megnézni, ami segithet a dolgon.
Az OpenVPN-t nem én telepitettem, csak felhasználói szintű Linux ismeretekkel rendelkezem.
Ha más megoldás nincs, akkor az is jó, ha valaki megmondaná, hogy hogyan kell az OpenVPN klienst úgy újrainditani, hogy a netkapcsolat a gépeken ne szakadjon meg.

előre is köszi a segitséget

bogumil

Hozzászólások

Gondolom, hogy a fix és a dinamikus IP című gépek különböző típusú ADSL előfizetéssel bírnak. A T-com szándékosan erőlteti rá a kuncsaftokra a drágább fix IP címes megoldást. Szerintem a legegyszerűbb dolog hogy a dinamikus IP című gépet üresjárati időben (éjszaka) autómatikusan újra kell indítani.

ELaci

Üdv!

Amikor éjszaka történik az IP cim váltás, akkor a kollégák reggel újrainditással kezdenek,
és akkor egész nap szépen üzemel a háló. Ezzel nincs is gond, csak akkor van a probléma, amikor napközben munka közben történik a váltás, mert ekkor az összes usernek ki kell lépni a munkájából és
csak ezután tudják a linuxos gépen újrainditani. Ez sok időt elvesz a munkájukból.
Ezért felelne meg az a megoldás is, hogy ha csak a VPN klienst inditanánk újra, a netet nem lőnénk ki a userek alól.

bogumil

jaj ne bénázzatok már!

a netet se kell újraindítani, ha pppd configjában megadjátok a "persistent" opciót, és akkor vissza fog csatlakozni magától. Érdemes még a "maxfail 0"-t is megadni, mert ekkor hosszabb dsl kimaradáskor se fogja feladni a próbálkozást.

fixip-s openvpn szerverre ezeket az opciókat érdemes megadni:

ping 15
ping-restart 60
ping-timer-rem
persist-tun
persist-key

dynip-sen ezt:

ping 15
persist-tun
ping-restart 60
persist-key

napközbeni dsl rekonnektre meg javaslom egy cron entryt írni, hogy mondjuk minden hajnali kettőkor csatlakozzon újra a netre a gép, és akkor nem nap közben fogja érni a meglepetés a népet.

hozzáteszem még, hogy az openvpnen keresztül létesített tcp sessionok az újracsatlakozás során sem szakadnak meg, még akkor sem ha a dynip-es gép címe megváltozik.

openvpn királyság :D

# ps ax | grep -c openvpn
27

log, log, log!

grep ovpn /var/log/syslog es valaszd ki az idopontot amikor problema van. Kuldd el a konfigodat is!

asd

Workaroundként egy script, ami IP-cím váltáskor egyszerűen újra indítja az OpenVPN-t is. Van egy szkriptem, ami az időnkénti megmagyarázhatatlan "adsl csuklásokat" hivatott kivédeni. A /etc/ppp/ip-down.d/ könyvárba érdemes másolni 'adsl_check' néven. Beszúrtam egy sort, ami a újraindítja az OpenVPN-t is. Próbáld ki, hátha segít. Üdv, Péter

---------------------------
#!/bin/bash

# ADSL kapcsolatot helyreallito GNU/GPL szkript 2.1
# Abraham Peter
# 1.0 2003 szeptember 17.
# 2.0 2006 januar 11. ujrairva
# 2.1 2006 februar 14. ujrairva, tobbszori probalkozas

RUNLEVEL=$(/sbin/runlevel|cut -d\ -f2)
pidfile="/var/run/adsl_check.pid"
logfile="/var/log/adsl_check.log"
iface="ppp0"
korlat=29
szam=0

if [ ! $RUNLEVEL -eq 2 ] || [ -e $pidfile ]; then
exit 0
fi

echo $$ > $pidfile

function kapcs_javit {
/etc/init.d/networking stop
sleep 10
for i in $(/bin/pidof pppd); do
kill -TERM $i;
done
/etc/init.d/networking start
echo $(date)" "$szam >> $logfile
}

function ip_check {
aind=0
if [ ! -z $1 ]; then
if [ $(echo $1|awk -F. '{print NF}') -eq 4 ]; then
for tag in $(echo $1|awk -F. '{print $1,
$2, $3, $4}'); do
if [ $(echo $tag|grep -c -s [[:digit:]]) -eq 1 ] && [ $tag -ge 0 ] && [ $tag -le 255 ]; then
aind=$(($aind+1))
else
break
fi
done
fi
fi
if [ $aind -eq 4 ]; then
ivissza=1
else
ivissza=0
fi
return $ivissza
}

function ppp_check {
vissza=$(ifconfig| grep -c -s $iface)
if [ $vissza -eq 1 ]; then
ip_check $(ifconfig $iface|grep "inet addr:"|cut -d: -f2|cut -d\ -f1|sed -s 's/\ //')
vissza=$?
fi
return $vissza
}

while [ $szam -le $korlat ]; do
szam=$(($szam+1))
kapcs_javit
sleep 30
ppp_check
ered=$?
if [ $ered -eq 1 ]; then
# Ez itt az OpenVPN helye :-)
/etc/init.d/openvpn restart
break
fi
done

rm -fr $pidfile

Sziasztok!

Köszi a sok gyors választ, de annyit tennék még hozzá,
hogy az internetkapcsolat nem szakad meg egyik gépen sem, az tök folyamatos,
ahhoz nem kell ujrainditani semmit. csak a VPN kapcsolat szakad szét IP váltáskor.
A VPN először ment szépen több hétig, csak néhány hete van a szétszakadásos jelenség.
A hálózatban annyi változás történt csak azóta, hogy nem 3, hanem 5 gép megy róla, nagyobb
lehet talán az adatforgalom. ennyi.

##############################################
# Sample client-side OpenVPN 2.0 config file #
# for connecting to multi-client server. #
# #
# This configuration can be used by multiple #
# clients, however each client should have #
# its own cert and key files. #
# #
# On Windows, you might want to rename this #
# file so it has a .ovpn extension #
##############################################

# Specify that we are a client and that we
# will be pulling certain config file directives
# from the server.
client

# Use the same setting as you are using on
# the server.
# On most systems, the VPN will not function
# unless you partially or fully disable
# the firewall for the TUN/TAP interface.
dev tap0
;dev tun

# Windows needs the TAP-Win32 adapter name
# from the Network Connections panel
# if you have more than one. On XP SP2,
# you may need to disable the firewall
# for the TAP adapter.
;dev-node MyTap

# Are we connecting to a TCP or
# UDP server? Use the same setting as
# on the server.
;proto tcp
proto udp

# The hostname/IP and port of the server.
# You can have multiple remote entries
# to load balance between the servers.
remote 81.183.216.227 1194
;remote my-server-2 1194

# Choose a random host from the remote
# list for load-balancing. Otherwise
# try hosts in the order specified.
;remote-random

# Keep trying indefinitely to resolve the
# host name of the OpenVPN server. Very useful
# on machines which are not permanently connected
# to the internet such as laptops.
resolv-retry infinite

# Most clients don't need to bind to
# a specific local port number.
nobind

# Downgrade privileges after initialization (non-Windows only)
user nobody
group nogroup

# Try to preserve some state across restarts.
persist-key
persist-tun

# If you are connecting through an
# HTTP proxy to reach the actual OpenVPN
# server, put the proxy server/IP and
# port number here. See the man page
# if your proxy server requires
# authentication.
;http-proxy-retry # retry on connection failures
;http-proxy [proxy server] [proxy port #]

# Wireless networks often produce a lot
# of duplicate packets. Set this flag
# to silence duplicate packet warnings.
;mute-replay-warnings

# SSL/TLS parms.
# See the server config file for more
# description. It's best to use
# a separate .crt/.key file pair
# for each client. A single ca
# file can be used for all clients.
ca ca.crt
cert VPNkliens1.crt
key VPNkliens1.key

# Verify server certificate by checking
# that the certicate has the nsCertType
# field set to "server". This is an
# important precaution to protect against
# a potential attack discussed here:
# http://openvpn.net/howto.html#mitm
#
# To use this feature, you will need to generate
# your server certificates with the nsCertType
# field set to "server". The build-key-server
# script in the easy-rsa folder will do this.
ns-cert-type server

# If a tls-auth key is used on the server
# then every client must also have the key.
;tls-auth ta.key 1

# Select a cryptographic cipher.
# If the cipher option is used on the server
# then you must also specify it here.
;cipher x

# Enable compression on the VPN link.
# Don't enable this unless it is also
# enabled in the server config file.
comp-lzo

# Set log file verbosity.
verb 3

# Silence repeating messages
;mute 20

man openvpn
/etc/init.d/openvpn reload
?

ha már mant emlegeted, akkor olvasd el Te is:

SIGUSR1

[...]

This signal, when combined with --persist-remote-ip, may be sent
when  the  underlying parameters of the host's network interface
change such as when the host is a DHCP client and is assigned  a
new IP address.  See --ipchange above for more information.