Score:0

ไคลเอนต์ Wireguard และเปลี่ยนเส้นทางการรับส่งข้อมูล VPN ไปยัง ETH

ธง gw

ฉันมีโครงการที่จะสร้างไซต์ไปยังไซต์ VPN ด้วย wireguard และ Raspberry Pi 4 สองตัว

ไซต์ A- UniFi UDM PRO - เซิร์ฟเวอร์ Raspberry Pi WG ------ ไคลเอนต์ Site B UDM PRO Raspberry Pi WG

Pi มี NIC เพียงอันเดียว แต่ฉันคิดว่านั่นจะไม่เป็นปัญหาสำหรับเซิร์ฟเวอร์ สำหรับลูกค้า ฉันซื้อ NIC เพิ่มเติม (เหนือหมวกของ Pi)

ฉันเปลี่ยนเส้นทางการเชื่อมต่อ VPN ได้ไหม (อุโมงค์เต็ม) ดังนั้นหากไคลเอนต์กำลังเชื่อมต่อพอร์ตอีเธอร์เน็ตที่สองของ Raspberry Pi ได้รับเฉพาะการเชื่อมต่อ WG VPN (และ IP จากไซต์ A)

Score:2
ธง th

เมื่อเชื่อมต่อกับเซิร์ฟเวอร์ Wireguard บนเครื่อง Linux ของคุณ อินเทอร์เฟซเครือข่ายใหม่จะปรากฏขึ้น และทราฟฟิกทั้งหมดจะถูกส่งผ่าน

โดยปกติแล้ว ในการเชื่อมต่อสองอินเทอร์เฟซเข้าด้วยกัน คุณเพียงแค่ตั้งค่าบริดจ์และเชื่อมต่ออินเทอร์เฟซทั้งสองเข้าด้วยกันอย่างง่ายดาย

อย่างไรก็ตาม Bridges ทำงานบน OSI Layer-2 (เฟรมการส่งต่อซึ่งถูกส่งไปยังที่อยู่ MAC ปลายทาง) ในขณะที่ Wireguard เป็นโปรโตคอล Layer-3 (การส่งต่อแพ็กเก็ต IP ด้วยที่อยู่ IP ปลายทาง) (ข้อมูลเพิ่มเติม).

ดังนั้นคุณจึงไม่สามารถเชื่อมต่ออินเทอร์เฟซที่ทำงานบน L3 ด้วยบริดจ์ได้ คุณจึงมีหลายทางเลือก:

  1. ใช้อุโมงค์ VPN Layer-2 (เช่น L2TP+IPSec) พร้อมความยุ่งยากในการกำหนดค่าที่เกิดขึ้น
  2. ตั้งค่า Raspberry Pi เป็นพร็อกซีถุงเท้าที่ส่งสัญญาณการรับส่งข้อมูลไปยัง Wireguard และเชื่อมต่ออินเทอร์เน็ตเต็มรูปแบบกับอุปกรณ์ที่เชื่อมต่อ นี่หมายถึงการจราจร จะไม่ ผ่าน VPN เป็นค่าเริ่มต้น ซึ่งมักจะไม่ใช่สิ่งที่คุณต้องการ
  3. ตั้งค่า Raspberry Pi เป็นเราเตอร์เกตเวย์และส่งต่อแพ็กเก็ต IP ไปยัง VPN:

เพื่อให้บรรลุเป้าหมายนี้ คุณต้องมีสิ่งต่อไปนี้:

  • เปิดใช้งานการส่งต่อแพ็กเก็ตบนไคลเอนต์ Pi (set net.ipv4.ip_forward=1 ใน /etc/sysctl.conf และปรับปรุงด้วย sysctl -p
  • ตั้งค่า NAT บนไคลเอนต์ Pi ระหว่างอินเทอร์เฟซทั้งสอง สิ่งนี้จะส่งต่อแพ็กเก็ตจากซับเน็ต WG ของคุณ (เช่น 10.0.0.0/24 ไปยังเครือข่ายย่อยใหม่ Raspberry Pi ของคุณจะดูแลและคุณตั้งค่าในเซิร์ฟเวอร์ DHCP (เช่น 10.10.0.0/24). มีหลายวิธีในการกำหนดค่านี้ แต่ในปี 2022 คุณควรตั้งค่าโดยใช้ Ubuntu เน็ตแพลน ลอง ซึ่งช่วยให้คุณกำหนดค่าเครือข่ายทั้งหมดเหล่านี้ด้วยไฟล์ YAML ได้อย่างง่ายดาย มี ตัวอย่าง บนเว็บไซต์ของ Netplan บรรลุสิ่งนี้อย่างแน่นอน
  • ตั้งค่า raspberry pi เป็นเซิร์ฟเวอร์ DHCP (เพื่อให้การกำหนดค่า IP เป็นไปโดยอัตโนมัติและอุปกรณ์ที่ไม่มีการกำหนดค่าด้วยตนเองจะมีการส่งต่อทราฟฟิกด้วย): ตั้งค่า ตัวเลือกเราเตอร์ yourRaspberryPisWireguardIP; ใน /etc/dhcp/dhcpd.conf และเลือกเครือข่ายย่อยใหม่เพื่อกำหนดที่อยู่ IP ให้กับลูกค้า แนะนำ. คุณควรเตรียมตัวให้พร้อม isc-dhcp-เซิร์ฟเวอร์ เล่นดีกับ เน็ตแพลน. นี้ คำตอบ askubuntu ทำอย่างนั้น
  • โปรดจำไว้ว่าการใช้ Netplan อาจจะแทนที่การตั้งค่าเครือข่าย Wg-Quick ของคุณ แต่นั่นไม่ใช่ปัญหา แค่ เพิ่มการกำหนดค่าไคลเอนต์ WG ของคุณ ในไฟล์ Netplan เดียวกันนั้นในไฟล์ อุโมงค์: ส่วน.
  • คุณอาจต้องการตั้งค่าเซิร์ฟเวอร์ DNS บน Raspberry Pi ที่ชี้ไปที่ DNS เซิร์ฟเวอร์ WG ของคุณเพื่อหลีกเลี่ยงการรั่วไหล

อย่างที่คุณอาจเดาได้ ด้วยวิธีการสุดท้ายนี้ ไคลเอนต์ทั้งหมดที่เชื่อมต่อกับราสเบอร์รี่ของคุณดูเหมือนจะมาจาก IP ไคลเอ็นต์เดียวกัน (ของ Raspberry ของคุณ) เนื่องจาก NAT คุณอาจเปลี่ยนสิ่งนี้ได้ (การกำหนดค่าเซิร์ฟเวอร์ของ Wireguard IP ที่อนุญาต สามารถตั้งค่าเป็นช่วงได้ แต่ฉันไม่แน่ใจว่าจะบรรลุได้อย่างไร


TLDR: กำหนดค่าอุโมงค์ไคลเอนต์ wg โดยใช้ Netplan. ติดตั้ง NAT โดยใช้ Netplan ระหว่างอินเทอร์เฟซไคลเอนต์ WG และอีเธอร์เน็ตรองที่คุณวางแผนจะเปิดไคลเอ็นต์ของคุณ ตั้งค่า ก เซิร์ฟเวอร์ DHCP บน pi ของคุณบนซับเน็ตแยกต่างหากสำหรับลูกค้าของคุณ โดยพื้นฐานแล้ว สร้างเราเตอร์ของคุณเอง.

Kevin avatar
gw flag
ขอบคุณมากสำหรับข้อมูลโดยละเอียดทั้งหมด นี่คือสิ่งที่ฉันกำลังมองหา

โพสต์คำตอบ

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