TCP / IPv6 через тунель


10

мені цікаво, як тунель трафіку tcp / ipv6 через тунель ssh / ipv4 (з'єднання ptp). Це можливо? Як я можу цього досягти?

linux  ssh  ipv6 

Чи намагаєтесь ви тунельно прокласти трафік ipV6 через тунель? Оскільки ваш тунель SSH дозволить вам без проблем використовувати IPV5 або V6, припускаючи, що мережа на обох кінцях підтримує його.
Сем Коган

2
TCP через TCP, як правило, не є хорошою ідеєю: sites.inka.de/sites/bigred/devel/tcp-tcp.html TCP через TCP через TCP: Це не краще
звучить

Відповіді:


15

Так, це можливо і не надто складно, але рішення дуже неоптимальне, оскільки SSH працює над TCP і має чуйні накладні витрати.

Сервер повинен мати у своєму конфігураційному файлі sshd_config:

PermitTunnel point-to-point

Тоді вам потрібно мати root на обох машинах. Ви підключаєтесь до сервера за допомогою:

ssh -w any root@server

Після підключення використовуйте команду ip linkв обох системах, щоб знати, який пристрій tunN створено в кожній з них, і використовуйте її в наступних командах. Зауважте, що я використовую приклади локальних адрес, які є застарілими, але нормально для цього вступу.

На сервері:

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

Про клієнта:

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

Цього достатньо, щоб ви могли проправити іншу сторону через тунель, якщо немає правила брандмауера. Наступним кроком є ​​встановлення маршрутів через тунель (не забудьте net.ipv6.conf.default.forwarding = 1), а потім відрегулювати посилання MTU для отримання оптимальної продуктивності.

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

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

Це дозволить вашому клієнту пінг-сервісу інших мереж, до яких сервер має доступ, враховуючи, що цілі мають маршрути назад до віддаленого клієнта.

Вам також доведеться виправити посилання MTU, щоб клієнт не надсилав пакети, які сервер не зможе передавати вперед. Це залежить від MTU посилання IPv6 самого сервера. Не покладайтеся на відкриття MTU, оскільки воно не працюватиме правильно над тунелем SSH. Якщо ви сумніваєтеся, почніть з низького значення MTU, наприклад 1280 (мінімальний MTU дозволений для IPv6).


1
Мінімальний MTU, який підтримує IPv6, становить 1280 (на відміну від IPv4, який підтримує мінімум 576 MTU). Попередження: якщо встановити MTU нижче 1280, ваші IPv6 адреси зникнуть і не зможуть бути повторно додані, доки ви не перезапустите SSH!
Джеремі Віссер

1
OS X не має ipкоманди, тому встановіть ip-адресу sudo ifconfig tun0 inet6 fec0:1::2/112 up і встановіть маршрут з sudo route add -inet6 -mtu 1280 default fec0:1::1
larsr
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.