ระบบอัตโนมัติสำหรับลูกน้อย ส่วนที่หนึ่ง (ซึ่งอยู่หลังศูนย์) การจำลองเสมือนเครือข่าย

В ฉบับที่แล้ว ฉันอธิบายกรอบการทำงานอัตโนมัติของเครือข่าย ตามที่บางคนกล่าวไว้ แม้แต่แนวทางแรกในการแก้ปัญหานี้ก็สามารถตอบคำถามบางข้อได้แล้ว และสิ่งนี้ทำให้ฉันมีความสุขมาก เพราะเป้าหมายของเราในวงจรนี้ไม่ใช่การปกปิด Ansible ด้วยสคริปต์ Python แต่เป็นการสร้างระบบ

กรอบเดียวกันนี้กำหนดลำดับที่เราจะจัดการกับคำถาม
และการจำลองเสมือนของเครือข่ายซึ่งปัญหานี้จัดทำขึ้นโดยเฉพาะนั้นไม่เหมาะกับหัวข้อ ADSM ที่เราวิเคราะห์ระบบอัตโนมัติเป็นพิเศษ

แต่ลองมองจากมุมที่ต่างออกไป

บริการหลายอย่างใช้เครือข่ายเดียวกันมาเป็นเวลานาน ในกรณีของผู้ให้บริการโทรคมนาคม ได้แก่ 2G, 3G, LTE, บรอดแบนด์ และ B2B เป็นต้น ในกรณีของ DC: การเชื่อมต่อสำหรับไคลเอนต์ที่แตกต่างกัน, อินเทอร์เน็ต, Block Storage, Object Storage

และบริการทั้งหมดต้องแยกจากกัน นี่คือลักษณะที่เครือข่ายซ้อนทับปรากฏขึ้น

และบริการทั้งหมดไม่ต้องการรอให้บุคคลกำหนดค่าด้วยตนเอง นี่คือลักษณะของผู้เรียบเรียงและ SDN

แนวทางแรกในการใช้ระบบอัตโนมัติอย่างเป็นระบบของเครือข่ายหรือบางส่วนได้ถูกนำมาใช้และนำไปใช้มานานแล้วในหลาย ๆ ที่: VMWare, OpenStack, Google Compute Cloud, AWS, Facebook

นั่นคือสิ่งที่เราจะจัดการกับวันนี้

ระบบอัตโนมัติสำหรับลูกน้อย ส่วนที่หนึ่ง (ซึ่งอยู่หลังศูนย์) การจำลองเสมือนเครือข่าย

Содержание

  • สาเหตุ
  • คำศัพท์
  • ด้านล่าง - เครือข่ายทางกายภาพ
  • โอเวอร์เลย์ - เครือข่ายเสมือน
    • การซ้อนทับด้วย ToR
    • ซ้อนทับจากโฮสต์
    • โดยใช้ผ้าทังสเตนเป็นตัวอย่าง
      • การสื่อสารภายในเครื่องทางกายภาพเครื่องเดียว
      • การสื่อสารระหว่าง VM ที่อยู่บนเครื่องฟิสิคัลที่แตกต่างกัน
      • ออกไปสู่โลกภายนอก

  • คำถามที่พบบ่อย
  • ข้อสรุป
  • ลิงค์ที่มีประโยชน์

สาเหตุ

และเนื่องจากเรากำลังพูดถึงเรื่องนี้ จึงคุ้มค่าที่จะกล่าวถึงข้อกำหนดเบื้องต้นสำหรับการจำลองเสมือนของเครือข่าย ในความเป็นจริง กระบวนการนี้ไม่ได้เริ่มต้นเมื่อวานนี้

คุณคงเคยได้ยินมากกว่าหนึ่งครั้งว่าเครือข่ายเป็นส่วนที่เฉื่อยที่สุดของระบบมาโดยตลอด และนี่คือความจริงในทุกแง่มุม เครือข่ายเป็นพื้นฐานที่ทุกอย่างพักอยู่และการเปลี่ยนแปลงเครือข่ายนั้นค่อนข้างยาก - บริการต่างๆ ไม่ยอมให้เกิดขึ้นเมื่อเครือข่ายล่ม บ่อยครั้งที่การเลิกใช้งานโหนดเดียวสามารถทำลายแอปพลิเคชันจำนวนมากและส่งผลกระทบต่อลูกค้าจำนวนมาก นี่เป็นสาเหตุส่วนหนึ่งที่ทีมเครือข่ายอาจต่อต้านการเปลี่ยนแปลงใดๆ - เพราะตอนนี้มันได้ผลแล้ว (เราอาจไม่รู้ด้วยซ้ำว่าต้องทำอย่างไร) แต่ที่นี่คุณต้องกำหนดค่าสิ่งใหม่และไม่รู้ว่าจะส่งผลต่อเครือข่ายอย่างไร

เพื่อไม่ให้รอให้เครือข่ายแทรก VLAN และไม่ลงทะเบียนบริการใด ๆ บนแต่ละโหนดเครือข่ายผู้คนจึงมีแนวคิดในการใช้โอเวอร์เลย์ - เครือข่ายโอเวอร์เลย์ - ซึ่งมีความหลากหลายมาก: GRE, IPinIP, MPLS, MPLS L2/L3VPN, VXLAN, GENEVE, MPLSoverUDP, MPLSoverGRE ฯลฯ

การอุทธรณ์ของพวกเขาอยู่ในสองสิ่งง่ายๆ:

  • มีการกำหนดค่าเฉพาะโหนดปลายเท่านั้น ไม่จำเป็นต้องแตะโหนดการขนส่ง สิ่งนี้จะช่วยเร่งกระบวนการได้อย่างมากและบางครั้งก็ช่วยให้คุณสามารถแยกแผนกโครงสร้างพื้นฐานเครือข่ายออกจากกระบวนการแนะนำบริการใหม่ได้อย่างสมบูรณ์
  • โหลดถูกซ่อนอยู่ลึกเข้าไปในส่วนหัว - โหนดการขนส่งไม่จำเป็นต้องรู้อะไรเกี่ยวกับโหลดนั้น เกี่ยวกับการระบุที่อยู่บนโฮสต์ หรือเกี่ยวกับเส้นทางของเครือข่ายโอเวอร์เลย์ ซึ่งหมายความว่าคุณต้องจัดเก็บข้อมูลในตารางน้อยลง ซึ่งหมายถึงการใช้อุปกรณ์ที่ง่ายกว่า/ถูกกว่า

ในประเด็นที่ไม่ครอบคลุมทั้งหมดนี้ ฉันไม่ได้วางแผนที่จะวิเคราะห์เทคโนโลยีที่เป็นไปได้ทั้งหมด แต่อธิบายกรอบการทำงานของเครือข่ายโอเวอร์เลย์ใน DC แทน

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

อุปกรณ์นี้ใช้งานเครื่องเสมือน/คอนเทนเนอร์/ไร้เซิร์ฟเวอร์ที่ใช้บริการ

ระบบอัตโนมัติสำหรับลูกน้อย ส่วนที่หนึ่ง (ซึ่งอยู่หลังศูนย์) การจำลองเสมือนเครือข่าย

คำศัพท์

ในลักษณะวนซ้ำ เซิร์ฟเวอร์ ฉันจะตั้งชื่อโปรแกรมที่ใช้ฝั่งเซิร์ฟเวอร์ของการสื่อสารไคลเอนต์-เซิร์ฟเวอร์

เครื่องทางกายภาพในชั้นวางเรียกว่าเซิร์ฟเวอร์ ไม่ เราจะ.

เครื่องทางกายภาพ — คอมพิวเตอร์ x86 ติดตั้งอยู่ในชั้นวาง คำที่ใช้บ่อยที่สุด เจ้าภาพ. นั่นคือสิ่งที่เราจะเรียกมันว่า "เครื่อง" หรือ เจ้าภาพ.

ไฮเปอร์ไวเซอร์ - แอปพลิเคชันที่ทำงานบนเครื่องจริงที่จำลองทรัพยากรทางกายภาพที่เครื่องเสมือนทำงาน บางครั้งในวรรณคดีและอินเทอร์เน็ต คำว่า "ไฮเปอร์ไวเซอร์" ถูกใช้เป็นคำพ้องความหมายสำหรับ "โฮสต์"

เครื่องเสมือน - ระบบปฏิบัติการที่ทำงานบนเครื่องจริงที่ด้านบนของไฮเปอร์ไวเซอร์ สำหรับเราในรอบนี้ มันไม่สำคัญว่าจริงๆ แล้วจะเป็นเครื่องเสมือนหรือแค่คอนเทนเนอร์ เรียกมันว่า "VM«

ผู้เช่า เป็นแนวคิดกว้างๆ ที่ฉันจะนิยามในบทความนี้ว่าเป็นบริการแยกต่างหากหรือไคลเอนต์แยกต่างหาก

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

ToR - สวิตช์ด้านบนของแร็ค - สวิตช์ที่ติดตั้งในชั้นวางซึ่งเครื่องฟิสิคัลทั้งหมดเชื่อมต่ออยู่

นอกเหนือจากโทโพโลยี ToR แล้ว ผู้ให้บริการหลายรายยังฝึกฝน End of Row (EoR) หรือ Middle of Row (แม้ว่าอย่างหลังจะเป็นสิ่งที่หายากและดูถูกเหยียดหยามและฉันไม่เคยเห็นตัวย่อ MoR เลย)

เครือข่ายอันเดอร์เลย์ หรือเครือข่ายพื้นฐานหรืออันเดอร์เลย์คือโครงสร้างพื้นฐานเครือข่ายทางกายภาพ: สวิตช์ เราเตอร์ สายเคเบิล

เครือข่ายซ้อนทับ หรือเครือข่ายซ้อนทับหรือซ้อนทับ - เครือข่ายเสมือนของอุโมงค์ที่ทำงานอยู่ด้านบนของเครือข่ายจริง

ผ้า L3 หรือผ้า IP - สิ่งประดิษฐ์ที่น่าทึ่งของมนุษยชาติที่ช่วยให้คุณหลีกเลี่ยงการทำซ้ำ STP และการเรียนรู้ TRILL สำหรับการสัมภาษณ์ แนวคิดที่เครือข่ายทั้งหมดจนถึงระดับการเข้าถึงเป็นแบบ L3 โดยเฉพาะ โดยไม่มี VLAN และโดเมนการออกอากาศแบบขยายขนาดใหญ่ตามลำดับ เราจะมาดูกันว่าคำว่า "โรงงาน" มาจากไหนในส่วนถัดไป

SDN - เครือข่ายที่กำหนดโดยซอฟต์แวร์ แทบไม่จำเป็นต้องมีการแนะนำตัว แนวทางการจัดการเครือข่ายที่การเปลี่ยนแปลงเครือข่ายไม่ได้กระทำโดยบุคคล แต่โดยโปรแกรม โดยทั่วไปหมายถึงการย้าย Control Plane นอกเหนือจากอุปกรณ์เครือข่ายปลายทางไปยังคอนโทรลเลอร์

NFV — Network Function Virtualization — การจำลองเสมือนของอุปกรณ์เครือข่าย โดยแนะนำว่าฟังก์ชั่นเครือข่ายบางอย่างสามารถทำงานในรูปแบบของเครื่องเสมือนหรือคอนเทนเนอร์เพื่อเร่งการให้บริการใหม่ ๆ จัดระเบียบ Service Chaining และความสามารถในการขยายแนวนอนที่ง่ายขึ้น

วีเอ็นเอฟ - ฟังก์ชั่นเครือข่ายเสมือน อุปกรณ์เสมือนเฉพาะ: เราเตอร์ สวิตช์ ไฟร์วอลล์ NAT, IPS/IDS ฯลฯ

ระบบอัตโนมัติสำหรับลูกน้อย ส่วนที่หนึ่ง (ซึ่งอยู่หลังศูนย์) การจำลองเสมือนเครือข่าย

ตอนนี้ฉันกำลังจงใจทำให้คำอธิบายง่ายขึ้นเพื่อการใช้งานที่เฉพาะเจาะจง เพื่อไม่ให้ผู้อ่านสับสนมากเกินไป หากต้องการอ่านอย่างมีวิจารณญาณมากขึ้น ฉันแนะนำให้เขาอ่านหัวข้อนี้ การอ้างอิง. นอกจากนี้ Roma Gorge ซึ่งวิพากษ์วิจารณ์บทความนี้เกี่ยวกับความไม่ถูกต้องสัญญาว่าจะเขียนประเด็นแยกต่างหากเกี่ยวกับเทคโนโลยีการจำลองเสมือนของเซิร์ฟเวอร์และเครือข่ายในเชิงลึกและใส่ใจในรายละเอียดมากขึ้น

เครือข่ายส่วนใหญ่ในปัจจุบันสามารถแบ่งออกเป็นสองส่วนอย่างชัดเจน:

หนุน — เครือข่ายทางกายภาพที่มีการกำหนดค่าที่เสถียร
วางซ้อน — สิ่งที่เป็นนามธรรมเหนือ Underlay สำหรับการแยกผู้เช่า

นี่เป็นเรื่องจริงทั้งสำหรับกรณีของ DC (ซึ่งเราจะวิเคราะห์ในบทความนี้) และสำหรับ ISP (ซึ่งเราจะไม่วิเคราะห์เนื่องจากได้ดำเนินการไปแล้ว SDSM). แน่นอนว่าด้วยเครือข่ายองค์กร สถานการณ์จะแตกต่างออกไปบ้าง

รูปภาพโดยเน้นที่เครือข่าย:

ระบบอัตโนมัติสำหรับลูกน้อย ส่วนที่หนึ่ง (ซึ่งอยู่หลังศูนย์) การจำลองเสมือนเครือข่าย

หนุน

Underlay คือเครือข่ายทางกายภาพ: สวิตช์ฮาร์ดแวร์และสายเคเบิล อุปกรณ์ที่อยู่ใต้ดินรู้วิธีเข้าถึงเครื่องจักรทางกายภาพ

ระบบอัตโนมัติสำหรับลูกน้อย ส่วนที่หนึ่ง (ซึ่งอยู่หลังศูนย์) การจำลองเสมือนเครือข่าย

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

แต่คนอย่าง Google สามารถพัฒนาสวิตช์ของตัวเองและละทิ้งโปรโตคอลที่ยอมรับโดยทั่วไปได้ แต่ LAN_DC ไม่ใช่ Google

ส่วนล่างมีการเปลี่ยนแปลงค่อนข้างน้อยเนื่องจากงานคือการเชื่อมต่อ IP พื้นฐานระหว่างเครื่องจริง Underlay ไม่รู้อะไรเลยเกี่ยวกับบริการ ลูกค้า หรือผู้เช่าที่ทำงานอยู่บนนั้น เพียงแต่ต้องส่งแพ็คเกจจากเครื่องหนึ่งไปยังอีกเครื่องหนึ่งเท่านั้น
รองพื้นอาจเป็นดังนี้:

  • IPv4+OSPF
  • IPv6+ISIS+BGP+L3VPN
  • L2+ทริล
  • L2+STP

เครือข่าย Underlay ได้รับการกำหนดค่าด้วยวิธีคลาสสิก: CLI/GUI/NETCONF

ด้วยตนเอง สคริปต์ ยูทิลิตี้ที่เป็นกรรมสิทธิ์

บทความถัดไปในชุดนี้จะกล่าวถึงรายละเอียดเพิ่มเติมโดยเฉพาะ

วางซ้อน

Overlay เป็นเครือข่ายเสมือนของอุโมงค์ที่ทอดยาวไปด้านบนของ Underlay ช่วยให้ VM ของไคลเอนต์หนึ่งสามารถสื่อสารระหว่างกัน ในขณะเดียวกันก็แยกจากไคลเอนต์อื่น ๆ

ข้อมูลไคลเอ็นต์ถูกห่อหุ้มไว้ในส่วนหัวของช่องสัญญาณบางส่วนสำหรับการส่งข้อมูลผ่านเครือข่ายสาธารณะ

ระบบอัตโนมัติสำหรับลูกน้อย ส่วนที่หนึ่ง (ซึ่งอยู่หลังศูนย์) การจำลองเสมือนเครือข่าย

ดังนั้น VM ของไคลเอนต์หนึ่ง (บริการเดียว) สามารถสื่อสารระหว่างกันผ่าน Overlay ได้โดยไม่ต้องรู้ด้วยซ้ำว่าแพ็กเก็ตใช้เส้นทางใด

การวางซ้อนอาจเป็นเช่นที่ผมกล่าวไว้ข้างต้น:

  • อุโมงค์ GRE
  • วีเอ็กซ์แลน
  • EVPN
  • L3VPN
  • เจนีวา

โดยทั่วไปแล้วเครือข่ายโอเวอร์เลย์จะได้รับการกำหนดค่าและบำรุงรักษาผ่านตัวควบคุมส่วนกลาง จากนั้น การกำหนดค่า, Control Plane และ Data Plane จะถูกส่งไปยังอุปกรณ์ที่กำหนดเส้นทางและสรุปการรับส่งข้อมูลไคลเอ็นต์ เล็กน้อย ด้านล่าง ลองดูตัวอย่างนี้ด้วย

ใช่ นี่คือ SDN ในรูปแบบที่บริสุทธิ์ที่สุด

มีสองแนวทางที่แตกต่างกันโดยพื้นฐานในการจัดเครือข่ายโอเวอร์เลย์:

  1. การซ้อนทับด้วย ToR
  2. ซ้อนทับจากโฮสต์

การซ้อนทับด้วย ToR

การซ้อนทับสามารถเริ่มต้นที่สวิตช์การเข้าถึง (ToR) ที่ยืนอยู่ในชั้นวาง ดังที่เกิดขึ้น เช่น ในกรณีของแฟบริค VXLAN

นี่เป็นกลไกที่ผ่านการทดสอบตามเวลาบนเครือข่าย ISP และผู้จำหน่ายอุปกรณ์เครือข่ายทุกรายก็สนับสนุนกลไกนี้

อย่างไรก็ตาม ในกรณีนี้ สวิตช์ ToR จะต้องสามารถแยกบริการต่างๆ ตามลำดับ และผู้ดูแลระบบเครือข่ายจะต้องร่วมมือกับผู้ดูแลระบบเครื่องเสมือนในระดับหนึ่ง และทำการเปลี่ยนแปลง (แม้ว่าจะโดยอัตโนมัติ) กับการกำหนดค่าของอุปกรณ์ .

ระบบอัตโนมัติสำหรับลูกน้อย ส่วนที่หนึ่ง (ซึ่งอยู่หลังศูนย์) การจำลองเสมือนเครือข่าย

ที่นี่ฉันจะแนะนำผู้อ่านถึงบทความเกี่ยวกับ VxLAN บนฮาเบร เพื่อนเก่าของเรา @bormoglotx.
ในเรื่องนี้ การนำเสนอด้วย ENOG วิธีการสร้างเครือข่าย DC ด้วยแฟบริค EVPN VXLAN มีการอธิบายไว้โดยละเอียด

และเพื่อการดื่มด่ำกับความเป็นจริงอย่างสมบูรณ์ยิ่งขึ้น คุณสามารถอ่านหนังสือของ Tsiska ได้ Fabric ที่ทันสมัย ​​เปิดกว้าง และปรับขนาดได้: VXLAN EVPN.

ฉันทราบว่า VXLAN เป็นเพียงวิธีการห่อหุ้มเท่านั้น และการยกเลิกช่องสัญญาณสามารถเกิดขึ้นได้ไม่ใช่บน ToR แต่เกิดขึ้นบนโฮสต์ เช่นเดียวกับที่เกิดขึ้นในกรณีของ OpenStack เป็นต้น

อย่างไรก็ตาม VXLAN Fabric ซึ่งการซ้อนทับเริ่มต้นที่ ToR เป็นหนึ่งในการออกแบบเครือข่ายโอเวอร์เลย์ที่จัดตั้งขึ้น

ซ้อนทับจากโฮสต์

อีกวิธีหนึ่งคือการเริ่มต้นและสิ้นสุดช่องสัญญาณบนโฮสต์ปลายทาง
ในกรณีนี้ เครือข่าย (Underlay) ยังคงเรียบง่ายและคงที่ที่สุดเท่าที่จะเป็นไปได้
และโฮสต์เองก็ทำการห่อหุ้มที่จำเป็นทั้งหมด

ระบบอัตโนมัติสำหรับลูกน้อย ส่วนที่หนึ่ง (ซึ่งอยู่หลังศูนย์) การจำลองเสมือนเครือข่าย

แน่นอนว่าจะต้องมีการเรียกใช้แอปพลิเคชันพิเศษบนโฮสต์ แต่ก็คุ้มค่า

ประการแรก การเรียกใช้ไคลเอนต์บนเครื่อง Linux นั้นง่ายกว่าหรืออาจเป็นไปได้ด้วยซ้ำ ในขณะที่ใช้สวิตช์ คุณมักจะต้องหันไปใช้โซลูชัน SDN ที่เป็นกรรมสิทธิ์ ซึ่งทำลายแนวคิดของผู้จำหน่ายหลายราย

ประการที่สอง สวิตช์ ToR ในกรณีนี้สามารถปล่อยให้เรียบง่ายที่สุดเท่าที่จะเป็นไปได้ ทั้งจากมุมมองของ Control Plane และ Data Plane ที่จริงแล้ว ไม่จำเป็นต้องสื่อสารกับคอนโทรลเลอร์ SDN และยังไม่จำเป็นต้องจัดเก็บเครือข่าย/ARP ของไคลเอ็นต์ที่เชื่อมต่อทั้งหมด เพียงรู้ที่อยู่ IP ของเครื่องจริงก็เพียงพอแล้ว ซึ่งจะทำให้การสลับ/ ตารางเส้นทาง

ในซีรีย์ ADSM ฉันเลือกวิธีการโอเวอร์เลย์จากโฮสต์ - จากนั้นเราจะพูดถึงมันเท่านั้นและเราจะไม่กลับไปที่โรงงาน VXLAN

ง่ายที่สุดในการดูตัวอย่าง และในฐานะผู้ทดสอบ เราจะใช้แพลตฟอร์ม OpenSource SDN OpenContrail ซึ่งปัจจุบันรู้จักกันในชื่อ ผ้าทังสเตน.

ในตอนท้ายของบทความ ฉันจะให้ความคิดเกี่ยวกับการเปรียบเทียบกับ OpenFlow และ OpenvSwitch

โดยใช้ผ้าทังสเตนเป็นตัวอย่าง

แต่ละเครื่องทางกายภาพมี vเราเตอร์ - เราเตอร์เสมือนที่รู้เกี่ยวกับเครือข่ายที่เชื่อมต่ออยู่ และไคลเอนต์ที่เราเตอร์นั้นอยู่ - โดยพื้นฐานแล้วคือเราเตอร์ PE สำหรับไคลเอนต์แต่ละราย จะรักษาตารางเส้นทางแยกกัน (อ่าน VRF) และ vRouter ก็ทำการ Overlay tunneling จริงๆ

ข้อมูลเพิ่มเติมเล็กน้อยเกี่ยวกับ vRouter อยู่ท้ายบทความ

VM แต่ละตัวที่อยู่บนไฮเปอร์ไวเซอร์เชื่อมต่อกับ vRouter ของเครื่องนี้ผ่านทาง อินเตอร์เฟซแตะ.

TAP - Terminal Access Point - อินเทอร์เฟซเสมือนในเคอร์เนล linux ที่ช่วยให้สามารถโต้ตอบกับเครือข่ายได้

ระบบอัตโนมัติสำหรับลูกน้อย ส่วนที่หนึ่ง (ซึ่งอยู่หลังศูนย์) การจำลองเสมือนเครือข่าย

หากมีหลายเครือข่ายอยู่ด้านหลัง vRouter อินเทอร์เฟซเสมือนจะถูกสร้างขึ้นสำหรับแต่ละเครือข่ายซึ่งมีการกำหนดที่อยู่ IP - มันจะเป็นที่อยู่เกตเวย์เริ่มต้น
เครือข่ายทั้งหมดของไคลเอนต์หนึ่งจะรวมอยู่ในที่เดียว วีอาร์เอฟ (โต๊ะหนึ่ง) โต๊ะที่แตกต่างกัน - ลงในโต๊ะที่แตกต่างกัน
ฉันจะขอปฏิเสธที่นี่ว่าไม่ใช่ทุกอย่างจะง่ายนักและฉันจะส่งผู้อ่านที่อยากรู้อยากเห็นไปที่ท้ายบทความ.

เพื่อให้ vRouter สามารถสื่อสารระหว่างกันได้ และด้วยเหตุนี้ VM ที่อยู่ด้านหลังจึงแลกเปลี่ยนข้อมูลเส้นทางผ่าน ตัวควบคุม SDN.

ระบบอัตโนมัติสำหรับลูกน้อย ส่วนที่หนึ่ง (ซึ่งอยู่หลังศูนย์) การจำลองเสมือนเครือข่าย

ในการออกไปสู่โลกภายนอก มีจุดออกจากเมทริกซ์ - เกตเวย์เครือข่ายเสมือน วีเอ็นจีดับบลิว - เกตเวย์เครือข่ายเสมือน (เทอมของฉัน).

ระบบอัตโนมัติสำหรับลูกน้อย ส่วนที่หนึ่ง (ซึ่งอยู่หลังศูนย์) การจำลองเสมือนเครือข่าย

ตอนนี้เรามาดูตัวอย่างการสื่อสาร - แล้วจะมีความชัดเจน

การสื่อสารภายในเครื่องทางกายภาพเครื่องเดียว

VM0 ต้องการส่งแพ็กเก็ตไปยัง VM2 สมมติว่าตอนนี้เป็น VM ไคลเอ็นต์เดียว

ระนาบข้อมูล

  1. VM-0 มีเส้นทางเริ่มต้นไปยังอินเทอร์เฟซ eth0 พัสดุถูกส่งไปที่นั่น
    อินเทอร์เฟซ eth0 นี้เชื่อมต่อจริง ๆ กับเราเตอร์เสมือน vRouter ผ่านทางอินเทอร์เฟซ TAP tap0
  2. vRouter วิเคราะห์ว่าแพ็กเก็ตมาถึงอินเทอร์เฟซใด ซึ่งก็คือไคลเอ็นต์ใด (VRF) ที่แพ็กเก็ตนั้นอยู่ และตรวจสอบที่อยู่ของผู้รับด้วยตารางเส้นทางของไคลเอ็นต์นี้
  3. เมื่อตรวจพบว่าผู้รับบนเครื่องเดียวกันอยู่ในพอร์ตอื่น vRouter จะส่งแพ็กเก็ตไปโดยไม่มีส่วนหัวเพิ่มเติม ในกรณีนี้ vRouter มีรายการ ARP อยู่แล้ว

ระบบอัตโนมัติสำหรับลูกน้อย ส่วนที่หนึ่ง (ซึ่งอยู่หลังศูนย์) การจำลองเสมือนเครือข่าย

ในกรณีนี้ แพ็กเก็ตจะไม่เข้าสู่เครือข่ายฟิสิคัล - มันถูกกำหนดเส้นทางภายใน vRouter

เครื่องบินควบคุม

เมื่อเครื่องเสมือนเริ่มทำงาน ไฮเปอร์ไวเซอร์จะแจ้งว่า:

  • ที่อยู่ IP ของเธอเอง
  • เส้นทางเริ่มต้นคือผ่านที่อยู่ IP ของ vRouter บนเครือข่ายนี้

ไฮเปอร์ไวเซอร์รายงานไปยัง vRouter ผ่าน API พิเศษ:

  • สิ่งที่คุณต้องการเพื่อสร้างอินเทอร์เฟซเสมือน
  • จำเป็นต้องสร้างเครือข่ายเสมือน (VM) ประเภทใด
  • VRF (VN) ตัวไหนที่จะผูกมันไว้
  • รายการ ARP แบบคงที่สำหรับ VM นี้ ไม่ว่าจะเป็นที่อยู่ IP ของอินเทอร์เฟซใด และที่อยู่ MAC ใดที่เชื่อมโยงกับ

ขอย้ำอีกครั้งว่าขั้นตอนการโต้ตอบที่เกิดขึ้นจริงนั้นเรียบง่ายขึ้นเพื่อประโยชน์ในการทำความเข้าใจแนวคิด

ระบบอัตโนมัติสำหรับลูกน้อย ส่วนที่หนึ่ง (ซึ่งอยู่หลังศูนย์) การจำลองเสมือนเครือข่าย

ดังนั้น vRouter จะมองเห็น VM ทั้งหมดของไคลเอนต์หนึ่งเครื่องบนเครื่องที่กำหนดเป็นเครือข่ายที่เชื่อมต่อโดยตรงและสามารถกำหนดเส้นทางระหว่างเครือข่ายเหล่านั้นได้

แต่ VM0 และ VM1 เป็นของไคลเอนต์ที่แตกต่างกันและดังนั้นจึงอยู่ในตาราง vRouter ที่แตกต่างกัน

การที่พวกเขาจะสื่อสารกันโดยตรงได้หรือไม่นั้นขึ้นอยู่กับการตั้งค่า vRouter และการออกแบบเครือข่าย
ตัวอย่างเช่น หาก VM ของไคลเอ็นต์ทั้งสองใช้ที่อยู่สาธารณะ หรือมี NAT เกิดขึ้นบน vRouter เอง การกำหนดเส้นทางโดยตรงไปยัง vRouter ก็สามารถทำได้

ในสถานการณ์ตรงกันข้าม คุณสามารถข้ามพื้นที่ที่อยู่ได้ - คุณต้องผ่านเซิร์ฟเวอร์ NAT เพื่อรับที่อยู่สาธารณะ ซึ่งคล้ายกับการเข้าถึงเครือข่ายภายนอก ซึ่งจะกล่าวถึงด้านล่าง

การสื่อสารระหว่าง VM ที่อยู่บนเครื่องฟิสิคัลที่แตกต่างกัน

ระนาบข้อมูล

  1. จุดเริ่มต้นเหมือนกันทุกประการ: VM-0 ส่งแพ็กเก็ตโดยมีปลายทาง VM-7 (172.17.3.2) เป็นค่าเริ่มต้น
  2. vRouter ได้รับแล้ว และคราวนี้เห็นว่าปลายทางอยู่บนเครื่องอื่นและสามารถเข้าถึงได้ผ่าน Tunnel0
  3. ขั้นแรก มันแขวนป้าย MPLS ที่ระบุอินเทอร์เฟซระยะไกล เพื่อให้ vRouter ด้านหลังสามารถระบุตำแหน่งที่จะวางแพ็กเก็ตนี้โดยไม่ต้องค้นหาเพิ่มเติม

    ระบบอัตโนมัติสำหรับลูกน้อย ส่วนที่หนึ่ง (ซึ่งอยู่หลังศูนย์) การจำลองเสมือนเครือข่าย

  4. Tunnel0 มีต้นทาง 10.0.0.2 ปลายทาง: 10.0.1.2
    vRouter เพิ่มส่วนหัว GRE (หรือ UDP) และ IP ใหม่ให้กับแพ็กเก็ตดั้งเดิม
  5. ตารางเส้นทาง vRouter มีเส้นทางเริ่มต้นผ่านที่อยู่ ToR1 10.0.0.1 นั่นแหละที่เขาส่งมา

    ระบบอัตโนมัติสำหรับลูกน้อย ส่วนที่หนึ่ง (ซึ่งอยู่หลังศูนย์) การจำลองเสมือนเครือข่าย

  6. ToR1 ในฐานะสมาชิกของเครือข่าย Underlay รู้ (เช่น ผ่าน OSPF) วิธีเข้าถึง 10.0.1.2 และส่งแพ็กเก็ตไปตามเส้นทาง โปรดทราบว่า ECMP เปิดใช้งานอยู่ที่นี่ มี nexthops สองอันในภาพประกอบ และเธรดที่แตกต่างกันจะถูกจัดเรียงตามแฮช ในกรณีโรงงานจริงน่าจะมีอีก 4 โรงถัดไป

    ในขณะเดียวกัน เขาไม่จำเป็นต้องรู้ว่ามีอะไรอยู่ภายใต้ส่วนหัว IP ภายนอก นั่นคือในความเป็นจริง ภายใต้ IP อาจมีแซนวิชของ IPv6 บน MPLS บนอีเธอร์เน็ต บน MPLS บน GRE บนเหนือกรีก

  7. ดังนั้นในด้านการรับ vRouter จะลบ GRE และใช้แท็ก MPLS เพื่อทำความเข้าใจว่าควรส่งแพ็กเก็ตนี้ไปที่อินเทอร์เฟซใด แยกออกและส่งในรูปแบบดั้งเดิมไปยังผู้รับ

เครื่องบินควบคุม

เมื่อคุณสตาร์ทรถ สิ่งเดียวกันนี้จะเกิดขึ้นตามที่อธิบายไว้ข้างต้น

และบวกสิ่งต่อไปนี้:

  • สำหรับลูกค้าแต่ละราย vRouter จะจัดสรรแท็ก MPLS นี่คือป้ายกำกับบริการ L3VPN ซึ่งไคลเอ็นต์จะถูกแยกออกจากกันภายในเครื่องเดียวกัน

    ในความเป็นจริงแท็ก MPLS จะถูกจัดสรรโดยไม่มีเงื่อนไขโดย vRouter เสมอ - ท้ายที่สุดแล้วไม่มีใครทราบล่วงหน้าว่าเครื่องจะโต้ตอบกับเครื่องอื่นที่อยู่ด้านหลัง vRouter เดียวกันเท่านั้นและนี่มีแนวโน้มว่าไม่เป็นความจริงด้วยซ้ำ

  • vRouter สร้างการเชื่อมต่อกับคอนโทรลเลอร์ SDN โดยใช้โปรโตคอล BGP (หรือคล้ายกัน - ในกรณีของ TF นี่คือ XMPP 0_o)
  • ในเซสชั่นนี้ vRouter จะรายงานเส้นทางไปยังเครือข่ายที่เชื่อมต่อไปยังคอนโทรลเลอร์ SDN:
    • ที่อยู่เครือข่าย
    • วิธีการห่อหุ้ม (MPLSoGRE, MPLSoUDP, VXLAN)
    • แท็กไคลเอ็นต์ MPLS
    • ที่อยู่ IP ของคุณเป็น nexthop

  • ตัวควบคุม SDN รับเส้นทางดังกล่าวจาก vRouter ที่เชื่อมต่ออยู่ทั้งหมด และสะท้อนเส้นทางดังกล่าวไปยังผู้อื่น นั่นคือมันทำหน้าที่เป็นตัวสะท้อนเส้นทาง

สิ่งเดียวกันนี้เกิดขึ้นในทิศทางตรงกันข้าม

ระบบอัตโนมัติสำหรับลูกน้อย ส่วนที่หนึ่ง (ซึ่งอยู่หลังศูนย์) การจำลองเสมือนเครือข่าย

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

ตัวควบคุมส่วนกลางจะดูแลความซับซ้อนทั้งหมดในการบำรุงรักษาการกำหนดค่าและการตรวจสอบตารางการสลับ/เส้นทางบน vRouter

กล่าวโดยคร่าวๆ ตัวควบคุมจะสื่อสารกับ vRouter ทั้งหมดผ่าน BGP (หรือโปรโตคอลที่คล้ายกัน) และเพียงส่งข้อมูลเส้นทาง ตัวอย่างเช่น BGP มี Address-Family เพื่อถ่ายทอดวิธีการห่อหุ้มอยู่แล้ว MPLS ใน GRE หรือ MPLS ใน UDP.

ในเวลาเดียวกันการกำหนดค่าของเครือข่าย Underlay จะไม่เปลี่ยนแปลง แต่อย่างใดซึ่งในทางกลับกันทำให้เป็นอัตโนมัติได้ยากกว่ามากและง่ายต่อการทำลายด้วยการเคลื่อนไหวที่น่าอึดอัดใจ

ออกไปสู่โลกภายนอก

ที่ไหนสักแห่งที่การจำลองต้องจบลง และคุณต้องออกจากโลกเสมือนจริงไปสู่โลกจริง และคุณต้องมีเกตเวย์โทรศัพท์สาธารณะ

มีการปฏิบัติสองแนวทาง:

  1. มีการติดตั้งเราเตอร์ฮาร์ดแวร์
  2. มีการเปิดตัวอุปกรณ์ที่ใช้ฟังก์ชั่นของเราเตอร์ (ใช่ตาม SDN เราก็พบ VNF ด้วย) เรียกมันว่าเกตเวย์เสมือน

ข้อดีของแนวทางที่สองคือความสามารถในการปรับขนาดแนวนอนในราคาถูก - มีพลังงานไม่เพียงพอ - เราได้เปิดตัวเครื่องเสมือนอีกเครื่องที่มีเกตเวย์ บนเครื่องทางกายภาพใดๆ โดยไม่ต้องมองหาแร็คฟรี หน่วย หน่วย กำลังไฟฟ้า ซื้อฮาร์ดแวร์เอง ขนส่ง ติดตั้ง สลับ กำหนดค่า จากนั้นเปลี่ยนส่วนประกอบที่ผิดพลาดในนั้นด้วย

ข้อเสียของเกตเวย์เสมือนคือหน่วยของเราเตอร์ทางกายภาพยังคงมีลำดับความสำคัญที่ทรงพลังกว่าเครื่องเสมือนแบบมัลติคอร์ และซอฟต์แวร์ที่ได้รับการปรับแต่งให้เหมาะกับฐานฮาร์ดแวร์ของตัวเองนั้นทำงานได้เสถียรกว่ามาก (ไม่). นอกจากนี้ยังเป็นเรื่องยากที่จะปฏิเสธความจริงที่ว่าฮาร์ดแวร์และซอฟต์แวร์ที่ซับซ้อนนั้นใช้งานได้โดยต้องการเพียงการกำหนดค่าเท่านั้น ในขณะที่การเปิดใช้งานและบำรุงรักษาเกตเวย์เสมือนนั้นเป็นงานสำหรับวิศวกรที่แข็งแกร่ง

ด้วยเท้าข้างเดียว เกตเวย์จะมองเข้าไปในเครือข่ายเสมือนแบบโอเวอร์เลย์ เช่นเดียวกับเครื่องเสมือนทั่วไป และสามารถโต้ตอบกับ VM อื่นๆ ทั้งหมดได้ ในเวลาเดียวกัน ก็สามารถยุติเครือข่ายของไคลเอ็นต์ทั้งหมดและดำเนินการกำหนดเส้นทางระหว่างเครือข่ายเหล่านั้นได้

เกตเวย์จะมองเข้าไปในเครือข่ายแกนหลักและรู้วิธีเข้าถึงอินเทอร์เน็ตด้วยเท้าอีกข้างหนึ่ง

ระบบอัตโนมัติสำหรับลูกน้อย ส่วนที่หนึ่ง (ซึ่งอยู่หลังศูนย์) การจำลองเสมือนเครือข่าย

ระนาบข้อมูล

นั่นคือกระบวนการมีลักษณะดังนี้:

  1. VM-0 ซึ่งมีค่าเริ่มต้นเป็น vRouter เดียวกัน จะส่งแพ็กเก็ตที่มีปลายทางในโลกภายนอก (185.147.83.177) ไปยังอินเทอร์เฟซ eth0
  2. vRouter ได้รับแพ็กเก็ตนี้และค้นหาที่อยู่ปลายทางในตารางเส้นทาง - ค้นหาเส้นทางเริ่มต้นผ่านเกตเวย์ VNGW1 ผ่านอุโมงค์ 1
    นอกจากนี้เขายังเห็นว่านี่คืออุโมงค์ GRE ที่มี SIP 10.0.0.2 และ DIP 10.0.255.2 และเขายังต้องแนบป้ายกำกับ MPLS ของไคลเอ็นต์นี้ก่อน ซึ่ง VNGW1 คาดหวังไว้
  3. vRouter แพ็คแพ็กเก็ตเริ่มต้นด้วย MPLS, GRE และส่วนหัว IP ใหม่ และส่งไปที่ ToR1 10.0.0.1 ตามค่าเริ่มต้น
  4. เครือข่ายพื้นฐานจะส่งแพ็กเก็ตไปยังเกตเวย์ VNGW1
  5. เกตเวย์ VNGW1 จะลบส่วนหัวทันเนล GRE และ MPLS ดูที่อยู่ปลายทาง ดูตารางเส้นทาง และเข้าใจว่าถูกส่งไปยังอินเทอร์เน็ตโดยตรง - นั่นคือผ่านมุมมองแบบเต็มหรือค่าเริ่มต้น หากจำเป็น ให้ดำเนินการแปล NAT
  6. อาจมีเครือข่าย IP ปกติจาก VNGW ไปยังชายแดน ซึ่งไม่น่าเป็นไปได้
    อาจมีเครือข่าย MPLS แบบคลาสสิก (IGP+LDP/RSVP TE) อาจมีแบ็คแฟบริคที่มี BGP LU หรืออุโมงค์ GRE จาก VNGW ไปยังชายแดนผ่านเครือข่าย IP
    อย่างไรก็ตาม VNGW1 ดำเนินการห่อหุ้มที่จำเป็นและส่งแพ็กเก็ตเริ่มต้นไปยังชายแดน

ระบบอัตโนมัติสำหรับลูกน้อย ส่วนที่หนึ่ง (ซึ่งอยู่หลังศูนย์) การจำลองเสมือนเครือข่าย

การจราจรในทิศทางตรงกันข้ามจะต้องผ่านขั้นตอนเดียวกันในลำดับตรงกันข้าม

  1. เส้นขอบจะปล่อยแพ็กเก็ตไปที่ VNGW1
  2. เขาเปลื้องผ้า ดูที่อยู่ของผู้รับ และเห็นว่าเขาสามารถเข้าถึงได้ผ่านอุโมงค์ Tunnel1 (MPLSoGRE หรือ MPLSoUDP)
  3. ด้วยเหตุนี้ จึงแนบป้ายกำกับ MPLS, ส่วนหัว GRE/UDP และ IP ใหม่ และส่งไปยัง ToR3 10.0.255.1
    ที่อยู่ปลายทางของทันเนลคือที่อยู่ IP ของ vRouter ซึ่งเป็นที่ตั้งของ VM เป้าหมาย - 10.0.0.2
  4. เครือข่ายพื้นฐานจะส่งแพ็กเก็ตไปยัง vRouter ที่ต้องการ
  5. vRouter เป้าหมายอ่าน GRE/UDP ระบุอินเทอร์เฟซโดยใช้ป้ายกำกับ MPLS และส่งแพ็กเก็ต IP เปล่าไปยังอินเทอร์เฟซ TAP ที่เชื่อมโยงกับ eth0 ของ VM

ระบบอัตโนมัติสำหรับลูกน้อย ส่วนที่หนึ่ง (ซึ่งอยู่หลังศูนย์) การจำลองเสมือนเครือข่าย

เครื่องบินควบคุม

VNGW1 สร้างย่าน BGP ด้วยตัวควบคุม SDN ซึ่งรับข้อมูลเส้นทางทั้งหมดเกี่ยวกับไคลเอนต์: ที่อยู่ IP (vRouter) ใดที่อยู่หลังไคลเอ็นต์ใด และป้ายกำกับ MPLS ใดที่ไคลเอ็นต์ระบุ

ในทำนองเดียวกัน เขาเองก็แจ้งให้คอนโทรลเลอร์ SDN ทราบถึงเส้นทางเริ่มต้นพร้อมป้ายกำกับของลูกค้ารายนี้ ซึ่งระบุว่าตัวเองเป็นเน็กซ์ฮอป จากนั้นค่าเริ่มต้นนี้จะมาถึง vRouters

บน VNGW การรวมเส้นทางหรือการแปล NAT มักจะเกิดขึ้น

และในอีกทางหนึ่ง ระบบจะส่งเส้นทางแบบรวมนี้ไปยังเซสชันที่มีขอบเขตหรือตัวสะท้อนเส้นทาง และจากนั้นจะได้รับเส้นทางเริ่มต้นหรือมุมมองแบบเต็มหรืออย่างอื่น

ในแง่ของการห่อหุ้มและการแลกเปลี่ยนการรับส่งข้อมูล VNGW ก็ไม่ต่างจาก vRouter
หากคุณขยายขอบเขตเล็กน้อย คุณสามารถเพิ่มอุปกรณ์เครือข่ายอื่นๆ ไปยัง VNGW และ vRouters ได้ เช่น ไฟร์วอลล์ การทำความสะอาดการรับส่งข้อมูลหรือฟาร์มเสริมสมรรถนะ, IPS และอื่นๆ

และด้วยความช่วยเหลือของการสร้าง VRF ตามลำดับและการประกาศเส้นทางที่ถูกต้อง คุณสามารถบังคับการรับส่งข้อมูลให้วนซ้ำตามที่คุณต้องการ ซึ่งเรียกว่า Service Chaining

นั่นคือในที่นี้ตัวควบคุม SDN ก็ทำหน้าที่เป็นตัวสะท้อนเส้นทางระหว่าง VNGW, vRouters และอุปกรณ์เครือข่ายอื่น ๆ

แต่ในความเป็นจริงแล้ว ตัวควบคุมยังรั่วไหลข้อมูลเกี่ยวกับ ACL และ PBR (การกำหนดเส้นทางตามนโยบาย) ทำให้การรับส่งข้อมูลแต่ละรายการไปแตกต่างจากเส้นทางที่บอกไว้

ระบบอัตโนมัติสำหรับลูกน้อย ส่วนที่หนึ่ง (ซึ่งอยู่หลังศูนย์) การจำลองเสมือนเครือข่าย

คำถามที่พบบ่อย

ทำไมคุณถึงให้คะแนน GRE/UDP อยู่เสมอ?

โดยทั่วไปแล้ว สิ่งนี้อาจกล่าวได้เฉพาะกับผ้าทังสเตน - คุณไม่จำเป็นต้องคำนึงถึงมันเลย

แต่ถ้าเรายอมรับแล้ว TF เองในขณะที่ยังคงเป็น OpenContrail ก็รองรับทั้งการห่อหุ้ม: MPLS ใน GRE และ MPLS ใน UDP

UDP นั้นดีเพราะใน Source Port นั้นง่ายมากที่จะเข้ารหัสฟังก์ชันแฮชจาก IP+Proto+Port ดั้งเดิมในส่วนหัวของมัน ซึ่งจะช่วยให้คุณทำการปรับสมดุลได้

ในกรณีของ GRE อนิจจา มีเพียงส่วนหัว IP และ GRE ภายนอกเท่านั้น ซึ่งเหมือนกันสำหรับการรับส่งข้อมูลแบบห่อหุ้มทั้งหมด และไม่มีการพูดถึงเรื่องความสมดุล - มีเพียงไม่กี่คนเท่านั้นที่สามารถมองลึกลงไปในแพ็กเก็ตได้

จนกระทั่งบางครั้ง หากเราเตอร์สามารถใช้ไดนามิกทันเนลได้ ก็ทำได้เฉพาะใน MPLSoGRE เท่านั้น และเพิ่งเรียนรู้การใช้ MPLSoUDP เมื่อไม่นานมานี้ ดังนั้นเราจึงต้องจดบันทึกเกี่ยวกับความเป็นไปได้ของการห่อหุ้มที่แตกต่างกันสองแบบเสมอ

เพื่อความเป็นธรรม เป็นที่น่าสังเกตว่า TF รองรับการเชื่อมต่อ L2 อย่างสมบูรณ์โดยใช้ VXLAN

คุณสัญญาว่าจะวาดแนวเดียวกันกับ OpenFlow
พวกเขากำลังขอมันจริงๆ vSwitch ใน OpenStack เดียวกันก็ทำสิ่งที่คล้ายกันมาก โดยใช้ VXLAN ซึ่งในทางกลับกันก็มีส่วนหัว UDP เช่นกัน

ใน Data Plane พวกมันทำงานประมาณเดียวกัน ส่วน Control Plane แตกต่างกันอย่างมาก Tungsten Fabric ใช้ XMPP เพื่อส่งข้อมูลเส้นทางไปยัง vRouter ในขณะที่ OpenStack เรียกใช้ Openflow

คุณช่วยบอกฉันเพิ่มเติมเกี่ยวกับ vRouter หน่อยได้ไหม?
แบ่งออกเป็นสองส่วน: vRouter Agent และ vRouter Forwarder

อันแรกทำงานในพื้นที่ผู้ใช้ของระบบปฏิบัติการโฮสต์และสื่อสารกับตัวควบคุม SDN โดยแลกเปลี่ยนข้อมูลเกี่ยวกับเส้นทาง VRF และ ACL

วิธีที่สองใช้ Data Plane - โดยปกติจะอยู่ใน Kernel Space แต่ยังสามารถทำงานบน SmartNIC ได้ - การ์ดเครือข่ายที่มี CPU และชิปสวิตช์ที่ตั้งโปรแกรมแยกต่างหากซึ่งช่วยให้คุณลบโหลดออกจาก CPU ของเครื่องโฮสต์และทำให้เครือข่ายเร็วขึ้นและมากขึ้น คาดเดาได้

สถานการณ์ที่เป็นไปได้อีกประการหนึ่งคือ vRouter เป็นแอปพลิเคชัน DPDK ในพื้นที่ผู้ใช้

vRouter Agent จะส่งการตั้งค่าไปที่ vRouter Forwarder

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

โดยทั่วไปแล้ว ในกลไกการจำลองเสมือน เอนทิตีเครือข่ายเสมือน (คุณสามารถพิจารณาว่านี่เป็นคำนามที่เหมาะสม) ถูกนำมาใช้แยกต่างหากจากไคลเอนต์/ผู้เช่า/เครื่องเสมือน - สิ่งที่เป็นอิสระอย่างสมบูรณ์ และเครือข่ายเสมือนนี้สามารถเชื่อมต่อผ่านอินเทอร์เฟซไปยังผู้เช่ารายหนึ่ง ไปยังอีกรายหนึ่ง ไปยังสองราย หรือที่ใดก็ได้ ตัวอย่างเช่น Service Chaining จะถูกนำไปใช้เมื่อการรับส่งข้อมูลจำเป็นต้องผ่านโหนดบางแห่งในลำดับที่ต้องการ เพียงแค่สร้างและเชื่อมต่อเครือข่ายเสมือนในลำดับที่ถูกต้อง

ดังนั้นจึงไม่มีการติดต่อโดยตรงระหว่าง Virtual Network และผู้เช่า

ข้อสรุป

นี่เป็นคำอธิบายแบบผิวเผินมากเกี่ยวกับการทำงานของเครือข่ายเสมือนที่มีการซ้อนทับจากโฮสต์และตัวควบคุม SDN แต่ไม่ว่าคุณจะเลือกแพลตฟอร์มเวอร์ช่วลไลเซชั่นใดในปัจจุบัน มันก็จะทำงานในลักษณะเดียวกัน ไม่ว่าจะเป็น VMWare, ACI, OpenStack, CloudStack, Tungsten Fabric หรือ Juniper Contrail พวกเขาจะแตกต่างกันในประเภทของการห่อหุ้มและส่วนหัว โปรโตคอลสำหรับการส่งข้อมูลไปยังอุปกรณ์เครือข่ายปลายทาง แต่หลักการของเครือข่ายโอเวอร์เลย์ที่กำหนดค่าด้วยซอฟต์แวร์ได้ซึ่งทำงานบนเครือข่ายอันเดอร์เลย์ที่ค่อนข้างเรียบง่ายและคงที่จะยังคงเหมือนเดิม
เราสามารถพูดได้ว่าในปัจจุบัน SDN ที่ใช้เครือข่ายซ้อนทับได้รับชัยชนะในด้านการสร้างคลาวด์ส่วนตัว อย่างไรก็ตามนี่ไม่ได้หมายความว่า Openflow ไม่มีที่ในโลกสมัยใหม่ - มันถูกใช้ใน OpenStacke และใน VMWare NSX เดียวกันเท่าที่ฉันรู้ Google ใช้เพื่อตั้งค่าเครือข่ายใต้ดิน

ด้านล่างนี้ฉันได้ให้ลิงก์ไปยังเนื้อหาที่มีรายละเอียดเพิ่มเติมหากคุณต้องการศึกษาประเด็นนี้ในเชิงลึก

แล้วอันเดอร์เลย์ของเราล่ะ?

แต่โดยทั่วไปไม่มีอะไรเลย เขาไม่ได้เปลี่ยนแปลงไปทั้งหมด สิ่งที่เขาต้องทำในกรณีของการโอเวอร์เลย์จากโฮสต์คืออัปเดตเส้นทางและ ARP เมื่อ vRouter/VNGW ปรากฏขึ้นและหายไป และพกพาแพ็กเก็ตระหว่างเส้นทางเหล่านั้น

มากำหนดรายการข้อกำหนดสำหรับเครือข่าย Underlay

  1. สามารถใช้โปรโตคอลการกำหนดเส้นทางบางประเภทได้ในสถานการณ์ของเรา - BGP
  2. มีแบนด์วิธที่กว้าง โดยควรไม่มีการสมัครสมาชิกมากเกินไป เพื่อให้แพ็กเก็ตไม่สูญหายเนื่องจากการโอเวอร์โหลด
  3. การรองรับ ECMP เป็นส่วนสำคัญของแฟบริค
  4. สามารถให้บริการ QoS รวมถึงสิ่งที่ยุ่งยากเช่น ECN
  5. การสนับสนุน NETCONF ถือเป็นรากฐานสำหรับอนาคต

ฉันอุทิศเวลาน้อยมากที่นี่ให้กับงานของเครือข่าย Underlay เอง เนื่องจากในช่วงหลังของซีรีส์นี้ ผมจะเน้นไปที่มัน และเราจะพูดถึงเฉพาะการโอเวอร์เลย์ในการผ่านเท่านั้น

แน่นอนว่าฉันกำลังจำกัดเราทุกคนอย่างรุนแรงโดยใช้เป็นตัวอย่างเครือข่าย DC ที่สร้างขึ้นในโรงงาน Cloz ที่มีการกำหนดเส้นทาง IP ที่แท้จริงและการซ้อนทับจากโฮสต์

อย่างไรก็ตาม ฉันมั่นใจว่าเครือข่ายใดๆ ที่มีการออกแบบสามารถอธิบายได้ในรูปแบบที่เป็นทางการและเป็นอัตโนมัติ เป้าหมายของฉันคือการเข้าใจแนวทางต่างๆ ในการใช้ระบบอัตโนมัติ และไม่ทำให้ทุกคนสับสนด้วยการแก้ปัญหาในรูปแบบทั่วไป

Roman Gorge และฉันวางแผนที่จะเผยแพร่ประเด็นแยกต่างหากเกี่ยวกับการจำลองเสมือนของพลังการประมวลผลและการโต้ตอบกับการจำลองเสมือนของเครือข่าย ในฐานะส่วนหนึ่งของ ADSM อยู่ในการติดต่อ

ลิงค์ที่มีประโยชน์

ขอบคุณ

  • โรมัน กอร์กา - อดีตโฮสต์ของพอดแคสต์ linkmeup และตอนนี้เป็นผู้เชี่ยวชาญในด้านแพลตฟอร์มคลาวด์ สำหรับความคิดเห็นและการแก้ไข เรากำลังรอบทความเชิงลึกเพิ่มเติมเกี่ยวกับระบบเสมือนจริงของเขาในอนาคตอันใกล้นี้
  • อเล็กซานเดอร์ ชาลิมอฟ - เพื่อนร่วมงานและผู้เชี่ยวชาญในด้านการพัฒนาเครือข่ายเสมือนของฉัน สำหรับความคิดเห็นและการแก้ไข
  • วาเลนติน ซินิทซิน - เพื่อนร่วมงานและผู้เชี่ยวชาญในสาขาผ้าทังสเตน สำหรับความคิดเห็นและการแก้ไข
  • อาร์เต็ม เชอร์โนเบย์ — นักวาดภาพประกอบ linkmeup. สำหรับเคดีพีวี
  • อเล็กซานเดอร์ ลิโมโนฟ. สำหรับมีม "ออโตเมโต"

ที่มา: will.com

เพิ่มความคิดเห็น