Во истиот разговор се појавуваат два броја и ниту еден не е погрешен. Серверскиот дневник го покажува слушателот што ја нуди услугата, преносникот го покажува сокетот што го испратил датаграмот, а рутер помеѓу може да го препише вториот на излезот. Поубаво е да се споредат краиштата на разговорот отколку самите цифри. Споредбата подолу ги држи одделно слушателот, клиентскиот сокет и преведениот извор, зашто тие одговараат на различни прашања.

Два броја што опишуваат спротивни краишта

Конфигурираната порта на серверот е одредиштето кон кое клиентот се јавува. Ја фиксира политиката, се појавува во профилот и мора да биде отворена на страната на серверот. Изворната порта на клиентот се избира локално, обично од ефемерниот опсег, и постои за да има каде да слета одговорот. Може да се смени при секое повторно поврзување, и ништо во дизајнот не зависи од тоа да остане стабилна.

Рутер помеѓу може да го препише тој извор во своето 'NAT' мапирање. Затоа бројот забележан на серверот често нема никаква врска со оној што го избрал преносникот.

Каде се менува бројот на изворот на излезот

Земете измислен пример со IPv4: клиент зад рутер што преведува, сервер со еден 'UDP' слушател и еден датаграм што ги преминува двата. Табелата го именува секое крајно место и што се случува со него, наместо повторно да го пушта пакетот на три набљудувачки точки.

EndpointWhat stays fixedWhat changes on reconnectWho owns it
Server listenerThe service port and the address the profile namesNothing; the listener does not follow the clientThe server operator
Client socketThe destination it dialsThe local source port, chosen per socketThe client, or its operating system
Translated sourceUsually the public address of the routerThe port, and sometimes the address after a network switchThe NAT device or the upstream carrier

Одредиштето е постојано во секој ред, а се менува само идентитетот на изворот. Барања на UDP NAT разликуваат внатрешна адреса и порта од надворешното мапирање, што е токму разликата меѓу вториот и третиот ред. Рутерот може да ја задржи изворната порта на клиентот или да избере друга; задржувањето не е нешто што апликацијата треба да го претпостави.

Прочитајте ги трите крајни места од самите домаќини

Списоците подолу доаѓаат од три различни машини и заедно го покажуваат целиот разговор. Пуштете го првиот на серверот, вториот на клиентот, а третиот каде што постои мапирањето. Еден ред од дневникот никогаш не ги покажува сите три.

ss -lunp 'sport = :1194'
ss -unp | grep 1194
conntrack -L -p udp | grep 1194

Првиот список докажува дека серверот е врзан за услужната порта и покажува кој процес ја поседува. Вториот го покажува локалниот сокет на клиентот и одредиштето кон кое се јавил. Третиот го покажува мапирањето што го создал рутерот, и тоа е единственото место каде што се појавува преведениот извор. Прочитајте ги по тој ред и двата броја престануваат да изгледаат противречни.

Што менува повторното поврзување, а што не

Некои рутери ја задржуваат изворната порта на клиентот кога е слободна, а некои секој пат доделуваат друга. Двете однесувања се нормални, а апликација што го бара првото ќе се скрши на второто. Промена на мапирањето по повторно поврзување или промена на мрежа не е дефект на серверот: клиентот отвора нов сокет, рутерот доделува што има, а серверот гледа нов извор на истиот слушател. Дефект би било да се очекува серверот да прифаќа сообраќај адресиран на произволна клиентска порта.

Клиентите OpenVPN од заедницата го добиваат ова однесување преку nobind, што му дозволува на оперативниот систем да ја избере локалната порта; далечната порта сè уште доаѓа од профилот. Изречното врзување е свесна одлука, не барање на протоколот. Серверот продолжува да нуди едно крајно место, додека клиентите избираат сопствени локални идентитети.

Означете ги слоевите одделно во записот

Внатре во тунелот има втор разговор со сопствени порти. HTTPS барањето што го носи тунелот има одредиште TCP 443, додека надворешната шифрирана врска користи UDP 1194, па промената на надворешната изворна порта не менува ништо во внатрешната услуга.

Дури и на надворешниот слој протоколот е важен. UDP 1194 и TCP 1194 се различни крајни места и 'TCP' слушател никогаш нема да прими UDP датаграм затоа што бројот се совпаѓа. Кога документирате распоредување, означете ги серверскиот слушател, клиентскиот сокет и преведениот извор како три различни работи и додајте транспорт на секое.

Потоа нека политиката ги следи улогите. Серверот го отвора предвидениот транспорт на својот слушател и сè уште го автентификува партнерот; огнениот ѕид на клиентот ги пропушта одговорите на сопствената излезна размена без да објавува влезна услуга. Филтерот без состојба бара изречно напишан повратен правец, и тоа е практичната причина зошто разликата е важна и надвор од уредните дијаграми.

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