Вы пытаетесь туннелировать только ipV6 трафик через туннель? Поскольку ваш SSH-туннель позволит вам без проблем использовать IPV5 или V6, предполагая, что сеть на обоих концах поддерживает его.
Да, это возможно и не слишком сложно, но решение является очень неоптимальным, поскольку 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).
Минимальный MTU, который поддерживает IPv6, составляет 1280 (в отличие от IPv4, который поддерживает минимальный MTU 576). Предупреждение: если вы установите 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
Ответы:
Да, это возможно и не слишком сложно, но решение является очень неоптимальным, поскольку SSH работает по протоколу TCP и имеет значительную нагрузку.
Сервер должен иметь в своем файле конфигурации
sshd_config
:Затем вы должны быть root на обеих машинах. Вы подключаетесь к серверу, используя:
После подключения используйте команду
ip link
в обеих системах, чтобы узнать, какое устройство tunN было создано в каждом из них, и используйте его в следующих командах. Обратите внимание, что я использую примеры локальных адресов сайтов, которые устарели, но хорошо для этого введения.На сервере:
На клиенте:
Этого достаточно, чтобы вы могли пропинговать другую сторону через туннель, если нет правил брандмауэра. Следующим шагом является установка маршрутов через туннель (не забудьте net.ipv6.conf.default.forwarding = 1), а затем настройте MTU канала для получения оптимальной производительности.
Это позволит вашему клиенту пропинговать другие сети, к которым у сервера есть доступ, учитывая, что у целей есть маршруты обратно к вашему удаленному клиенту.
Вам также нужно исправить 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