Налады punchy у Nebula: якая з іх выпраўляе ваш NAT
punch падтрымлівае існуючае супастаўленне NAT; respond спрабуе адваротнае рукапацісканне. Ні адно не гарантуе прамога шляху, а налады затрымкі мяняюць толькі час.
Два вузлы знаходзяць адзін аднаго праз маяк і потым не могуць пабудаваць прамы шлях, і першы інстынкт уключыць усе опцыі punchy. Гэты інстынкт стварае канфігурацыю з трыма зменамі і без уяўлення, якая з іх мела значэнне. Налады адказваюць на розныя пытанні: адна падтрымлівае супастаўленне, якое ўжо існуе, а іншая спрабуе рукапацісканне ў адваротным кірунку. Вызначце, якое пытанне ў вас, перш чым кранаць любую з іх.
Спачатку праверце канчатковы адрас, потым час
Вузел, які ніколі не з'яўляецца па чаканым адрасе, не выратуе налада punch. Праверце, што маяк ведае пра вузел і што абвяшчае яго ўласная канфігурацыя, бо састарэлы bootstrap-адрас або прыватны адрас, апублікаваны памылкова знішчае любую хітрасць пранікнення. Пераканайцеся таксама, што сертыфікат давераны, бо недавераная ідэнтычнасць спыняе размову задоўга да таго, як NAT стане важным. Затым праверце, ці даходзіць UDP да маяка наогул. Значэнні часу апошняе, на што варта глядзець, а не першае.
Запішыце пару канчатковых адрасоў, з якой вы тэстуеце, каб наступныя параўнанні выкарыстоўвалі тых жа вузлоў, а не дзве іншыя машыны.
punch захоўвае супастаўленне, respond адкрывае кірунак
Опцыя punch перыядычна дасылае пустыя пакеты на адрас ніжняга ўзроўню вузла, які ўжо мае тунель. Яе мэта непрыгожая: яна не дае NAT са станам або міжсеткаваму экрану скончыць супастаўленне, ад якога залежыць прамы шлях. Опцыя respond змяняе тое, што адбываецца пры апавяшчэнні маяка, прымушаючы хост спрабаваць рукапацісканне назад да вузла, які спрабуе да яго дабрацца. Гэта розныя механізмы з рознымі рэжымамі адмовы.
Выбірайце punch, калі прамы шлях працуе, а потым слабее. Выбірайце respond, калі шлях ніколі не ўтвараецца ў адным кірунку. Уключыць абодва і спадзявацца гэта спосаб ператварыць пяціхвіліннае выпраўленне ў тыдзень наладкі.
Затрымкі вырашаюць калі, а не ці
Значэнні затрымкі зрушваюць час: адно датычыцца пакета, дасланага пасля апавяшчэння, іншае спробы адваротнага рукапаціскання. Ні адно не робіць заблакаваны кірунак працоўным. Змяненне абодвух адначасова знішчае параўнанне, якое вы збіраліся зрабіць.
Не чапайце іх, пакуль механізм не будзе правільным. Затым падладзьце адно і запішыце старое значэнне.
Калі рэлей і ёсць сумленны адказ
Некаторыя камбінацыі NAT не могуць падтрымліваць прамы шлях, як бы ні быў уладкаваны час. Сіметрычны NAT з абодвух бакоў або міжсеткавы экран, які цалкам адкідае незапытаны ўваходны трафік, не пакідаюць нічога, каб прабіць.
Рэлейны вузел з дасягальным адрасам дае гэтым вузлам шлях, які не залежыць ад поспеху пранікнення. Ён каштуе прапускной здольнасці праз гэты вузел, таму гэта рашэнне пра ёмістасць, а не абыход. Наладзьце рэлей свядома і праверце, што вузлы могуць да яго дабрацца, бо рэлей, які сам знаходзіцца за складаным NAT, нічога не мяняе. Затым перастаньце наладжваць punch для гэтай пары, бо прамы шлях ніколі не з'явіцца.
Праверце пару, якая зламалася, пасля прастою
Узнавіце ўмову, якая зламалася: пакіньце пару ў прастоі на той жа інтэрвал або паўтарыце паслядоўнасць рукапаціскання, якая раней не ўдавалася. Затым запусціце праграму паміж гэтымі двума вузламі, а не запыт да маяка. Адказ маяка даказвае кантрольны шлях і нічога пра шлях даных.
Запішыце, якая налада змянілася, час і ці з'явіўся прамы шлях або трафік застаўся на рэлеі. Калі застаўся, адказ рэлей і нататка пра ёмістасць, і гэта цалкам добры вынік. Калі з'явіўся, наступнае пытанне ці перажыве ён гадзіну прастою, бо супастаўленне, якое слабее, менавіта праблема, для якой існуе punch.