นี่คือสิ่งที่ฉันคิดออก (ตอบคำถามของฉันเอง):
ทำไม Azure ถึงทำเช่นนี้?
ทำไม:
Azure แตกต่างจากเครือข่ายทางกายภาพตรงที่ Azure ได้รับประโยชน์จากการบันทึกระบบและอินเทอร์เฟซเครือข่ายทั้งหมดในสภาพแวดล้อม
ในเครือข่ายทางกายภาพ "Address Resolution Protocol" เช่น ARP เป็นโปรโตคอลที่ใช้การแพร่สัญญาณสำหรับการค้นหาเครื่องในโดเมนการแพร่ภาพหรือสภาพแวดล้อม L2 ที่ "เชื่อมต่อภายในเครื่อง" สิ่งนี้จำเป็นเท่านั้นเนื่องจากไม่มีบันทึกกลาง
Azure ทำงานโดยไม่มีการออกอากาศ มีประสิทธิภาพมากกว่าและไม่จำเป็นเมื่อคุณรู้จักเครื่องทั้งหมดในซับเน็ตแล้ว
มันกำหนดเส้นทางแพ็กเก็ตที่ L3 ได้อย่างไร:
สำหรับปัญหาการกำหนดเส้นทาง Azure กำลังสังเกตแพ็กเก็ตทั้งหมดที่ออกจากอลิซ และส่งไปยังบ็อบโดยไม่คำนึงถึงเส้นทางเริ่มต้นของระบบปฏิบัติการ ไม่สำคัญว่าแพ็คเก็ตที่กำหนดไว้สำหรับ 10.0.2.5 จะถูกส่งไปยัง 10.0.1.4 เพื่อกำหนดเส้นทางหรือไม่ ทิศทาง L2 นั้นจะใช้ ARP ซึ่งใช้ไม่ได้ที่นี่ แทนที่ vnet จะควบคุม L3 อย่างสมบูรณ์ ด้วยประเภทเส้นทาง Azure "vnet local" ในตารางเส้นทางที่มีประสิทธิภาพ แพ็กเก็ตจะถูกส่งตรงไปยัง Bob ไม่ว่าจะอยู่ในซับเน็ตเดียวกันหรือไม่ก็ตาม
"vnet local" สำหรับช่วงที่อยู่ของ vnet เป็นค่าเริ่มต้นใน Azure ต้องแทนที่เส้นทางนี้ใน UDR ของซับเน็ตเพื่อให้แพ็กเก็ตถูกส่งไปยัง "เราเตอร์"
ควรทำอย่างไร?
ตารางเส้นทางท้องถิ่นบน VMs เกือบจะไม่สนใจ (คุณยังคงต้องคำนึงถึงอินเทอร์เฟซที่แพ็กเก็ตเปิดอยู่ เนื่องจากสิ่งนี้ส่งผลต่อเครือข่ายย่อยที่ปรากฏและตารางเส้นทางที่ใช้)
เนื่องจาก L2 เป็นแบบ unicast, L3 อนุญาตปลายทางภายนอกเครือข่ายย่อย และตารางเส้นทาง Azure ถูกนำไปใช้กับเครือข่ายย่อย จึงสามารถออกแบบที่แตกต่างไปจากเดิมอย่างสิ้นเชิงได้
"ควร" ไม่ชัดเจน แต่นี่คือสิ่งที่ฉันทำ
สังเกตว่าเราเตอร์กำลังกำหนดเส้นทางระหว่างสองเครือข่ายย่อยที่มี ไม่มีอินเทอร์เฟซในเครือข่ายย่อยเหล่านั้น.