VPN е свързан, но една услуга не работи: изолирайте етапа
Завършеното ръкостискане не казва нищо за името, маршрута, размера на пакета или слушателя. Минете през четири етапа и оставете първата повреда да назове проблема.
„Свързан“ е най-малко информативният факт в една заявка за VPN. Той отбелязва, че двата върха са завършили ръкостискане, и нищо за името, което е било запитано, интерфейса, през който е излязъл пакетът, неговия размер или дали далечната страна го е приела. Затова една услуга може да се провали, докато всяко друго приложение на същия лаптоп работи. Минете етапите по ред и първият, който се провали, ще назове повредата.
Започнете с името, не с тунела
Резолвирайте, преди да маршрутизирате, защото лош отговор прави всеки следващ тест безсмислен. Запитайте името през системния резолвер и сравнете този отговор с адреса, който приложението действително е използвало. Частно име, което се връща като публичен адрес, означава, че заявката е отишла при резолвер, който няма работа да отговаря. Име, което не се резолвира, е същата категория, само по-високо.
resolvectl query host.internal
getent hosts host.internal
Браузърите със собствена настройка за сигурен DNS се провалят тук, докато останалата част от системата работи. Затова оплакване само за браузъра принадлежи първо на този етап, преди някой да пипне маршрут. Сравнете и двете команди, а не една, защото getent следва пътя на NSS, а заявката към резолвера — не.
Попитайте ядрото кой път е избрало
Таблицата за маршрутизация е ред на предпочитания, а пътят, който ядрото избира, не винаги е този от схемата. Попитайте го директно за въпросната дестинация. Отговорът назовава интерфейса, следващия хоп и адреса на източника, който ще бъде използван. Пакет може да излезе през тунела с адрес на източник, който далечната страна отхвърля, а по-конкретен запис във физическата таблица може да го изпрати през Wi-Fi интерфейса.
ip route get 10.20.30.40
ip -brief address show
Прочетете полетата dev, via и src в този ред, защото всяко едно елиминира различно подозрение. Този етап отговаря и за състоянието, което клиентът е инсталирал, тъй като правилата на защитната стена и маршрутите могат да останат след аварийно излизане. Затова „без интернет без тунела“ и „без интернет, освен ако клиентът работи“ са едно семейство повреди, а не две.
Проверете размера на пакета
Малък отговор, който се връща, докато голям трансфер засича, първо сочи към MTU на пътя. Една проба с установен бит do-not-fragment, изпратена отвътре в тунела, отделя този етап от останалите. Увеличавайте полезния товар, докато пробата се провали, и имате числото, което има значение.
ping -M do -s 1400 10.20.30.40
Малки проби минават, докато списък на директория или качване виси — това е подписът на този етап. Оплакването звучи като данни за достъп или правило на защитната стена, а не е нито едното.
Числото е свойство на пътя, а не на клиента, затова стойност, която работи на офис връзка, може да се провали на мобилен линк. Пазете командата за пробата заедно със заявката, защото следващият човек има нужда от същото измерване. Ако по-малък товар минава, решението е clamp или по-нисък MTU на тунела, а не нова шифра.
Тествайте далечната страна
Тествайте дестинацията по нейния адрес, после вижте какво слуша там. Отказана връзка и връзка, която никога не отговаря, са различни находки. Първата казва, че нещо работи и не обслужва този порт, а втората — че нищо не се е върнало. Нито една от двете не е проблем на клиента по подразбиране.
curl -sv http://10.20.30.41:8080/health
nc -vz -w 3 10.20.30.41 3389
ss -lnt 'sport = :8080'
Нищо достъпно през тунел не може да е услуга, която слуша само на 127.0.0.1, защото слушателят никога не вижда пакета. Когато защитната стена на далечния хост разрешава офис подмрежата и отхвърля пула на тунела, резултатът изглежда като повреда на клиента и не е. Remote Desktop или споделянето на файлове се чупят, докато уеб трафикът оцелява, обикновено каца тук, както и да го формулира потребителят.
Съпоставете оплакването с един етап
Повечето доклади се свеждат до една от пет форми и всяка форма назовава етап. Един сайт, който работи само през тунела, е отговор на име или политика, вързана към адреса на източника. Актуализациите се провалят без тунела, докато сърфирането работи — това е проблем с име или маршрут за този клиент.
Всичко спира, когато стартира клиент на доставчик, е инсталирано състояние, тоест въпрос на маршрут и защитна стена. Една услуга е недостъпна, докато останалите са наред — това е далечната страна. Трансферите засичат след няколко секунди — това е размерът на пакета. Съпоставете формата, преди да пускате команди, защото тя решава кои доказателства да се съберат първо.
Запишете етапа, който е дал първата повреда, заедно с изхода от командата. Заявка, която казва, че адресът на източника е бил грешен, с приложен ред за маршрута, заслужава действие, а тази, която съобщава, че VPN е счупен, не.