Што прави TUN и што VPN протоколот треба да прави понатаму
TUN преместува IP пакети меѓу јадрото и програма. Транспортот, автентикацијата и шифрирањето ѝ припаѓаат на протоколот што го зборува таа програма.
Третирањето на tun0 и VPN протоколот како една работа ги води луѓето кон погрешен дневник. Интерфејсот е локална граница каде програма во корисничкиот простор разменува IP пакети со јадрото. Протоколот е она што програмата го прави со пакетите откако ќе ги добие: транспорт, автентикација, шифрирање и партнер. Создавањето на уредот не избира ниту едно од тоа.
Две компоненти, една патека на пакетот
Јадрото запишува IP пакет во уредот, а програмата го чита од датотечен дескриптор. Во спротивниот правец програмата запишува пакет назад и јадрото го насочува како да пристигнал на вистински интерфејс. TUN пренесува IP, а TAP пренесува Ethernet рамки. Читањето на пакет на таа граница го покажува рамкирањето, и уредот е токму за тоа.
Сето она што е зад таа граница е работа на програмата. Две програми можат да го користат истиот концепт на интерфејс и да прават сосема различни работи со пакетите. Самиот уред нема мислење за тоа што следи. Датотечниот дескриптор е единствената рачка што програмата ја има од страната на јадрото.
Создајте го уредот, потоа набљудувајте ја границата
Создајте уред намерно кога ја тестирате границата. Постојаниот уред го надживува процесот што го создал, што е корисно за експерименти и подоцна чест извор на забуна. Проверете ги знамињата и сопственикот пред да го обвините VPN.
sudo ip tuntap add dev tun9 mode tun user alice
ip -d link show tun9Деталите за врската го покажуваат типот на уредот и приклучениот сопственик. Ако ниту еден процес не го држи отворено, пакетите запишани во него не одат никаде. Уред без приклучен процес може да изгледа здрав во список на врски, а притоа да не пропушта ништо.
Што не може да вети името на интерфејсот
Името на интерфејсот не кажува ништо за шифрирањето или автентикацијата. Програмата може да ги завитка пакетите во TLS, во сопствен протокол, во IPsec или во ништо. Изборот на TUN наместо TAP го менува рамкирањето на границата, а не безбедносниот дизајн. Изборот на рамкирање е вистински и е многу помал од безбедносното прашање.
Откривањето работи исто: набљудувачот го гледа надворешниот протокол на жицата, а не етикета што кажува кој локален уред го создал. Тунел што изгледа како нешто друго го прави тоа поради својот надворешен протокол, а не поради името на интерфејсот. Набљудувачот не може да види кој локален уред создал пакет, туку само како изгледа пакетот. Држете ги овие две прашања одвоени кога споредувате производи, бидејќи едниот одговор никогаш не го подразбира другиот.
Усогласете ја поправката со фазата што паѓа
Кога нешто ќе се расипе, одвојте ги фазите на отказ. Уред што недостасува, грешка во дозволите и одбиена најава даваат различен доказ и различни поправки. Најпрво прочитајте ја локалната состојба, потоа дневникот на самата програма, потоа гледиштето на партнерот. Прочитајте ги сите три пред да смените нешто.
ip -d link show tun0
journalctl -u openvpn-client@corp --since '10 min ago'Ако уредот постои и процес го држи, локалната граница работи и проблемот е подалеку. Ако уредот недостасува, никаква проверка на акредитиви нема да помогне. Фаза што можете да ја именувате е фаза што можете да ја тестирате. Документацијата за TUN/TAP ја опишува границата и моделот на уредот.