Бір 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
Тағы біреуін қоспас бұрын бар ережелерді оқыңыз. Қайталанатын басымдықтар мен ұмытылған кестелер белгі саясаты мүлдем әсер етпейтін сияқты көрінетін әдеттегі себеп.
Бір байланысты тоқтату арқылы оқшаулауды дәлелдеңіз
Екі туннель де көтерілген күйде әр интерфейстің мекенжайын, әр туннельдің артындағы бір хостқа дейінгі маршрутты және байланысы жоқ мақсат жүретін жолды жазып алыңыз. Бір кестені оқудың орнына іздеуді ядродан сұраңыз, өйткені бір кесте ешқашан түпкілікті шешімді көрсетпейді.
Содан кейін бір данаүлгіні тоқтатып, оның интерфейсі мен маршруттары жойылып жатқанын, ал екіншісі жалғасып жатқанын бақылаңыз. Тірі қалғандағы үзіліс екеуі әлі де ешкім бөлмеген құрылғы атауын, маршрутты немесе файрвол ережесін бөлісетінін білдіреді.
Тоқтатылған профильді қайтарып, сол тексерулерді қайталаңыз. Туннель қайта жүктеуден кейінгі тек бірінші іске қосуға төтеп берсе, сіз маршруттау дизайнын емес, өмірлік цикл ақауын көріп тұрсыз.