TCP / IPv6 tramite tunnel ssh


10

mi chiedo come effettuare il tunneling del traffico tcp / ipv6 sul tunnel ssh / ipv4 (connessione ptp). È possibile? Come posso raggiungerlo?

linux  ssh  ipv6 

Stai cercando di tunnel SOLO traffico ipV6 sul tunnel? Poiché il tunnel SSH ti consentirà di utilizzare IPV5 o V6 su di esso senza problemi, supponendo che la rete alle due estremità lo supporti.
Sam Cogan,

2
TCP su TCP di solito non è una buona idea: sites.inka.de/sites/bigred/devel/tcp-tcp.html TCP su TCP su TCP: non suona meglio
Reece45

Risposte:


15

Sì, è possibile e non troppo difficile, ma la soluzione è molto subottimale, poiché SSH funziona su TCP e ha un sovraccarico ragionevole.

Il server deve avere nel suo file di configurazione sshd_config:

PermitTunnel point-to-point

Quindi, devi essere root su entrambe le macchine. Ti connetti al server usando:

ssh -w any root@server

Dopo la connessione, utilizzare il comando ip linkin entrambi i sistemi per sapere quale dispositivo tunN è stato creato in ciascuno e utilizzarlo nei seguenti comandi. Si noti che sto usando indirizzi locali di esempio, che sono obsoleti, ma ok per questa introduzione.

Sul server:

server# ip link set tun0 up
server# ip addr add fec0:1::1/112 dev tun0

Sul cliente:

client# ip link set tun0 up
client# ip addr add fec0:1::2/112 dev tun0

Questo è sufficiente per poter eseguire il ping dell'altro lato attraverso il tunnel, se non è presente alcun blocco delle regole del firewall. Il passaggio successivo consiste nell'impostare i percorsi sul tunnel (non dimenticare net.ipv6.conf.default.forwarding = 1), quindi regolare il link MTU per ottenere prestazioni ottimali.

server# sysctl net.ipv6.conf.all.forwarding=1

client# ip -6 route add default via fec0:1::1

Ciò consentirà al client di eseguire il ping di altre reti a cui il server ha accesso, dato che le destinazioni hanno percorsi di ritorno al client remoto.

Dovrai anche correggere il link MTU in modo che il client non invii pacchetti che il server non sarà in grado di trasmettere in avanti. Ciò dipende dall'MTU del collegamento IPv6 del server stesso. Non fare affidamento sul rilevamento MTU del percorso poiché non funzionerà correttamente sul tunnel SSH. In caso di dubbi, iniziare con un valore MTU basso, come 1280 (MTU minimo consentito per IPv6).


1
L'MTU minimo supportato da IPv6 è 1280 (in contrasto con IPv4, che supporta un MTU minimo di 576). Attenzione: se imposti il ​​tuo MTU al di sotto di 1280, i tuoi indirizzi IPv6 scompariranno e non potranno essere aggiunti nuovamente fino al riavvio di SSH!
Jeremy Visser,

1
OS X non ha il ipcomando, quindi imposta l'indirizzo IP con sudo ifconfig tun0 inet6 fec0:1::2/112 up e imposta il percorso con sudo route add -inet6 -mtu 1280 default fec0:1::1
larsr
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.