Кој ги поседува адресата, маршрутата, DNS и firewall-от на Linux VPN?
Linux VPN бара еден орган за секој објект: уред, адреса, маршрути, DNS, firewall. Запишете ја оваа карта, потоа дефинирајте што враќаат подигањето, повторното поврзување и расклопувањето.
Две скрипти што се борат за истата маршрута се вообичаената форма на проблем со Linux VPN што се евидентира како грешка во рутирањето. Една компонента го создава уредот за тунел, друга додава стандардна маршрута, трета ја препишува конфигурацијата на resolver-от, а четврта ги вчитува повторно правилата на firewall-от. Секоја од нив може да ја поништи работата на друга, а победник е едноставно онаа што се извршила последна. Прашањето што вреди да се одговори не е кој пакет да се инсталира, туку која компонента е надлежна за секој дел од состојбата.
Запишете ја оваа карта еднаш, и повеќето неуспеси при повторно поврзување престануваат да бидат мистериозни. Важни се четири објекти: уредот и неговите адреси, маршрутите и правилата за политика, DNS конфигурацијата и firewall-от.
Уредот и неговите адреси
Уредот за тунел го создава или менаџер што го знае профилот, или демон што некој го стартувал рачно. Двата распореди работат сами; нивното мешање не. Ако профилот го поседува NetworkManager, нека го поседува и уредот, и не стартувајте неуправуван OpenVPN процес против истото име на тунел.
Забележете кој го отстранува уредот кога сесијата завршува. Уред што ја надживува својата сесија е најчестиот извор на застарени адреси и на конфузијата што следи.
Маршрути и правила за политика
Токму на маршрутите сопственичките конфликти прават видлива штета. Менаџерот за врска инсталира стандардна маршрута за тунелот плус поспецифична маршрута за оддалечената мрежа; потоа рачно напишана скрипта додава своја стандардна маршрута со друга метрика и тивко победува или губи зависно од времето. Одлучете кои записи се врзани за врската, кои се постојана политика и која компонента ги освежува по повторно поврзување. Потоа држете ги другите компоненти надвор од таа табела.
Правилата за политика заслужуваат иста јасност, зашто правило што покажува на табела што никој не ја пополнува создава црна дупка што изгледа точно како мртов тунел. Ако постои правило за да се присили сообраќај некаде, табелата што ја избира мора да ја одржува истиот сопственик.
DNS е секогаш одделен сопственик
Демонот на resolver-от работи како сопствен процес под сопствен идентитет, па не ги наследува случајно рутирачките одлуки на тунелот. Кога VPN турка DNS сервери, нешто тоа мора да го преведе во конфигурација за секоја врска што resolver-от ја почитува, и нешто мора да ја отстрани потоа.
Митат овде е дека пишувањето на сервер за имиња во профилот менува каде одат барањата. Тоа менува што му се кажува на resolver-от, не кој сокет го користи resolver-от нагоре. Тестирајте со барање плус пребарување на маршрута наместо да му верувате на датотеката.
Состојбата на firewall-от и кој ја враќа
Правилата на firewall-от се најчесто препишуваниот објект на VPN домаќин. Менаџерот може да додава NAT или правила за проследување по врска, додека услугата за firewall при подигање вчитува зачуван сет правила и ги брише. Изберете еден орган за политиката и направете го другиот негов потрошувач, или прифатете дека рестартирањето тивко го менува однесувањето. Исклучоците врзани за врската припаѓаат во датотека што ја вчитува истиот сопственик, а не во iptables команда внесена при решавање проблеми.
Ако правилата треба да го преживеат повторното поврзување, кажете го тоа експлицитно. Ако не треба, кажете го и тоа, зашто следниот инженер ќе претпостави попогодниот одговор.
Животен циклус: подигање, повторно поврзување, расклопување
Дајте сопственик на секој од тие три моменти. При подигање, одлучете што ги подготвува предусловите и по кој редослед. При меко рестартирање, запомнете дека уредот може да го преживее, а сесиската состојба не, па мора да работи валидатор наместо создавач. При расклопување, отстранете само тоа што го создаде оваа врска, зашто ресетирањето на секоја маршрута или празнењето на целиот firewall не е исто како повлекување на еден тунел од употреба.
За набљудување, ip monitor link address route ги покажува промените во јадрото како што се случуваат, но известува за настани, а не за намера: избришана маршрута не кажува ништо за тоа кој процес ја избришал. Спрегнете го со картата на сопственост, и збунувачкото исклучување станува краток список кандидати.
Исклучоците исто така имаат цена. Означувањето на цела класа уреди како неуправувана за да се избегне конфликт ја предава таа состојба на никого, што е одлука, а не поправка.