Re: OpenVPN + iproute2

Catalin Bucur <[email protected]>
Newsgroups gmane.org.user-groups.rlug.general
Message-ID <[email protected]>
Cu ajutorul colegului Serafin Rusu care mi-a dat o idee am gasit o 
solutie. Nu prea am rezolvat, mai degraba am ocolit problema pentru care 
nu gasesc in continuare explicatie.
Rezolvarea a fost sa inversez rolurile capetelor de tunel 
(client-server). Astfel, specificand in ccd-ul aferent clientului prin 
iroute ca exista o clasa 172.24.100.0/24 in "spatele" GW-ului, a reusit 
si openvpn-ul sa inteleaga ce vreau si sa ruteze pachetele.

Probabil ca "iroute" pe client e mult mai important pentru creierul 
openvpn-ului decat "push route" pe server (bug sau feature).

--
Catalin Bucur


On 25/09/2017 17:05, Catalin Bucur wrote:
> Salutare,
> 
> 
> Intr-un mediu virtual de test am 5 VM-uri cu CentOS:
>     P1, P2, P3 - provideri de net
>     GW - configurat cu 3 tabele de rutare iproute2
>     HOST - in "spatele" GW-ului, incerc sa-l rutez prin P3
> am configurat un policy based routing relativ basic. Sa zicem ca am 2
> provideri de net P1 si P2 la care am configurat fail-over si un al
> treilea "provider" P3. Intre P3 si GW e configurat un vpn (OpenVPN) prin
> care vreau sa trimit traficul de la un anumit ip, indiferent daca P1 sau
> P2 sunt alive.
> 
> Chestiunea cu fail-over intre P1 si P2 e rezolvata, durerea intervine la
> rutarea traficului prin P3. Dintr-un anumit motiv pentru care nu gasesc
> inca explicatie, source based routing-ul functioneaza (pachetele sunt
> trimise prin vpn pe GW), dar nu ajung in celelalt capat (P3). Daca in
> loc de OpenVPN folosesc un tunel IPIP problema e rezolvata.
> 
> Incerc sa dau ceva detalii fara sa creez un cearsaf, mai pot reveni cu
> suplimentari daca e cazul.
> 
> 172.24.100.254 e HOST-ul pe care vreau sa-l rutez prin vpn
> 10.13.0.2 e GW-ul pe care e configurat iproute2
> 10.13.0.1 e P3
> 10.111.0.0/24 e clasa de vpn intre GW si P3 (10.111.0.4 e pe P3)
> 
> ==========  CONFIG OpenVPN Server (GW) ==========
> port 1194
> proto udp
> dev tun
> ca keys/ca.crt
> cert keys/server.crt
> key keys/server.key  # This file should be kept secret
> dh keys/dh2048.pem
> topology subnet
> server 10.111.0.0 255.255.255.0
> ifconfig-pool-persist ipp.txt
> push "route 172.24.100.0 255.255.255.0"
> keepalive 10 120
> tls-auth keys/ta.key 0 # This file is secret
> cipher AES-256-CBC
> persist-key
> persist-tun
> status openvpn-status.log
> log-append  /var/log/openvpn.log
> verb 3
> ==================================================
> 
> ==========  CONFIG OpenVPN Client (P3)  ==========
> client
> dev tun
> proto udp
> remote 10.13.0.2 1194
> resolv-retry infinite
> nobind
> persist-key
> persist-tun
> ca client/ca.crt
> cert client/client.crt
> key client/client.key
> remote-cert-tls server
> tls-auth client/ta.key 1
> cipher AES-256-CBC
> verb 3
> ==================================================
> 
> Legat de iproute2 eu zic ca e totul functional, asa cum vad si in rute:
> 
> [root@IPR2-GW ~]# ip route get to 8.8.8.8 from 172.24.100.254 iif eth3
> 8.8.8.8 from 172.24.100.254 via 10.111.0.4 dev tun0
>       cache  iif *
> 
> Dar nu vad niciun pachet venind dinspre GW catre interfata de vpn de pe P3.
> Folosind un tunel IPIP simplu cu aceleasi ip-uri, interfete etc:
> 
> Pe GW:
> ip tunnel add tun0 mode ipip remote 10.13.0.1 local 10.13.0.2
> ip link set tun0 up
> ip addr add 10.111.0.1/24 dev tun0
> 
> Pe P3:
> ip tunnel add tun0 mode ipip remote 10.13.0.2 local 10.13.0.1
> ip link set tun0 up
> ip addr add 10.111.0.4/24 dev tun0
> 
> totul functioneaza foarte bine, vad pachetele pe interfata de tunneling
> de pe P3, mai departe pot face ce vreau cu traficul respectiv.
> 
> 
> Configuratia de OpenVPN e simpla/clasica, nu-mi dau seama ce vrea de la
> mine ca sa nu imi blocheze acel trafic.
> Daca aveti idei va rog sa mi le impartasiti, eu m-am saturat de facut
> tot felul de teste :-)
> 
> 
> Mersi,
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.