Indice del forum www.zeroshell.net
Distribuzione Linux ZeroShell
 
 FAQFAQ   CercaCerca  GruppiGruppi   RegistratiRegistrati 
 ProfiloProfilo  Log inLog in   Messaggi privatiMessaggi privati 

VPN LAN to LAN BUG (?) rotte statiche upgrade 2.0RC2->RC3

 
Nuovo argomento   Rispondi    Indice del forum -> VPN
Precedente :: Successivo  
Autore Messaggio
ziotibia81



Registrato: 14/10/09 13:08
Messaggi: 89

MessaggioInviato: Gio Nov 28, 2013 9:32 am    Oggetto: VPN LAN to LAN BUG (?) rotte statiche upgrade 2.0RC2->RC3 Rispondi citando

Buongiorno a tutti,
ho recentemente fatto l'upgrade da ZS 2.0 RC2 a ZS2.0 RC3 e ho riscontrato un problema sulle rotte statiche.

Premetto che ho due sedi interconnesse con ZS con VPN lan to lan da circa due anni senza alcun problema.

la sede A ha calasse ip 192.168.1.x mentre la sede B 192.168.2.x

la sede A ha questa route statica dove 192.168.249.253 è l'ip dell'interfaccia VPN:

192.168.2.0 192.168.249.253 255.255.255.0 UG 1 0 0 VPN00

mentre la sede B ha la route "al contrario":

192.168.1.0 192.168.249.254 255.255.255.0 UG 1 0 0 VPN00

Ha funzionato tutto perfettamente fino a quando non ho aggiornato la sede A ZS 2 RC3.

Adesso, se per qualche motivo cade la VPN (es in sede B spesso alle 3 il provider toglie la connessione per qualche minuto), vengono cancellate le rotte statiche. Al ripristino della VPN le rotte statiche non vengono ripristinate.

Quando vado in configurazione "Static Routes" trovo la rotta configurata ma in stato "down". A questo punto premo sul pulsante per modificarla, confermo senza modificare nulla e la rotta torna "up" e tutto riprende a funzionare.

Questo accade SOLO su ZS con la RC3, sullo ZS con la RC2 non c'è questo problema. Quando la VPN torna attiva tornano attive anche le relative rotte statiche.

x Fulvio:

E' stato cambiato qualcosa per cui va configurato qualcos'altro oppure è un bug?
Top
Profilo Invia messaggio privato
ziotibia81



Registrato: 14/10/09 13:08
Messaggi: 89

MessaggioInviato: Gio Nov 28, 2013 5:01 pm    Oggetto: Rispondi citando

Ho fatto qualche altra prova:

Se riavvio ZS nel sito A (RC3) dopo il riavvio le rotte statiche tornano up.
Se riavvio ZS nel sito B (RC2) le rotte vanno down nel momento in cui cade la connessione, poi quando torna la connessione le rotte NON tornano up.
Se disabilito e riabilito la VPN nel sito A le rotte tornano UP nel momento in cui si ristabilisce la connessione VPN.

Sembra quindi che nella RC3 vi sia un comportamento diverso di openvpn quando stabilisce la connessione. Sembrerebbe quasi che lo script che aggiorna le rotte non funzioni correttamente nel caso di una riconnessione.
Top
Profilo Invia messaggio privato
ziotibia81



Registrato: 14/10/09 13:08
Messaggi: 89

MessaggioInviato: Gio Nov 28, 2013 6:50 pm    Oggetto: Rispondi citando

Proseguo con il debug....

ad openvpn viene aggiunto il parametro --down /root/kerbynet.cgi/scripts/vpn_mii

Questo significa che quendo l'interfaccia VPN va down viene eseguito lo script vpn_mii

Lo script vpn_mii fa alcuni controlli, poi crea in /tmp un file chiamato VPN_MII_$INTERFACE (nel mio caso $INTERFACE è VPN00) contenente uno script e lo esegue in background.

lo script continua a controllare se openvpn è un processo in esecuzione.
Se non è più tra i processi in esecuzione cancella il file dello script ed esce.
Se è in esecuzione controlla se lo stato VPN è UP.
Se è UP attiva l'iterfaccia, le rotte, poi cancella lo script ed esce.
Se invece è down aspetta due secondi e torna al loop che controlla se openvpn è in esecuzione.

Finqui tutto perfetto.
Difatti se nel sito B disabilito la vpn e poi la riabilito e sul sito A lancio a mano "vpn_mii VPN00" le rotte tornano a funzionare.

Ho provato a motificare lo script vpn_mii sul sito A (con RC3) in modo che lo script non venga cancellato.

Sul sito B ho disabilitato e riabilitato la VPN. Sul sito A e' comparso il file VPN_MII_VPN00. L'ho aperto per controlare che succede e.......

Il file è vuoto!!!

Per creare il file viene fatto un echo e rediretto lo standard output nel file.
Per qualche motivo, che non ho capito, lo standar output va a finire da qualche altra parte.

Confrontando il file vpn_mii tra le due versioni noto solo che nella RC3 ifconfig viene lanciato con il percorso completo, mentre nella RC2 no.
Top
Profilo Invia messaggio privato
ziotibia81



Registrato: 14/10/09 13:08
Messaggi: 89

MessaggioInviato: Gio Nov 28, 2013 7:07 pm    Oggetto: Rispondi citando

Sempre debug.....

ok, VPN_MII_ecc.ecc è un file di lock e va bene che sia vuoto.

il bug è che nella RC2 ifconfig non aveva il percorso e quindi non veniva invocato, quindi l'interfaccia non viene disattivata e le rotte non vengono cancellate.

Adesso il bug della RC2 è corretto in quanto nella RC3 l'interfaccia viene disattivata. E' il comando "routerconfig" che non fa quello che deve fare quando invocato dallo script.
Top
Profilo Invia messaggio privato
redfive



Registrato: 26/06/09 22:21
Messaggi: 767

MessaggioInviato: Gio Nov 28, 2013 7:13 pm    Oggetto: Rispondi citando

Ciao ziotibia81 , come soluzione"temporanea" ho scrabocchiato qualcosa , in attesa di una soluzione piu' elegante...comuque Fulvio ha detto che questo problema verrà fixato nella prossima release.
ciao
Top
Profilo Invia messaggio privato
ziotibia81



Registrato: 14/10/09 13:08
Messaggi: 89

MessaggioInviato: Gio Nov 28, 2013 10:02 pm    Oggetto: Rispondi citando

Ciao,

dopo provo, ma la soluzione dovrebbe essere molto semplice:

se vpn_mii viene lanciato dalla shell funziona, se viene lanciato da openvpn funziona tutto tranne ipconfig.
Perchè questo? Evidentemente perchè openvpn lancia lo script "in un'area" senza variabli d'ambiente, quindi senza $PATH o con una $PATH diversa dal normale.

Mettendo il percorso assoluto si ipconfig, il comando viene eseguito correttamente. Lo script routerconfig viene chiamato da vpn_mii che a sua volta viene chiamato da openvpn. Di conseguenza anche lui è senza $PATH o con una $PATH diversa. All'interno di routerconfig viene chiamato il comando ip un tot di volte. Anche qui ip è chiamato senza percorso assoluto, quindi non viene trovaro e non viene eseguito.

La pezza è mettere il percocorso assoluto di ip anche in routerconfig.

Qui adrebbe fatto un discorso di convenzione nel codice con Fulvio:

A) Inserire sempre i percorsi assoluti dei comandi
B) negli script quasi sempre si prendono delle variabili d'ambiente da kerbynet.conf. Inserendo $PATH in quel file poi non serve più usare il percorso assoluto nei vari script.
Top
Profilo Invia messaggio privato
Romolo



Registrato: 03/07/09 18:17
Messaggi: 32

MessaggioInviato: Ven Dic 06, 2013 5:13 pm    Oggetto: Rispondi citando

Una fix abbastanza semplice ma funzionante:
ho copiato /root/kerbynet.cgi/scripts/routerconfig in /Database/
ho editato lo script aggiungendo il full path dell'eseguibile ip
ovvero /usr/sbin/ip

dentro lo script di "post boot" ho aggiunto le seguenti righe:

rm -f /root/kerbynet.cgi/scripts/routerconfig
cp -f /Database/routerconfig /root/kerbynet.cgi/scripts/

Ora le route statiche stanno su...
Grazie a tutti per i suggerimenti
Top
Profilo Invia messaggio privato
Mostra prima i messaggi di:   
Nuovo argomento   Rispondi    Indice del forum -> VPN Tutti i fusi orari sono GMT + 1 ora
Pagina 1 di 1

 
Vai a:  
Non puoi inserire nuovi argomenti
Non puoi rispondere a nessun argomento
Non puoi modificare i tuoi messaggi
Non puoi cancellare i tuoi messaggi
Non puoi votare nei sondaggi


Powered by phpBB © 2001, 2005 phpBB Group
phpbb.it