Екранът на iftop отговаря на един въпрос наведнъж: кои двойки хостове обменят байтове през интерфейса, към който сте го насочили. Той не отговаря дали всяко приложение следва VPN политика и празният екран не доказва, че нищо не е изтекло. Именно в разликата между тези две твърдения повечето спорове за тестове за изтичане грешат. Три условия определят какво всъщност означава дисплеят и трите се виждат в командния ред, който сте използвали.

Три условия определят какво означава екранът

Условията са кой интерфейс се показва, какво крият филтърът и самият инструмент и какво всъщност е упражнил тестът. Отговорете им в този ред, защото грешка в първото прави другите две безсмислени.

Условието за интерфейса е важно, защото изгледът на тунела и физическият изглед показват различни слоеве на един и същ трафик. Погледът към интерфейса на тунела показва потоците вътре в тунела; погледът към физическия интерфейс показва носителя на тунела, плюс всеки законен трафик за настройка, управление или локален трафик, който дели тази връзка. Нито един от двата изгледа не е грешен и нито един не е цялата картина. Да назовете кой изглед гледате, е разликата между доказателство и впечатление.

Условие първо: кой интерфейс се показва

iftop приема интерфейса изрично чрез -i и ръководството му описва поведението, когато не го направите: избира един, който може да е устройството, изглеждащо външно, а не тунелът. Тази настройка по подразбиране е разумна за инструмент за трафик и лоша за тест за изтичане.

Винаги подавайте интерфейса и го записвайте до резултата. Екранна снимка без името на интерфейса не е възпроизводима.

Условие второ: какво крият филтърът и инструментът

iftop приема израз за филтриране и поток, който филтърът изключи, е невидим по конструкция, а не поради отсъствие. Инструментът също така по подразбиране прави търсения на имена на хостове, за да обозначи адресите, и тези търсения генерират собствен DNS трафик, тоест трафик, който не сте възнамерявали да наблюдавате. -n изключва търсенията и прави дисплея цифров; скриването на DNS редовете след това не е същото като да не генерирате заявките.

Това разграничение си струва да се каже направо, защото се появява и в други инструменти: потискането на показването на дадена дейност не е същото като предотвратяването ѝ. Ако DNS търсенията са част от това, което тествате, пуснете теста с изключени търсения, за да не бъде наблюдението замърсено от наблюдателя.

Условие трето: какво всъщност е упражнил тестът

Една заявка от едно приложение към една дестинация в едно семейство адреси доказва нещо за тази заявка. Тя не доказва нищо за друго приложение, друга дестинация или другото семейство адреси, а IPv6 е семейството, което най-често се забравя точно при този вид проверка.

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

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

Използване на iftop като подкрепящо доказателство

Едва тогава iftop добавя стойност и я добавя като потвърждение. sudo iftop -i wg0 -n -B -P -f "host 203.0.113.9" показва дали очакваният поток се появява на очаквания интерфейс, с брой байтове, които правят твърдението за простой проверимо.

Сравнете това с ss -tnp за изгледа на ниво сокет и ip route get за маршрута, който ядрото би избрало, и имате три наблюдения на една заявка вместо едно впечатление за машина. Ръководството на iftop документира избора на интерфейс, синтаксиса на филтъра и поведението при търсене, които са трите неща, от които зависи тестът за изтичане. Екранът на трафика локализира активност; маршрутът, изключенията и поведението при отказ решават дали тази активност отговаря на изискването.

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