Два профила су повезана, и један од њих тихо носи саобраћај намењен другом. Linux домаћин може да покрене оба OpenVPN клијента истовремено без тешкоћа. Оно што не може јесте да одлучи уместо вас који процес сме да захтева који префикс. Та одлука мора да се донесе пре него што се други тунел подигне, а не после тога што ресурс престане да одговара.

Почните од посла који друга веза мора да обави

Канцеларија доступна преко једног профила и лабораторија доступна преко другог захтевају да оба тунела буду подигнута и да ниједан не захтева све. Једна тврдоглава апликација која мора да изађе преко другог профила треба правило политике, а не другу подразумевану руту. Резервна веза захтева само један тунел који ради у једном тренутку, тако да резерва не треба да стартује са машином.

То су три различите конфигурације, и мешају се зато што све три почињу исто: други профил и успешна веза. Прво запишите предвиђени распоред, затим конфигуришите ка њему. Једна реченица о намери штеди сат снимања пакета.

systemctl list-units --type=service 'openvpn-client@*'
ip -4 route show default

Прва команда набраја инстанце које раде, укључујући оне покренуте ручно изван менаџера. Друга штампа тренутни захтев за подразумевану руту, а то је стање које ћете касније морати да објасните.

Базени који се преклапају пуцају пре рутирања

Два сервера ће радо доделити адресе из истог 10.8.0.0/24. Клијент тада држи два интерфејса унутар једног префикса без ичега што каже која дестинација припада коме, и понашање које из тога произилази изгледа као квар рутирања, али је заправо квар нумерисања. Пренумерисање базена кошта једно уређивање конфигурације; свако касније рутирајуће заобилажење кошта викенд. Проверите базен пре него што му додате руту.

Погледајте и локални LAN. Кућни LAN са бројем 192.168.1.0/24 који један тунел такође излаже ствара исту двосмисленост, а симптом је име домаћина које се разрешава док се веза никада не завршава. То изгледа као квар разрешавања имена све док не штампате руте.

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

Прочитајте постојећа правила пре него што додате још једно. Дуплирани приоритети и заборављене табеле су уобичајени разлог зашто политика ознака изгледа да нема никаквог ефекта.

Докажите изолацију заустављањем једне везе

Са оба тунела подигнута, забележите адресу сваког интерфејса, руту до једног домаћина иза сваког тунела и пут који заузима неповезана дестинација. Питајте језгро за претрагу уместо да читате једну табелу, јер једна табела никада не показује коначну одлуку.

Затим зауставите једну инстанцу и посматрајте како њен интерфејс и руте нестају док друга наставља. Прекид у преживелој значи да две још увек деле име уређаја, руту или правило заштитног зида које нико није раздвојио.

Вратите заустављени профил и поновите исте провере. Када тунел преживи само прво покретање после рестартовања, гледате дефект животног циклуса, а не дизајн рутирања.

Повезани чланци