เกตเวย์สาขาแสดงคำนำหน้าของคลาวด์ในตาราง BGP ของตน เซสชันกับผู้ให้บริการถูกสร้างขึ้นแล้ว แต่คำขอของผู้ใช้ไปยังคำนำหน้านั้นยังออกผ่านอินเทอร์เฟซผิด ไม่มีอะไรเสียตามที่การเฝ้าระวังบอก เพราะ “BGP เรียนรู้แล้ว” เป็นข้อความเกี่ยวกับระนาบควบคุม ระหว่างตารางนั้นกับแพ็กเก็ตมีการเปลี่ยนผ่านสี่ขั้นแยกกัน และโฟลว์หยุดที่ขั้นใดขั้นหนึ่งพอดี ไล่ประตูตามลำดับและหยุดที่ประตูแรกที่ล้มเหลว

ประตูแรก: เพื่อนบ้านส่งอะไรมาจริง ๆ

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

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

show ip bgp 10.60.20.0/24
show ip bgp neighbors 203.0.113.5 advertised-routes
show ip route 10.60.20.0
show ip cef 10.60.20.0

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

ประตูที่สอง: การเลือก แล้วจึงติดตั้ง

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

RFC 4271 แยกสามแนวคิดออกจากกัน: สิ่งที่เพียร์ส่งมา สิ่งที่สปีกเกอร์นี้เลือกเป็นดีที่สุด และสิ่งที่จะประกาศต่อไป นี่เป็นบทบาทเชิงแนวคิด ไม่ใช่ฐานข้อมูลทางกายภาพสามฐานที่ผู้ขายต้องเปิดเผย แต่การแยกนั้นเองที่ทำให้ “มันอยู่ใน BGP” เป็นคำตอบที่ไม่สมบูรณ์

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

ประตูที่สาม: การค้นหาที่ใช้กับโฟลว์นี้

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

ip route get 10.60.20.25 from 10.60.10.40
ip rule show
sudo tcpdump -ni tun0 'host 10.60.20.25'

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

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

ประตูที่สี่: ครึ่งทางไกลของเส้นทาง

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

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

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

ตั้งชื่อการเปลี่ยนผ่านที่ล้มเหลว

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

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

บทความที่เกี่ยวข้อง