мне интересно, как туннелировать трафик 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