Чаму сесія BGP не з'яўляецца ў табліцы маршрутаў VPC
Сесія BGP на прыладзе EC2 не ўсталёўвае маршруты VPC. Распаўсюджванне ўключаецца для кожнай табліцы маршрутаў асобна, а прылада па-ранейшаму перасылае кожны пакет.
Паўтараецца гісторыя пра тое, што дэман маршрутызацыі на прыладзе VPN у EC2 навучыць VPC яго аддаленым прэфіксам, як толькі ўзнімецца BGP. Палова гэтага праўда. Сесія ўзнікае, і ў табліцы маршрутаў VPC з-за гэтага нічога не змяняецца, таму першым сімптомам звычайна бывае падсетка, якая ціха скідвае трафік у чорную дзірку.
Тут блытаюць дзве розныя рэчы: узаемадзеянне з серверам маршрутаў і ўсталяванне маршрутаў у табліцу.
Міф: падніміце BGP, і VPC вывучыць прэфіксы
BGP — гэта размова паміж двума суразмоўцамі, і ў гэтым дызайне суразмоўцы — гэта дэман маршрутызацыі на вашай прыладзе і канцавая кропка VPC Route Server, якую AWS размяшчае ў вашай падсетцы. Гэтая размова пераносіць прэфіксы. Яна не закранае табліцу маршрутаў вашых працоўных падсетак, бо гэтыя табліцы вучацца толькі праз распаўсюджванне, якое трэба ўключыць на кожнай з іх. Пакуль гэта не адбудзецца, структура VPC нічога не ведае пра тое, што ведае прылада.
Крокі наладкі падзеленыя нездарма: злучыць, стварыць канцавую кропку, усталяваць сувязь, затым уключыць распаўсюджванне.
Route Server — гэта плоскасць кіравання, а не тунель
Route Server не шыфруе, не перасылае і не аглядае ніводнага пакета. Ён існуе, каб абменьвацца BGP з прыладай і перадаваць атрыманыя прэфіксы табліцам маршрутаў, настроеным іх прымаць. Плоскасць даных не змянілася: пакеты па-ранейшаму выходзяць праз сеткавы інтэрфейс прылады, ідуць праз яе VPN і вяртаюцца тым жа шляхам.
Гэта значыць, што праверка крыніцы і прызначэння на інстансе перасылкі па-ранейшаму важная, бо інстанс цяпер перасылае трафік, адрасаваны камусьці іншаму.
Групы бяспекі і сродкі кантролю падсетак таксама дзейнічаюць на перасылаемы паток. Route Server не прымусіць прыладу, якая адкідае трафік, перасылаць яго, і не адрамантуе адсутны зваротны маршрут на аддаленым баку.
Распаўсюджванне — на кожную табліцу маршрутаў, а не на ўвесь VPC
Злучыць сервер маршрутаў з VPC і ўключыць распаўсюджванне ў табліцы маршрутаў — гэта два рашэнні, і толькі другое змяняе паводзіны падсеткі. VPC з шасцю табліцамі маршрутаў можа атрымаць распаўсюджаны прэфікс у адной і не атрымаць у астатніх пяці, што цалкам правільна для цэнтральнай падсеткі і менавіта стварае загадкавы вынік «працуе напалову». Нават калі распаўсюджванне ўключана, канкурэнтны маршрут можа перамагчы, бо выбар маршруту ў VPC аддае перавагу найдаўжэйшаму прэфіксу, а пры роўнай даўжыні — статычнаму маршруту перад распаўсюджаным. Гэтая перавага ўжываецца маўчком.
Правярайце эфектыўную табліцу для канкрэтнай падсеткі, а не спіс прэфіксаў, якія абвяшчае прылада. API адказвае на гэтае пытанне напрамую: aws ec2 associate-route-server і aws ec2 enable-route-server-propagation --route-table-id <id> — гэта два крокі, якія людзі забываюць, а aws ec2 describe-route-tables --route-table-ids <id> паказвае, ці прыйшоў прэфікс наогул як запіс route server.
Прылада па-ранейшаму нясе кожны пакет
Абвяшчаць дасяжнасць — не тое ж самае, што мець яе. Сесія BGP можа заставацца ўсталяванай, пакуль VPN прылады не працуе, а статычнае абвяшчэнне, якое ніколі не змяняецца, працягвае цягнуць трафік да мёртвага шляху. Route Server падтрымлівае выяўленне збояў, напрыклад BFD, але гэта правярае жыццяздольнасць суразмоўцы, а не здароўе ўсяго, што за ім.
Прывяжыце абвяшчэнне да рэальнага аддаленага маршруту: абвяшчайце прэфікс, калі тунель і аддаленая сетка працуюць, і адклікайце яго, калі не.
Адклічце прэфікс і паглядзіце, што адбудзецца
Тэстуйце паэтапна, і зрабіце апошні этап выдаленнем. Пацвердзіце, што абвяшчэнне даходзіць, прэфікс з'яўляецца ў кожнай патрэбнай табліцы, прылада з'яўляецца наступным хопам, перасылка ідзе праз актыўны тунель, а аддалены бок адказвае. Затым адклічце тэставы прэфікс або закрыйце ўзгоднены тунель і паназірайце, ці перамяшчаецца трафік туды, дзе паводле дызайну павінен. Запішыце табліцы да і пасля, пакуль тэст яшчэ адкрыты.
Перанос маршруту на другую прыладу не пераносіць сесіі, якія ён нёс, бо стан NAT і файрвола застаецца на першай прыладзе.
Для фіксаванага набору з дзясятка прэфіксаў статычныя маршруты ў табліцах VPC застаюцца таннейшым адказам. Route Server заслугоўвае сваё месца, калі спіс прэфіксаў сапраўды змяняецца, а палітыка адклікання — гэта нешта, што вы можаце патлумачыць чалавеку на дзяжурстве.