Вопрос: TCP / IPv6 через туннель ssh


Мне интересно, как туннель tcp / ipv6 трафик через туннель ssh / ipv4 (соединение ptp). Является ли это возможным? Как я могу это достичь?


9
2018-02-23 11:58


Источник


Вы пытаетесь туннелировать JUST ipV6 через туннель? Поскольку ваш SSH-туннель позволит вам использовать IPV5 или V6 над ним без проблем, предполагая, что сеть с обоих концов поддерживает его. - Sam Cogan
TCP через TCP обычно не очень хорошая идея: sites.inka.de/sites/bigred/devel/tcp-tcp.html TCP через TCP через TCP: он не звучит лучше - Reece45


Ответы:


Да, это возможно и не слишком сложно, но решение очень субоптимально, поскольку 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).


14
2018-02-23 13:42



Минимальный MTU, поддерживаемый IPv6, составляет 1280 (в отличие от IPv4, который поддерживает минимальный MTU 576). Предупреждение: если вы установите MTU ниже 1280, ваши IPv6-адреса исчезнут и не смогут быть добавлены повторно, пока вы не перезапустите SSH! - Jeremy Visser
@Jeremy: Хорошо напомнил. Я исправил это, спасибо! - Juliano
OS X не имеет ip , поэтому установите ip-адрес с помощью sudo ifconfig tun0 inet6 fec0:1::2/112 up  и установите маршрут с помощью sudo route add -inet6 -mtu 1280 default fec0:1::1 - larsr