Бір әңгімеде екі сан пайда болады және екеуі де қате емес. Сервер журналы қызмет ұсынатын тыңдаушыны көрсетеді, ноутбук датаграмма жіберген сокетті көрсетеді, ал арадағы маршрутизатор екіншісін сыртқа шығарда қайта жаза алады. Әңгіменің екі ұшын салыстыру сандарды салыстырғаннан пайдалырақ. Төмендегі салыстыру тыңдаушыны, клиент сокетін және аударылған бастапқыны бөлек ұстайды, өйткені олар әртүрлі сұрақтарға жауап береді.

Қарсы ұштарды сипаттайтын екі сан

Сервердің конфигурацияланған порты клиент қоңырау шалатын меже. Оны саясат бекітеді, ол профильде көрінеді және сервер жағында ашық болуы керек. Клиенттің бастапқы порты жергілікті түрде, әдетте қысқа мерзімді ауқымнан таңдалады және жауаптың түсетін орны болуы үшін қажет. Ол әр қайта қосылуда өзгеруі мүмкін, ал дизайнда ештеңе оның тұрақтылығына тәуелді емес.

Арадағы маршрутизатор сол бастапқыны өзінің '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 датаграммасын алмайды. Орналастыруды құжаттағанда сервер тыңдаушысын, клиент сокетін және аударылған бастапқыны үш бөлек нәрсе ретінде белгілеп, әрқайсысына тасымалды қосыңыз.

Сосын саясат рөлдерге ерсін. Сервер көзделген тасымалды өз тыңдаушысында ашады және серіктесті әлі де аутентификациялайды; клиенттің брандмауэры кіріс қызметін жарияламай, өз шығыс айырбасына жауаптарды жібереді. Күйсіз сүзгіге қайту бағыты анық жазылуы керек, және бұл айырмашылықтың ұқыпты диаграммалардан тыс маңызды болуының практикалық себебі.

Қатысты мақалалар