(ข้าม: การแลกเปลี่ยนสแต็กเครือข่าย)
ฉันมีการตั้งค่าด้วย Proxmox ที่เชื่อมต่อผ่าน WiFi ทุกอย่างใช้งานได้กับความต้องการของฉันและการเชื่อมต่อ IPv4 ด้วย
ตอนนี้ ฉันต้องการดูว่าเป็นไปได้หรือไม่ที่จะตั้งค่า DHCPv6 เพื่อให้เครื่องเสมือนของฉันมีที่อยู่ IPv6 ด้วย ฉันต้องการการตั้งค่าที่ไม่มี NAT แต่ไม่จำเป็นว่าต้องเป็นเช่นนั้น
ฉันกำลังพิจารณาตัวเลือกสองสามข้อสำหรับการเชื่อมต่อ IPv6:
- มอบฉันทะ กปปส. อันนี้รู้สึกว่ามัน "โปร่งใส" ที่สุด และฉันจะได้รับที่อยู่ IPv6 สาธารณะจากเครือข่ายเดียวกันกับโฮสต์ ซึ่งเป็นเครือข่ายหลัก abcd:abcd:abcd:FFFF::/64
- เครือข่าย DHCPv6 เราเตอร์ของฉันมี DHCPv6 ฉันอาจทำให้อินสแตนซ์ Proxmox ร้องขอเครือข่ายเพื่อใช้สำหรับบริดจ์ภายในได้ (โดยใช้การมอบหมายคำนำหน้า) ขณะนี้ฉันใช้ dnsmasq สำหรับที่อยู่ IPv4 ของเครื่องเสมือน แต่ฉันเชื่อว่าฉันสามารถแทนที่ด้วยสิ่งอื่นได้
- แนท ฉันไม่ต้องการตัวเลือกนี้ แต่ฉันก็จะไม่ปฏิเสธอย่างสมบูรณ์เช่นกัน
เหตุผลที่ฉันไม่สามารถเชื่อมต่อสะพาน Proxmox ในโหมดบริดจ์กับ LAN ของฉันได้ (ซึ่งจะทำให้สิ่งต่าง ๆ ง่ายขึ้นอย่างมาก) เป็นข้อเท็จจริงที่ว่าฉันไม่สามารถเชื่อมต่อแบบมีสายได้ ดังนั้นฉันจึงต้องใช้ WiFi (โชคดีที่อย่างน้อยก็เป็น 5 GHz และส่วนใหญ่ไม่ต้องการทราฟฟิกมากนัก) และไคลเอนต์ WiFi ไม่รองรับบริดจ์
ดังนั้นนี่คือคำขอคำแนะนำของฉัน ขอบคุณล่วงหน้า.
แก้ไข: มาที่คำนำหน้าการมอบอำนาจเป็นทางเลือกของฉัน ยังไม่สามารถจัดการให้เสร็จสิ้นได้ ตอนนี้สำหรับปัญหา:
- ฉันได้รับการมอบหมายคำนำหน้า IPv6 เซิร์ฟเวอร์ Proxmox ได้รับ /62
- บนเซิร์ฟเวอร์ที่ฉันเปิดใช้งาน radvd มีการโฆษณาไปยัง LAN ภายในของ VM อย่างถูกต้อง
- VM ซึ่งเป็น Ubuntu 20.04 พร้อม NetworkManager กำลังได้รับการโฆษณาเราเตอร์และแม้กระทั่งการกำหนดค่าเส้นทางเริ่มต้นโดยอัตโนมัติ อย่างไรก็ตาม มันไม่ได้กำหนดค่าที่อยู่ IPv6 โดยอัตโนมัติ ซึ่งนำไปสู่ปัญหาที่ไม่คาดคิดของ "ปลายทางไม่สามารถเข้าถึงได้: เกินขอบเขตของที่อยู่ต้นทาง" เมื่อพยายาม ping ที่อยู่ IPv6 ถ้าฉันทำ "ip a a dev ens18 2001:db8:facb:9876::23:2918/62" ด้วยตนเอง มันใช้งานได้ (เส้นทางคือ 2001:db8:facb:9874::/62 บวกกับเส้นทางเริ่มต้น)
เอาต์พุต radvdump:
{
AdvSendAdvert on;
# หมายเหตุ: {Min,Max}RtrAdvInterval ไม่สามารถรับได้ด้วย radvdump
ปิด AdvManagedFlag;
ปิด AdvOtherConfigFlag;
AdvReachableTime 0;
AdvRetransTimer 0;
AdvCurHopLimit 64;
AdvDefaultLifetime 300;
ปิด AdvHomeAgentFlag;
สื่อ AdvDefaultPreference;
AdvSourceLLAddress บน;
คำนำหน้า fde1:d59a:7fa7:8::/62
{
AdvValidLifetime 86400;
AdvPreferredLifetime 14400;
AdvOnLink บน;
Adv อัตโนมัติบน;
AdvRouterAddr บน;
}; #สิ้นสุดคำนำหน้านิยาม
คำนำหน้า 2001:db8:facb:9874::/62
{
AdvValidLifetime 86400;
AdvPreferredLifetime 14400;
AdvOnLink บน;
Adv อัตโนมัติบน;
AdvRouterAddr บน;
}; #สิ้นสุดคำนำหน้านิยาม
คำนำหน้า fde1:d59a:7fa7:8::/62
{
AdvValidLifetime 86400;
AdvPreferredLifetime 14400;
AdvOnLink บน;
Adv อัตโนมัติบน;
AdvRouterAddr บน;
}; #สิ้นสุดคำนำหน้านิยาม
คำนำหน้า 2001:db8:facb:9874::/62
{
AdvValidLifetime 86400;
AdvPreferredLifetime 14400;
AdvOnLink บน;
Adv อัตโนมัติบน;
AdvRouterAddr บน;
}; #สิ้นสุดคำนำหน้านิยาม
เส้นทาง ::/0
{
สื่อ AdvRoutePreference;
AdvRouteLifetime 300;
}; #สิ้นสุดการนิยามเส้นทาง
}; # สิ้นสุดคำจำกัดความของอินเตอร์เฟส
การกำหนดค่า RADVD:
อินเทอร์เฟซ vmbr0 {
AdvSendAdvert on;
MinRtrAdvInterval 30;
MaxRtrAdvInterval 100;
AdvSourceLLAddress บน;
คำนำหน้า ::/64 {
AdvOnLink บน;
Adv อัตโนมัติบน;
AdvRouterAddr บน;
Base6อินเทอร์เฟซ vmbr0;
};
เส้นทาง ::/0 {
};
};
(vmbr0 มีการกำหนดค่าที่อยู่ IPv6 อย่างถูกต้อง)