Twee verskillende vrae kom saam op wanneer 'n virtuele masjien 'n VPN-kliënt laat loop, en hulle het verskillende antwoorde. Die eerste is of 'n tonnel binne die gas die gasheer beskerm, en die tweede is of 'n tonnel op die gasheer die gas dek. Die adaptermodus bepaal albei, meer as wat die VPN-sagteware doen. 'n NAT-adapter maak die gasheer die sigbare eindpunt, terwyl 'n bruggas die gas met sy eie adres op die netwerk plaas.

Wie beëindig werklik die versleutelde sessie

'n Versleutelde sessie behoort aan die masjien wat dit beëindig, en dit is die gas wanneer die kliënt binne die VM loop. Slegs verkeer wat die gas se virtuele adapter binnekom, gaan deur daardie tonnel, en die hipervisor stuur nooit self 'n ander masjien deur die gas nie. Daarom kan die gas 'n werkende tonnel hê terwyl die gasheer oop op die web blaai. Die omgekeerde is nie simmetries nie, en dié asimmetrie is die deel wat die meeste gidse verkeerd kry.

Watter adres die buitenste netwerk sien, is die vraag wat die adaptermodus beantwoord. Sodra dit opgelos is, hou dekking op om 'n beleidsvraag te wees en word dit 'n meganiese een. Alles hieronder volg uit daardie twee feite.

NAT herskryf die gas tot dit soos die gasheer lyk

Met NAT herskryf die hipervisor elke gaspakkie na die gasheer se adres voordat dit die eerste skakelaar bereik. Daardie verkeer word dan aan die gasheer se eie netwerkstapel oorhandig, waar dit die gasheer se roetetabel volg, insluitend 'n verstekroete wat deur 'n tonnel op die gasheer besit word. 'n NAT-gas word dus sonder enige konfigurasie deur 'n tonnel op die gasheer gedek, wat die teenoorgestelde is van wat die gas-na-gasheer-geval suggereer.

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

'n Gas wat sy eie kliënt laat loop, beëindig daardie tonnel binne die gas, en die versleutelde verkeer vertrek dan deur dieselfde herskrywing, sodat gasheertoepassings hulle eie pad en hulle eie uitgangsadres behou. VirtualBox besit ook naamoplossing in hierdie modus en stuur gasnavrae deur sy eie enjin tensy --natdnshostresolver1 geaktiveer is. Om dit te aktiveer gee die gas se opsoeke aan die gasheer se oplosser oor, wat oplossing regstel wanneer die gasheer se eie siening reg is en net so 'n oplosser oorhandig wat dalk net binne 'n tonnel bestaan. Die VM moet afgeskakel word voordat die instelling verander, en die instelling hoort by die adapter eerder as by die gas se sagteware.

Brugging gee die gas sy eie huurkontrak en sy eie blootstelling

Brugging stuur die gas se rame na die fisiese segment, so DHCP gee dit 'n huurkontrak en die netwerk behandel dit as 'n aparte gasheer. Elke gebrugde gas kan 'n onafhanklike tonnel met sy eie verstekroete hê, en die gasheer se tabel verander nooit nie. Die ruil is blootstelling: die gas antwoord uitsendings, verskyn in buurtabelle en word onderhewig aan skakelpoortsekuriteit en draadlose kliëntisolasie. 'n Tonnel op die gasheer dek hierdie reëling ook nie, want gasrame gaan nooit deur die gasheer se stapel nie.

Daardie verskil van die NAT-geval is die moeite werd om reguit te stel eerder as om dit as 'n implikasie te laat. 'n Gebrugde gas het sy eie kliënt en sy eie geloofsbriewe nodig wanneer sy verkeer 'n tonnel moet gebruik. Waar die gas onsigbaar vir die plaaslike netwerk moet bly, is NAT of 'n slegs-interne netwerk met beheerde roetering die beter ontwerp.

Waarom die gas nie die gasheer se poort kan wees nie

Om 'n gas se tonnel aan die gasheer te leen, het geen ondersteunde skakelaar in een van die twee groot hipervisors nie. Die gasheer het geen roete in die gas se tonnel nie en geen vertalingsreël wat daarheen wys nie, so gas- en gasheerverkeer bly aparte strome met aparte eienaars. Daardie rigting misluk ongeag die adaptermodus.

Die werkbare plaasvervangers is aansture en instaanbedieners. 'n SSH-plaaslike aanstuur laat die gasheer aan sy eie loopback koppel terwyl die gas die stroom in die tonnel indra, wat TCP-dienste dek sonder om 'n tweede kliënt te installeer. Om die gasheer se eie IP-verkeer eerder van die gas se tonnel gebruik te laat maak, vereis 'n roeteerder binne die gas plus 'n uitdruklike gasheerroete en vertaling op die gasheer. Dit is 'n klein netwerkontwerp eerder as 'n merkblokkie, en dit vra 'n plan vir die terugpad. Wanneer die gas bloot bestaan om die kliënt te laat loop, sit die kliënt op die gasheer en skrap die ekstra sprong.

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

Oplossers en roetes steek nie die grens oor nie

DNS volg die adapter wat die opsie ontvang het, so 'n gas erf nie die gasheer se tonneloplosser nie en 'n gasheer leer nooit die gas se gestuurde bediener nie. Gestuurde dhcp-option DNS-waardes geld vir die koppelvlak wat hulle aanvaar het, en daarom kan 'n gebrugde gas sonder 'n kliënt nie interne name oplos nie. 'n NAT-gas gebruik gewoonlik eerder die hipervisor se DNS-hantering, en die verskil wys in een opdrag per omgewing.

# 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

Lees die oplosser en die roete binne die gas voordat jy aanvaar dat een van hulle die gasheer volg. Voeg die tonneloplosser by die gas se eie adapter wanneer interne name daar moet oplos, en verifieer dan met 'n naam wat net agter die tonnel bestaan. Teken die adaptermodus, die tonneleienaar en die bron van die oplosser vir elke VM aan, want daardie drie feite beantwoord byna elke latere vraag. Ander hipervisors hernoem die modusse en laat die beginsel ongeskonde.

Verwante artikels