Башкара албаган NAT артындагы VPN: эмне дагы иштейт
Портту багыттоосуз кирүүчү пакетке бара турган жер жок. Тешик бургулоо, UPnP жана релелер муну өзгөртөт, бирок NATтын белгилүү бир жүрүм-турумунда гана.
Ар бир туннелдин четинде каршы тарап жете ала турган дарек жана порт керек, ал эми сиз башкарбаган маршрутизатор ушул талаптын аткарылбашынын кадимки себеби. Кызыктуусу — трюктардын бар экени эмес, алардын ар бири кардардан көрбөгөн карталоо таблицасынын касиетине көз каранды. Ошол касиеттердин экөө дээрлик баарын чечет: карталоо кантип түзүлөт жана ички тарап эч качан байланышпаган даректен пакеттерди кабыл алабы. Чөйрөнү ошол касиеттер боюнча иреттеңиз, айланып өтүү жолдору легенда болуудан калат.
Карталоо таблицасы баарын чечет
Тармак даректерин которуу ички дарек менен портту коомдук дарек менен портко каршы жазып турган таблицаны кармайт. Жазууга дал келген жооптор кайра которулат, ал эми сырттан келген, дал келген жазуусу жок пакеттин такыр бара турган жери жок. Ушул бир жүрүм-турум маршрутизатордун артындагы угуучунун интернеттен эмнеге жеткиликсиз экенин түшүндүрөт. Ал ошондой эле ар бир багыттагы биринчи пакеттин ичинен башталышы керек экенин түшүндүрөт.
Таблицага маршрутизатор тарабынан караңыз, айланып өтүү жолдору айкын болот: же бир нерсе туруктуу жазуу түзөт, же убактылуу жазуу түзүп, аны жаңы абалда кармайт, же трафик бул жол менен такыр жүрбөйт. Макаланын калганы — ушул үч учур ирети менен. Бул жерде эч нерсе таблица жазгандан тышкаркы өндүрүүчүнүн функциясына көз каранды эмес.
Жолугушуу кызматы эмне кыла алат, эмне кыла албайт
UDP тешик бургулоо чыпканы жеңүүнүн ордуна чыгуучу жазууну убактылуу ачылыш катары колдонот. Экөө тең жолугушуу кызматына кайрылат, ал ар бир коомдук четти билип, экинчи тарапка анын четин кайтарат. Анан экөө бири-бирине карай жөнөтөт, жана ар бир чыгуучу пакет жоопту ичке киргизген жазууну түзөт же жаңыртат. Иреттүүлүк аны иштетет, иреттүүлүк аны назик да кылат: экинчи тарап өз жазуусун түзө электе жөнөткөн өнөктөш жөн гана ыргытылат, ал эми бир аздан кийинки кайталоо ийгиликтүү болот. Кызматтын өзү VPN трафигин ташыбайт, ошондуктан анын жалгыз туткасы — координациялаган убакыт.
Карталоо жүрүм-туруму калганын чечет, ал эми RFC 4787 үч форманы атайт: четтен көз каранды эмес, дарекке көз каранды жана дарек менен портко көз каранды. Акыркысында өнөктөш бутага ала турган порт ар бир барар жери менен өзгөрөт, ошондуктан божомол ишенимдүү болбой калат. Ушул жерде техника өзүнүн туңгуюгуна туш болот, анткени оператордук деңгээлдеги NAT менен катуу корпоративдик брандмауэр схемага керектүү алдын ала айтуу мүмкүнчүлүгүн экөө тең жок кылат, жана канча кайталасаңыз да ал кайтпайт.
Keepalive, кайра жүктөөлөр жана жылышкан чет
Тешилген жол — угуучу эмес, агым, ошондуктан анын үстүндө иштегендин баары өзгөрүүгө туруштук бериши керек. Ал карталоону мезгилдүү трафик менен тирүү кармашы, коомдук четтин качан жылышканын байкашы жана маршрутизатор кайра жүктөлгөндөн же дарек кайра ыйгарылгандан кийин кайра орношу керек. Mesh VPN продуктулары бул логиканы өз башкаруу тегиздигине салат, ал эми жөнөкөй сервер аны сизге калтырат. Keepalive ошол эле карталоо тирүү турганда гана жардам берет жана мобилдик кардарда батарея жейт, ошондуктан агрессивдүү интервал акысыз эмес.
Бир саат уктаган ноутбук адатта башка коомдук четке кайтат. Жолду кайра орнотуучу нерсенин баары кайрадан ичинен иштеши керек, бул ошол эле талапты кардарга кайтарат.
Жок багыттоону айланып өтүүнүн үч жолу
Биринчи жолу маршрутизатордон жазууну өзү түзүүнү суранат, UPnP IGD, NAT-PMP же PCP аркылуу, мүмкүнчүлүк бар жана күйүк болсо. Экинчиси трафикти коомдук дареги бар релеге өткөрөт, ал дайым иштейт жана дайым өткөрүү жөндөмдүүлүгүнө кошумча башка ишеним чек арасын талап кылат. Үчүнчүсү багытты тескери бурат: ички хост коомдук серверге чыгуучу туннель ачат, калганынын баары анын ичинде жүрөт.
[Peer]
PublicKey = 6yGj3kQ2wVb8sTn1pLx4dRc7hZa9mKf2uYe5oNq0iXw=
Endpoint = relay.corp.internal:51820
PersistentKeepalive = 25
AllowedIPs = 10.44.0.0/24
Реленин чети бул алмашууну кардардын конфигурациясында көрүнүктүү кылат, мында чет өнөктөштүн өз дареги эмес, реле. Туруктуу keepalive карталоону жылуу кармайт, ал эми уруксат берилген префикстер кардар анын аркылуу эмнени жөнөтө аларын чечет. Ички хосттон тескери туннель — башка ээси бар ошол эле идея жана NATка такыр өзгөртүү талап кылбайт. Үчөө тең кирүү талабын алып салат, бирок суралбаган трафикти долбоор боюнча тоскон брандмауэрди жеңбейт, анткени трафик дагы эле ичинен башталат.
Айланып өтүү жолун маршрутизатордун ээсине ылайыкташтырыңыз
Эгер маршрутизаторду өзүңүз башкарсаңыз, статикалык UDP багыттоо каалаган тешик бургулоо схемасынан оңой текшерилет жана сиз көрө турган жолдор менен ишке ашпайт. Башкарбасаңыз, өндүрүүчү реле же хостинги бар башкаруу тегиздигин сунуштайбы, саясат аны колдонууга уруксат береби, аныктаңыз. Экөө тең жок болсо, калган тандоо — тескери туннель же четтин сырттан жеткиликсиз экенин кабыл алуу. Кайсынысын колдонгонуңузду жазуу көрүнгөндөн маанилүүрөөк, анткени варианттар трафикти ким байкай алары жана үчүнчү тарап бир нерсени өзгөрткөндө эмне болорунда айырмаланат.
Жеткен жолуңуз түз болдубу же реле аркылуубу, белгилеңиз, анткени бул бир факт кечигүүнү да, бузулуу жүрүм-турумун да болжолдойт. RFC 4787 ушунун баарынын астындагы карталоо жүрүм-турумунун маалымат булагы бойдон калат, жана анын карталоо бөлүмүн окуу үч айланып өтүү жолун кезек менен сынагандан тезирээк. Таблицага кайсы вариантты тандаганыңыз маанилүү эмес; ал кийинки пакеттин эмне кыла аларын гана жазат.