ฉันมีโฮสต์ Linux หลายตัวที่เชื่อมต่อโดยใช้ vxlan เรียกพวกเขาว่าโฮสต์ A โฮสต์ B และโฮสต์ C การกำหนดค่าในแต่ละโฮสต์จะคล้ายกันดังนี้:
# กำหนดสะพาน:
แมว << EOF > /etc/sysconfig/network-scripts/ifcfg-cloudbr0
อุปกรณ์ = cloudbr0
TYPE=สะพาน
ONBOOT=ใช่
BOOTPROTO=คงที่
IPV6INIT=ไม่มี
IPV6_AUTOCONF=ไม่
ดีเลย์=5
STP=ไม่
USERCTL=ไม่
NM_CONTROLLED=ไม่
IPADDR=192.168.200.1
NETMASK=255.255.255.0
DNS1=10.10.0.2
อฟ
# อ่านไฟล์ปรับแต่งด้านบนและสร้างสะพาน
systemctl รีสตาร์ทเครือข่าย
#วีเอ็กซ์แลน
ลิงค์ ip เพิ่ม vxlan100 ประเภท vxlan id 100 dstport 4789 ท้องถิ่น 10.10.128.84 กลุ่ม 224.10.0.1 dev eth0 ttl 5
brctl addif cloudbr0 vxlan100
ลิงค์ ip ตั้งค่า dev vxlan100
ผลลัพธ์คือโฮสต์ A, B และ C ต่างมีที่อยู่ IP สองที่อยู่ ที่อยู่สาธารณะ (บนซับเน็ต 10.10.0.0/16) และที่อยู่ส่วนตัว (บนซับเน็ต 192.168.200.0/24) ที่อยู่ส่วนตัวจะมองเห็นได้เฉพาะกับโฮสต์อื่นที่กำหนดค่าด้วย vxlan โฮสต์ A, B และ C สามารถ ping ที่อยู่สาธารณะและส่วนตัวของกันและกันได้
ต่อไป ฉันต้องให้โฮสต์เพิ่มเติม (โฮสต์ D, E และ F) เข้าถึงซับเน็ต vxlan โดยไม่ต้องเข้าร่วมกับซับเน็ตจริงๆ ดังนั้นฉันกำลังมองหาโซลูชันการกำหนดเส้นทางเลเยอร์ 3 บางประเภท
ฉันเปิดใช้งานการส่งต่อ IP บนโฮสต์ A จากนั้นอัปเดตตารางเส้นทางที่เหมาะสมเพื่อกำหนดเส้นทางโฮสต์ D, E และ F เป็น 192.168.200.0/24 ผ่านโฮสต์ A ซึ่งอนุญาตให้โฮสต์ D, E และ F ปิงโฮสต์ A โดยใช้ ที่อยู่สาธารณะหรือส่วนตัว แต่ไม่สามารถเข้าถึงที่อยู่ vxlan อื่น ๆ ได้ ด้วยเหตุผลบางประการ โฮสต์ A ไม่ส่งต่อทราฟฟิกไปยังซับเน็ต vxlan (ไม่เช่นนั้นการตอบกลับจะไม่ถูกส่งกลับออกไป)
วิธีที่ดีที่สุดในการตั้งค่าการกำหนดเส้นทางเลเยอร์ 3 เข้า / ออกจากซับเน็ต vxlan คืออะไร