TCP / IPv6 melalui ssh tunnel

10

saya bertanya-tanya bagaimana cara tunnel tcp / ipv6 traffic melalui tunnel ssh / ipv4 (koneksi ptp). Apa itu mungkin? Bagaimana saya bisa mencapainya?


sumber
Apakah Anda mencoba untuk terowongan HANYA lalu lintas IPV6 di atas terowongan? Karena terowongan SSH Anda akan memungkinkan Anda untuk menggunakan IPV5 atau V6 di atasnya tanpa masalah, dengan asumsi jaringan di kedua ujungnya mendukungnya.
Sam Cogan
2
TCP over TCP biasanya bukan ide yang baik: sites.inka.de/sites/bigred/devel/tcp-tcp.html TCP over TCP melalui TCP: Tidak terdengar lebih baik
Reece45

Jawaban:

15

Ya, itu mungkin dan tidak terlalu sulit, tetapi solusinya sangat suboptimal, karena SSH berjalan di atas TCP dan memiliki overhead yang masuk akal.

Server harus ada dalam file konfigurasinya sshd_config:

PermitTunnel point-to-point

Kemudian, Anda harus melakukan root pada kedua mesin. Anda terhubung ke server menggunakan:

ssh -w any root@server

Setelah koneksi, gunakan perintah ip linkdi kedua sistem untuk mengetahui perangkat tunN mana yang dibuat di masing-masing sistem, dan gunakan dalam perintah berikut. Perhatikan bahwa saya menggunakan contoh alamat situs-lokal, yang sudah usang, tetapi ok untuk pengantar ini.

Di server:

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

Pada klien:

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

Ini cukup sehingga Anda bisa melakukan ping ke sisi lain melalui terowongan, jika tidak ada pemblokiran aturan firewall. Langkah selanjutnya adalah mengatur rute di atas terowongan (jangan lupa net.ipv6.conf.default.forwarding = 1), lalu sesuaikan tautan MTU untuk mendapatkan kinerja yang optimal.

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

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

Ini akan memungkinkan klien Anda untuk melakukan ping ke jaringan lain yang memiliki akses ke server, mengingat bahwa target memiliki rute kembali ke klien jarak jauh Anda.

Anda juga harus memperbaiki tautan MTU sehingga klien tidak mengirim paket yang tidak dapat ditransmisikan oleh server. Ini tergantung pada MTU dari tautan IPv6 dari server itu sendiri. Jangan mengandalkan jalur penemuan MTU karena itu tidak akan berfungsi dengan benar di terowongan SSH. Jika ragu, mulailah dengan nilai MTU rendah, seperti 1280 (MTU minimum diizinkan untuk IPv6).

Juliano
sumber
1
MTU minimum yang didukung IPv6 adalah 1280 (berbeda dengan IPv4, yang mendukung MTU minimum 576). Peringatan: jika Anda mengatur MTU Anda di bawah 1280, alamat IPv6 Anda akan hilang, dan tidak akan dapat ditambahkan kembali sampai Anda memulai ulang SSH!
Jeremy Visser
1
OS X tidak memiliki ipperintah, jadi atur alamat ip dengan sudo ifconfig tun0 inet6 fec0:1::2/112 up dan atur rute dengan sudo route add -inet6 -mtu 1280 default fec0:1::1
larsr