Эмне үчүн VPN үстүндөгү BGP сиздин төмөнкү катмар жолун башкарбайт
VPN үстүндөгү BGP жеткиликтүүлүктү алмаштырат жана маршрут саясатын колдонот, бирок төмөнкү катмар тышкы жолду дагы эле тандайт. Сессия чындыгында эмнени башкарат.
Эки сайт 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 префиксти үйрөндү, бирок трафик акпайт деп билдиргенде, пайдалуу суроо — ал орнотулганбы жана кайсы кийинки секирикке көрсөтөт.
Дизайн кароосу үчүн акыйкат жооп — жалпы көз карандылыктардын тизмеси: кирүү чынжыры, жогорку провайдер, объект жана кайтаруу жолундагы ар кандай абалды сактаган түзмөк. Туннел аркылуу өткөн сессия өзүнүн үстүндө турбаган көз карандылыкты алып сала албайт.
Бөлүүгө татыктуу үч чечим
Дизайн буларды аралаштырса, ар бир бузулуу сүйлөшүүсү айлана боюнча жүрөт. Адегенде аларды кагазда бөлүңүз, анан ар бирин аны чын эле аткарган түзмөккө байланыштырыңыз.
| Decision | Who controls it | Typical failure |
|---|---|---|
| Which prefixes may cross the relationship? | Both sides, through prefix and AS-path policy you configure deliberately | A default route accepted by mistake, or a vague aggregate |
| Which overlay next hop wins? | Local BGP selection plus next-hop resolution on your own routers | Prefix learned, never installed in the forwarding table |
| Where do the encrypted packets travel? | The underlay operators, unless a supported service adds real control | Path 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ти чектеңиз жана чоң жаңыртуулардын чын эле келерин ырастаңыз.
- Жалпы төмөнкү катмар көз карандылыктарын тизмелеңиз, туннелдердин санын эмес.
- Чыныгы кайтарып алууну өлчөп, колдонмо эмне кыларын белгилеңиз.