Mae dau gwestiwn gwahanol yn dod gyda'i gilydd pryd bynnag y bydd peiriant rhithwir yn rhedeg cleient VPN, ac mae ganddynt atebion gwahanol. Y cyntaf yw a yw twnnel y tu mewn i'r gwestai yn diogelu'r gwesteiwr, a'r ail yw a yw twnnel ar y gwesteiwr yn gorchuddio'r gwestai. Mae modd yr addasydd yn penderfynu'r ddau, yn fwy na'r meddalwedd VPN ei hun. Mae addasydd NAT yn gwneud y gwesteiwr yn bwynt terfyn gweladwy, tra mae addasydd pont yn rhoi'r gwestai ar y we â'i gyfeiriad ei hun.

Pwy sy'n terfynu'r sesiwn wedi'i hamgryptio mewn gwirionedd

Mae sesiwn wedi'i hamgryptio yn perthyn i'r peiriant sy'n ei therfynu, sef y gwestai pan fydd y cleient yn rhedeg y tu mewn i'r VM. Dim ond y traffig sy'n mynd i mewn i addasydd rhithwir y gwestai sy'n mynd trwy'r twnnel hwnnw, ac ni fydd yr hypervisor byth yn llwybro peiriant arall trwy'r gwestai ar ei ben ei hun. Dyna pam y gall y gwestai ddal twnnel gweithredol tra bo'r gwesteiwr yn pori'n agored. Nid yw'r gwrthwyneb yn gymesur, a'r anghymesuredd hwnnw yw'r rhan y mae'r rhan fwyaf o ganllawiau yn ei chael yn anghywir.

Pa gyfeiriad y mae'r rhwydwaith allanol yn ei weld yw'r cwestiwn y mae modd yr addasydd yn ei ateb. Unwaith y bydd hynny wedi'i setlo, mae gorchudd yn peidio â bod yn gwestiwn polisi ac yn dod yn un mecanyddol. Mae popeth isod yn dilyn o'r ddau ffaith hynny.

Mae NAT yn ailysgrifennu'r gwestai nes ei fod yn edrych fel y gwesteiwr

Gyda NAT, mae'r hypervisor yn ailysgrifennu pob pecyn o'r gwestai i gyfeiriad y gwesteiwr cyn iddo gyrraedd y switsh cyntaf. Yna mae'r traffig hwnnw'n cael ei drosglwyddo i stac rhwydwaith y gwesteiwr ei hun, lle mae'n dilyn ei dabl llwybro, gan gynnwys llwybr diofyn sy'n eiddo i dwnnel ar y gwesteiwr. Felly mae gwestai NAT yn cael ei orchuddio gan dwnnel ar y gwesteiwr heb unrhyw ffurfweddiad o gwbl, sef y gwrthwyneb i'r hyn y mae'r achos o westai i westeiwr yn ei awgrymu.

# on the host: adapter mode and NAT DNS behaviour
VBoxManage showvminfo "lab-vm" | grep -i -E "nic|nat"
VBoxManage modifyvm "lab-vm" --natdnshostresolver1 on

Mae gwestai sy'n rhedeg ei gleient ei hun yn terfynu'r twnnel hwnnw y tu mewn i'r gwestai, ac yna mae'r traffig amgryptiedig yn gadael trwy'r un ailysgrifennu, felly mae cymwysiadau'r gwesteiwr yn cadw eu llwybr eu hunain a'u cyfeiriad allan eu hunain. Mae VirtualBox hefyd yn berchen ar ddatrys enwau yn y modd hwn, gan drosglwyddo ymholiadau'r gwestai trwy ei beiriant ei hun oni bai bod --natdnshostresolver1 wedi'i alluogi. Mae ei alluogi yn rhoi chwiliadau'r gwestai i ddatryswr y gwesteiwr, sy'n trwsio datrysiad pan fo golwg y gwesteiwr ei hun yn gywir ac yr un mor barod i drosglwyddo datryswr na allai fodoli ond y tu mewn i dwnnel. Rhaid diffodd y VM cyn newid y gosodiad, ac mae'r gosodiad yn perthyn i'r addasydd yn hytrach na meddalwedd y gwestai.

Mae pontio yn rhoi les ei hun a datguddiad ei hun i'r gwestai

Mae pontio yn trosglwyddo ffrâm y gwestai i'r segment corfforol, felly mae DHCP yn rhoi les iddo ac mae'r rhwydwaith yn ei drin fel gwesteiwr ar wahân. Gall pob gwestai wedi'i bontio ddal twnnel annibynnol gyda'i lwybr diofyn ei hun, ac ni fydd tabl y gwesteiwr byth yn newid. Y pris yw datguddiad: mae'r gwestai yn ateb darllediadau, yn ymddangos mewn tablau cymdogion, ac yn dod o dan ddiogelwch porthladdoedd switsh ac ynysu cleientiaid di-wifr. Nid yw twnnel ar y gwesteiwr yn gorchuddio'r drefn hon chwaith, oherwydd ni fydd ffrâm y gwestai byth yn mynd trwy stac y gwesteiwr.

Mae'r gwahaniaeth hwnnw oddi wrth achos NAT yn werth ei ddweud yn blwmp ac yn blaen yn hytrach na'i adael fel goblygiad. Mae angen ei gleient ei hun a'i gymwysterau ei hun ar westai wedi'i bontio pryd bynnag y bo'n rhaid i'w draffig ddefnyddio twnnel. Lle bo'n rhaid i'r gwestai aros yn anweledig i'r rhwydwaith lleol, NAT neu rwydwaith mewnol yn unig â llwybro rheoledig yw'r cynllun gwell.

Pam na all y gwestai fod yn borth y gwesteiwr

Nid oes gan fenthyca twnnel gwestai i'r gwesteiwr switsh a gefnogir yn y naill na'r llall o'r ddau hypervisor mawr. Nid oes gan y gwesteiwr lwybr i mewn i dwnnel y gwestai na rheol cyfieithu yn pwyntio ato, felly mae traffig y gwestai a'r gwesteiwr yn parhau yn ffrydiau ar wahân â pherchnogion ar wahân. Mae'r cyfeiriad hwnnw yn methu beth bynnag fo modd yr addasydd.

Y rhai dirprwyol ymarferol yw ailgyfeirio a dirprwyon. Mae ailgyfeirio lleol SSH yn gadael i'r gwesteiwr gysylltu â'i loopback ei hun tra bo'r gwestai yn cario'r ffrwd i'r twnnel, sy'n gorchuddio gwasanaethau TCP heb osod ail gleient. Gwneud i draffig IP y gwesteiwr ei hun ddefnyddio twnnel y gwestai yn lle hynny yn gofyn am lwybrydd y tu mewn i'r gwestai ynghyd â llwybr penodol ar y gwesteiwr a chyfieithu ar y gwesteiwr. Mae hwnnw'n gynllun rhwydwaith bach yn hytrach na blwch ticio, ac mae angen cynllun ar gyfer y llwybr dychwelyd. Pan fo'r gwestai yn bodoli'n unig i redeg y cleient, rhowch y cleient ar y gwesteiwr a dileu'r naid ychwanegol.

ssh -N -f -L 8080:internal-host.example:80 user@lab-vm

Nid yw datryswyr a llwybrau yn croesi'r ffin

Mae DNS yn dilyn yr addasydd a gafodd yr opsiwn, felly nid yw gwestai yn etifeddu datryswr twnnel y gwesteiwr ac ni fydd gwesteiwr byth yn dysgu'r gweinydd a wthiwyd i'r gwestai. Mae gwerthoedd dhcp-option DNS a wthiwyd yn berthnasol i'r rhyngwyneb a'u derbyniodd, a dyna pam na all gwestai wedi'i bontio heb gleient ddatrys enwau mewnol. Mae gwestai NAT fel arfer yn defnyddio triniaeth DNS yr hypervisor yn lle hynny, ac mae'r gwahaniaeth i'w weld mewn un gorchymyn fesul amgylchedd.

# on the host
VBoxManage showvminfo "lab-vm" | grep -i -E "nic|nat"
# inside a Linux guest
ip -4 route
resolvectl status
# inside a Windows guest
Get-DnsClientServerAddress

Darllenwch y datryswr a'r llwybr y tu mewn i'r gwestai cyn tybio bod y naill neu'r llall yn dilyn y gwesteiwr. Ychwanegwch ddatryswr y twnnel at addasydd y gwestai ei hun pan fo'n rhaid datrys enwau mewnol yno, yna gwiriwch ag enw nad yw'n bodoli ond y tu ôl i'r twnnel. Cofnodwch fodd yr addasydd, perchennog y twnnel a ffynhonnell y datryswr ar gyfer pob VM, oherwydd mae'r tri ffaith hynny yn ateb bron pob cwestiwn diweddarach. Mae hypervisoriaid eraill yn ailenwi'r moddau ac yn gadael yr egwyddor yn gyfan.

Erthyglau cysylltiedig