Некаторыя маршруты L2VPN знікаюць пасля дадання рэфлектараў маршрутаў
Сесіі застаюцца ўзнятымі, але некалькі маршрутаў L2VPN так і не прыходзяць. Паўторна выкарыстаныя ідэнтыфікатары кластараў, кліенцкія сувязі і граф рэфлексіі тлумачаць гэту выбіральную страту.
Сесіі застаюцца ўзнятымі, IGP стабільны, і ўсё ж некалькі маршрутаў L2VPN так і не з’яўляюцца на двух з чатырох краёў правайдэра. Гэты ўзор адносіцца да праблемы рэфлексіі, а не да праблемы транспарту, бо зламаная сесія адмаўляе цалкам, а паўторна выкарыстаная мяжа рэфлексіі адмаўляе выбіральна. Фізічнае кольца тут ні пры чым; лагічны граф размеркавання — гэта месца, дзе гэтыя маршруты спыніліся. Пошук гэтага пункта не патрабуе перабудовы плоскасці кіравання.
Страта выбіральная, і гэта звужае пошук
Чатыры краі правайдэра на фізічным коле патрабуюць шасці лагічных сесій для поўнай сеткі, бо кожны маршрутызатар спалучаецца з трыма астатнімі. Гэтыя сесіі ідуць па маршрутызаваным транспарце, таму кабельная разводка нічога не кажа пра колькасць суседстваў або пра тое, якое з іх рэфлектуе. Калі два краі не атрымліваюць пэўны набор прэфіксаў, а ўсё астатняе збягаецца, кабель не падазроны.
Выбіральная страта паказвае на прадухіленне петляў, палітыку або кірунак сувязі, калі адны маршруты перасякаюць мяжу, а іншыя адкідваюцца па дарозе. Поўная страта паказвае на сесію або сямейства адрасоў. Вызначыць, якое з двух вы бачыце, — першы карысны крок, і ён патрабуе адной каманды.
Што рэфлексія фактычна змяняе
Рэфлексія маршрутаў паслабляе правіла, што iBGP-спікер не можа паўторна абвяшчаць маршрут, атрыманы ад іншага iBGP-спікера. RFC 4456 выражае выключэнне праз сувязь паміж спікерам і крыніцай маршруту, і кірунак гэтай сувязі важнейшы, чым мяркуе большасць кароткіх апісанняў. Маршрут, атрыманы ад кліента, можа рэфлектавацца іншым кліентам і некліентам, а маршрут, атрыманы ад некліента, можа рэфлектавацца толькі кліентам. Прачытайце асіметрыю двойчы, бо яна тлумачыць, як даданне кліенцкай сувязі можа схаваць памылку праектавання: яно адкрывае шлях, якога тапалогія ніколі не мела на ўвазе.
Атрыбут CLUSTER_LIST запісвае гісторыю рэфлексіі, і рэфлектар, які знаходзіць уласны ідэнтыфікатар кластара ў гэтым спісе, павінен ігнараваць аб’яву. Гэта прадухіленне петляў, і гэта таксама механізм, які выдаляе маршруты, калі ідэнтыфікатары выпадкова паўторна выкарыстоўваюцца. ORIGINATOR_ID грае блізкую ролю, называючы маршрутызатар, які першым абвясціў маршрут.
Паўторна выкарыстаныя ідэнтыфікатары кластараў — так маршруты знікаюць
Малая сетка схіляе да скароту: дайце кожнаму маршрутызатару ідэнтыфікатар кластара, роўны яго loopback, дадайце пазней яшчэ адзін рэфлектар і паўторна выкарыстайце існуючы loopback, бо ён пад рукой. Калі гэты ідэнтыфікатар цяпер з’яўляецца на дзвюх незалежных стадыях рэфлексіі, другая стадыя бачыць свой ID у CLUSTER_LIST і адкідвае маршрут. Нішто не запісвае памылку, бо адкідванне — правільны адказ на пятлю.
Лішкавыя рэфлектары, што абслугоўваюць адзін кластар, — законнае выключэнне: яны наўмысна дзеляць ID, каб любы з іх мог абслугоўваць тых жа кліентаў. Ідэнтыфікатар павінен адпавядаць праекту рэфлексіі, а не адрозніваць назвы корпусаў.
Намалюйце меркаваны граф перад любым датыкам да канфігурацыі: хто спараджае прэфікс, якая кліенцкая сувязь дазваляе першую рэфлексію, які рэфлектар нясе яго на наступную стадыю і дзе знаходзіцца апошні кліент. Кожны хоп у гэтым графе — месца, дзе паўторна выкарыстаны ідэнтыфікатар, адсутная кліенцкая сувязь або фільтр палітыкі можа спыніць маршрут. Калі граф намаляваны, у адсутнага маршруту ёсць месца, а не загадка.
Супраціўляйцеся зрабіць кожнага суседа кліентам
Хуткі рамонт адсутнага маршруту — зрабіць кожнага суседа кліентам кожнага рэфлектара. Размеркаванне вяртаецца, і праект перастае што-небудзь вам казаць: ён памнажае маршруты, якія нясе кожны спікер, адначасова хаваючы, якая сувязь павінна была выконваць працу.
Малая сетка звычайна мае патрэбу ў адной з дзвюх формаў. Поўная сетка iBGP — гэта шэсць сесій для чатырох маршрутызатараў зусім без рэфлексіі, а прызначаная пара рэфлектараў, што абслугоўвае астатнія краі, — другая. Абедзве лягчэй асэнсаваць, чым частковую сетку, у якой кожны маршрутызатар трохі рэфлектуе. Выбірайце форму па маштабе і паводзінах пры адмове, а не па схеме кабеляў.
Праверце сямейства адрасоў, перш чым вінаваціць рэфлексію
TCP-сесія на порце 179 даказвае, што два спікеры могуць гаварыць, і нічога не кажа, ці абмяняла сямейства адрасоў VPN хаця б адзін маршрут. Устанавіце стан сесіі, потым сямейства, потым асобны прэфікс.
vtysh -c "show bgp summary"
vtysh -c "show bgp l2vpn evpn summary"
vtysh -c "show bgp l2vpn evpn"
Гэтыя тры выхады аддзяляюць праблему суседства ад праблемы абмену і ад праблемы адсутнага прэфікса. Калі сямейства зусім не паказвае прэфіксаў, праверце стан актывацыі і палітыку экспарту суседа, перш чым глядзець на рэфлексію. Калі прэфіксы з’яўляюцца на адным краі, але не на другім, параўнайце спіс кластараў і крыніцу на баку атрымальніка, затым прайдзіце граф з папярэдняга раздзела.
Трымайце дасяжнасць наступнага хопа і стан перасылкі па-за гэтай праверкай. Рэфлектаваны маршрут з недасяжным наступным хопам прысутнічае і непрыдатны, што выглядае як збой рэфлексіі, пакуль вы не паглядзіце на слупок наступнага хопа. Вырашыце наступны хоп, пацвердзіце запіс перасылкі і толькі тады вырашайце, ці патрэбны графу размеркавання яшчэ адзін рэфлектар.