ฉันต้องการ PC1 เพื่อให้สามารถสื่อสารกับ PC2 ผ่านสอง vlan (กำหนดค่าบนอินเทอร์เฟซเสมือนสองอินเทอร์เฟซ) แต่ละคนมีเกตเวย์ที่กำหนดค่าให้สื่อสารกับเครือข่ายย่อยที่แตกต่างกัน
นี่คือแผนภาพ:
~ ~ ~ ~<vlan10>~ ~ ~ ~
192.168.1.1 192.168.1.254
PC1 ----------------------------- FW ------------------- ----------พีซีทู
192.168.2.1 192.168.2.254 11.20.1.254 11.20.1.1
~ ~ ~ ~<vlan20>~ ~ ~ ~
PC1:
- eth0.10 = 192.168.1.1/24
- eth0.20 = 192.168.2.1/24
ไฟร์วอลล์:
- อนุญาตทั้งหมด
ฉันได้เพิ่มตารางเส้นทางสองตาราง หนึ่งรายการสำหรับแต่ละอินเทอร์เฟซเสมือน:
# ตารางรายการเส้นทาง ip vlan10
ค่าเริ่มต้นผ่าน 192.168.1.254 dev eth0.10 proto static
# ตารางรายการเส้นทาง ip vlan20
ค่าเริ่มต้นผ่าน 192.168.2.254 dev eth0.20 proto static
# เส้นทางไอพี
192.168.1.0/24 dev eth0.10 ลิงก์ขอบเขตเคอร์เนลโปรโต src 192.168.1.1
192.168.2.0/24 dev eth0.20 ลิงก์ขอบเขตเคอร์เนลโปรโต src 192.168.2.1
นี่คือวิธีการใช้ตารางเส้นทาง:
#กฎไอพี
0: จากการค้นหาทั้งหมดในท้องถิ่น
32762: จากทั้งหมดเป็น 192.168.2.1 ค้นหา vlan20
32763: จาก 192.168.2.1 ค้นหา vlan20
32764: จากทั้งหมดเป็น 192.168.1.1 ค้นหา vlan10
32765: จาก 192.168.1.1 ค้นหา vlan10
32766: จากหลักการค้นหาทั้งหมด
32767: จากค่าเริ่มต้นการค้นหาทั้งหมด
ฉันสามารถ ping อินเทอร์เฟซไฟร์วอลล์บนซับเน็ตเดียวกัน (เกตเวย์):
# ปิง 192.168.1.254
PING 192.168.1.254 (192.168.1.254) 56(84) ไบต์ของข้อมูล
64 ไบต์จาก 192.168.1.254: icmp_seq=1 ttl=64 เวลา=1.09 ms
64 ไบต์จาก 192.168.1.254: icmp_seq=2 ttl=64 เวลา=0.740 ms
64 ไบต์จาก 192.168.1.254: icmp_seq=3 ttl=64 เวลา=0.319 ms
# ปิง 192.168.2.254
PING 192.168.2.254 (192.168.2.254) 56(84) ไบต์ของข้อมูล
64 ไบต์จาก 192.168.2.254: icmp_seq=1 ttl=64 เวลา=0.937 ms
64 ไบต์จาก 192.168.2.254: icmp_seq=2 ttl=64 เวลา=0.269 ms
64 ไบต์จาก 192.168.2.254: icmp_seq=3 ttl=64 เวลา=0.444 ms
ฉันไม่สามารถ ping อินเทอร์เฟซไฟร์วอลล์บนซับเน็ตอื่น:
# ปิง 11.20.1.1
เชื่อมต่อ: ไม่สามารถเข้าถึงโฮสต์ปลายทางได้
# ping 11.20.1.1 -I eth0.10
PING 11.20.1.1 (11.20.1.254) จาก 192.168.1.1 eth0.10: 56(84) ไบต์ของข้อมูล
^ซี
--- สถิติ ping 11.20.1.1 ---
ส่งแพ็กเก็ต 4 แพ็กเก็ต ได้รับ 0 แพ็กเก็ต สูญเสียแพ็กเก็ต 100% เวลา 75ms
เมื่อฉันใช้ wireshark ฉันเห็นคำขอ ARP ที่ปลายทางเป็น 11.20.1.1 แม้ว่าจะอยู่ในซับเน็ตอื่นก็ตาม และควรใช้เกตเวย์เริ่มต้นจากตารางเส้นทาง
เมื่อฉันกำหนดค่าเกตเวย์เริ่มต้นในตารางเส้นทางหลัก คำขอ ARP จะถูกส่งไปยังเกตเวย์และ ping ทำงาน:
# เส้นทาง ip เพิ่มค่าเริ่มต้นผ่าน 192.168.1.254
# ping 11.20.1.1 -I eth0.10
PING 11.20.1.1 (11.20.1.1) จาก 192.168.1.1 eth0.10: 56(84) ไบต์ของข้อมูล
64 ไบต์จาก 11.20.1.1: icmp_seq=1 ttl=64 เวลา=0.660 ms
64 ไบต์จาก 11.20.1.1: icmp_seq=2 ttl=64 เวลา=0.504 ms
^ซี
--- สถิติ ping 11.20.1.1 ---
ส่ง 2 แพ็กเก็ต, 2 แพ็กเก็ตที่ได้รับ, การสูญเสียแพ็กเก็ต 0%, เวลา 9ms
rtt นาที/เฉลี่ย/สูงสุด/mdev = 0.504/0.582/0.660/0.078 มิลลิวินาที
คุณรู้หรือไม่ว่าปัญหามาจากไหน ? rp_filter
ถูกตั้งค่าเป็น 0
บนอินเทอร์เฟซจริงและเสมือน