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, > _______________________________________________ RLUG mailing list RLUG@lists.lug.ro http://lists.lug.ro/mailman/listinfo/rlug