Mae’r ffôn yn ailgychwyn, mae bob amser ymlaen yn weithredol, mae blocio cysylltiadau heb VPN ymlaen, ac nid yw’r twnnel byth yn codi. Nid oes dim wedi’i gam-gyflunio: mae’r bloc yn gwneud ei waith, ac mae ymdrech y cleient ei hun i gyrraedd ei ben draw yn ddarostyngedig iddo hefyd. Rhaid datrys y pen draw cyn bod y twnnel, gan gleient y caniateir iddo siarad â’r rhwydwaith tra na chaniateir i unrhyw ap arall. Deall pa gydran sy’n gwneud hyn, ac ym mha drefn, sy’n troi hyn o fod yn ddirgelwch yn gwestiwn cyfluniad.

Beth mae’r adeiladydd VPN yn ei ofyn mewn gwirionedd

Nid yw ap VPN Android yn rhoi cyfeiriad gweinydd i’r platfform. Mae’n adeiladu rhyngwyneb lleol: cyfeiriadau a llwybrau ar gyfer y twnnel, y datrysyddion y dylai apiau eu defnyddio y tu mewn, ac yna mae establish() yn dychwelyd disgrifydd ffeil y mae’r ap yn ei ddarllen a’i ysgrifennu fel pecynnau IP crai. Nid yw’r pen draw pell byth yn ymddangos yn yr adeiladydd hwnnw.

Dyma’r ffaith strwythurol allweddol. Mae’r platfform yn creu rhyngwyneb tun ac yn gorfodi polisi arno; mae’r ap yn gweithredu’r cludiant yn ofod defnyddiwr, hynny yw, mae’r ap ei hun yn datrys enw ei ben draw ac yn agor y cysylltiad wedi’i amgryptio. Felly mae pen draw ag enw gwesteiwr yn bosibl, nid am fod y platfform yn cefnogi enwau, ond am nad yw’r platfform byth yn gweld y pen draw.

Mae un maes yn yr adeiladydd yn cymryd cyfeiriadau: y gweinyddion DNS. Rhaid iddynt fod yn gyfeiriadau datrysydd rhifol, fel arfer y rheini y mae’r gweithredwr am iddynt gael eu holi drwy’r twnnel. Mae’r maes hwnnw’n disgrifio i ble mae apiau’n anfon ymholiadau ar ôl i’r twnnel godi. Nid yw’n dweud dim am sut mae’r cleient yn dod o hyd i’r pen draw, ac mae trin y ddau fel yr un gosodiad yn fan cychwyn y dryswch.

Dau gwestiwn DNS, nid un

Y cwestiwn cyntaf yw: i ble mae apiau’n anfon ymholiadau ar ôl i’r twnnel godi? Yr ateb yw cyfeiriad datrysydd y tu mewn i’r twnnel, y gellir ei gyrraedd drwy’r rhyngwyneb tun, yn rhifol o ran ei natur.

Yr ail gwestiwn yw: sut mae’r cleient yn dod o hyd i’w ben draw ei hun cyn bod y twnnel hwnnw? Mae’r chwiliad hwnnw’n digwydd y tu allan i’r twnnel, ar y rhwydwaith sylfaenol, ym mhroses y cleient. Gall ddefnyddio enw, a rhaid iddo ddefnyddio datrysydd y gall y ddyfais ei gyrraedd heb y VPN.

CamPwy sy’n datrysLlwybrSut olwg sydd ar fethiant
Chwilio am y pen drawYr ap VPNRhwydwaith sylfaenol, soced wedi’i diogeluByth yn cysylltu; dim traffig ar y rhyngwyneb tun
Dilysu’r cyfoedCleient a gweinyddCludiant y twnnelYn cysylltu ac yna’n disgyn; gwall tystysgrif neu allwedd
Chwilio am enw preifatApiau drwy’r twnnelDatrysydd y tu mewn i’r tunTwnnel i fyny, nid yw’r safleoedd mewnol yn datrys

Tri cham, tri symptom gwahanol. Mae un neges wall fel methu cysylltu yn eu cyfuno, a dyna pam y mae pobl yn golygu maes y gweinydd DNS i drwsio problem sy’n digwydd cyn i’r maes hwnnw gael ei ddarllen.

Pam y gall y cychwyn fynd i mewn i’r cul

Mae bob amser ymlaen gyda’r bloc yn weithredol yn golygu bod traffig nad yw y tu mewn i’r VPN yn cael ei ollwng, gan gynnwys traffig yr ap sy’n berchen ar y VPN. Mae’r ffordd allan yn glir: mae’r ap yn galw protect() ar soced, sy’n ei rwymo i’r rhwydwaith sylfaenol fel ei fod yn osgoi’r twnnel ac yn cael ei ollwng allan. Rhaid i bob cleient VPN wneud hyn ar gyfer ei gludiant ei hun, neu ni fyddai byth yn cyrraedd gweinydd.

Ystyriwch osodiad lle mae’r unig ddatrysydd sy’n gwybod enw’r pen draw y tu mewn i’r twnnel ei hun. Mae’r cleient angen y twnnel i ddatrys yr enw, a’r enw i adeiladu’r twnnel. Mae hynny’n ddibyniaeth gylchol wirioneddol, ac nid oes unrhyw gyfluniad cleient yn ei datrys. Gwall cynllun ydyw, nid byg.

Mae amser yn dangos yr un ddibyniaeth ar ffurfiau mwynach. Wrth gychwyn cyn y datgloi cyntaf, efallai nad oes gan y ddyfais rwydwaith defnyddiadwy eto; ar borthladd caeth mae’r rhwydwaith yn bodoli ond yn blocio popeth ond y porthladd; wrth symud o Wi-Fi i rwydwaith symudol mae rhwydwaith sylfaenol y soced wedi’i diogelu yn newid a rhaid i’r cleient sylwi a datrys eto. Mae pob un ohonynt yn ddigwyddiad cychwyn, ac mae’n werth eu profi’n fwriadol yn hytrach na’u darganfod am 3 o’r gloch y bore.

Pam nad yw pinio’r ateb yn atgyweiriad

Y llwybr temtasiwn yw datrys yr enw unwaith a gludo’r cyfeiriad sy’n deillio i faes rhifol, neu ei galedgodio mewn adeiladwaith personol. Mae’n ymddangos ei fod yn gweithio, ac mae’n troi enw yn snapshot. Pan fydd y gweithredwr yn symud y pen draw, drwy ymfudo, newid anycast neu gyfeiriad rhanbarthol newydd, mae’r cleient yn dal i alw’r hen un ac nid oes dim yn y rhyngwyneb yn esbonio pam.

Mae cofnodion DNS yn cario bywyd prin yn union fel y gall atebion newid; diffinnir caching gan y cyfnod hwnnw, nid am byth. Mae pinio ateb yn taflu’r mecanwaith sy’n gwneud enw’n well nag adres, tra’n cadw cost weithredol defnyddio enw.

Mae pinio hefyd yn mynd gydag ail arferiad drwg: llacio gwiriadau hunaniaeth am fod y cysylltiad nawr yn methu’n wahanol. Nid yw gwirio hunaniaeth y gweinydd yn rhan o’r broblem gychwyn, ac mae ei wanhau yn cyfnewid anghyfleustra DNS am risg rhyng-gipio.

Cynlluniau sy’n goroesi ailgychwyn

Mae’r drefn barhaus yn ddi-ffrwt. Defnyddiwch gleient sy’n gweithredu socedi wedi’u diogelu’n gywir ac yn datrys ei ben draw ar y rhwydwaith sylfaenol, a rhowch iddo enw pen draw sy’n datrys yn gyhoeddus, neu drwy ddatrysydd y gellir ei gyrraedd cyn y twnnel. Gadewch y bloc ymlaen; mae’i ddiffodd yn gyfan gwbl er mwyn i DNS weithio yn tynnu’r nodwedd y mae’r osodiad yn bodoli ar ei chyfer.

Lle mae’n rhaid i’r pen draw aros yn breifat, darparwch lwybr cychwyn clir y gall y platfform ei ddefnyddio, fel datrysydd y gellir ei gyrraedd heb y twnnel neu gysylltiad rheoli a gynhelir gan y gweithredwr, a chadwch yr eithriad hwnnw’n gul ac yn eiddo i bolisi yn hytrach nag i doc defnyddiwr. Dogfen Android VpnService yw’r ffynhonnell ar gyfer yr hyn y mae’r platfform yn ei warantu am amddiffyniad a chylch bywyd, ac mae ’r cyfeirnod VpnService.Builder yn cadarnhau bod maes DNS yn cymryd cyfeiriadau rhifol.

Yna gwiriwch yn y tri cham, yn eu trefn, ar gysylltiad newydd ar ôl ailgychwyn: mae enw’r pen draw yn datrys, mae’r twnnel yn sefydlu ac mae’r cyfoed yn dilysu, ac mae enw preifat yn datrys drwy ddatrysydd y twnnel. Os yw cam un yn methu, ni all dim arall weithio, ac mae’r atgyweiriad yn perthyn i’r llwybr cychwyn, byth i faes y datrysydd.

  • Mae datrys y pen draw yn digwydd yn yr ap, y tu allan i’r twnnel, ar soced wedi’i diogelu.
  • Mae maes DNS yr adeiladydd ar gyfer apiau y tu mewn i’r twnnel, nid ar gyfer pen draw’r cleient ei hun.
  • Mae datrysydd y gellir ei gyrraedd drwy’r twnnel yn unig yn gilfach glo, nid yn gychwyn araf.
  • Profwch y pen draw, y dilysu a’r chwiliad preifat ar wahân ar ôl ailgychwyn.

Erthyglau cysylltiedig