TCP / IPv6 thru ssh tunnel


10

ฉันสงสัยว่าจะรับส่งข้อมูลช่องสัญญาณ tcp / ipv6 ผ่านช่องสัญญาณ ssh / ipv4 (การเชื่อมต่อ ptp) อย่างไร เป็นไปได้ไหม? ฉันจะบรรลุสิ่งนั้นได้อย่างไร

linux  ssh  ipv6 

คุณกำลังพยายามส่งสัญญาณเพียงแค่การรับส่งข้อมูล ipV6 เหนืออุโมงค์หรือไม่ ในขณะที่อุโมงค์ SSH ของคุณจะช่วยให้คุณใช้ IPV5 หรือ V6 เหนือมันโดยไม่มีปัญหาสมมติว่าเครือข่ายที่ปลายทั้งสองสนับสนุน
แซมโคแกน

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

นี่ก็เพียงพอแล้วที่คุณจะสามารถ ping ด้านอื่น ๆ ผ่านทางอุโมงค์ถ้าไม่มีกฎไฟร์วอลล์ปิดกั้น ขั้นตอนต่อไปคือการตั้งค่าเส้นทางผ่านอุโมงค์ (อย่าลืม 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 เพื่อที่ลูกค้าจะไม่ส่งแพ็กเก็ตที่เซิร์ฟเวอร์จะไม่สามารถส่งต่อได้ ขึ้นอยู่กับ MTU ของลิงก์ IPv6 ของเซิร์ฟเวอร์เอง อย่าพึ่งพาการค้นพบพา ธ MTU เนื่องจากไม่สามารถทำงานได้อย่างถูกต้องเหนืออุโมงค์ SSH หากมีข้อสงสัยเริ่มต้นด้วยค่า MTU ต่ำเช่น 1280 (MTU ขั้นต่ำที่อนุญาตสำหรับ IPv6)


1
MTU ขั้นต่ำที่ IPv6 รองรับคือ 1280 (ตรงกันข้ามกับ IPv4 ซึ่งรองรับ MTU ขั้นต่ำ 576) คำเตือน: หากคุณตั้งค่า 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.