мені цікаво, як тунель трафіку tcp / ipv6 через тунель ssh / ipv4 (з'єднання ptp). Це можливо? Як я можу цього досягти?
мені цікаво, як тунель трафіку tcp / ipv6 через тунель ssh / ipv4 (з'єднання ptp). Це можливо? Як я можу цього досягти?
Відповіді:
Так, це можливо і не надто складно, але рішення дуже неоптимальне, оскільки 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).
ip
команди, тому встановіть ip-адресу sudo ifconfig tun0 inet6 fec0:1::2/112 up
і встановіть маршрут з sudo route add -inet6 -mtu 1280 default fec0:1::1