Симметриялуу NAT жана VPN: белгини эмес, картаны өлчөңүз
Акыркы чекитке көз каранды карталоо теңдештерди табууга таасир этет, кадимки кардар-сервер туннелине эмес. Портту өлчөп, түз жол ийгиликсиз болсо, реле колдонуңуз.
Колдоо жиби «симметриялуу NAT, VPN бул жерде иштебейт» деген өкүм менен аяктайт, анан кардар себепсиз үч жолу кайра орнотулат. Белги зыян келтирет, анткени эч ким сурабаган суроого жооп берет. Туруктуу серверге сыртка туташкан кардар биринчи пакетти жөнөткөн учурда карта түзөт, ал эми жоопко дээрлик ар бир тармак колдонгон эрежелер боюнча кайтууга уруксат берилет. Акыркы чекитке көз каранды карталоо чындап татаалдаштырган нерсе — эки теңдештин бир убакта бири-бирине жетүү аракети, ал эми бул башка сынак.
Бир белгинин артында эки суроо жашырылган
Биринчи суроо — ушул тармактын артындагы хост белгилүү коомдук дарекке жана портко сессия ача алабы. Туннелдин кардары үчүн бул кадимки учур, ал эми жооп дээрлик ар дайым ооба. Маршрутизатор ички булакты жазат, тышкы портту бөлүп берет жана жоопту өткөрөт, анткени ал ичтен башталган сессияга таандык.
Экинчи суроо — ар кандай тармактардын артындагы эки хост ортодо сервер жок эле жалпы жол таап, бири-бирине жөнөтө алабы. Бул ар бир тармактын ошол тышкы портторду кантип бөлүштүрүшүнө байланыштуу, ал эми карталоо жүрүм-турумунун мааниси так ошол жерде.
Экөөнү аралаштыруу классикалык туура эмес диагнозду жаратат: теңдеш функциясы ийгиликсиз болот, бирөө NAT түрүнүн сынагын иштетет, эң начар категорияны көрүп, кадимки туннел да иштей албайт деген жыйынтыкка келет. Ийгиликсиз болгон нерсе эч качан туннел болгон эмес.
Карталоо жана чыпкалоо өзүнчө касиеттер
RFC терминдери жеткирүүчүлөр колдонгон аттардан так, жана аны билетке көчүрүүгө татыктуу, анткени ал талаш-тартыштарды чечет. Карталоо — тышкы порттун кантип бөлүнүшү. Чыпкалоо — кайсы кирүүчү пакеттердин өтүүсүнө уруксат берилери. Тармак биринде катуу, экинчисинде либералдуу болушу мүмкүн, жана дал ушул айкалыш — теңдеш протоколу чыдоого тийиш болгон нерсе.
| Behaviour | What it means | Effect on a direct peer path |
|---|---|---|
| Endpoint-independent mapping | One external port for every destination | Discovery works if the port is advertised |
| Address-dependent mapping | New port per remote address | Works only if both sides probe the same pair |
| Address-and-port-dependent | New port per remote address and port | Usually needs a relay |
Үчүнчү сап — көптөгөн турмуштук маршрутизаторлор жана уюлдук операторлор симметриялуу деп түшүнгөн нерсе. Белги тек бөлүштүрүүнү сүрөттөөрүн эске алыңыз. Ушундай карталоосу жана либералдуу чыпкалоосу бар тармак дагы эле жаңы бөлүп берген портко кирүүчү пакеттерди кабыл ала алат, ошондуктан тешик бургулоо кээ биринде ийгиликтүү, кээ биринде ийгиликсиз.
Чыпкалоонун өзүнүн үч учуру жана ар бирине өз аталышы бар. Билетке «симметриялуу NAT» деп жазуу, бирок «дарек жана портко көз каранды чыпкалоо» дегенди билдирсе, кийинки адамды колдонмонун туура эмес бөлүмүнө жөнөтөт. Экөө сынакта башкача жүрүм-турум көрсөтөт, ошондуктан ката академиялык эмес.
Карталоону атабай, өлчөңүз
Бөлүнгөн портту өзүңүз башкарган каалаган UDP кызматынын сервер тарабынан түз байкай аласыз. Коомдук хостто кармоону баштаңыз, кардардан жөнөтүңүз жана пакет келген баштапкы портту окуңуз:
sudo tcpdump -ni eth0 -c 10 'udp port 51820'
sudo wg show wg0 endpoints
sudo conntrack -L -p udp --dport 51820
Акыркы чекит сабы үчөөнүн ичинен эң пайдалуусу, анткени WireGuard ар бир теңдештен алган акыркы даректи жана портту жазат. Ошол портту кардар колдонот деп ойлогон порт менен салыштырыңыз. Кандайдыр бир которуу болгон сайын алар айырмаланат, жана маанилүү суроо — маани туруктуу бойдон калабы.
Байкоону экинчи багыт портуна же экинчи серверге кайталап, дагы салыштырыңыз. Эгер тышкы порт багытка жараша өзгөрсө, карталоо дарекке жана портко көз каранды. Эгер ошол бойдон калса, тармак бир карта берет жана табуунун мүмкүнчүлүгү бар.
STUN негизиндеги куралдар ошол эле классификацияны бир кадамда билдирет жана тармак коомдук STUN серверине чыгуучу UDPге уруксат берсе, аларды колдонууга болот. Уруксат бербесе, жогорудагы кармоо ыкмасы дагы иштейт жана өзүңүз башкарган хосттон башка эч нерсени талап кылбайт.
Бузулушка туура келген оңдоону тандаңыз
Эгер ийгиликсиз функция теңдеш функциясы болсо, колдоого алынган жооптор — реле, эки теңдеш те жете алган жолугушуу кызматы же башка топология. TURN дал ушул үчүн бар, ал эми өз релесин сунуштаган продукт сизге айрым тармактар душмандык болорун күтөрүн айтат.
Эгер ийгиликсиз функция кадимки туннел болсо, карталоо жүрүм-туруму сиздин маселеңиз эмес жана жогорудагылардын эч бири колдонулбайт. Кардар чын эле жөнөтүп жатканын, сервер пакетти көрүп жатканын жана жооп кайтып жатканын текшериңиз. Бул ырааттуулук — үч байкоо жана ал маршрутизатордун NAT категориясы тууралуу эч нерсе билүүнү талап кылбайт.
Иштебеген нерсе — бир нерсе туташканга чейин жергиликтүү порт өзгөртүүлөрүн чачуу. Кардардын баштапкы портун өзгөртүү тармактын карталарды кантип бөлүштүрүшүн өзгөртпөйт. Бешинчи аракеттеги кокустан ийгилик — жалган оң натыйжа, жана ал айлар бою чечим катары келтирилет.
Өкүмдү эмес, архитектураны жазыңыз
Пайдалуу жазуу кайсы протоколду, сессия кайсы багытта башталарын, жолдо реле бар-жогун жана зымда эмне байкалганын айтат. «симметриялуу NAT, иштебейт» пайдасыз, анткени ал бир убакта туннел тууралуу туура эмес жана теңдеш жолу тууралуу маалыматсыз.
Эгер сынаган болсоңуз, өлчөнгөн порт туруктуулугун жана чыпкалоо жүрүм-турумун кошуңуз. Бул эки факт башка бирөөгө бүт иликтөөнү кайталабастан жаңы функция ошол тармакта иштейби деп болжолдоого мүмкүндүк берет. Алар ошондой эле ар бир жардам барагында бир аз башка маани берген жеткирүүчү категориясынан жакшыраак эскирет.
Акырында, аны жазууда RFC 4787 терминдерин колуңузда кармаңыз. Так терминдерди колдонуу бир сүйлөмгө турат жана кийинки окурмандын ошол эле туура эмес диагнозду кайталашына жол бербейт, ал эми жазуу жазуунун бүт мааниси ушунда.