Mae DNS ar VPN yn gweithio ond mae enwau .local yn dal i fethu: pwy sy’n eu datrys?
Gall enw .local hepgor eich datryswr VPN yn llwyr. Cymharwch y tair llwybr datryswr, yna datganwch y parth yn lle aildrefnu nsswitch.
Dwy beiriant ar yr un VPN, yr un enw gwesteiwr, a dim ond un ohonynt yn ei ddatrys: yr wahaniaeth fel arfer nid yw’r twnnel ond pa ddatryswr a atebodd. Ar gyfrifiadur Linux gall yr enw hwnnw deithio trwy’r newidydd gwasanaethau enwau, trwy stub systemd-resolved, neu trwy ddatryswr a ddaeth â’r cymhwysiad gydag ef, ac mae pob un ohonynt yn cymhwyso ei reol ei hun i’r un ôl-ddodiad. Yr ôl-ddodiad yw lle mae’r rheolau’n dargyfeirio, oherwydd nid yw .local yn label niwtral. Darganfyddwch pa lwybr y mae’r rhaglen sy’n methu yn ei gymryd mewn gwirionedd cyn i chi newid y drefn y mae unrhyw beth yn rhedeg ynddi.
Dau ddatryswr, dwy ateb wahanol
Mae chwiliad glibc traddodiadol yn cerdded llinell hosts: yn nsswitch.conf ac yn gofyn i bob modiwl yn ei dro nes bod un yn ateb. Mae cleient sy’n siarad â systemd-resolved trwy’r stub listener yn gofyn i un broses yn lle hynny, ac mae’r broses honno’n cymhwyso polisi fesul cyswllt ynghyd â’i hachosion arbennig ei hun. Gall cymhwysiad sy’n dod â’i ddatryswr ei hun, neu’n cysylltu llyfrgell sy’n gwneud hynny, osgoi’r ddau. Felly gall un enw gwesteiwr fod â thri pherchennog ar un peiriant, a dim ond un ohonynt yn gwybod beth oedd y VPN yn ei fwriadu.
Nodwch y perchennog cyn newid unrhyw beth, oherwydd mae’r atgyweiriad yn wahanol i bob un o’r tri. Gall porwr a theclyn llinell orchymyn ar yr un bwrdd gwaith anghytuno’n gyfreithlon, a’r anghytundeb hwnnw yw’r cliw yn hytrach na’r nam. Os yw’r porwr yn datrys yr enw ac nad yw’r teclyn, rydych chi’n dadfygio llwybr datryswr ac nid llwybr VPN. Cadarnhewch y llwybr ar wahân, fel na chaiff nam llwybro ei gamgymryd am nam gwasanaeth enwau. Pan fydd y ddau’n cytuno, mae’r nam yn uwch na’r gwesteiwr ac nid yw cyfluniad y datryswr yma’n werth un golygiad arall.
Pa orchymyn a ofynnodd i’ch datryswr mewn gwirionedd
Mae dau orchymyn darllen-yn-unig yn ateb cwestiynau cysylltiedig, ac mae eu cymharu yn lleoleiddio’r broblem yn gyflymach na darllen cyfluniad. Defnyddiwch enw mewnol go iawn a chadwch yr allbwn yn breifat, oherwydd mae cofnodion mewnol yn dal yn fewnol. Rhedwch y ddau yn yr un sesiwn y mae’r rhaglen sy’n methu yn rhedeg ynddi:
getent ahosts files.corp.local
resolvectl query files.corp.local
resolvectl statusMae’r cyntaf yn gofyn trwy’r modiwlau a gyflunir, sef yr hyn y mae rhaglen nodweddiadol yn ei brofi. Mae’r ail yn gofyn yn uniongyrchol i systemd-resolved ac yn adrodd y cyswllt, y protocol a’r gweinydd a atebodd. Nid yw gofyn i weinydd y gorfforaeth trwy gyfeiriad yn profi dim ond bod y gweinydd yn dal y cofnod, oherwydd nid yw’n dweud dim am a ofynnodd y cymhwysiad iddo erioed. Darllenwch y cyswllt sy’n cario’r VPN a’r parthau y mae’n eu hawlio, yna cymharwch y rhestr honno ag ôl-ddodiad yr enw sy’n methu.
Pam mae .local yn hepgor eich parth unicast
cyfeirlyfr systemd-resolved yn nodi bod enwau aml-label sy’n gorffen yn .local fel arfer yn mynd i multicast DNS pan fydd mDNS wedi’i alluogi, yn hytrach nag i unicast DNS cyffredin. Mae RFC 6762 yn neilltuo’r gofod enwau hwnnw ar gyfer multicast lleol-i-gyswllt, felly gall parth corfforaethol ddal cofnod cywir na ofynnir iddo byth ar gyfer yr ôl-ddodiad hwnnw. Gall y twnnel lwybro’r datryswr yn berffaith a cholli’r ras o hyd. Nid yw ping llwyddiannus o gache yn dweud dim am y chwiliad a ddigwyddodd gynnau.
Mae eithriad wedi’i ddogfennu, ac mae’n setlo’r rhan fwyaf o’r achosion hyn: pan fydd cyswllt yn datgan yr ôl-ddodiad hwnnw fel parth chwilio neu barth llwybro, mae’r daemon yn ei gadw ar y llwybr unicast ac yn hepgor achos arbennig multicast. Polisi fesul cyswllt yw hwnnw yn hytrach na ffafriaeth fyd-eang. Gall dau beiriant â’r un gweinydd VPN ymddwyn yn wahanol pan fydd un proffil rhwydwaith yn datgan y parth ac un arall ddim, felly darllenwch y proffil sy’n actif yn hytrach na’r un rydych chi’n cofio ei olygu.
Mae’r eithriad cul yn curo aildrefnu byd-eang
Ar gyfer parth sy’n bodoli na allwch ei ailenwi, gofynnwch i berchnogion y datryswr a’r VPN ddatgan y parth ar y cysylltiad sy’n ei gario. Mae cofnod parth llwybro ar gyfer yr un ôl-ddodiad hwnnw ynghyd â chyfeiriad y gweinydd bwriadedig yn newid bach â pherchennog a enwir, ac mae’n byw gyda’r cyswllt yn hytrach nag mewn ffeil a olygwyd â llaw.
Mae hefyd yn goroesi datgysylltiad, oherwydd mae polisi’r cyswllt yn cael ei ailgymhwyso pan ddaw’r cyswllt yn ôl. Mae golygu’r nsswitch.conf a rennir yn ddewis temptasiwn ac yn un mwy costus, oherwydd mae’n newid ymddygiad chwilio ar gyfer pob enw ar y peiriant, gan gynnwys darganfod lleol. Nid yw analluogi’r daemon multicast yn gyfwerth chwaith: mae’n tynnu’r ymddygiad lleol heb ddysgu unrhyw ddatryswr am y parth corfforaethol. Os yw’r gwasanaeth yn newydd yn hytrach nag yn etifeddol, rhowch ef o dan is-barth y mae eich sefydliad yn ei reoli a sgipiwch y gystadleuaeth yn llwyr. Dewiswch yr eithriad cul pan fydd yr enw wedi’i osod mewn firmware neu wedi’i brintio ar label, a dewiswch is-barth newydd pan fyddwch chi’n dal i reoli’r cleient.
Beth i’w brofi ar ôl y newid
Profwch yr atgyweiriad â chwiliad y cymhwysiad ei hun yn hytrach nag â theclyn a osodwyd gennych i brofi, a chliriwch unrhyw gache a allai ateb drosto. Yna cadarnhewch lwybr y datryswr a’r cyswllt a wasanaethodd yr ateb. Yn olaf gwiriwch fod darganfod lleol yn ymddwyn fel yr oedd cyn y newid, oherwydd yr argraffydd sy’n stopio ymddangos yw’r rhan y mae pobl yn ei sylwi olaf. Mae’r tri gorchymyn hyn yn gwirio’r enw, y llwybr a’r hunaniaeth TLS yn y drefn honno:
getent ahosts files.corp.local
resolvectl query files.corp.local
curl -sv --max-time 5 https://files.corp.local/ 2>&1 | head -n 20Mae cyfeiriad cywir gyda’r dystysgrif anghywir yn dal i fethu cleient llym, felly gwiriwch yr enw y mae’r cymhwysiad yn ei ddisgwyl unwaith y bydd datrysiad yn gweithio. Cadarnhewch fod y gwasanaeth yn derbyn cysylltiadau o gyfeiriad y VPN ac nid o ystod y swyddfa yn unig. Ysgrifennwch gwmpas y parth, y gweinydd a’r perchennog yng nghofnodoliaeth y cyswllt. Fel arall bydd y person nesaf i ddod ar draws y methiant hwn yn cyrraedd yr un golygiad byd-eang yr ydych newydd ei osgoi.