Зошто многу врски на апликации делат една OpenVPN сесија
Еден надворешен UDP разговор носи секој внатрешен тек што рутите го праќаат во него. Внатрешните порти и протоколи опстануваат; фиксна останува само надворешната петорка.
Замислете прелистувач што вчитува HTTPS страница, додека SSH клиент достигнува друг сервер и резолвер одговара на барање, сето тоа низ една OpenVPN сесија. На физичкиот интерфејс гледате еден разговор; внатре во тунелот гледате три. Двата погледи се точни, а знаењето зошто е разликата помеѓу корисен и збунувачки запис. Следете еден внатрешен тек од сокетот до жицата и слоевитоста престанува да биде апстрактна.
Еден надворешен разговор, многу внатрешни текови
Секоја апликација отвора свој сокет, и јадрото ѝ дава петорка од изворна адреса, изворна порта, одредишна адреса, одредишна порта и протокол. Тие петорки постојат пред воопшто да се вклучи тунел. Потоа рутирањето одлучува дека сите тие излегуваат низ уредот за тунел, па пакетот предаден на OpenVPN сѐ уште ги носи оригиналните заглавија во себе. OpenVPN го шифрира тој внатрешен пакет и резултатот го завиткува во еден надворешен UDP или TCP разговор со партнерот. Значи надворешниот разговор е еден, а тековите внатре во него се толку, колку што апликациите отворија.
Ништо не се урива. Внатрешните петорки опстануваат од крај до крај, и токму затоа далечната страна сѐ уште ги разликува трите текови.
Портата што останува фиксна
Постојана останува надворешната петорка: вашата адреса, локалната порта што клиентот ја врзал, адресата на партнерот и конфигурираната порта на услугата. Токму оваа петорка мора да ја дозволи огнено ѕид или NAT на патот, и токму неа ќе ја покаже запис на нагорната врска. Таа е и онаа што се менува по повторно поврзување или промена на мрежата, бидејќи клиентот може да врзе друга локална порта. Еден тунел не значи една постојана изворна порта засекогаш.
Внатрешните порти се она што им е важно на крајните точки. HTTPS текот во тунелот ја задржува одредишната порта 443, иако надворешниот транспорт седи на портата што ја конфигурирал операторот. Крајните точки на апликацијата никогаш не дознаваат за надворешната.
Што менува декапсулацијата на далечниот крај
Кај партнерот надворешниот слој се отстранува, а останува внатрешниот пакет. Оттаму препраќањето и политиката за пристап се применуваат на внатрешната одредишна точка и протокол. Веб-серверот сѐ уште прима HTTPS врска, SSH демонот сѐ уште прима SSH, а резолверот сѐ уште прима барање.
Затоа правило што го дозволува надворешниот транспорт не е исто правило како дозволување внатрешна услуга. Првото опишува пат; второто опишува овластување.
Надворешен TCP значи еден тек, а не една врска
Кога надворешниот транспорт е UDP, судбината на секој внатрешен тек е независна: изгубена датаграма влијае на еден пренос до нејзиното сопствено повторно праќање. Кога надворешниот транспорт е TCP, сите внатрешни текови делат еден сигурен бајтен тек.
Токму тој заеднички тек е делот што луѓето го пропуштаат. Воспоставувањето се случува еднаш, за сѐ, па еден изгубен сегмент го забавува сообраќајот на секоја внатре мултиплексирана апликација. Сѐ уште има многу врски на крајните точки и една врска на жицата, и токму на жицата живее ефектот на блокирање на главата на редот. Бројот на порти што слушаат не ви кажува ништо за ова, и затоа броењето порти е лош начин да се размислува за перформансите на тунелот.
Опишете ја сопствената поставеност точно
Именувајте го избраниот внатрешен сообраќај и конкретниот надворешен транспорт што го носи, наместо да велите дека машината праќа сѐ низ една порта. Локалните услуги, вториот тунел и другата фамилија адреси создаваат текови што никогаш не влегуваат во овој разговор. Записот на нагорната врска ја покажува надворешната петорка; записот внатре во тунелот ги покажува внатрешните.
Земете ги двете и ставете ги временските ознаки една до друга. Ако треба да докажете која апликација создала кој внатрешен тек, табелата со сокети на домаќинот е подобро средство, бидејќи ги поврзува портите директно со процесите. Потоа запишете ја набљудуваната надворешна петорка и моментот кога сте ја набљудувале, бидејќи следниот запис по повторно поврзување може сосема законски да покаже други броеви.