ฉันกำลังพยายามกำหนดเส้นทางการรับส่งข้อมูลระหว่างเครือข่ายต่างๆ และได้ทำตามคำแนะนำที่ฉันพบที่นี่:
https://devconnected.com/how-to-add-route-on-linux/
นี่คือไดอะแกรมที่ฉันหวังว่าจะอธิบายการจัดการที่ฉันทำงานด้วยอย่างเพียงพอ:
วินโดวส์ 10 อูบุนตู ลินุกซ์
172.31.0.X <----------> 172.31.0.33 (eno1)
10.0.40.1 (enp2s0f0) <----------> 10.0.40.10
ฉันมีเส้นทางถาวรที่ตั้งค่าไว้บนพีซี Windows เพื่อกำหนดเส้นทางการรับส่งข้อมูลสำหรับ 10.0.40.0/24 ผ่าน 172.31.0.33
เอาต์พุตการพิมพ์เส้นทาง
เครื่อง Ubuntu ได้รับการตั้งค่าให้กำหนดเส้นทางการรับส่งข้อมูลสำหรับ 10.0.40.0/24 ผ่าน 10.0.40.1
ip r เอาท์พุท
Pinging 10.0.40.10 จากเครื่อง Ubuntu ทำงานตามที่คาดไว้
ถ้าฉัน ping 10.0.40.10 จาก Windows PC ฉันสามารถเห็นข้อความ ICMP มาถึงอินเทอร์เฟซ 172.31.0.33 บนเครื่อง Ubuntu โดยใช้ tcpdump
ฉันไม่เห็นการรับส่งข้อมูลใด ๆ บนอินเทอร์เฟซ 10.0.40.1 บนเครื่องนั้น ปรากฏว่าเครื่อง Ubuntu ไม่ได้กำหนดเส้นทางการรับส่งข้อมูลอย่างที่ฉันคาดไว้
ทุกคนสามารถให้ความกระจ่างเกี่ยวกับสิ่งที่ฉันพลาดไปได้หรือไม่?
การเพิ่มเอาต์พุตของ:
iptables -S
สำหรับเครื่อง Ubuntu:
sudo iptables -S
# คำเตือน: มีตาราง iptables-legacy ให้ใช้ iptables-legacy เพื่อดู
-P อินพุตยอมรับ
-P ยอมรับไปข้างหน้า
-P เอาต์พุตยอมรับ
-A ไปข้างหน้า -i eno1 -j ยอมรับ
-A ไปข้างหน้า -i enp2s0f0 -j ยอมรับ
adi@LabBuildServer:~$ sudo iptables-legacy -S
[sudo] รหัสผ่านสำหรับ adi:
-P อินพุตยอมรับ
-P ไปข้างหน้าลดลง
-P เอาต์พุตยอมรับ
-N นักเทียบท่า
-N DOCKER-ISOLATION-STAGE-1
-N DOCKER-ISOLATION-STAGE-2
-N นักเทียบท่า-ผู้ใช้
-A ไปข้างหน้า -j นักเทียบท่า-ผู้ใช้
-A ส่งต่อ -j DOCKER-ISOLATION-STAGE-1
-A FORWARD -o docker0 -m conntrack --ctstate ที่เกี่ยวข้อง ก่อตั้ง -j ยอมรับ
-A ไปข้างหน้า -o นักเทียบท่า 0 -j นักเทียบท่า
-A ไปข้างหน้า -i docker0 ! -o นักเทียบท่า 0 -j ยอมรับ
-A ไปข้างหน้า -i docker0 -o docker0 -j ยอมรับ
-A FORWARD -o br-e925d11be2da -m conntrack --ctstate ที่เกี่ยวข้อง ก่อตั้ง -j ACCE PT
-A FORWARD -o br-e925d11be2da -j นักเทียบท่า
-ไปข้างหน้า -i br-e925d11be2da ! -o br-e925d11be2da -j ยอมรับ
-A ไปข้างหน้า -i br-e925d11be2da -o br-e925d11be2da -j ยอมรับ
-A DOCKER-ISOLATION-STAGE-1 -i docker0 ! -o docker0 -j DOCKER-ISOLATION-STAGE-2
-A DOCKER-ISOLATION-STAGE-1 -i br-e925d11be2da ! -o br-e925d11be2da -j DOCKER-IS OLATION-STAGE-2
-A DOCKER-ISOLATION-STAGE-1 -j ผลตอบแทน
-A DOCKER-ISOLATION-STAGE-2 -o docker0 -j DROP
-A DOCKER-ISOLATION-STAGE-2 -o br-e925d11be2da -j DROP
-A DOCKER-ISOLATION-STAGE-2 -j ผลตอบแทน
-A นักเทียบท่า-ผู้ใช้ -j ผลตอบแทน
ผลลัพธ์ของ:
เส้นทางไอพี
บนโฮสต์ Linux:
เส้นทางไอพี
ค่าเริ่มต้นผ่าน 10.0.40.1 dev br-POE proto static
10.0.40.0/24 dev br-POE ลิงก์ขอบเขตเคอร์เนลโปรโต src 10.0.40.10
เครื่องอูบุนตู:
adi@LabBuildServer:~$ sudo iptables -t nat -L
[sudo] รหัสผ่านสำหรับ adi:
# คำเตือน: มีตาราง iptables-legacy ให้ใช้ iptables-legacy เพื่อดู
ห่วงโซ่ PREROUTING (ยอมรับนโยบาย)
เป้าหมาย prot เลือกปลายทางต้นทาง
เชนอินพุท (ยอมรับนโยบาย)
เป้าหมาย prot เลือกปลายทางต้นทาง
ห่วงโซ่โพสต์ (ยอมรับนโยบาย)
เป้าหมาย prot เลือกปลายทางต้นทาง
สวมหน้ากากทั้งหมด - ทุกที่ทุกที่
สวมหน้ากากทั้งหมด - ทุกที่ทุกที่
Chain OUTPUT (ยอมรับนโยบาย)
เป้าหมาย prot เลือกปลายทางต้นทาง