OpenVPN испрати DNS сервер, но Linux го игнорира
Испратениот DNS сервер е во дневникот, тунелот е подигнат, а внатрешните имиња уште не успеваат. Проверете ја врската на резолверот и изберете еден сопственик за конекцијата.
Испратениот DNS сервер е во дневникот, тунелот е подигнат, а внатрешните имиња уште не успеваат. Во самото испраќање ништо не е расипано; поставката пристигна и застана таму. Испратената DNS опција е порака до клиентот, а не упатство до резолверот на оперативниот систем, и токму предавањето меѓу нив е местото каде што завршуваат повеќето од овие случаи. Пет проверки, по ред, ја наоѓаат предавањето што не се случило.
Прва проверка: како започнува конекцијата
Сопственикот на конекцијата одредува кој може да примени поставки на резолверот. Директна openvpn команда од школа не поседува ништо освен својот процес, додека systemd единица, NetworkManager или клиент на добавувач секој има свој начин да објавува DNS. Прочитајте го списокот на процеси и името на единицата пред да претпоставите некој од нив.
Процесот од командната линија не е автоматски NetworkManager конекција, а NetworkManager конекцијата не е автоматски тоа што го напишало resolv.conf. Овие две претпоставки го објаснуваат најголемиот дел од изгубените часови во оваа истрага. Прашајте која компонента би објавила DNS за интерфејсот што навистина го гледате.
Запишете го сопственикот пред да продолжите. Секоја следна проверка зависи од него.
Втора проверка: што всушност држи врската на резолверот
На домаќин со systemd-resolved, resolvectl status ја наведува секоја врска со нејзините DNS сервери и домени. Најдете ја врската на тунелот и прочитајте ги нејзините записи, и не претпоставувајте дека интерфејсот се вика tun0, бидејќи нумерирањето го следи редот на создавање. Ако испратената адреса ја нема во врската, предавањето не успеа, а не барањето.
Ако адресата е присутна, следното прашање е кои домени ги бара таа врска. Врска без список на домени одговара само на имиња што се прашуваат директно, а тоа ретко е она што го сака распоредување на split-DNS. Самата адреса е неопходна, но не е доволна.
Споредете го името на врската во излезот на резолверот со името на интерфејсот во дневникот на VPN пред да извлечете каков било заклучок. Несовпаѓање таму обично значи дека линијата од дневникот дошла од друг процес.
Трета проверка: дали именскиот простор ја избира таа врска
Резолверот може да го има точниот сервер, а сепак да не биде консултиран. Доменот по врска одредува кои барања одат каде, а без домен за рутирање приватниот именски простор се враќа на тоа што го вели основната врска. Затоа resolvectl query може да успее за внатрешното име, додека апликацијата уште не успева. Можно е апликацијата да користи сосема друга патека на резолверот.
Проверете ја доделбата на доменот, не само адресата на серверот. Домен напишан како ~corp.example е домен за рутирање, а тилдата менува како се совпаѓа името.
Ако апликацијата има свој резолвер, тестирајте со истиот механизам што го користи таа, а не со системската алатка. Алатка за барања што го заобиколува системскиот резолвер ќе успее без оглед на состојбата на врската.
Четврта проверка: еден сопственик, а не два
Ако NetworkManager веќе управува со VPN и со состојбата на резолверот, додавањето неповрзана hook скрипта создава конкурентни писатели. Hook-от што пакетот го обезбедува за systemd-resolved е поддржана интеграција и очекува определен животен циклус: script-security 2, патека up, up-restart, патека down и down-pre. Тие опции прават регистрацијата и отстранувањето да се случуваат во вистинските моменти, а не само при првата конекција.
Користете ја инсталираната патека од пакетот, а не илустративна копирана од водич. Дозволите исто така се важни, бидејќи hook-от се извршува откако привилегиите ќе се намалат.
Уредувањето на резолверска скрипта на дистрибуцијата за да се смени нејзината излезна цел забележува заобиколување за еден домаќин. Тоа не е општо поправање.
Петта проверка: истиот резултат по повторно поврзување
Поврзете се повторно и прочитајте ја врската повторно. Регистрацијата што се појавува еднаш и исчезнува при следниот премин е дефектот за кој постои целиот овој контролен список. Тестирајте по суспензија, по присилно повторно поврзување и по рестартирање на резолверската служба. Секој премин проверува друга претпоставка за редоследот.
Само кога сите пет проверки ќе поминат при повторно поврзување, можете да кажете дека испратените поставки се користат. Сето она што е порано е снимка на среќен момент.