Бир Linux хосттогу эки OpenVPN туннели: маршрут кимдики?
Пулдар, түртүлгөн маршруттар жана демейки талаптар бөлүштүрүлгөндөн кийин эки кардар профили катар жашай алат. Адегенде ээликти чечиңиз, анан кайтуу жолу үчүн белгилерди колдонуңуз.
Эки профиль туташтырылган, жана алардын бири экинчисине арналган трафикти тынч ташып жатат. Linux хост эки OpenVPN кардарды бир убакта кыйынчылыксыз иштете алат. Ал кыла албаганы — кайсы процесстин кайсы префиксти талап кыла аларын сиздин ордуңузга чечүү. Бул чечим экинчи туннель көтөрүлө электе кабыл алынышы керек, кандайдыр бир ресурс жооп берүүнү токтоткондон кийин эмес.
Экинчи байланыш аткарышы керек болгон иштен баштаңыз
Бир профиль аркылуу жеткиликтүү кеңсе жана экинчиси аркылуу жеткиликтүү лаборатория эки туннелдин тең көтөрүлүшүн жана эч биринин баарын талап кылбашын талап кылат. Экинчи профиль аркылуу чыгышы керек болгон бир кыжырлуу колдонмого экинчи демейки маршрут эмес, саясат эрежеси керек. Резервдик байланышка бир убакта бир гана иштеп турган туннель керек, ошондуктан камдык машина менен бирге башталышы керек эмес.
Булар үч түрдүү конфигурация, жана алар чаташтырылат, анткени үчөө тең бирдей башталат: экинчи профиль жана ийгиликтүү туташуу. Адегенде пландалган жайгашууну жазыңыз, анан ошого карай конфигурациялаңыз. Ниет тууралуу бир сүйлөм пакеттерди кармоонун бир саатын үнөмдөйт.
systemctl list-units --type=service 'openvpn-client@*' ip -4 route show default
Биринчи буйрук иштеп жаткан үлгүлөрдү тизмелейт, анын ичинде менеджерден тышкары кол менен башталгандар да бар. Экинчиси учурдагы демейки талапты басып чыгарат, жана бул кийин түшүндүрүүгө туура келүүчү абал.
Кабатташкан пулдар маршруттоодон мурун бузулат
Эки сервер бирдей 10.8.0.0/24 ичинен даректи кубаныч менен бөлүшөт. Анда кардар бир префикстин ичинде эки интерфейс кармайт жана кайсы максат кайсыга таандык экенин айта турган эч нерсе жок, натыйжада пайда болгон жүрүм-турум маршруттоо бузулушуна окшош, бирок чындыгында номурлоо бузулушу. Пулду кайра номурлоо бир конфигурация түзөтүүнү турат; ар бир кийинки маршруттук айланып өтүү бир дем алыш күнүн турат. Ага маршрут кошконго чейин пулду текшериңиз.
Жергиликтүү LAN да караңыз. Бир туннель ачкан 192.168.1.0/24 номурлуу үй LAN да ушундай эки анжылыкты жаратат, ал эми симптом — туташуу эч качан бүтпөстөн чечилген хост аты. Маршруттарды басып чыгарганга чейин бул аттарды чечүү бузулушуна окшойт.
ip -4 addr show ip route show table all | grep -E '10\.|192\.168\.'
Кардарга тийүүдөн мурун эки чыгышты эки сервер конфигурациясы менен салыштырыңыз. Эгер префикстер кабатташса, токтоп, кайра номурлаңыз, анткени канча жолу кайра баштасаңыз да аларды ажырата албайт.
Ар бир профилге өз бирдигин, ар бир префикске ээсин бериңиз
Ар бир профиль өз үлгү атын жана өз конфигурация файлын алат, ошондуктан office аттуу үлгү office.conf файлын жүктөйт, ал эми lab аттуу үлгү lab.conf файлын жүктөйт. Бул дал келүүнү каталог тизмесине ишенүүнүн ордуна кызмат менеджери аркылуу ырастаңыз, анткени drop-in кайсы файл жүктөлөрүн өзгөртүшү мүмкүн. Дал келүүнү ката кетирүү — иштебей жаткан профилди жөндөп жатканыңыз.
Анан маршруттарды ким орнотоорун чечиңиз. Серверлер шайкеш келбеген топтомдорду түрткөндө, же түртүүнү четке кагып, префикстерди өзүңүз тизмелеңиз, же бир профилге демейкини сактаганга уруксат берип, экинчисин саясат эрежелери менен багыттаңыз. Экөө тең демейкини орноткон эки процесс тынч жеңүүчү жана чечимдин жазуу түрүндөгү жазуусу жок бүтөт.
systemctl cat [email protected] grep -E 'route-nopull|pull-filter|redirect-gateway' /etc/openvpn/client/lab.conf
Биринчиси бирдикти анын аргументтерин өзгөрткөн ар кандай кайра аныктоо менен көрсөтөт. Экинчиси профилдин түртүлгөн маршруттарды такыр кабыл аларын көрсөтөт, жана бул андан ары баарын аныктаган которгуч.
Белгилер жоопторду алар келген интерфейсте кармайт
Ар бир туннель башка булактарга кызмат кылганда, жооп туура эмес байланыш аркылуу чыгып кетиши мүмкүн жана биринчи пакеттен кийин туташуу өлөт. Туруктуу үлгү — кирүүчү пакеттерди кирүү интерфейси боюнча белгилөө, ошол белгини жоопто калыбына келтирүү жана ар бир белгиге өзүнүн демейки шлюзи бар таблица берүү.
Алсыз тескери жол чыпкалоону адатта жабыр тарткан интерфейстер үчүн бошотуу керек, анткени жооп негизги таблица эч качан тандабаган байланыш аркылуу мыйзамдуу түрдө келет. Белгилерди тар кармаңыз, алар туннелдердин өзүнүн шифрленген трафигин эч качан кармабасын, антпесе бул туннелди өзүнүн ичинен өткөрөт.
ip rule show ip route show table 101 sysctl net.ipv4.conf.all.rp_filter
Дагы бирин кошконго чейин бардык эрежелерди окуңуз. Кайталанган артыкчылыктар жана унутулган таблицалар белги саясаты такыр таасир этпейт окшоп көрүнүшүнүн адаттагы себеби.
Бир байланышты токтотуу менен обочолонууну далилдеңиз
Эки туннель тең көтөрүлгөн абалда ар бир интерфейстин дарегин, ар бир туннелдин артындагы бир хостко чейинки маршрутту жана байланышы жок максат жүргөн жолду жазып алыңыз. Бир таблицаны окуунун ордуна издөөнү өзөктөн сураңыз, анткени бир таблица эч качан акыркы чечимди көрсөтпөйт.
Анан бир үлгүнү токтотуп, анын интерфейси жана маршруттары жоголуп жатканын, экинчиси улантып жатканын байкаңыз. Тирик калгандагы үзүлүү экөө дагы эле эч ким бөлбөгөн түзмөк атын, маршрутту же файрвол эрежесин бөлүшөрүн билдирет.
Токтотулган профилди кайтарып, ошол текшерүүлөрдү кайталаңыз. Туннель кайра жүктөөдөн кийинки биринчи гана ишке кирүүгө чыдаса, сиз маршруттоо долбоорун эмес, жашоо циклиндеги кемчиликти көрүп жатасыз.