Score:1

VXLAN L3 บน Wireguard L3 พร้อมการทำแผนที่ VLAN-VNI

ธง in

หวังว่านี่จะถูกที่ - เดิมทีฉันเคยโพสต์ไว้ที่ Network Engineering แต่ถูกปิดและชี้ไปที่ Server Fault

ขณะนี้ฉันกำลังพยายามตั้งค่าบริดจ์ L2 ระหว่างสองไซต์โดยใช้ VXLAN เพื่อให้การเชื่อมต่อ L2 และ Wireguard เป็นการขนส่ง/L3 ก่อนหน้านี้ฉันเคยทำเลเยอร์ 2 บริดจ์แบบนี้โดยใช้ GRE ผ่าน Wireguard และมันก็แข็งแกร่ง แต่ตอนนี้ฉันกำลังพยายามทำความเข้าใจ VXLAN ให้ดีขึ้น และกำลังมองหาที่จะแทนที่อุโมงค์ GRE ด้วย VXLAN

ฉันพยายามใช้ประโยชน์จากข้อมูลทั้งสองอย่าง ที่นี่ และ ที่นี่ แต่สำหรับชีวิตของฉัน ฉันไม่สามารถรับทราฟฟิกเพื่อส่งผ่าน IP ที่ไม่ใช่ wireguard ระหว่างไซต์ได้

ฉันมีเครื่อง Debian สองเครื่องที่ติดตั้งบริดจ์ยูทิล พวกเขายังเรียกใช้ nftables ด้วยกฎเพื่อลดทราฟฟิก DHCP ทั้งหมด เนื่องจากเมื่อฉันตั้งค่าอุโมงค์ GRE ครั้งแรก ฉันลงเอยด้วยเครื่องที่ได้รับ IP ที่กำหนดจากเครือข่ายระยะไกล แต่ทุกอย่างถูกตั้งค่าให้อนุญาตและเปิดเผยภายนอกผ่านพอร์ต Wireguard เท่านั้น

โฮสต์ A ตั้งค่าด้วย:

ไวร์การ์ด wg0 - 172.30.100.1/24
สะพาน br0 - 10.0.0.160/24

โฮสต์ B ตั้งค่าด้วย:

ไวร์การ์ด wg0 - 172.30.100.2/24
สะพาน br0 - 10.1.0.160/24

เดอะ IP ที่อนุญาต ในการกำหนดค่า Wireguard นั้นใช้สำหรับเครือข่ายย่อยของ Wireguard เท่านั้น 172.30.100.0/24. สิ่งนี้ใช้ได้กับการกำหนดค่า GRE และฉันคิดว่าจะทำงานกับ VXLAN ได้เช่นกัน เนื่องจากทราฟฟิก VXLAN ถูกห่อหุ้มภายในอุโมงค์ Wireguard โฮสต์สามารถ ping และ ssh ซึ่งกันและกันบน IP ของ Wireguard ดังนั้นบิตนั้นจึงทำงานได้ดี

สะพานทั้งสองมีท่าเรือ ens18, bridge-vlan-aware ใช่ และ บริดจ์-วิดีโอ 1-4096 ใน /etc/network/interfaces

ฉันมีสคริปต์ที่อ้างอิงจาก 'Recipe 2' จากลิงก์แรกที่ฉันโพสต์ด้านบน เช่น อุโมงค์เดียวที่มี VNI หลายอัน แนวคิดคือสคริปต์เพิ่มอินเทอร์เฟซ VXLAN vx0 ถึง br0ซึ่งรอจนกระทั่งหลังจากนั้น wg0 ขึ้น (โดยใช้บริการ systemd) จากนั้นวนซ้ำเพื่อทำการแมป VLAN/VNI

#!/bin/bash

# รับที่อยู่ IP ของอินเตอร์เฟส Wireguard
wgip=`ip a s wg0 | egrep -o 'inet [0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3 }' | ตัด -d' ' -f2`

ip link เพิ่ม vx0 ประเภท vxlan dstport 4789 ภายนอก $wgip dev wg0 # สร้าง vxlan ด้วย wg0 IP เป็นโลคัล
#ตรงนี้อาจจะผิดไปบ้างแต่ลองมาหลายชุดแล้ว^^^

นอน1
ip link set dev vx0 master br0 # เพิ่ม vxlan ให้กับบริดจ์
ลิงค์บริดจ์ตั้งค่า dev vx0 vlan_tunnel บน # เปิดใช้งาน vlan tunnel บน vxlan

# แมปแต่ละ VLAN กับ VNIs ข้ามอุโมงค์
สำหรับ vlan ใน 10 20 30; ทำ
        บริดจ์ vlan เพิ่ม vid $vlan dev vx0
        บริดจ์ vlan เพิ่ม vid $vlan dev ens18
        บริดจ์ vlan เพิ่ม dev vx0 vid $vlan tunnel_info id $vlan

# คิดว่าฉันสามารถลบบรรทัดด้านล่างได้หรือไม่หากฉันเปลี่ยนไปใช้ BGP-EVPN เพื่อเรียนรู้ในภายหลัง
บริดจ์ fdb ต่อท้าย 00:00:00:00:00:00 dev vx0 vni $vlan dst 10.1.0.160

เสร็จแล้ว

ลิงค์ ip ตั้งค่า dev vx0 ขึ้น

ฉันอาจมาผิดทางโดยสิ้นเชิงที่นี่ แต่ถ้ามีสิ่งใดที่ผิดไปจากข้างต้น คำแนะนำใด ๆ ในทิศทางที่ถูกต้องจะได้รับการชื่นชมอย่างมาก!

(อาจเป็นเพียงแค่การกำหนดเส้นทางแทนที่จะเป็นการกำหนดค่า Wireguard config ถูกตั้งค่าเป็น Table=off ซึ่งฉันทำในการกำหนดค่า GRE/WG)

อัปเดต ดูเหมือนว่า ภายนอก ธงใน vx0 ไลน์อัพทำให้เกิดดราม่า หากฉันเปลี่ยนเป็นด้านล่าง และเปลี่ยนรายการ FDB แบบคงที่เป็นรีโมตด้วย wg0 IP มากกว่าระยะไกล ens18 IP ฉันสามารถ ping โฮสต์ไปยังโฮสต์:

ลิงค์ ip เพิ่มประเภท vx0 vxlan dstport 4789 vni 1,000 โลคัล $wgip dev wg0

จากนั้นดูเหมือนว่าการรับส่งข้อมูลที่ไม่ได้ติดแท็กจะผ่าน VNI 1000 และ VID 10, 20 และ 30 จะถูกแมปกับ VNI ที่เกี่ยวข้อง

อะไร ภายนอก ตั้งค่าสถานะว่าจะป้องกันไม่ให้การกำหนดค่าดั้งเดิมทำงานหรือไม่ ไม่มีการแมปที่ชัดเจนของ VID 1 หรือไม่

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา