Хоёр сайт IPsec туннелээр BGP-г холбож, бие биенийхээ префиксүүдийг сурч, диаграм нь замын удирдлага гэж дахин нэрлэгддэг. Яг энэ шошго нь төөрөгдлийн эхлэл юм. Сесс хүртээмжийг үнэхээр солилцож, бодлогыг үнэхээр хэрэглэдэг, гэхдээ аль үйлчилгээ үзүүлэгч, кабель эсвэл чиглүүлэгч шифрлэгдсэн пакетуудыг зөөж байгааг хэлэх эрх түүнд байхгүй. Би багийг ажиллаж байсан туннелийг дахин барьж байхыг харсан, учир нь тэд BGP-ийн маршрутын өөрчлөлт трафикийг сесс хэзээ ч нөлөөлж чадахгүй байсан өөр шилэн зам руу зөөнө гэж хүлээж байсан.

Хүмүүс сесс юу худалдаж авдаг гэж боддог вэ

Хүлээлтийн ихэнх нь лабораторид маршрутын өөрчлөлт хэрхэн харагдахаас гардаг. Та туннелээр префикс зарлаж, алслагдсан тал үүнийг суулгаж, трафик хөдөлдөг. Яг ижил дараалал нь трафикийн инженерчлэлийн хяналт үнэхээр байдаг чиглүүлэгч дээр ч тохиолддог тул хоёуланг нь андуурдаг. Лабораторид хоёр сайт ихэвчлэн нэг хандалтын шугамыг хуваалцдаг, яг ийм учраас ялгаа тэнд хэзээ ч харагддаггүй.

BGP бол хүртээмжийн протокол юм. Энэ нь хамтрагч руу префиксийн пакетуудыг хүргэж чадна гэж хэлж, тал бүрт хүлээн авсан саналуудаа эрэмбэлэх боломж олгодог. Энэ нь туннелээр үнэхээр ашигтай: сайтууд ирж, явах үед префиксүүд гарч, алга болдог, мөн та ирмэгийн төхөөрөмж бүр дээр статик маршрут бичихгүйгээр мужааг татгалзаж болно. Үүнийг хийдэггүй зүйл нь үйлчилгээ үзүүлэгчийн чиглүүлэгчдийг таны хяналтад оруулах явдал юм.

Доод түвшин гадаад толгойг зөөдөг. Таны туннелийн төгсгөлийн цэг шифрлэгдсэн пакетуудыг хамтрагчийн хаяг руу илгээдэг, тэдгээр хоёр хаягийн хоорондох сүлжээ тэдгээрийг операторуудын суулгасан маршрутаар дамжуулдаг. BGP сесс дэх юу ч энэ шийдвэрийг өөрчлөхгүй, хэрэв ижил үйлчилгээ үзүүлэгч үүнийг хийдэг дэмжигдсэн үйлчилгээ санал болгохгүй бол.

Сесс яг юу зөөдөг вэ

BGP яригч хамтрагчийнхаа 179 порт руу TCP холболт нээж, RFC 4271-д тодорхойлсон зурвасын форматууд болон замын шинж чанаруудыг ашиглана. Хамтрагчийн хаяг туннел дотор байх үед сесс эхлэхээс өмнө туннель өргөгдсөн, тэр хаяг хүртээмжтэй байх ёстой. Дууссан IKE солилцоо нь BGP хөрш биш. Замд суурилсан IPsec хэрэгжүүлэлтүүд тохирох туннелийн зам байгаа үед л трафикийг нэвтрүүлдэг, бодлогод суурилсан нь хамгаалагдсан сонгогч дотор хамтрагчийн хаяг шаарддаг. Үүнийг эсрэгээр хийвэл туннель ногоон, сесс хоосон сууж байдаг сонгодог байдал үүсдэг.

Сесс өргөгдсөний дараа бодлого нь юу түүнийг дайрахыг шийддэг. Префиксийн жагсаалт, AS-замын шүүлтүүр, хамгийн их префиксийн хязгаар, өгөгдмөл маршрутын талаар тодорхой шийдвэр нь доод хэмжээ бөгөөд тэдгээр нь хоёр чиглэлд үйлчилнэ. Хүлээн авсан бүхнээ хүлээн авдаг хамтрагч танд орон нутгийн интернэт хандалтыг чимээгүйгээр орлуулдаг өгөгдмөл маршрут өгч болно. Хоёр чиглэлд тусдаа жагсаалт хэрэгтэй, учир нь хамтрагчаас хүлээн авах зүйл болон түүнд зарлах зүйл нь өөр өөр шийдвэр юм.

router bgp 65010
 neighbor 10.255.0.2 remote-as 65020
 address-family ipv4 unicast
  neighbor 10.255.0.2 prefix-list SITE-B-IN in
  neighbor 10.255.0.2 prefix-list SITE-B-OUT out
  neighbor 10.255.0.2 maximum-prefix 50

Дараа нь MTU хазана. Инкапсуляци нь ашигтай ачааг багасгадаг тул том шинэчлэл бүрэн тогтсон мэт харагдах сессийг зогсоож болно: хамтрагч дээрээ үлддэг, префиксүүд хэзээ ч ирдэггүй, лог дээр илт зүйл унахгүй. Шүүлтүүрийг буруутгахаас өмнө туннелийн интерфейс дээр TCP MSS-ийг хязгаарлаж, эсвэл нэмэлт зардлын зайтай туннелийн MTU тогтооно уу.

Гадаад пакетууд хаашаа явсаар байна

Нэг сайтаас нөгөө рүү шифрлэгдсэн пакетууд орон нутгийн чиглүүлэгч хамтрагчийн нийтийн хаягт сонгосон замаар гардаг. Хэрэв хоёр сайт ижил үйлчилгээ үзүүлэгчээс транзит худалдаж авбал, нэг метро байгууламжийг дайрвал, эсвэл нэг тал операторын түвшний NAT-ийн ард байвал туннель үйлчилгээ үзүүлэгчийн гэмтлээс зөвхөн санамсаргүйгээр л гардаг. Хяналтын хэрэгсэлд туннелийн дүрсүүдийг тоолох нь энэ талаар танд юу ч хэлэхгүй.

Маршрут сонголт ба дамжуулалтын суулгалт нь мөн тусдаа үйл явдал юм. Префикс BGP хүснэгтэд хамгийн сайн гэж сууж байтал дамжуулалтын хүснэгтээс дутаж болно, учир нь дараагийн үсрэлт шийдэгдэхгүй эсвэл илүү тодорхой маршрут ялдаг. BGP префиксийг сурсан боловч трафик урсахгүй байна гэж хэн нэгэн мэдээлэх үед ашигтай асуулт нь түүнийг суулгасан эсэх, аль дараагийн үсрэлт рүү зааж байгаа эсэх юм.

Дизайны хяналтад өгөх шударга хариулт бол хуваалцсан хамаарлын жагсаалт: хандалтын хэлхээ, дээд үйлчилгээ үзүүлэгч, байгууламж, буцах зам дээрх төлөв хадгалдаг аливаа төхөөрөмж. Туннелээр дамжсан сесс нь өөрөө дээрээ суудаггүй хамаарлыг арилгаж чадахгүй.

Тусгаарлах нь зүйтэй гурван шийдвэр

Дизайн эдгээрийг хольсон үед гэмтлийн яриа бүр тойрогт эргэлддэг. Эхлээд тэдгээрийг цаасан дээр тусгаарлаж, дараа нь тус бүрийг үнэхээр хэрэгжүүлдэг төхөөрөмжтэй холбоно уу.

DecisionWho controls itTypical failure
Which prefixes may cross the relationship?Both sides, through prefix and AS-path policy you configure deliberatelyA default route accepted by mistake, or a vague aggregate
Which overlay next hop wins?Local BGP selection plus next-hop resolution on your own routersPrefix learned, never installed in the forwarding table
Where do the encrypted packets travel?The underlay operators, unless a supported service adds real controlPath diversity that was never there

Мөр бүр өөр эзэнтэй. Эхнийх нь хэлэлцээр, хоёр дахь нь таны төхөөрөмжүүд дээрх тохиргоо, гурав дахь нь ихэвчлэн өөр хэн нэгний сүлжээ юм. Хүрч буй мөрөө нэрлэсэн өөрчлөлтийн хүсэлтийг BGP асуудал гэж хэлсэн хүсэлтээс хамаагүй амархан зөвшөөрдөг.

Төлөвлөх нь зүйтэй гэмтлийн горимууд

Хамтрагчийн хураангуй маршрутыг хүлээн авах нь хамгийн түгээмэл өөртөө учруулсан шарх юм. Хэн нэгэн солилцоог хялбарчлахын тулд богино агрегат зарлаж, алслагдсан тал үүнийг хүлээн авч, туннелийн ард ороогүй мужуудын трафик туннелийг дагаж үхдэг. Яг хүлээгдэж буй префиксүүдээр шүүх эсвэл зөв хязгаартай префиксийн жагсаалт ашиглах ба сесс цэгцтэй харагдана гэж нүцгэн агрегатыг хэзээ ч бүү хүлээн ав.

Буцаан татах хугацаа нь хоёр дахь. Илрүүлэлт нь барих таймер, та идэвхжүүлсэн бол BFD, туннелийн үхсэн хамтрагчийг илрүүлэх, алслагдсан тал зарлалаа хэр хурдан зогсоохоос хамаардаг. Одоо байгаа сессүүд нь тусдаа асуудал: шинэ маршрут шинэ холболтыг сэргээж болох боловч тогтсон TCP сессүүд хуучирсан хаягуудыг ашигласаар байна, зам дээрх төлөв хадгалдаг галт хана эсвэл NAT нь цаашид тохирохгүй бичлэгүүдийг хадгалж болно. Маршрутын өөрчлөлт бүгдийг шийднэ гэж таамаглахын оронд програмын сэргэлтийг хүлээн авах шалгуурт оруулна уу.

Гурав дахь нь буцах замын тэгш бус байдал юм. Трафик туннелээр ирж, түүнийг зөөхөөр хэзээ ч төлөвлөгдөөгүй үйлчилгээ үзүүлэгчийн шугамаар буцаж болох бөгөөд энэ нь нэг чиглэлийн дуу, бүтэлгүй гар барилт эсвэл хариултыг хаядаг галт хана хэлбэрээр илэрдэг. Хоёр чиглэлийг тусад нь шалгана уу.

Гэрээнд юу бичих, түүнийг хэрхэн шалгах

Зөвшөөрөгдсөн префиксүүдийг бичгээр хүс: муж бүрийг үүсгэх эрх хэнд байгаа, өгөгдмөл маршрут зөвшөөрөгдсөн эсэх, туннелийн үйлчилгээ ямар хаягийн гэр бүлийг дэмждэг. RFC 8212 нь түүнийг дагадаг хэрэгжүүлэлтүүдэд eBGP-ийн хувьд тодорхой импорт, экспортын бодлогыг хүлээлт болгосон тул далд бүгдийг-хүлээн авах зан төлөвт найдаж байгаа хамтрагчаас асуух нь зүйтэй.

Дараа нь диаграмаас биш, төхөөрөмжөөс шалгана уу. FRR загварын чиглүүлэгч дээрх ашигтай командууд:

show bgp summary
show bgp ipv4 unicast 10.10.0.0/16
show bgp ipv4 unicast neighbors 10.255.0.2 advertised-routes
show ip route 10.10.0.0/16

Маршрутын хүснэгт өгч чадахгүй хоёр ажиглалтыг нэм. Инкапсуляцлагдсан пакетууд үнэхээр аль хаягийг зорьж байгааг батлахын тулд гадаад интерфейс дээр бичлэг хий, жишээ нь tcpdump -ni eth0 udp port 51820 WireGuard туннелийн хувьд, эсвэл IPsec-ийн ESP шүүлтүүр. Дараа нь хамтрагчийн нийтийн хаяг руу мөрдөж, үсрэлтүүдийг туннель доторх мөрөөр харьцуул; хэрэв хоёулаа ижил үйлчилгээ үзүүлэгчийн гинжийг дагаж байвал таны нөөц сүлжээнд биш, маршрутын бодлогод амьдардаг.

Эцэст нь буцаан татахыг санаатайгаар туршиж үзээрэй. Засвар үйлчилгээний цонхонд туннелийг буулгаж, префикс хэр удаан суулгагдсан хэвээр байгаа, одоо байгаа сессүүдэд юу тохиолдох, алслагдсан тал таны үнэхээр хүлээн авах маршрут руу буцаж байгаа эсэхийг тэмдэглэ. Тэр дасгал нь дизайны тухай ямар ч диаграмаас илүү их хэлдэг.

Маршрут бол зөвшөөрөл биш. Солилцохоор тохиролцсон префиксүүд нь аль хэрэглэгчид туннелийн ард байгаа аль үйлчилгээнд хүрч болох тухай юу ч хэлэхгүй тул баталгаажуулалт, зөвшөөрөгдсөн үйлчилгээ, хост галт ханаг яг байсан газарт нь үлдээгээрэй. Хүртээмжтэй хамтрагч нь мөн хязгааргүй транзит эсвэл дур зоргоороо хаяг үүсгэх зөвшөөрөл биш бөгөөд ийм төрлийн эрх мэдэл нь арилжааны асуудал болж гэрээнд хамаарах бөгөөд BGP бодлогын мөрөнд хамаарахгүй.

  • Тал бүрийн үүсгэж болох префиксүүд болон хэзээ ч хүлээн авч болохгүй префиксүүдийг нэрлэнэ үү.
  • Туннель дээр MSS-ийг хязгаарлаж, том шинэчлэлүүд үнэхээр ирж байгааг батална уу.
  • Хуваалцсан доод түвшний хамаарлуудыг жагсаа, туннелийн тоог биш.
  • Бодит буцаан татахыг хэмжиж, програм юу хийдгийг тэмдэглэ.

Холбоотой нийтлэлүүд