ssh / ipv4 터널을 통해 TCP / IPV6 트래픽을 터널링하는 방법이 궁금합니다 (ptp 연결). 가능합니까? 어떻게하면 되나요?
답변
예, 가능하고 어렵지는 않지만 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 허용).