Portál AbcLinuxu, 19. dubna 2024 10:31


Dotaz: vpn routování

3.12.2021 10:17 chinook | skóre: 28
vpn routování
Přečteno: 471×
Odpovědět | Admin
Zdravím, mám v serverovně server. Na něm rozhraní:

ens3 - připojeno do internetu IP 89.x.x.13

pak VPN

tun0 - sem se připojují klienti

tun2 - odsud jsem připojen k jinému ISP IP 10.20.40.24/22, problém je, že se tato IP furt mění a já routy měním ručně. Jde to nějak zautomatizovat, aby je openvpn měnilo samo?

To co chci, aby požadavky na ens3 a všechny služby co běží na serveru chodily na internet přes IP co je na ens3 a klienti co jsou připojeni zase na tun0 chodili na internet přes tun2

Mám to teď řešeno takto, nevím jestli to je správně:

-A POSTROUTING -o tun2 -j MASQUERADE

ip route show
default via 89.x.x.1 dev ens3
10.9.0.0/24 via 10.9.0.2 dev tun0
10.9.0.2 dev tun0 proto kernel scope link src 10.9.0.1
10.20.40.0/22 dev tun2 proto kernel scope link src 10.20.40.24
89.x.x.0/23 dev ens3 proto kernel scope link src 89.x.x.13

ip route list table vpn
default via 10.20.40.1 dev tun2
10.20.40.0/22 dev tun2 scope link src 10.20.40.24


V tomto je problem přidávám routy ručně a mění se mně furt ta IP
ip route add 10.20.40.0/22 dev tun2 src 10.20.40.24 table vpn
ip route add default via 10.20.40.1 dev tun2 table vpn
ip rule add from 10.9.0.1/24 table vpn


Mám tedy dva dotazy:

1) řeším to správně, že jsem přidal jen jednu vpn tabulku?

2) jak to zautomatizovat, aby při připojení na VPN se routy nastavili samy, dle IP jaké dostanou. Na VPN server kam se připojuji nemám přístup. Když to nechám na openvpn serveru, tak dá jeho routu na default a vše běží přes VPN
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

3.12.2021 12:45 X
Rozbalit Rozbalit vše Re: vpn routování
Odpovědět | | Sbalit | Link | Blokovat | Admin
Zkusil bych pouzit prepinac --route-noexec, ktery zrusi automaticke pridavani cest a zaroven predava promenne --route-up, kde si to muzes vyresit podle libosti. Napriklad dostatecne velkou maskou, ktera pokryje vsechny situace.
3.12.2021 12:50 chinook | skóre: 28
Rozbalit Rozbalit vše Re: vpn routování
Tohle jsem udělal proto to tam přidávám ručně po připojení.

3) problém na který jsem narazil je, že pokud se chci připojit z serveru na nějaký stroj v síti na TUN0, nevím proč, ale jdu tam přes TUN2. Což nepotřebuji a ani nechci. Jak to řešit? Nějak přes FWMARK?
3.12.2021 13:20 j
Rozbalit Rozbalit vše Re: vpn routování
Protoze to tak mas nastaveny, cemu se divis?
10.9.0.0/24 via 10.9.0.2 dev tun0
ip rule add from 10.9.0.1/24 table vpn
ip route add default via 10.20.40.1 dev tun2 table vpn
Tzn predpokladam, ze tun0 je v rozsahu 10.9 a ta routa je od nej. Pak mas pravidlo, ze vse co je z toho rozsahu ma jit do tabulky vpn. A v ty tabulce mas receno, ze provoz maji jit pres tun2.

A co myslis ze se stane, kdyz zahajis komunikace do rozsahu 10.9? Presne to co mas nastaveno, posle se to do routovani podle vpn. A v ty rikas, ze veskerej provoz posles na tun2. Respektive, ti pres ten tun2 samozrejme potece veskera komunikace smerem od klienta.

Je to o to veselejsi, ze ty pakety putuji na tu GW co tam mas nastavenou, a pak se vraci zpet.

Pokud se ptas proc, tak se zamysli nad tim, kam jinam by asi tak mely putovat, kdyz tam jinou cestu nemas, coz je presne to, co ti tam chybi.

---

Dete s tim guuglem dopice!
4.12.2021 15:33 chinook | skóre: 28
Rozbalit Rozbalit vše Re: vpn routování
A jak to tedy mám udělat, aby se mně to takto nechovalo a chodil provoz přes VPN jen pro klienty co používají VPN? A ne když se chci připojit ze stroje na VPN?
4.12.2021 19:43 X
Rozbalit Rozbalit vše Re: vpn routování
Melo by stacit udelat SNAT na 10.20.40.24 do site tun0, aby jsi vystupoval jako tun2. Jinak to dost dobre nepujde protoze kazda sit ma jinou branu:
iptables -t nat -A prerouting -i ens3 -d 10.9.0.0/24 -j SNAT --to 10.20.40.24
Bude to take nutne dynamicky menit..
5.12.2021 20:11 X
Rozbalit Rozbalit vše Re: vpn routování
Ma to byt samozrejme 'postrouting'..
3.12.2021 20:48 Andrej | skóre: 51 | blog: Republic of Mordor
Rozbalit Rozbalit vše Re: vpn routování
Odpovědět | | Sbalit | Link | Blokovat | Admin

Všechno špatně.

…připojeno do internetu IP 89.x.x.13…

Tady není ani náznak připojení „do internetu“. Jde o připojení do IPv4, který přímo způsobuje všechny popsané problémy s routováním. Nepodařený experiment z roku 1975, omylem zveřejněný, přestal už před rokem 2000 definitivně fungovat — zhruba od té doby se už nedalo normálně routovat odkudkoliv kamkoliv. Proč tohle v roce 2021 ještě někdo používá, to je fakt záhada.

Řešením tedy je (jako vždy) opravdový internet — IPv6.

pak VPN
tun0 - sem se připojují klienti
tun2 - odsud jsem připojen k jinému ISP

V celém tomto popisu není ani jedna zmínka o VPN.

Ne, skutečná VPN nikdy nepoužívá nic takového jako rozhraní tun; to opravdu (ale opravdu (ale opravdu)) ne.

VPN běží na stejném síťovém rozhraní jako kterýkoliv jiný provoz. Démon pro správu klíčů (například StrongSwan) vytvoří mezi dvěma podsítěmi IPSec tunel a jediné, čím se IPSec projevuje (kromě záznamů v routovacích tabulkách) je „zkrácení“ (co do zdánlivého počtu „hopů“, nikoliv času) spojení do „protější“ sítě — dá se tam najednou dostat „jedním hopem“. Žádné virtuální pseudorozhraní k VPN nepatří.

Přítomnost nesmyslů typu tun může znamenat, že zase další uživatel naletěl na Open„VPN“ — béčkovou jednovláknovou dětskou hračku v userspace, která má chybně a nepatřičně „VPN“ v názvu, ač jediné, co opravdu dobře „zvládá“, je zbytečné zpomalení připojení asi tak o desítkový řád ve srovnání s výkonem skutečné VPN (tedy IPSec).

Řešení celého problému — který se tady v poradně objevuje zbytečně stále znova a znova — je tedy jednoduché a pořád dokola stejné: Zaprvé, skutečný internet, tedy IPv6. Pak ve většině případů nebude VPN vůbec potřeba. Zadruhé, pro ty zbývající vzácné případy: skutečná VPN, tedy IPSec, bez matoucích pseudorozhraní typu tun (a s nimi souvisejících problémů s routováním), bez jednovláknových userspace zpomalovačů atd. atp.

5.12.2021 21:58 Radek
Rozbalit Rozbalit vše Re: vpn routování
Hele nevím kolik gbit přenáších po vpn, ale otestovals někdy openvpn? Já jen že i na mikrotiku ccr2004 dává dost vysoké rychlosti (naměřeno 400mbit na speedtest, úzké hrdlo je internetová linka).
6.12.2021 02:09 Andrej | skóre: 51 | blog: Republic of Mordor
Rozbalit Rozbalit vše Re: vpn routování

Po VPN přenáším prostě 1 Gb/s, což je všechno, co moje současné připojení umí. (10 Gb/s sice můžu mít asi na 3 kliknutí se stále stejnou optikou, ale nechce se mi za to platit cca dvojnásobek, když beztak většina protistran 10 Gb/s stále ještě nedá.)

Open„VPN“ není VPN. Tím by mohla celá úvaha skočit.

Dotazů typu „proč mám na Open‚VPN‘ asi tak desetinu mého gigabitu“ se tady na ABCLinuxu povaluje hodně. Open„VPN“ je prostě jednovláknové béčko v userspace. Možná dá 500 Mb/s, když bude mít velké štěstí na TurboBoost. Možná dá třetinu z toho, pokud ne. Každý paket představuje minimálně 6 context-switchů místo rozumných dvou (a s chytrými scatter-gather triky dokonce v průměru méně). Zoufalství, nouze, zbytečnost. Nebrat. Technologie pro VPN se jmenuje IPSec.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.