Mae popeth yn gweithio nes bod y rhedwr adeiladu angen yr un soced gwesteiwr ag y mae gwestai VPN yn ei ddefnyddio, ac yna ni all neb esbonio pam y gall swydd ddarllen allweddi'r porth. Gosodwyd popeth ar un peiriant am ei fod yn ffitio, a rhoddwyd mynediad eang i bob gwestai am mai dyna'r ffordd gyflymaf i'w wneud yn gweithio. Y canlyniad yw gwesteiwr y mae ei ffin ymddiriedaeth yn y cebl pŵer. Mae rhannu'r rolau yn llai o waith nag y mae'n swnio, ac mae'n dechrau drwy eu henwi.

Tri rôl sy'n rhannu popeth ar hyn o bryd

Mae mynediad VPN, set o wasanaethau preifat a rhedwr adeiladu eisiau pethau gwahanol. Mae'r cyntaf angen porth cyhoeddus a rhwydwaith cul ar yr ochr breifat. Mae'r ail angen storfa barhaus a chyfrinachau cymhwysiad. Mae'r trydydd yn gweithredu cod a ysgrifennwyd gan rywun arall.

Rhoi'r un mynediad i'r tri yw'r hyn sy'n gwneud y symptom yn ddryslyd, oherwydd yna gall unrhyw un ohonynt effeithio ar y lleill. Mae swydd adeiladu sy'n gallu cyrraedd soced yr hypervisor yn swydd sy'n gallu atal y VPN. Gall gwestai gwasanaethau sydd â llwybr i'r rhwydwaith rheoli newid ffurfwedd y switsh. Y breiniau yw'r broblem, a'r rhestr broses yw'r unig le y mae'n ymddangos. Mae enwi'r rolau yn gyntaf yn rhoi lle i bob braint fyw.

Mae'r braslun isod yn fan cychwyn ar gyfer y rhaniad hwnnw yn hytrach nag yn addewid o argaeledd uchel. Triniwch ef fel rhagdybiaeth i'w gwirio, nid fel y cynllun gorffenedig.

Rhannwch dri rôl, nid tair proses

Mae tri gwestai ar un gwesteiwr yn rhoi tair set braint a thri safle rhwydwaith. Nid ydynt yn rhoi tri pharth methiant, a dylai'r cynllun ddweud hynny'n uchel.

Dim ond os nad yw cyfaddawd mewn un gwestai yn rhoi breiniau'r lleill yn awtomatig y mae'r gwahanu'n helpu, a gosodiad hypervisor yw hwnnw yn hytrach na chonfensiwn enwi. Nid yw galw VM yn borth yn atal gwestai arall rhag cyrraedd y gwesteiwr. Darllenwch ffurfwedd y switsh rhithwir yn lle'r enw gwesteiwr, yna cadarnhewch fod pob gwestai'n eistedd lle rydych chi'n meddwl.

host
├─ vpn-gw      10.60.10.2/24   public 51820/udp only
├─ services    10.60.0.10/24   no route to the management network
└─ ci-runner   10.60.20.2/24   outbound only, no host socket

Ysgrifennwch y topoleg a'i gwirio wedyn gyda'r offer sy'n berchen arni. Mae gwestai sy'n ymddangos ar y bont anghywir yn ddarganfyddiad yn hytrach na manylyn. Cywirwch y rhwydwaith cyn newid unrhyw ffurfwedd gwasanaeth.

Gadewch i westai VPN agor yn unig y drysau y mae'n berchen arnynt

Cyhoeddwch borth y twnnel ar y llwybrydd a dim byd arall. Mae porthladdoedd gweinyddu gwestai yn perthyn i lwybr rheoli, nid i'r rhyngrwyd, ac mae rhyngwyneb yr hypervisor ei hun yn perthyn yno hefyd.

Dylai'r rhwydwaith ar yr ochr breifat gyrraedd y gwasanaethau y mae defnyddwyr o bell eu hangen a stopio yno. Mae dilysu cymhwysiad yn aros ymlaen, oherwydd cludiant yw twnnel, nid mewngofnodi. Cadwch dabl llwybro gwestai VPN yn ddigon bach i'w ddisgrifio mewn un frawddeg. Os na allwch ei ddisgrifio mor syml, mae'r ffin eisoes wedi pylu.

virsh net-list --all
virsh net-dumpxml lab-private
sudo nft list ruleset | grep -n -E '51820|10.60'

Ni ddylai unrhyw beth sy'n gwrando ar y gwesteiwr ac nad oes ei angen ar gyfer rheoli fod yn gwrando o gwbl. Mae hyn yn cynnwys API'r hypervisor, sy'n hawdd ei adael yn agored ar ryngwyneb cyhoeddus.

Mae angen ffin wahanol ar swyddi adeiladu

Mae swydd CI yn rhedeg gorchmynion a reolir gan y storfa, felly mae ei hymddiriedaeth yn dibynnu ar bwy all wthio cod. Mae gweithredydd plisgyn yn rhedeg y gorchmynion hynny fel defnyddiwr y rhedwr ar y gwesteiwr, a dyna'r ffin ehangaf sydd ar gael.

Mae gweithredyddion cynwysyddion yn gulach, ac nid yw cynwysyddyn freintiedig ymhlith y rhai cul. Cadwch y rhedwr yn ei westai ei hun gyda'i gwmpas rhwydwaith ei hun, a rhowch iddo yn unig y mynediad at arteffactau a defnyddiad y mae'r swyddi ei angen. Mae gweithwyr untro yn lleihau'r cyflwr a gedwir; nid ydynt yn lleihau cyrhaeddiad nac amlygiad cyfrinachau. Mae angen terfynau penodol ar y ddau o hyd.

Mae gwestai gwasanaethau yn berchen ar y data, felly ei gynllun wrth gefn ef yw'r un sy'n rhaid gweithio. Cadwch ystorfeydd, llwythiadau a'r gronfa ddata yn yr un amserlen. Profwch adferiad yn lle darllen statws y swydd.

Cynlluniwch ar gyfer y methiant y mae'r tri yn ei rannu

Un gwesteiwr yw un parth methiant. Mae ailgychwyn yn tynnu'r twnnel a phob gwasanaeth preifat ar yr un eiliad, a dyna'n union pryd y mae ffordd i mewn yn bwysicaf.

Cadwch fynediad consol nad yw'n dibynnu ar westai VPN, boed yn gonsol gorfforol, yn rhyngwyneb rheoli all-fand neu'n gonsol darparwr. Nid yw ciplun a storir ar yr un disg yn gopi annibynnol, ac nid yw copi wrth gefn sy'n rhedeg y tu mewn i'r gwestai y mae'n ei amddiffyn ychwaith. Yna profwch gychwyn oer fel dilyniant yn hytrach na rhestr wirio: gwesteiwr, rhwydweithiau rhithwir, llwybr y twnnel, ac un cymhwysiad a enwir o dan gyfrif cyffredin.

virsh list --all
systemctl is-active libvirtd
curl -sS -m 5 -o /dev/null -w '%{http_code}\n' https://10.60.0.10/
ss -ltnp | grep -E ':51820|:443'

Nid yw trefn cychwyn prosesau yn profi dim am lwybrau a DNS, felly profwch y llwybr yn hytrach na chyflwr yr unedau. Y llwybr yw'r hyn y mae defnyddiwr o bell ei angen mewn gwirionedd.

Erthyglau cysylltiedig