VirtualBox NAT tàbí bridge: ibo ni VPN VM parí
NAT fi àlejò pa mọ́ sẹ́yìn olùgbàlejò, nítorí náà ọ̀nà abẹ́lẹ̀ kan lórí olùgbàlejò bo ó. Bridge fún àlejò ní àdírẹ́sì tirẹ̀, nítorí náà ọ̀nà abẹ́lẹ̀ náà gbọ́dọ̀ wà nínú VM.
Ìbéèrè méjì ọ̀tọ̀ọ̀tọ̀ máa ń wá papọ̀ ní gbogbo ìgbà tí ẹ̀rọ àfọwọ́kọ kan bá ń ṣiṣẹ́ ẹ̀rọ VPN, àwọn ìdáhùn wọn sì yàtọ̀. Èyí àkọ́kọ́ ni bóyá ọ̀nà abẹ́lẹ̀ inú àlejò ń dáàbò bo olùgbàlejò, èyí kejì ni bóyá ọ̀nà abẹ́lẹ̀ lórí olùgbàlejò ń bo àlejò. Ipò adapter ni ó ń pinnu méjèèjì, ju ẹ̀rọ VPN fúnra rẹ̀ lọ. Adapter NAT ń sọ olùgbàlejò di ibi ìparí tí a lè rí, nígbà tí adapter bridge ń gbé àlejò sórí nẹ́tíwọ́kì pẹ̀lú àdírẹ́sì tirẹ̀.
Ta ni ó ń parí ìpàdé tí a fi ààmì ìkọ̀kọ̀ sè
Ìpàdé tí a fi ààmì ìkọ̀kọ̀ sè jẹ́ ti ẹ̀rọ tí ó ń parí rẹ̀, àti pé àlejò ni ìyẹn nígbà tí ẹ̀rọ VPN bá ń ṣiṣẹ́ nínú VM. Ọ̀nà abẹ́lẹ̀ yẹn ni ìrìn àjò tí ó wọ inú adapter àfọwọ́kọ àlejò nìkan ń gbà, hypervisor kò sì ṣe ìtọ́sọ́nà ẹ̀rọ mìíràn nípasẹ̀ àlejò fúnra rẹ̀ rí. Ìdí nìyẹn tí àlejò fi lè di ọ̀nà abẹ́lẹ̀ tí ń ṣiṣẹ́ mú nígbà tí olùgbàlejò ń ṣe ìwákiri ní gbangba. Ìdàkejì kì í ṣe ìdọ́gba, àìdọ́gba yẹn sì ni apá tí ọ̀pọ̀ ìtọ́sọ́nà ń ṣe àṣìṣe lórí.
Àdírẹ́sì ta ni nẹ́tíwọ́kì ode ń rí ni ìbéèrè tí ipò adapter ń dáhùn. Ní kété tí a bá yanjú èyí, ìbòòlù kò tún jẹ́ ọ̀rọ̀ ìlànà mọ́, ó di ti ẹ̀rọ. Gbogbo ohun tí ó wà nísàlẹ̀ wá láti inú àwọn òtítọ́ méjì yẹn.
NAT ń tún àlejò kọ títí yóò fi dàbí olùgbàlejò
Pẹ̀lú NAT, hypervisor ń tún gbogbo pákẹ́ẹ̀tì àlejò kọ sí àdírẹ́sì olùgbàlejò kí ó tó dé switch àkọ́kọ́. Lẹ́yìn náà a fi ìrìn àjò yẹn lé stack nẹ́tíwọ́kì olùgbàlejò fúnra rẹ̀ lọ́wọ́, níbi tí ó ti tẹ̀lé tábìlì ọ̀nà rẹ̀, pẹ̀lú ọ̀nà àkọ́kọ́ tí ọ̀nà abẹ́lẹ̀ kan lórí olùgbàlejò ní. Nítorí náà a bo àlejò NAT pẹ̀lú ọ̀nà abẹ́lẹ̀ lórí olùgbàlejò láìsí ìṣètò kankan, èyí tí ó yàtọ̀ sí èyí tí ipa àlejò sí olùgbàlejò ń fi hàn.
# on the host: adapter mode and NAT DNS behaviour
VBoxManage showvminfo "lab-vm" | grep -i -E "nic|nat"
VBoxManage modifyvm "lab-vm" --natdnshostresolver1 on
Àlejò tí ó ń ṣiṣẹ́ ẹ̀rọ rẹ̀ fúnra rẹ̀ ń parí ọ̀nà abẹ́lẹ̀ yẹn nínú àlejò, ìrìn àjò tí a fi ààmì ìkọ̀kọ̀ sè sì ń jáde nípasẹ̀ ìtúnkọ kan náà, nítorí náà àwọn ohun èlò olùgbàlejò ń pa ọ̀nà wọn mọ́ àti àdírẹ́sì ìjáde wọn. VirtualBox tún ni ìyánjú orúkọ ní ipò yìí, ó ń gbé àwọn ìbéèrè àlejò lọ nípasẹ̀ ẹ̀rọ rẹ̀ fúnra rẹ̀ àyàfi tí --natdnshostresolver1 bá ṣí. Ṣíṣí rẹ̀ ń fi ìwákiri àlejò lé olùyánjú orúkọ olùgbàlejò lọ́wọ́, èyí tí ó ń tún ìyánjú ṣe nígbà tí ojú olùgbàlejò fúnra rẹ̀ bá tọ́, ó sì ń fi olùyánjú kan tí ó lè wà nínú ọ̀nà abẹ́lẹ̀ nìkan lélẹ̀. A gbọ́dọ̀ pa VM kí a tó yí ìṣètò padà, ìṣètò sì jẹ́ ti adapter kì í ṣe ti ẹ̀rọ àlejò.
Bridge ń fún àlejò ní ìyáwó rẹ̀ àti ìfarahàn rẹ̀ fúnra rẹ̀
Bridge ń gbé àwọn férémù àlejò lọ sí ẹ̀ka ti ara, nítorí náà DHCP ń fún un ní ìyáwó àti pé nẹ́tíwọ́kì ń kà á sí olùgbàlejò ọ̀tọ̀ọ̀tọ̀. Àlejò kọ̀ọ̀kan tí a fi bridge so lè di ọ̀nà abẹ́lẹ̀ àdáṣe mú pẹ̀lú ọ̀nà àkọ́kọ́ tirẹ̀, tábìlì olùgbàlejò kò sì yí padà rí. Iye náà ni ìfarahàn: àlejò ń dáhùn àwọn ìgbóhùnsáfẹ́fẹ́, ó ń farahàn nínú tábìlì aládùúgbò, ó sì ń wọ abẹ́ ààbò ebute switch àti ìyàsọ́tọ̀ àwọn oníbàárà aláìlówò. Ọ̀nà abẹ́lẹ̀ lórí olùgbàlejò kò tún bo ìṣètò yìí, nítorí àwọn férémù àlejò kì í gba stack olùgbàlejò kọjá rí.
Ìyàtọ̀ yẹn sí ipa NAT yẹ kí a sọ ọ́ ní gbangba dípò kí a fi í sílẹ̀ gẹ́gẹ́ bí àfikún. Àlejò tí a fi bridge so nílò ẹ̀rọ tirẹ̀ àti àwọn ẹ̀rí ìdánimọ̀ tirẹ̀ ní gbogbo ìgbà tí ìrìn àjò rẹ̀ bá ní láti lo ọ̀nà abẹ́lẹ̀. Níbi tí àlejò gbọ́dọ̀ wà láìfarahàn sí nẹ́tíwọ́kì àdúgbò, NAT tàbí nẹ́tíwọ́kì inú nìkan pẹ̀lú ìtọ́sọ́nà tí a ń ṣàkóso ni àpẹẹrẹ tí ó dára jù.
Ìdí tí àlejò kò lè jẹ́ ẹnubodè olùgbàlejò
Yíyan ọ̀nà abẹ́lẹ̀ àlejò fún olùgbàlejò kò ní switch tí a ṣe àtìlẹ́yìn fún nínú èyíkéyìí nínú àwọn hypervisor ńlá méjèèjì. Olùgbàlejò kò ní ọ̀nà sínú ọ̀nà abẹ́lẹ̀ àlejò àti kò ní ìlànà ìtúmọ̀ tí ó ń tọ́ka síbẹ̀, nítorí náà ìrìn àjò àlejò àti ti olùgbàlejò ń wà gẹ́gẹ́ bí ìṣàn ọ̀tọ̀ọ̀tọ̀ pẹ̀lú àwọn onígbà ojú tọ̀tọ̀. Ọ̀nà yẹn ń kùnà láìka ipò adapter.
Àwọn àròpọ̀ tí ó ń ṣiṣẹ́ ni ìgbékalẹ̀ àti aṣojú. Ìgbékalẹ̀ àdúgbò SSH ń jẹ́ kí olùgbàlejò so mọ́ orí rẹ̀ nígbà tí àlejò ń gbé ìṣàn lọ sínú ọ̀nà abẹ́lẹ̀, èyí tí ó ń bo àwọn iṣẹ́ TCP láìfi ẹ̀rọ kejì sórí. Ṣíṣe kí ìrìn àjò IP olùgbàlejò fúnra rẹ̀ lo ọ̀nà abẹ́lẹ̀ àlejò dípò nílò ìtọ́sọ́nà nínú àlejò pẹ̀lú ọ̀nà tí ó ṣe kedere lórí olùgbàlejò àti ìtúmọ̀ lórí olùgbàlejò. Ìyẹn jẹ́ àpẹẹrẹ nẹ́tíwọ́kì kékeré kì í ṣe pátákó àmì, ó sì nílò ètò fún ọ̀nà ìpadà. Nígbà tí àlejò wà kìkì láti máa ṣiṣẹ́ ẹ̀rọ náà, gbé ẹ̀rọ náà sórí olùgbàlejò kí o sì yọ ìfò àfikún kúrò.
ssh -N -f -L 8080:internal-host.example:80 user@lab-vm
Àwọn olùyánjú àti ọ̀nà kì í kọjá ààlà
DNS ń tẹ̀lé adapter tí ó gba àṣàyàn náà, nítorí náà àlejò kò jogún olùyánjú ọ̀nà abẹ́lẹ̀ olùgbàlejò, olùgbàlejò kò sì mọ ẹ̀rọ ìsìn tí a ti ìtì sí àlejò rí. Àwọn iye dhcp-option DNS tí a ti ìtì kan interface tí ó gba wọ́n, ìdí nìyẹn tí àlejò bridge tí kò ní ẹ̀rọ fi kò lè yanjú àwọn orúkọ inú. Àlejò NAT sábà máa ń lo ìtọ́jú DNS hypervisor, ìyàtọ̀ sì ń farahàn nínú àṣẹ kan fún àyíká kọ̀ọ̀kan.
# 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
Ka olùyánjú àti ọ̀nà nínú àlejò kí o tó ro pé ọ̀kan nínú wọn ń tẹ̀lé olùgbàlejò. Fi olùyánjú ọ̀nà abẹ́lẹ̀ kún adapter àlejò fúnra rẹ̀ nígbà tí a bá gbọ́dọ̀ yanjú àwọn orúkọ inú níbẹ̀, lẹ́yìn náà fi orúkọ tí ó wà lẹ́yìn ọ̀nà abẹ́lẹ̀ nìkan ṣe àyẹ̀wò. Kọ ipò adapter, onígbà ọ̀nà abẹ́lẹ̀ àti orísun olùyánjú fún VM kọ̀ọ̀kan, nítorí àwọn òtítọ́ mẹ́ta yẹn ń dáhùn fẹ́rẹ̀ẹ́ gbogbo ìbéèrè tí ó tẹ̀lé. Àwọn hypervisor mìíràn ń yí orúkọ àwọn ipò padà, wọ́n sì fi ìlànà náà sílẹ̀ láìfọwọ́ kàn.