SSH 터널을 통한 TCP / IPv6


10

ssh / ipv4 터널을 통해 TCP / IPV6 트래픽을 터널링하는 방법이 궁금합니다 (ptp 연결). 가능합니까? 어떻게하면 되나요?

linux  ssh  ipv6 

터널을 통해 ipV6 트래픽을 터널링하려고하십니까? SSH 터널을 사용하면 양쪽 끝의 네트워크가 지원한다고 가정하고 문제없이 IPV5 또는 V6을 사용할 수 있습니다.
Sam Cogan

2
TCP를 통한 TCP는 일반적으로 좋은 생각이 아닙니다. sites.inka.de/sites/bigred/devel/tcp-tcp.html TCP를 통한 TCP를 통한 TCP : 더 나은 소리가 나지 않습니다
Reece45

답변:


15

예, 가능하고 어렵지는 않지만 SSH를 통해 TCP를 실행하고 적절한 오버 헤드가 있기 때문에 솔루션의 최적화 수준이 매우 낮습니다.

서버는 구성 파일에 있어야합니다 sshd_config.

PermitTunnel point-to-point

그런 다음 머신 모두에서 루트가되어야합니다 . 다음을 사용하여 서버에 연결합니다.

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

이렇게하면 대상에 원격 클라이언트로 다시 라우팅되는 경우 클라이언트가 서버가 액세스 할 수있는 다른 네트워크를 ping 할 수 있습니다.

또한 클라이언트가 서버가 전송할 수없는 패킷을 보내지 않도록 링크 MTU를 수정해야합니다. 이것은 서버 자체의 IPv6 링크의 MTU에 따라 다릅니다. 경로 MTU 검색은 SSH 터널에서 제대로 작동하지 않으므로 경로 MTU 검색에 의존하지 마십시오. 의심스러운 경우 1280과 같은 낮은 MTU 값으로 시작하십시오 (IPv6에 대해 최소 MTU 허용).


1
IPv6이 지원하는 최소 MTU는 1280입니다 (최소 MTU는 576을 지원하는 IPv4와 대조). 경고 : MTU를 1280 미만으로 설정하면 IPv6 주소가 사라지고 SSH를 다시 ​​시작할 때까지 다시 추가 할 수 없습니다!
Jeremy Visser

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
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.