Sut mae rheolau parth Apple VPN On Demand yn cychwyn twnnel
Mae rheol parth yn penderfynu dim ond pryd mae’r twnnel yn agor. Sut mae’r prawf DNS connect-if-needed yn gweithio, pam mae llwybrau’n dal i ddewis traffig, a sut i brofi’r proffil.
Mae’r twnnel yn agor pan fyddwch yn gofyn am un enw mewnol ac yn aros ar gau pan fydd yr ap nesaf angen yr un peth yr un mor daer. Nid yw hynny’n fyg yn yr ap; siâp rheol parth yw e. Mae ffurfweddiad on-demand Apple yn disgrifio amodau ar gyfer gwneud cysylltiad, ac mae ffurf parth y rhai amodau yn gofyn cwestiwn i ddatryswr y system cyn i un pecyn symud. Mae dau gwestiwn yn cael eu cymysgu’n barhaus: pryd y dylai’r twnnel godi, a beth mae’r twnnel yn ei gario unwaith y bydd yn bodoli. Mae’r cyntaf yn sbardun, yr ail yn bolisi llwybr a datryswr, ac mae un proffil fel arfer yn gosod y ddau yn yr un payload, a dyna pam y gall rheol parth gywir eich gadael ar y rhwydwaith anghywir o hyd.
Mae sbardun a dewis traffig ar wahanol haenau
Mae rheol on-demand yn byw yn y geiriadur on-demand o payload VPN: rhestr drefnus o reolau, pob un ag gweithred a set o amodau cyfateb. Mae’r system yn eu gwerthuso pan fydd cysylltedd yn newid neu pan fydd rhywbeth yn ceisio cyrraedd y rhwydwaith, ac mae’r weithred yn penderfynu a yw’r twnnel yn cael ei godi, ei werthuso, ei ddatgysylltu neu ei anwybyddu. Mae hyn i gyd yn digwydd yn haen rwydweithio’r platfform, cyn i’ch ap gael soced.
Mae’r hyn sy’n digwydd wedyn yn grŵp ar wahân o allweddi: gosodiadau IPv4 ac IPv6 y twnnel, ei lwybrau wedi’u cynnwys a’u heithrio, ei gyfeiriadau gweinydd DNS, ac ar iOS ac iPadOS y mapio fesul ap sy’n penderfynu pa apiau sy’n cael defnyddio’r twnnel o gwbl. Gall proffil baru sbardun eang â llwybr cul, neu sbardun cul â llwybr diofyn. Darllenwch un hanner yn unig a bydd yr hanner arall yn edrych fel camweithrediad.
Rwy’n cadw proffil labordy sy’n cysylltu pryd bynnag y gofynnir am unrhyw beth o dan barth mewnol ond sy’n llwybro un /16 yn unig i’r twnnel. Mae’n gwneud yn union yr hyn y mae ei payload yn ei ddweud, ac mae hefyd y math o broffil sy’n cynhyrchu tocynnau: mae pobl yn cymryd yn ganiataol bod twnnel cysylltiedig yn golygu bod eu traffig y tu mewn iddo.
Beth mae rheol parth yn ei ofyn i’r datryswr
Nid yw ffurf parth y rheol, a elwir yn aml yn connect-if-needed, yn archwilio payload pecynnau nac yn gwylio URLs. Pan fydd enw’n cael ei ddatrys, mae’r system yn ei gymharu â’r parthau yn y rheol ac, ar gyfatebiaeth, yn gofyn a ellir datrys yr enw hwnnw trwy’r gweinyddion DNS y mae’r twnnel yn eu darparu. Os bydd datryswr y twnnel yn ateb, mae’r enw’n cyfrif fel un mewnol a dechreuir y cysylltiad. Os bydd y datryswr lleol yn ateb yn lle hynny, mae’r enw’n cael ei drin fel un allanol ac nid oes twnnel yn ymddangos. Mae trosolwg defnyddio Apple yn disgrifio’r rhain fel canfod rhwydwaith ac yna gwerthuso cysylltiad.
Mae dau ganlyniad yn dilyn. Rhaid i’r proffil enwi gweinyddion DNS y tu mewn i’r twnnel; nid oes gan reol parth heb ddatryswr twnnel unrhyw beth i’w gymharu, felly ni all y gwerthusiad gynhyrchu’r gyfatebiaeth yr ydych yn ei disgwyl. Ac mae’n rhaid i’r chwiliad gyrraedd datryswr y system. Nid yw ap neu borwr sy’n rhedeg ei DNS wedi’i amgryptio ei hun, estyniad sy’n ateb yn lleol, na chysylltiad â chyfeiriad llythrennol byth yn cynhyrchu’r datrysiad enw yr oedd y rheol yn aros amdano. Daeth un o’r prynhawniau hiraf i mi ei dreulio i ben pan ddarganfûm fod y cleient o flaen y twnnel yn defnyddio DNS over HTTPS.
Mae caching yn tynnu’r sbardun hefyd. Gall enw sydd eisoes yn y cache gael ei ateb heb y prawf a fyddai wedi cychwyn y twnnel, felly mae rheol a weithiodd ddoe yn methu ar ôl ailgychwyn, neu ar ôl i’r twnnel fod i fyny am gyfnod. Ar macOS mae sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder yn ailosod y cyflwr; ar iOS mae troi modd awyren ymlaen ac i ffwrdd neu ailgychwyn y ddyfais yn rhoi llechen lân debyg i chi.
Cwmpas cyfateb: enwau, apiau a rhwydweithiau
Mae cyfateb parth yn un math ymhlith sawl un. Gall rheol hefyd gyfateb â’r math rhyngwyneb (Wi-Fi, symudol, Ethernet) ac SSID penodol, ac mae cofnodion fesul ap neu barth Safari yn clymu twnnel i un llif gwaith. Mae’r clymu hwnnw’n esbonio’r profiad rhyfedd lle mai dim ond un ap sy’n ymddwyn yn wahanol i bopeth arall: mae’r apiau eraill y tu allan i gwmpas y twnnel, felly maent yn parhau i ddefnyddio’r llwybr lleol hyd yn oed pan fo eicon y twnnel yn dweud bod y cysylltiad yn fyw.
Mae trefn yn bwysicach nag y mae pobl yn ei ddisgwyl. Mae rheolau’n cael eu gwerthuso mewn dilyniant a’r gyntaf sy’n cyfateb sy’n cyflenwi’r weithred, felly bydd rheol eang cysylltu-ar-unrhyw-Wi-Fi a osodir uwchben rheol barth gul yn ennill yn ddistaw ac yn gwneud y rheol barth yn anwireddadwy. Cyn ailysgrifennu’r rhestr parthau, cadarnhewch nad oes unrhyw reol gynharach eisoes wedi cyfateb.
Dyma hefyd pam nad yw always-on yn ddim mwy na rheol on-demand llymach. Mae gorfodi always-on yn fodd defnyddio ar wahân gyda’i ofynion goruchwylio a rheoli ei hun; mae’n cadw twnnel ar agor yn lle ymateb i enw. Os mai twnnel nad yw byth yn disgyn sydd ei angen arnoch, rheol barth yw’r offeryn anghywir.
Moddau methiant sy’n efelychu rheol wedi torri
Mae’r rhan fwyaf o adroddiadau bod rheol barth yn methu yn glanio mewn un o bum man, a dim ond yr olaf ohonynt yw testun y rheol.
| What you see | Layer | First check |
|---|---|---|
| Tunnel comes up, internal site still fails | route or resolver after connect | netstat -rn, scutil --dns |
| Tunnel never comes up for that name | trigger path | fresh lookup, cache flush, private DNS |
| Tunnel comes up for every app | scope, or an earlier rule | rule order, per-app mapping |
| Tunnel drops and will not return on the same Wi-Fi | interface or SSID match, admission | captive portal, SSID string, auth prompt |
| Tunnel returns after you disconnect it | profile ownership | profiles show |
Mae porthladdoedd caeth yn haeddu llinell eu hunain, oherwydd mae Wi-Fi gwestai a maes awyr yn rhyng-gipio’r union chwiliad y mae’r rheol yn dibynnu arno. Nes bod y porth yn gadael y ddyfais i mewn, mae gweinydd DNS y twnnel yn un na ellir ei gyrraedd, mae’r prawf yn methu, ac mae’r methiant yn edrych fel parth wedi’i gamsillafu. Dilysu yw’r achos distaw arall: gall y rheol danio, gall y twnnel ddechrau cysylltu, a gall y cysylltiad farw ar dystysgrif sydd wedi dod i ben neu ar anogwr sy’n ymddangos ar arddangosfa arall.
Mae IPv6 yn creu amrywiad sy’n hawdd ei gamddiagnosio. Gall enw â’r ddau deulu cyfeiriad gael ei ateb o gofnod AAAA yn gyntaf, tra bod rhestr llwybrau’r twnnel yn cario IPv4 yn unig. Mae un porwr yn llwyddo, mae un arall yn methu, ac mae’r rhestr parthau yn hollol ddiniwed.
Profwch gyda chais go iawn, yn y drefn hon
Darllenwch y polisi cyn dyfalu. Ar macOS mae sudo profiles show -type configuration yn argraffu proffiliau sydd wedi’u gosod gan gynnwys payload VPN, mae scutil --nc list yn dangos cyflwr y gwasanaeth, ac mae scutil --nc show <service> yn argraffu’r geiriadur on-demand y mae’r system yn ei ddefnyddio. Ar iPhone neu iPad dan reolaeth daw’r un payload o’r consol rheoli neu o adroddiad MDM. Mae logiau rhwydweithio ar gael gyda log stream --predicate 'subsystem == "com.apple.networkextension"' ar macOS, a thrwy consol y ddyfais pan fydd y ffôn wedi’i gysylltu.
Yna profwch ag enw gwesteiwr na chafodd ei holi yn gynharach yn y sesiwn. Dewiswch enw yn parth DNS y twnnel rydych yn gwybod sy’n datrys yn fewnol, gofynnwch amdano unwaith, a gwyliwch a yw’r twnnel yn ymddangos. Rheswch yr un chwiliad ddwywaith: mae’r ail ymgais yn arfer y llwybr cache, ac mae’r gwahaniaeth rhwng y ddau yn dweud wrthych ai’r datrysiad neu’r llwybro yw’r sbardun.
Ar ôl i’r twnnel godi, gwiriwch y ddwy haen ar wahân. Mae netstat -rn -f inet a netstat -rn -f inet6 yn dangos i ble mae pob rhagddodiad yn pwyntio, mae scutil --dns yn dangos trefn y datryswyr a pha ryngwyneb sy’n berchen ar bob datryswr, ac mae nettop -m route yn dangos pa ryngwyneb a gariodd y beitiau. Os yw’r twnnel i fyny a’r datryswr yn gywir ond mae’r adnodd yn dal i fethu, stopiwch olygu’r rheol; gwiriwch awdurdodiad ochr y gweinydd a’r llwybr dychwelyd.
Pan fo’r rheol yn perthyn i rywun arall
Os bydd y twnnel yn ailymddangos ar ôl i chi ei ddatgysylltu, mae’r rheol fel arfer yn perthyn i broffil yn hytrach nag i ap: ffurfweddiad a wthiwyd gan MDM, proffil personol dros ben, neu broffil a osodwyd gan gleient arall. Bydd sudo profiles show -type configuration ynghyd â chwilio am yr allweddi on-demand yn ei gyfyngu, ac y llwybr tynnu yw’r proffil, nid y togl yn y bar dewislen. Mae dileu’r cofnod gwasanaeth neu’r ap yn gadael y rheol ar ôl, ac mae’r gosodiad nesaf yn ei hetifeddu eto.
Mae un prawf yn setlo perchnogaeth: datgysylltwch, arhoswch, gofynnwch am yr enw mewnol eto. Os daw’r twnnel yn ôl, mae’r sbardun yn gweithio fel y’i cynlluniwyd a’r cwestiwn agored yw pwy sy’n ei reoli ac a yw’r cwmpas hwnnw’n un rydych ei eisiau.
Cyn cofnodi hyn fel byg, ewch trwy’r un pum gwiriad: cyfeiriadau datryswr y twnnel yn bresennol yn y payload, enw nad oedd yn y cache, dim rheol gynharach a gyfatebodd eisoes, llwybr AAAA y mae’r rhestr llwybrau yn ei gwmpasu, a’r ap o fewn cwmpas y twnnel. Pan fydd y pump i gyd yn dal, mae’r rheol yn gwneud ei gwaith ac mae’r bai ymhellach ymlaen ar y llwybr.