เท่าที่ฉันรู้ว่าเรากำลังใช้โปรโตคอลการกำหนดเส้นทางเพื่อบรรลุการเชื่อมต่อเลเยอร์ 3 ฉันสับสนกับความจริงที่ว่า BGP ทำงานผ่าน TCP ซึ่งเป็น L4 จะสร้าง L4 / TCP ได้อย่างไรหากไม่มีการเชื่อมต่อ L3 ก่อน
เท่าที่ฉันรู้ว่าเรากำลังใช้โปรโตคอลการกำหนดเส้นทางเพื่อบรรลุการเชื่อมต่อเลเยอร์ 3 ฉันสับสนกับความจริงที่ว่า BGP ทำงานผ่าน TCP ซึ่งเป็น L4 จะสร้าง L4 / TCP ได้อย่างไรหากไม่มีการเชื่อมต่อ L3 ก่อน
คำตอบ:
ซ็อกเก็ต TCP / IP สร้างการเชื่อมต่อแบบ end-to-end ผ่านเครือข่ายระหว่างจุดปลายที่ระบุเฉพาะสองจุด BGP ใช้ TCP / IP เพื่อสื่อสารระหว่างเราเตอร์ (อุปกรณ์ใด ๆ ที่แลกเปลี่ยนข้อมูลการกำหนดเส้นทาง) ข้อมูลที่แลกเปลี่ยนนั้นถูกใช้โดย BGP เพียร์เพื่อให้เลือกวิธีที่พวกเขาเลือกที่จะส่งแพ็คเก็ต (หรือถัดไป) ส่ง
ที่ขอบของอินเทอร์เน็ตสิ่งต่าง ๆ เป็นเรื่องง่าย "ทุกอย่างเป็นแบบนี้" ต่อผู้ให้บริการอินเทอร์เน็ตของคุณ ตรงกลางเราเตอร์อาจมีหลายตัวเลือก ดังนั้นจึงใช้ TCP / IP เพื่อย้ายทราฟฟิกของ BGP ท่ามกลางเพื่อนบ้านของเราติ้ง จากนั้นข้อมูล BGP จะบอกเราเตอร์ว่าควรเลือกเส้นทางแบบใดเมื่อมีหลายวิธีที่แพ็กเก็ตจะไปถึงตำแหน่งที่จะไป
จุดสิ้นสุด (เช่นเว็บเบราว์เซอร์) และเราเตอร์กำลังพูด TCP / IP แต่เราเตอร์กำลังใช้ TCP / IP (การสื่อสาร BGP ประกอบด้วยแพ็กเก็ต TCP / IP) เพื่อพูดคุยเกี่ยวกับสิ่งที่ต้องทำกับแพ็คเก็ต TCP / IP อื่น ๆ ที่พวกเขาต้องการกำหนดเส้นทาง
โปรโตคอลการกำหนดเส้นทางไม่ได้รับการเชื่อมต่อ L3 พวกเขาเติมตารางเส้นทาง (ส่งต่อ) ของเราเตอร์ด้วยข้อมูลที่เรียนรู้จากเราเตอร์อื่น ๆ
BGP เป็น "แอปพลิเคชัน" ที่ทำงานบน TCP / IP กล่าวอีกนัยหนึ่งเราเตอร์ BGP ใช้ TCP / IP เพื่อสื่อสารกับเราเตอร์ BGP อื่น ๆ เพื่อแลกเปลี่ยนข้อมูลเส้นทาง
เพื่อให้ BGP ทำงานคุณต้องมีการเชื่อมต่อ L3 ระหว่างเราเตอร์
โมเดลเครือข่าย OSI และการจัดระดับชั้นนั้นมีประโยชน์สำหรับการทำความเข้าใจการสื่อสารแบบครบวงจรระหว่างโฮสต์ แต่ไม่ได้มีจุดประสงค์เพื่ออธิบายวิธีการทำงานของเครื่องบินควบคุมเครือข่าย มีปัญหาการบูตสแตรปในการสร้างการเชื่อมต่อ BGP เต็มรูปแบบ แต่วิธีที่การบูตสแตรปเกิดขึ้นนั้นเป็นที่เข้าใจกันดีและไม่มีการพึ่งพาแบบวงกลม
ในแง่ของ BGP วิธีการที่จะเกิดขึ้นและการแลกเปลี่ยนข้อมูลขึ้นอยู่กับชนิดของเซสชั่น
ที่ง่ายที่สุดคือ eBGP โดยทั่วไป eBGP จะทำงานบนเซสชัน TCP ระหว่างเราเตอร์ที่เชื่อมต่อโดยตรงสองตัว ในกรณีนี้เพียร์แต่ละคนรู้วิธีพูดคุยกันเพราะทั้งคู่มีอินเทอร์เฟซบนซับเน็ตเดียวกันดังนั้นจึงไม่จำเป็นต้องใช้โพรโทคอลการกำหนดเส้นทางภายนอกเพื่อสร้าง adjacency
ด้วยสิ่งที่ iBGP มีความซับซ้อนเล็กน้อย ในการกำหนดค่าที่ง่ายที่สุดเราเตอร์ทั้งหมดภายในระบบอิสระจะถูกกำหนดค่าเป็นส่วนหนึ่งของเครือข่ายเต็มรูปแบบด้วยเซสชัน iBGP กับเราเตอร์อื่น ๆ ทั้งหมดในเครือข่าย ภายในระบบ autonomous โปรโตคอลเกตเวย์ภายในเช่น OSPF หรือ ISIS เพื่อสร้างโทโพโลยีการจัดเส้นทางภายใน เมื่อ IGP ทำงานเสร็จแล้วเราเตอร์ทั้งหมดจะมีตารางเส้นทางที่เต็มไปด้วยเส้นทางไปยังเพื่อนบ้าน iBGP ทั้งหมดที่อนุญาตให้เซสชัน TCP สร้างโดยไม่มีการขึ้นต่อกันแบบวงกลม
สิ่งที่น่าสนใจมากกว่านั้นคือในสถานการณ์ที่เราเตอร์บางตัวไม่อยู่ในระบบอัตโนมัติที่ทำงานด้วยตาราง BGP แบบเต็ม หาก iBGP mesh ไม่สมบูรณ์คุณสามารถรับสถานการณ์ที่เราเตอร์ที่อยู่ตรงกลางของเครือข่ายมีมุมมองที่แตกต่างกันของตารางที่เพื่อนบ้านโดยตรง สิ่งนี้จะทำให้การกำหนดเส้นทางย่อยที่เหมาะสมที่สุดและในบางกรณีการกำหนดเส้นทางลูปที่จะนำไปสู่การรับส่งข้อมูลระหว่างอุปกรณ์ต่าง ๆ จนกว่า TTL จะหมดอายุ
ลิงก์มีที่อยู่คงที่และรายการเส้นทางที่เกี่ยวข้องซึ่งกำหนดค่าไว้ซึ่งใช้สำหรับสร้างเซสชัน BGP เมื่อใช้ BGP ตารางการกำหนดเส้นทางจะถูกขยายด้วยรายการที่ชี้ไปยังเครือข่ายอื่น
เนื่องจาก BGP ใช้เฉพาะระหว่างเพื่อนโดยตรงจึงไม่จำเป็นต้องใช้เส้นทางอื่นนอกจากเส้นทางชี้ไปที่ปลายอีกด้านในจุดนี้
เช่นถ้าเราต้องการตรวจสอบเราจะตกลงใน / 30 หรือ / 31 เครือข่ายย่อยกำหนดที่อยู่หนึ่งที่ปลายแต่ละด้านของเครือข่ายและสร้างเส้นทางเครือข่ายสำหรับเครือข่ายย่อยนั้นไปยังลิงก์นี้จากนั้นเราจะกำหนดค่าอื่น ๆ เป็น BGP peer ณ จุดนี้ฉันจะได้รับรายการเส้นทางเพิ่มเติมสำหรับเครือข่ายทั้งหมดที่คุณประกาศให้ส่งผ่านเราเตอร์ของคุณ (ซึ่งเป็นส่วนหนึ่งของเส้นทางเครือข่ายที่กำหนดค่าแบบคงที่ภายในเครื่อง)
--- --- --- ---
| D |------| A |--------| B |--------| C |
--- --- --- ---
สมมติว่า A และ B เป็นเราเตอร์ (ใน AS หรือต่างกัน) และ D และ C เป็นโฮสต์ ตอนนี้ A และ B เชื่อมต่อกันและสามารถสื่อสารกันได้ แต่ D จะรู้จักตำแหน่งของ C ได้อย่างไรเพื่อให้สามารถสื่อสารกับ C. Same เป็นจริงสำหรับ C เมื่อต้องการสื่อสารกับ D ตอนนี้ถ้าเราเรียกใช้โปรโตคอล BGP ระหว่าง A และ B พวกเขาแลกเปลี่ยนข้อมูลการเชื่อมต่อเลเยอร์ 3 ซึ่งกันและกัน . กล่าวง่ายๆว่า A จะบอกว่า B เชื่อมต่อกับ D แล้ว จากนั้น B สามารถถ่ายทอดสิ่งนี้ไปยัง C หรือถ้า B เป็นเกตเวย์เริ่มต้นสำหรับ C ในวิธีใด C สามารถรู้ตำแหน่งของ D
ดังนั้นในกรณีนี้ข้อมูลการเชื่อมต่อเลเยอร์ 3 จะถูกส่งผ่านระหว่าง A และ B ที่กำหนด A และ B ให้เรียกใช้โปรโตคอล BGP
ดังนั้นจำเป็นต้องมีการเชื่อมต่อ BGP ก่อนระหว่างสองระบบเพื่อแลกเปลี่ยนข้อมูลการกำหนดเส้นทางเลเยอร์ 3 ฉันเพิ่งแสดงตัวอย่างง่ายๆเพื่อตอบคำถามของคุณ ในสถานการณ์จริงข้อมูลการกำหนดเส้นทางจำนวนมากถูกแลกเปลี่ยนระหว่างเพื่อน BGP
BGP ทำงานผ่านโปรโตคอล TCP ดังนั้นซ็อกเก็ต TCP จะต้องเปิดระหว่างพวกเขาเท่านั้นจากนั้นพวกเขาสามารถแลกเปลี่ยนข้อมูลเส้นทาง
หากไม่มีการเชื่อมต่อ L3 ก่อนหน้า
"การเชื่อมต่อ L3" ไม่ใช่ทั้งหมดหรือไม่มีอะไรเลย
ผู้ดูแลระบบตั้งค่าเราเตอร์จะกำหนดค่าอินเทอร์เฟซที่มีที่อยู่ IP และซับเน็ตมาสก์ จากการกำหนดค่าเหล่านี้รายการตารางการเราต์โดยนัยจะถูกสร้างขึ้นที่อนุญาตให้เราเตอร์พูดคุยกับเพื่อนบ้าน
โปรโตคอลการกำหนดเส้นทางสามารถทำงานบนการเชื่อมต่อ L3 แบบโลคัลนี้เพื่อสร้างการเชื่อมต่อ L3 ระยะทางที่ยาวขึ้น