ip netns exec a DNS: pam mae enwau’n methu o fewn y gofod enwau
Mae gan ofod enwau ei ryngwynebau a’i lwybrau ei hun, ond nid oes ganddo ei ffeil ddatryswr ei hun. Gwiriwch pa resolv.conf y mae’r broses a lansiwyd yn ei gweld ac o ble y daeth y ffeil honno.
Mae gorchymyn yn cyrraedd 10.8.0.5 y tu mewn i ofod enwau’r VPN heb unrhyw gwyn, ac mae’r un gorchymyn yn methu’r eiliad y mae’n defnyddio enw gwesteiwr. Mae gan y gofod enwau ei ryngwynebau, ei lwybrau a’i socedi ei hun; nid oes ganddo ei ffeil ddatryswr ei hun. Oni bai bod rhywbeth yn rhoi un yno, mae’r broses oddi mewn yn darllen /etc/resolv.conf y gwesteiwr ac yn gofyn i weinydd a allai fod yn anghyraeddadwy o’r pentwr rhwydwaith hwnnw.
Mater o ddewis ffeil yw hyn, nid mater o lwybro, a dyna’n union pam mae’r cyrchfan rhifol yn dal i weithio.
Gwiriwch y wedd ddatryswr y mae’r broses yn ei chael mewn gwirionedd
Peidiwch â chymryd yn ganiataol fod y plisgyn a ddefnyddiwyd gennych yn cyfateb i’r broses yr ydych yn ei dadfygio. Gall ap graffigol, uned systemd a chynhwysydd bob un fynd i mewn i gyd-destun mowntio neu rwydwaith gwahanol. Rhedwch yr ymholiad drwy’r un llwybr lansio, ac argraffwch y ffeil ddatryswr o’i fewn.
Ar gyfer gofod enwau a grëwyd gyda ip netns add, mae’r gwiriad darllen yn unig yn fyr:
ip netns exec vpn cat /etc/resolv.confNodwch a yw’r canlyniad yn enwi cyfeiriad cyraeddadwy, stub loopback, neu gyswllt symbolaidd sy’n pwyntio at rywle â hygyrchedd gwahanol.
Beth mae’r cynorthwyydd exec yn ei fowntio mewn gwirionedd
Mae’r offeryn ip-netns yn dogfennu cyfluniad pob gofod enwau o dan /etc/netns/NAME/. Pan fydd yn lansio proses, mae’r cynorthwyydd yn creu gofod enwau mowntio ac yn mowntio’r ffeiliau hynny dros eu llwybrau arferol, fel bod y broses yn gweld y copi sy’n benodol i’r gofod enwau. Mae hynny’n gyfleustra’r lansiwr penodol hwn. Nid yw mynd i mewn i ofod enwau rhwydwaith drwy lwybr arall, fel unshare neu runtime cynhwysydd, yn atgynhyrchu hynny’n awtomatig.
Y trap yma yw datryswr loopback: mae 127.0.0.53 yn golygu loopback y gofod enwau ei hun, nid stub y gwesteiwr. Nid yw stub sy’n gwrando yng ngofod enwau’r gwesteiwr yn unig yn dod yn wasanaeth yn yr un newydd.
Dewiswch ddatryswr y gall y gofod enwau gyrraedd
Pa bynnag weinydd y mae’r ffeil yn ei enwi, mae dal angen llwybr o’r gofod enwau hwnnw. Gall datryswr cyhoeddus ateb enwau cyhoeddus a dal i fethu ar gyfer parth mewnol, oherwydd dim ond drwy’r twnnel y gellir cyrraedd y gwasanaeth preifat. Gwiriwch y llwybr ar yr un pryd â’r cyfeiriad, nid ar ôl i’r ymholiad fod wedi methu’n barod.
Efallai y bydd apiau â’u datryswr eu hunain, fel un sy’n defnyddio DNS dros HTTPS, yn anwybyddu’r ffeil yn gyfan gwbl. Os oes gan yr offeryn ei osodiad DNS ei hun, ni fydd newid resolv.conf yn effeithio arno, ac nid y gofod enwau oedd y broblem erioed.
Ysgrifennwch y ffeil yn y lle iawn
Crëwch y ffeil pob gofod enwau o dan /etc/netns/NAME/resolv.conf a gadewch i’r lansiwr ei chyflwyno. Cadwch hi’n fyr: un neu ddau o weinyddion cyraeddadwy a’r parthau chwilio y mae’r dasg eu hangen. Peidiwch â golygu ffeil ddatryswr gynhyrchiedig y gwesteiwr i drwsio gwedd a fwriadwyd ar gyfer un grŵp o brosesau, oherwydd mae hynny’n newid pob ap ar y peiriant. Os yw’r gwesteiwr yn defnyddio rheolwr datryswr, cyfluniwch lwybr y gofod enwau drwy’r rheolwr hwnnw yn hytrach na brwydro yn ei erbyn.
Cofnodwch gynnwys y ffeil yn y runbook. Fel arall bydd y person nesaf yn profi datryswr y gwesteiwr, yn gweld ateb sy’n gweithio, ac yn dod i’r casgliad fod y gofod enwau’n iawn.
Ail-brofwch y llwybr cyfan
Profwch y tu mewn i’r gofod enwau gyda chyfeiriad rhifol, enw mewnol, ac enw cyhoeddus. Mae’r dilyniant hwnnw’n gwahanu hygyrchedd oddi wrth ddatrysiad ac yn gwahanu parthau mewnol oddi wrth rai cyhoeddus. Yna ail-grëwch y gofod enwau ac ailadroddwch, oherwydd mae ffeil sy’n bodoli mewn enghraifft redeg yn unig yn diflannu gyda hi.
Cadarnhewch mai’r broses, nid y plisgyn, sy’n cael y ffeil. Mae ymholiad sy’n gweithio o blisgyn rhyngweithiol ac yn methu o wasanaeth yn ganfyddiad am gyd-destun mowntio, ac mae’n werth ei ysgrifennu cyn y digwyddiad nesaf yn hytrach na’i ailddarganfod o’r dechrau.