Aggiungi percorso alla rete remota


3

Il mio schema di rete:

|localhost| tun1--> VPN <--tun0 |work station| wlan0--> |router| --> (10.128.0.0/16)

localhost: Arch Linux x86-64

postazione di lavoro: CentOS 6 x86-64

Voglio collegarmi direttamente da localhost alla rete 10.128.0.0/16, senza i port forwarding della SSH e così via. La postazione di lavoro ha accesso a questa rete. Inoltre, la stazione di lavoro ha IP statico 10.255.255.252 in VPN.

tracciamento dalla stazione di lavoro all'host in 10.128.0.0/16:

$ tracepath 10.128.29.59
 1?: [LOCALHOST]     pmtu 1500
 1:  192.168.225.1 (192.168.225.1)                         15.293ms 
 1:  192.168.225.1 (192.168.225.1)                          2.119ms 
 2:  192.168.225.1 (192.168.225.1)                          2.085ms pmtu 1409
 2:  no reply
 3:  10.128.29.59 (10.128.29.59)                           15.655ms reached
     Resume: pmtu 1409 hops 3 back 3

192.168.255.1 è il gateway predefinito per la stazione di lavoro:

$ ip route | grep default
default via 192.168.225.1 dev wlan0

Ho provato solo ad aggiungere route sul mio localhost, ma non è riuscito:

# ip route add 10.128.0.0/16 via 10.255.255.252
RTNETLINK answers: Network is unreachable

Immagino che sia abbastanza ingenuo aggiungere la route alla rete remota in questo modo. Come posso farlo correttamente? Forse, dovrei condividere il routing table in 10.255.255.252 in qualche modo?

MODIFICA 1:

Ho provato il suggerimento di Marius

iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE

Ma non ha cambiato nulla. Le tabelle NAT iptables ora lo mostrano sulla workstation:

# iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         
MASQUERADE  all  --  anywhere             anywhere            

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

MODIFICA 2:

Sono in grado di connettermi alle porte nella rete 10.128.0.0/16 tramite la porta SSH

ssh -L 5432:10.128.29.59:5432 user@10.255.255.252

Dopo questo inoltro sono in grado di connettermi a 10.128.29.59:5432 tramite localhost: 5432. Quindi, quello che voglio veramente è solo l'opzione per connettersi direttamente a 10.128.29.59:5432.

MODIFICA 3:

Io uso openvpn per connettermi a VPN.

ip route su localhost:

$ ip route
default via 192.168.1.1 dev wlp2s0 src 192.168.1.253 metric 302 
10.0.0.0/16 via 192.168.193.29 dev tun1 
10.255.0.0/16 via 192.168.193.29 dev tun1 
192.168.1.0/24 dev wlp2s0 proto kernel scope link src 192.168.1.253 metric 302 
192.168.193.0/24 via 192.168.193.29 dev tun1 
192.168.193.29 dev tun1 proto kernel scope link src 192.168.193.30 
193.26.135.101 via 192.168.193.29 dev tun1 
213.24.160.78 via 192.168.193.29 dev tun1

Percorso IP su workstation:

$ ip route
193.26.135.101 via 10.255.255.251 dev tun0 
213.24.160.78 via 10.255.255.251 dev tun0 
10.255.255.251 dev tun0  proto kernel  scope link  src 10.255.255.252 
192.168.193.0/24 via 10.255.255.251 dev tun0 
192.168.225.0/24 dev wlan0  proto kernel  scope link  src 192.168.225.165 
10.0.0.0/16 via 10.255.255.251 dev tun0 
10.255.0.0/16 via 10.255.255.251 dev tun0 
default via 192.168.225.1 dev wlan0

nmap su una delle porte interessate in 10.128.0.0/16 da localhost:

$ nmap -p5432 10.128.29.59/32

Starting Nmap 7.31 ( https://nmap.org ) at 2016-11-02 11:40 MSK
Note: Host seems down. If it is really up, but blocking our ping probes, try -Pn
Nmap done: 1 IP address (0 hosts up) scanned in 3.11 seconds

dalla postazione di lavoro:

$ nmap -p5432 10.128.29.59/32

Starting Nmap 5.51 ( http://nmap.org ) at 2016-11-02 11:42 MSK
Nmap scan report for 10.128.29.59
Host is up (0.034s latency).
PORT     STATE SERVICE
5432/tcp open  postgresql

Nmap done: 1 IP address (1 host up) scanned in 0.16 seconds

Si prega di fornire l'output di ip route quando connesso alla VPN. Inoltre, quale software VPN stai usando?
Daniel B

@DanielB Io uso openvpn. Per favore, controlla la modifica 3 per le uscite della rotta IP.
Evgeny Veretennikov

Vedo. Questo spiega perché non è possibile aggiungere una rotta. Dovrebbe passare attraverso 192.168.193.29 - il tuo unico peer diretto sulla connessione OpenVPN. Cos'è quello? Il tuo server VPN?
Daniel B

@ DanielB sì, 192.168.193.29 è il server VPN a cui mi sto collegando, e non sa di cosa mi serve 10.128.0.0/16 Rete. Solo workstation 10.255.255.252 lo sa. Ho pensato, ci dovrebbe essere un modo per gestire il percorso usando 10.255.255.252?
Evgeny Veretennikov

Quando aggiungi un percorso, comunichi al tuo PC il passaggio successivo alla destinazione. L'hop successivo deve essere raggiungibile direttamente. Il dispositivo hop successivo avrà l'hop "next next" nella sua tabella di routing e così via. Ecco come funziona il routing IP. Un modo per semplificare le cose sarebbe quello di cambiare la tua topologia OpenVPN da p2p / net30 a subnet.
Daniel B

Risposte:


2

Il collegamento diretto significa che si desidera utilizzare il routing layer3. Il routing funziona piuttosto semplice: i pacchetti entrano nel router e escono nella direzione determinata dall'indirizzo di destinazione (nel routing normale almeno). Quindi inserire il router successivo e ripetere lo stesso processo, fino a quando il pacchetto raggiunge la destinazione (o colpisce il muro non riuscendo a raggiungere).

Questo richiede che dentro inoltrare direzione tutti i router verso 10.128 / 16 dovrebbero avere una rotta di 10.128 / 16 per un altro (preferibilmente al router successivo nella catena). Richiede anche quello tutti router nel backpath avere un percorso per 192.168.1.0/24 (preferibilmente in direzione indietro) per consentire alla risposta di raggiungere la macchina.

A meno che non lo fai correttamente tutti router nel percorso (vpn e router) non funzionerà.

(Nel caso in cui non si gestisca il middle hop è possibile utilizzare un semplice tunnel GRE tra localhost e target: utilizza ~ 42 byte di overhead su ogni pacchetto ma relativamente semplice da configurare, purché si abbiano host "intelligenti" su entrambe le estremità .)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.