Nid yw gweinydd VPN sy'n ateb o rwydwaith symudol ac yn methu o'r soffa fel arfer yn broblem tystysgrif. Mae'r cleient y tu mewn i'r LAN yn gofyn i'r llwybrydd drosi pecyn y mae ei gyrchfan yn gyfeiriad cyhoeddus y llwybrydd ei hun, sy'n golygu bod yn rhaid i'r pecyn adael a dod yn syth yn ôl i mewn. Gelwir y symudiad hwnnw yn hairpinning, ac mae llawer o lwybryddion naill ai'n peidio â'i weithredu neu'n ei weithredu dim ond pan fydd blwch ticio yn cael ei alluogi. Mae'r prawf allanol yn llwyddo yn gwneud hyn yn ddryslyd, oherwydd mae'n profi bod y gwrandawr a'r rheol anfon ymlaen yn iawn.

Mae'r pecyn yn mynd allan ac yn dod yn ôl i mewn

Dilynwch y pecyn. Mae'r cleient yn datrys yr enw cyhoeddus, yn cysylltu â'r cyfeiriad cyhoeddus, ac mae NAT cyrchfan y llwybrydd yn ailysgrifennu'r gyrchfan i'r gweinydd mewnol. Mae ateb y gweinydd wedi'i gyfeirio at gyfeiriad LAN y cleient, felly mae'n mynd yn ôl trwy ryngwyneb LAN y llwybrydd heb byth groesi'r rheol NAT a fyddai wedi dad-drosi'r ffynhonnell.

Nawr mae'r cleient yn derbyn pecyn o gyfeiriad na anfonodd unrhyw beth iddo erioed, ac yn ei ollwng. Yr anghymesuredd hwnnw yw'r methiant cyfan.

Mae RFC 4787 yn disgrifio'r ymddygiad y disgwylir i NAT ei gael yn yr achos hwn, a'r fersiwn fer yw ei fod yn ymarferol yn ddewisol hyd yn oed lle mae wedi'i nodi mewn theori. Mae rhai llwybryddion yn galw'r gosodiad yn NAT loopback, mae eraill yn ei alw'n hairpin NAT neu NAT reflection, ac mae rhai yn peidio â datgelu dim o gwbl. Nid yw llwybrydd heb hyn wedi'i gamgyflunio; mae'n gwneud y peth arferol, ac mae'r atgyweiriad yn perthyn rywle arall. Peidiwch â chasglu o brawf lleol aflwyddiannus fod y rheol anfon ymlaen gyhoeddus yn anghywir.

Gwiriad 1: profwch y ddau lwybr ar wahân

O du allan i'r LAN, cysylltwch â'r un proffil y byddai defnyddiwr go iawn yn ei ddefnyddio a chadarnhewch fod y sesiwn yn sefydlu. O'r tu mewn, cysylltwch â'r cyfeiriad cyhoeddus â'r un proffil a chofnodwch yr union wall a'r amser.

Mae prawf lleol manwl yn cadw'r enw gwesteiwr ac yn disodli'r cyfeiriad yn unig: curl -v --resolve vpn.example.com:443:203.0.113.10 https://vpn.example.com/ yn anfon y cais i'r cyfeiriad cyhoeddus tra'n dal i gyflwyno'r enw gweinydd cywir. Mae hynny'n gwahanu problem datrys enw oddi wrth broblem trosi, sy'n hawdd eu drysu pan fydd yr un enw yn gweithio o gaffi. Sylwch a yw'r cleient yn methu wrth gysylltu TCP neu'n ddiweddarach wrth TLS, oherwydd mae'r cyntaf yn pwyntio at drosi a'r ail at hunaniaeth.

Gwiriad 2: darllenwch beth mae'r gweinydd yn ei weld

Y sylw mwyaf defnyddiol yw golygfa'r gweinydd. Rhedewch gipiad ar y gwesteiwr VPN wedi'i hidlo i gyfeiriad LAN y cleient ac i gyfeiriad LAN y llwybrydd, yna ailadroddwch yr ymgais leol. Os na ddaw dim, ni oroesodd y pecyn y trosi.

Os daw cysylltiad o gyfeiriad LAN y llwybrydd yn lle un y cleient, mae hairpinning yn digwydd ac mae'r ffynhonnell wedi'i hailysgrifennu. Cyfluniad sy'n gweithio yw hwn, nid nam.

Gwiriad 3: trwsiwch ef heb gyffwrdd â'r llwybr allanol

Mae tair ffurf a gefnogir, mewn trefn gynyddol o radiws effaith. Y gulaf yw DNS hollt: cyhoeddwch gofnod mewnol fel bod yr un enw gweinydd yn datrys i'r cyfeiriad mewnol i gleientiaid ar y LAN, sy'n osgoi'r llwybr cyhoeddus yn gyfan gwbl. Y nesaf yw galluogi opsiwn loopback neu reflection dogfennedig y llwybrydd, os oes ganddo un, a'i gymhwyso i'r gwasanaeth hwn yn unig. Y mwyaf yw rheol source-NAT ar y llwybrydd sy'n ailysgrifennu traffig o'r LAN at y gweinydd fel bod yr ateb yn dychwelyd trwy'r llwybrydd; ar lwybrydd Linux rheol MASQUERADE yn POSTROUTING sy'n cyfateb i gyfeiriad a phorth y gweinydd yw hon. Mae'r tair yn cadw'r llwybr allanol yn ddihalog, a dyna'r nodwedd sydd i'w chadw.

Peidiwch ag ehangu anfon ymlaen porth annatod i wneud i'r llwybr lleol edrych fel yr un allanol, a pheidiwch â symud y gwasanaeth i borth arall i osgoi'r broblem. Mae'r ddau newid yn newid beth y gall y byd allanol ei gyrraedd er mwyn trwsio rhywbeth nad yw ond y byd mewnol yn ei weld.

Mae gan DNS hollt un trap sy'n werth ei enwi. Mae disodli enw gwesteiwr ag unrhyw IP yn newid beth mae'r cleient yn ei ddilysu, felly rhaid i'r cofnod mewnol barhau i gyfateb ag enw'r dystysgrif.

Gwiriad 4: gwiriwch y ddau lwybr wedyn

Ailadroddwch yr ymgais allanol o du allan i'r LAN, ailadroddwch yr ymgais fewnol â'r un proffil, a chadarnhewch fod cofnod y gweinydd yn dangos dau sesiwn llwyddiannus ar wahân yn hytrach nag un llwyddiant ac un tawelwch. Yna gwiriwch fod cleientiaid eraill yn dal i gyrraedd y gwrandawr ac nad yw'r llwybrau i adnoddau preifat wedi newid.

Cadwch y cofnod yn fyr: pa gyfeiriad a ddefnyddiodd pob cleient, beth a welodd y gweinydd, a pha un o'r tair atgyweiriad a gymhwyswyd. Mae gofynion hairpinning RFC 4787 yn gyfeirlyfr ar gyfer yr hyn a ddisgwylir gan NAT yma, ac maent yn esbonio pam mae llwybrydd heb y nodwedd yn ymddwyn yn normal. Mae methiant lleol na all y byd allanol ei atgynhyrchu yn gwestiwn trosi nes profir fel arall, felly profwch ef felly.

Erthyglau cysylltiedig