โฮสต์ A --internet-- โฮสต์ B --internet ipip tunnel-- โฮสต์ C
โฮสต์ A: 1.1.1.1
โฮสต์ B: 2.2.2.2
โฮสต์ C: 3.3.3.3
อูบุนตู 18.04.
การกำหนดค่าอุโมงค์โฮสต์ B ipip
ip tunnel เพิ่มโหมด tunnel0 ipip remote 3.3.3.3 โลคัล 2.2.2.2
ip addr เพิ่ม 10.0.0.0/32 dev tunnel0
ลิงค์ ip ตั้งช่องสัญญาณ 0 ขึ้น
เส้นทาง ip เพิ่ม 10.0.0.1/32 dev tunnel0
การกำหนดค่าอุโมงค์โฮสต์ C ipip
ip tunnel เพิ่มโหมด tunnel0 ipip remote 2.2.2.2 โลคัล 3.3.3.3
ip addr เพิ่ม 10.0.0.0/32 dev tunnel0
ลิงค์ ip ตั้งช่องสัญญาณ 0 ขึ้น
เส้นทาง ip เพิ่ม 10.0.1.1/32 dev tunnel0
อีกด้วย
sysctl net.ipv4.ip_forward=1
อุโมงค์เปิดอยู่ โฮสต์ทั้งสองสามารถ ping IP ภายในเครื่องของปลายทางระยะไกล (10.x)
ฉันกำลังพยายามส่งต่อการรับส่งข้อมูลจากโฮสต์ A ไปยังโฮสต์ B บนพอร์ต 6300 ไปยังโฮสต์ C
เราไม่สามารถวางเส้นทางจาก Host C ไปยัง 1.1.1.1 ผ่าน Host B ได้ เพราะ IP ของ Host A สามารถเปลี่ยนเป็นอะไรก็ได้
เราไม่สามารถใส่เส้นทางเริ่มต้นจากโฮสต์ C ไปยังโฮสต์ B ได้ เนื่องจากทราฟฟิกทั้งหมดไม่ได้มาจากโฮสต์ B
โดยทั่วไปฉันต้องการให้โฮสต์ C ตอบกลับทราฟฟิกที่เข้ามาผ่านอินเทอร์เฟซที่ทราฟฟิกเข้ามา
การรับส่งข้อมูลจาก 1.1.1.1 มาทางอุโมงค์ 0? ส่งการตอบกลับไปที่ tunnel0
ปริมาณการใช้งานจาก 1.1.1.1 ผ่าน xxx0? ส่งคำตอบไปที่ xxx0
การรับส่งข้อมูลจาก x.y.z.w มาจากอินเทอร์เฟซ xxx0 หรือไม่ ส่งคำตอบไปที่ xxx0
NAT เป็นสิ่งต้องห้าม การกรองเสร็จสิ้นบนโฮสต์ C ดังนั้นโฮสต์ C จะต้องรับรู้ถึง IP ของโฮสต์ A
บนโฮสต์ B ฉันลองแล้ว
iptables -A FORWARD -i eth0 -o tunnel0 -j ยอมรับ
iptables -A FORWARD -i tunnel0 -o eth0 -j ยอมรับ
iptables -t nat -A PREROUTING -p tcp --dport 6300 --jump DNAT --to-destination 10.0.0.1
แต่นั่นไม่ได้ทำอะไรเลย การรับส่งข้อมูลจาก 1.1.1.1 ไม่ผ่านอุโมงค์ 0
ฉันไม่รู้ด้วยซ้ำว่าฉันควรตรวจสอบอะไร ส่งต่อ? การกำหนดเส้นทาง? iptables? ทำเครื่องหมาย? พอยน์เตอร์ใด ๆ เกี่ยวกับสิ่งที่ฉันควรทำจะได้รับการชื่นชมอย่างมาก!
แก้ไข
เพิ่มคำสั่งเหล่านั้นใน Host B
sysctl net.ipv4.conf.eth0.forwarding=1
sysctl net.ipv4.conf.tunnel0.forwarding=1
iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 6300 -j DNAT --to-destination 10.0.0.1:6300
iptables -A FORWARD -p tcp -d 10.0.0.1 --dport 6300 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
และตอนนี้การรับส่งข้อมูลจากโฮสต์ A เข้าสู่อุโมงค์ไปยังโฮสต์ C! คืบหน้ามาก!
แต่ไม่มีการจราจรกลับ
ฉันพยายามเพิ่มสิ่งนี้ลงในโฮสต์ C เพื่อส่งแพ็กเก็ตเส้นทางต้นทาง
กฎ ip เพิ่มตาราง 11 จาก 10.0.0.1/32 dev tunnel0
เส้นทาง ip เพิ่มตาราง 11 เป็นค่าเริ่มต้นผ่าน 10.0.0.1 dev tunnel0
แต่ไม่มีโชค ข้อผิดพลาดใด ๆ ที่เห็นได้ชัดในคำสั่งที่ฉันป้อน? -ขอบคุณ