Хост маршруттарына тийбестен ат мейкиндиктеринде VPN маршруттоону текшериңиз
Үч моделденген роль, үч обочолонгон контекст жана ар бир байланышка бир veth. Хостко тийүүдөн мурун ат мейкиндиги лабораториясын хост маршруттары лабораториясы менен салыштырыңыз.
Эки лаборатория бирдей VPN топологиясын моделдей алат жана таптакыр башка жолдор менен ийгиликсиз болушу мүмкүн: бири тармактык ат мейкиндиктеринде жашайт, экинчиси хосттун өз маршруттарында. Ат мейкиндиги версиясы ар бир интерфейсти, маршрутту жана сокетти жок кылса боло турган контекстте кармайт, ал эми хост версиясы тезирээк башталып, артында абал калтырат. Ошол калган абал экинчи лабораторияны бир айдан кийин кайталоону кыйындатат. Адегенде тазалоону салыштырыңыз, анткени ал экспериментти эки жолу жүргүзө аларыңызды чечет.
Бир эле лабораторияны куруунун эки жолу жана кайсынысы качан жеңет
Хост маршруттарынын лабораториясында сиз иштеп жаткан машинага туннелдик интерфейс жана маршруттарды кошосуз, ошондуктан эксперимент тагдырын shell, пакет менеджериңиз жана башка бардык байланыш менен бөлүшөт. Ат мейкиндиги лабораториясында ар бир роль интерфейстердин, даректердин, маршруттардын жана сокеттердин өз стегин алат, ат мейкиндигин жок кылуу ошонун баарын алып салат. Эки моделдин эч бири туурараак эмес, анткени алар ар башка суроолорго жооп берет. Тема маршруттоо жана кайра багыттоо болсо ат мейкиндиктерин, ал эми тема бир иш такта клиентинин кантип интеграцияланышы болсо хост лабораториясын тандаңыз.
| Aspect | Namespace lab | Host-route lab |
|---|---|---|
| Isolation | Full stack per role | Shares the host stack |
| Cleanup | Delete named namespaces | Manual route and rule removal |
| Realism | Strong for routing | Needed for GUI clients |
Экөөнү аралаштыруу — кадимки ката: хост клиентине гана каршы текшерилген ат мейкиндиги лабораториясы эки жайгашуунун эч бири жөнүндө эч нерсе далилдебейт. Биринчи байланышты түзүүдөн мурун кандай суроо берип жатканыңызды чечиңиз.
Ар бир роль үчүн бир контекст, атайын туташтырылган
Ар бир роль үчүн бир ат мейкиндигин түзүп, ар бир veth жуптун ар бир учуна ага ээ болгон контекстке жылдырыңыз. Алгачкы төрт буйрук форманы көрүүгө жетиштүү:
ip netns add client
ip netns add gateway
ip link add veth-c type veth peer name veth-g
ip link set veth-c netns clientЛабораторияга хосттогу эч нерсе менен кабатташпаган диапазондорду бериңиз жана баштоодон мурун кайсы ат мейкиндиги кайсы дарекке ээ экенин жазып коюңуз. Иштеген лабораторияга эки өзүнчө жол керек: VPN акыркы чекити өз жубуна жетүү үчүн тышкы жол жана корголуучу ресурс үчүн кайтаруу жолу. Аларды эки чечим катары моделдеңиз, анткени чыгуучу жарымын гана куруучу лаборатория кол алышуу тестинен өтүп, колдонмо тестинен кулайт.
Кайра багыттоо ролу — лабораториялар кызыктуу болгон жер
Бир роль кайра багыттоого тийиш, бул ошол ат мейкиндигинин ичинде кайра багыттоону иштетүү жана долбоорго керек болгон эрежени кошуу дегенди билдирет. Кайра багыттоо абалы ар бир ат мейкиндиги үчүн өзүнчө, ошондуктан хост жөндөөсү лабораторияга тиешеси жок жана лаборатория жөндөөсү сыртка агып чыкпайт, тармактык ат мейкиндиктеринин документтери сыпаттагандай. WireGuard интерфейс жана анын тышкы сокети ар башка ат мейкиндиктеринде жашай аларын документтейт, бул пайдалуу трюк жана өзүңүздү адаштыруунун эң сонун жолу. Интерфейсти жылдыруу байланыштын ар бир бөлүгүн бирдей жылдырат деп ойлобоңуз.
Сыноо пакетинен кийин кайра багыттоо эсептегичин текшериңиз, анткени эч качан дал келбеген эреже менен пакетти таштаган эреже маршрут таблицасында бирдей көрүнөт. Аларды эсептегичтер гана ажыратат.
Базалык сызыкты жазып алыңыз, анан бир маршрутту бузуңуз
Эмне бар экенин жазуудан баштаңыз, контекстти ар бир саптын жанына жазыңыз. Ат мейкиндиктерин окуңуз, анан сыноо багыты алардын биринин ичинде жүрө турган маршрутту, анан аны ташыган байланыштагы эсептегичтерди:
ip netns list
ip -n client route get 10.0.0.5
ip -n gateway -s link show veth-gҮчүнчү буйрук — адамдар өткөрүп жиберген буйрук, жана далил дал ошол жерде жатат: ташталгандар жана каталар эсептегичтери пакеттин кайра багыттоо ролуна жалпы жеткенин айтат. Өзгөртүүдөн кийин ошол эле үч көрүнүштү жазып алыңыз жана далил сиздин эсиңиз эмес, diff болсун. Анан так бир нерсени бузуңуз, же маршрутту жок кылуу менен, же кайра багыттоо жолуна баш тартуу эрежесин кошуу менен, жана болжолдогон симптомду ырастаңыз: жоопсуз аяктаган кол алышуу же тайм-ауттун ордуна атты чечүүнүн ийгиликсиздиги. Бир гана ийгиликти көрсөткөн лаборатория өтө аз үйрөтөт.
Тазалоо — кийинки жүгүртүүнү кайталануучу кылган нерсе
Тазалоону өзүңүз атаган ресурстар менен чектеп кармаңыз, анткени жалпы өрт дубалын кайра орнотуу же хост маршрутун алып салуу кайталануучулук эмес, бул экинчи окуя. Топологияны, так буйруктарды жана күткөн байкоолорду сактаңыз, кийинки жүгүртүү мурунку абал кайсы контекстте болгонун болжолдоонун ордуна ошол эле бузулушту кайра чыгарсын. Бул жазуу жок лаборатория — процедура эмес, аңгеме.
Лаборатория үчүн жергиликтүү түзүлгөн каттоо маалыматтарын колдонуңуз жана өндүрүштүк аккаунттарды жалпы мисалдардан алыс кармаңыз. Анан ар бир ат мейкиндигин жок кылып, хост көрүнүшү өзгөрбөгөнүн ырастаңыз, бул ушул моделди тандоонун бүткүл себеби. Таза жок кыла албаган лаборатория — кошумча кадамдары бар хост өзгөрүүсү.