Някои частни услуги отговарят през VPN, докато обикновеният интернет трафик се държи съвсем различно от това на машината на колега и човек се изкушава да заключи, че клиентът на Ubuntu е счупен. Това заключение пропуска една стъпка. Работеща частна операция и различен публичен път са две наблюдения и разликата обикновено е в политиката за трафик, която всеки клиент е инсталирал, а не в самия клиент.

Сравняването на запазената конфигурация с действителното състояние на мрежата отнема три команди и отговаря на въпроса, на който догадките се опитваха да отговорят.

Първо запазеният профил, после действителното състояние

Импортирана връзка OpenVPN става отделен профил на NetworkManager. Файлът .ovpn, от който идва, престава да бъде източник на истина в момента, в който импортът завърши, така че по-късно редактиране на този файл не променя нищо в връзката, която използвате. Това е първото място, където сравнението се обърква, и се обърква безшумно.

nmcli -f connection.id,connection.uuid,ipv4.never-default,ipv4.routes,ipv4.dns connection show office-vpn

Четете UUID, когато имената съвпадат; дублираните имена оцеляват при преинсталации и възстановяване на профили и можете да прекарате час в редактиране на копието, което не се използва. Стойностите, които виждате, описват запазеното намерение: дали профилът може да поеме маршрута по подразбиране, кои маршрути са запазени и кои резолвери и домейни за търсене иска. Те не описват какво се е случило при активиране на връзката, защото плъгин или натиск от сървъра може да добави състояние, което профилът не споменава. Затова следващата команда е важна.

След това вижте какво всъщност е направила системата с това намерение, включително правилата за политика и всички таблици, а не само основната. Запазените свойства са вход, а инсталираните таблици са резултатът.

ip -4 rule show
ip -4 route show table all

Две дестинации, едно сравнение

Изберете една частна дестинация, която работи, и една обикновена публична, после попитайте ядрото кой път ще поеме всяка. Именно правенето на това на двете машини превръща смътната разлика в конкретна.

ip -4 route get 10.40.0.20
ip -4 route get 203.0.113.20

Адресите са примери, които да замените със свои; смисълът е в двойката, не в числата. Сравнете интерфейса, адреса на източника и таблицата, посочена във всеки изход. Когато частното търсене посочва тунела и публичното също посочва тунела, имате пълен тунел и другият клиент може да има разделен, или обратното.

Не изисквайте двата клиента да отпечатват еднакъв текст. В OpenVPN redirect-gateway def1 обикновено се изразява като два маршрута с половин префикс вместо един по подразбиране и мениджър, който ги показва различно, не става от това грешен. Съдете за покритие, което показват търсенията, а не за форматиране.

Където двата клиента законно се различават

Стойностите по подразбиране на клиента са политически избори и им е позволено да не съвпадат. Един продукт може да предпочита пълен тунел, друг да запази локалната стойност по подразбиране и да маршрутизира само частните префикси, а трети да следва каквото е изпратил сървърът. Разликата е дефект само когато противоречи на изискването, което са ви дали.

Затова сравнявайте всеки клиент с одобреното намерение за разделен или пълен тунел, а не един с друг. Ако изискването е частният трафик да използва тунела и локалният интернет път да остане локален, тогава пълният тунел е бъгът, а разделеният тунел е правилен, независимо кой клиент какво е направил. Запишете намерението, преди да погледнете която и да е конфигурация, иначе първият клиент, който прегледате, тихо става стандартът.

DNS е втора ос и се проваля независимо. Правилен маршрут все още може да изпраща заявки към резолвер, който не може да отговори за частната зона, а правилният резолвер не поправя грешен маршрут. Проверете и двете и третирайте частно име, което се резолвира, докато частен адрес не се, като доказателство, че двата слоя се решават отделно.

Пазете сравнението чисто

Пускайте един собственик на връзка в даден момент. Сесия на OpenVPN от командния ред, работеща до импортирания профил, инсталира свои маршрути и свое състояние на резолвера и получената смес не е поведението на нито един от двата клиента. Спрете едната, преди да измервате другата. Рестартирайте, ако не сте сигурни какво още държи състояние, защото остарял маршрут от преди час ще изглежда точно като проблем с политиката.

Дръжте всичко останало фиксирано: същата крайна точка, същият акаунт, същите версии на софтуера, същата мрежа. Успех на лаптопа на колега с Windows тества друг клиент, друга интеграция на резолвер и вероятно друг профил на сървъра, така че не е доказателство за мениджъра на Ubuntu.

Справката за настройките на IPv4 в NetworkManager дефинира точно never-default и запазените свойства на маршрутите и си струва да се прочете, преди да промените управлявана стойност. И помнете обхвата на това сравнение: то покрива IPv4 и не казва нищо за съответната политика за IPv6, която има свои стойности по подразбиране и свой начин да ви изненада.

Подобни статии