VirtualBox NAT లేదా బ్రిడ్జ్: VM యొక్క VPN ఎక్కడ ముగుస్తుంది
NAT అతిథిని హోస్ట్ వెనుక దాచుతుంది, కాబట్టి హోస్ట్పై ఉన్న సొరంగం దానిని కప్పుతుంది. బ్రిడ్జ్ అతిథికి దాని స్వంత చిరునామాను ఇస్తుంది, కాబట్టి సొరంగం VM లోపలే ఉండాలి.
ఒక వర్చువల్ మెషీన్ VPN క్లయింట్ను నడిపిన ప్రతిసారీ రెండు వేర్వేరు ప్రశ్నలు కలిసి వస్తాయి, వాటి సమాధానాలు వేరుగా ఉంటాయి. మొదటిది అతిథి లోపలి సొరంగం హోస్ట్ను రక్షిస్తుందా అనేది, రెండవది హోస్ట్పై ఉన్న సొరంగం అతిథిని కప్పుతుందా అనేది. అడాప్టర్ మోడ్ రెండింటినీ నిర్ణయిస్తుంది, VPN సాఫ్ట్వేర్ కంటే ఎక్కువగా. NAT అడాప్టర్ హోస్ట్ను కనిపించే చివరి బిందువుగా చేస్తుంది, బ్రిడ్జ్ అడాప్టర్ అతిథిని దాని స్వంత చిరునామాతో నెట్వర్క్లో ఉంచుతుంది.
ఎన్క్రిప్టెడ్ సెషన్ను నిజంగా ముగించేది ఎవరు
ఎన్క్రిప్టెడ్ సెషన్ దానిని ముగించే యంత్రానికి చెందుతుంది, క్లయింట్ VM లోపల నడిచినప్పుడు అది అతిథి. ఆ సొరంగం గుండా అతిథి వర్చువల్ అడాప్టర్లోకి ప్రవేశించే ట్రాఫిక్ మాత్రమే వెళుతుంది, హైపర్వైజర్ ఎప్పుడూ తనంతట తానే మరో యంత్రాన్ని అతిథి ద్వారా పంపదు. అందుకే అతిథి పనిచేసే సొరంగాన్ని ఉంచుకోగలదు, హోస్ట్ బహిరంగ నెట్వర్క్లో బ్రౌజ్ చేస్తుంది. వ్యతిరేకం సమరూపం కాదు, ఈ అసమరూపతనే చాలా మార్గదర్శకాలు తప్పుగా అర్థం చేసుకుంటాయి.
బయటి నెట్వర్క్ ఎవరి చిరునామాను చూస్తుంది అనే ప్రశ్నకు అడాప్టర్ మోడ్ సమాధానం ఇస్తుంది. అది తేలిన తర్వాత కవరేజ్ విధాన ప్రశ్న కాదు, యాంత్రిక ప్రశ్న అవుతుంది. క్రింద ఉన్నదంతా ఆ రెండు వాస్తవాల నుండి వస్తుంది.
NAT అతిథిని హోస్ట్లా కనిపించే వరకు తిరిగి రాస్తుంది
NAT లో, మొదటి స్విచ్ను చేరే ముందే హైపర్వైజర్ అతిథి యొక్క ప్రతి ప్యాకెట్ను హోస్ట్ చిరునామాకు తిరిగి రాస్తుంది. ఆ ట్రాఫిక్ తర్వాత హోస్ట్ యొక్క స్వంత నెట్వర్క్ స్టాక్కు అప్పగించబడుతుంది, అక్కడ అది హోస్ట్ యొక్క రూటింగ్ పట్టికను అనుసరిస్తుంది, హోస్ట్పై ఉన్న సొరంగం యాజమాన్యంలోని డిఫాల్ట్ మార్గంతో సహా. కాబట్టి NAT అతిథి ఎటువంటి కాన్ఫిగరేషన్ లేకుండా హోస్ట్పై ఉన్న సొరంగంతో కప్పబడుతుంది, ఇది అతిథి నుండి హోస్ట్ దిశ సూచించే దానికి విరుద్ధం.
# on the host: adapter mode and NAT DNS behaviour
VBoxManage showvminfo "lab-vm" | grep -i -E "nic|nat"
VBoxManage modifyvm "lab-vm" --natdnshostresolver1 on
తన స్వంత క్లయింట్ను నడిపే అతిథి ఆ సొరంగాన్ని అతిథి లోపలే ముగిస్తుంది, ఎన్క్రిప్టెడ్ ట్రాఫిక్ అదే పునఃరచన ద్వారా బయటకు వెళుతుంది, కాబట్టి హోస్ట్ యొక్క అనువర్తనాలు తమ మార్గాన్ని, తమ నిష్క్రమణ చిరునామాను నిలుపుకుంటాయి. VirtualBox ఈ మోడ్లో పేరు పరిష్కారాన్ని కూడా కలిగి ఉంటుంది, --natdnshostresolver1 ప్రారంభించబడకపోతే అతిథి ప్రశ్నలను తన స్వంత ఇంజిన్ ద్వారా పంపుతుంది. దాన్ని ప్రారంభిస్తే అతిథి శోధనలు హోస్ట్ పరిష్కర్తకు చేరుతాయి, ఇది హోస్ట్ యొక్క స్వంత దృష్టి సరైనప్పుడు పరిష్కారాన్ని సరిచేస్తుంది, అదే మేరకు సొరంగం లోపల మాత్రమే ఉండగల పరిష్కర్తను కూడా ఇస్తుంది. సెట్టింగ్ మార్చే ముందు VM ఆఫ్లో ఉండాలి, సెట్టింగ్ అతిథి సాఫ్ట్వేర్ది కాదు, అడాప్టర్ది.
బ్రిడ్జ్ అతిథికి సొంత లీజును, సొంత బహిర్గతతను ఇస్తుంది
బ్రిడ్జ్ అతిథి ఫ్రేమ్లను భౌతిక విభాగానికి పంపుతుంది, కాబట్టి DHCP దానికి లీజు ఇస్తుంది, నెట్వర్క్ దానిని వేరే హోస్ట్గా పరిగణిస్తుంది. బ్రిడ్జ్ చేయబడిన ప్రతి అతిథి తన సొంత డిఫాల్ట్ మార్గంతో స్వతంత్ర సొరంగాన్ని ఉంచుకోగలదు, హోస్ట్ పట్టిక ఎప్పుడూ మారదు. ధర బహిర్గతత: అతిథి ప్రసారాలకు సమాధానం ఇస్తుంది, పొరుగు పట్టికల్లో కనిపిస్తుంది, స్విచ్ పోర్ట్ భద్రతకు, వైర్లెస్ క్లయింట్ వేర్పాటుకు లోనవుతుంది. హోస్ట్పై ఉన్న సొరంగం కూడా ఈ ఏర్పాటును కప్పదు, ఎందుకంటే అతిథి ఫ్రేమ్లు ఎప్పుడూ హోస్ట్ స్టాక్ గుండా వెళ్లవు.
NAT సందర్భం నుండి ఈ భేదాన్ని సూచనగా వదలకుండా స్పష్టంగా చెప్పడం విలువైనది. బ్రిడ్జ్ చేయబడిన అతిథికి దాని ట్రాఫిక్ సొరంగాన్ని ఉపయోగించాల్సి వచ్చిన ప్రతిసారీ సొంత క్లయింట్, సొంత ఆధారాలు అవసరం. అతిథి స్థానిక నెట్వర్క్కు కనిపించకుండా ఉండాల్సిన చోట, NAT లేదా నియంత్రిత రూటింగ్తో కూడిన అంతర్గత-మాత్రమే నెట్వర్క్ మంచి రూపకల్పన.
అతిథి హోస్ట్ యొక్క గేట్వే ఎందుకు కాలేదు
అతిథి సొరంగాన్ని హోస్ట్కు అప్పు ఇవ్వడానికి రెండు పెద్ద హైపర్వైజర్లలో ఏదీ మద్దతు ఇచ్చే స్విచ్ను కలిగి లేదు. హోస్ట్కు అతిథి సొరంగంలోకి మార్గం లేదు, అక్కడికి సూచించే అనువాద నియమం కూడా లేదు, కాబట్టి అతిథి మరియు హోస్ట్ ట్రాఫిక్ వేర్వేరు యజమానులతో వేర్వేరు ప్రవాహాలుగానే ఉంటాయి. ఈ దిశ అడాప్టర్ మోడ్ ఏదైనా విఫలమవుతుంది.
పనిచేసే ప్రత్యామ్నాయాలు ఫార్వర్డింగ్లు మరియు ప్రాక్సీలు. SSH స్థానిక ఫార్వర్డింగ్ హోస్ట్ను దాని స్వంత లూప్బ్యాక్కు కనెక్ట్ చేయనిస్తుంది, అతిథి ప్రవాహాన్ని సొరంగంలోకి తీసుకువెళుతుంది, ఇది రెండవ క్లయింట్ను ఇన్స్టాల్ చేయకుండా TCP సేవలను కప్పుతుంది. హోస్ట్ యొక్క స్వంత IP ట్రాఫిక్ను బదులుగా అతిథి సొరంగాన్ని ఉపయోగించేలా చేయడానికి అతిథి లోపల రూటర్, అలాగే హోస్ట్పై స్పష్టమైన మార్గం మరియు హోస్ట్పై అనువాదం అవసరం. ఇది చెక్బాక్స్ కాదు, చిన్న నెట్వర్క్ రూపకల్పన, తిరిగి వచ్చే మార్గానికి ప్రణాళిక కావాలి. అతిథి క్లయింట్ను నడపడానికి మాత్రమే ఉంటే, క్లయింట్ను హోస్ట్పై ఉంచి అదనపు దాటును తీసివేయండి.
ssh -N -f -L 8080:internal-host.example:80 user@lab-vm
పరిష్కర్తలు మరియు మార్గాలు సరిహద్దును దాటవు
DNS ఎంపికను స్వీకరించిన అడాప్టర్ను అనుసరిస్తుంది, కాబట్టి అతిథి హోస్ట్ యొక్క సొరంగ పరిష్కర్తను వారసత్వంగా పొందదు, హోస్ట్ అతిథికి నెట్టిన సర్వర్ను ఎప్పుడూ తెలుసుకోదు. నెట్టిన dhcp-option DNS విలువలు వాటిని అంగీకరించిన ఇంటర్ఫేస్కు వర్తిస్తాయి, అందుకే క్లయింట్ లేని బ్రిడ్జ్ అతిథి అంతర్గత పేర్లను పరిష్కరించలేదు. NAT అతిథి సాధారణంగా హైపర్వైజర్ DNS నిర్వహణను ఉపయోగిస్తుంది, భేదం ప్రతి వాతావరణంలో ఒక ఆదేశంలో కనిపిస్తుంది.
# 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
వాటిలో ఏదో హోస్ట్ను అనుసరిస్తుందని భావించే ముందు అతిథి లోపల పరిష్కర్తను, మార్గాన్ని చదవండి. అంతర్గత పేర్లు అక్కడే పరిష్కరించాల్సి ఉంటే సొరంగ పరిష్కర్తను అతిథి స్వంత అడాప్టర్కు జోడించండి, తర్వాత సొరంగం వెనుక మాత్రమే ఉన్న పేరుతో నిర్ధారించండి. ప్రతి VM కి అడాప్టర్ మోడ్, సొరంగ యజమాని మరియు పరిష్కర్త మూలాన్ని నమోదు చేయండి, ఎందుకంటే ఆ మూడు వాస్తవాలు దాదాపు ప్రతి తదుపరి ప్రశ్నకు సమాధానం ఇస్తాయి. ఇతర హైపర్వైజర్లు మోడ్ల పేర్లను మారుస్తాయి, సూత్రాన్ని అలాగే ఉంచుతాయి.