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 ಗೆ ಅಡಾಪ್ಟರ್ ಮೋಡ್, ಸುರಂಗದ ಒಡೆಯ ಮತ್ತು ಪರಿಹಾರಕದ ಮೂಲವನ್ನು ದಾಖಲಿಸಿ, ಏಕೆಂದರೆ ಆ ಮೂರು ಸತ್ಯಗಳು ಬಹುತೇಕ ಪ್ರತಿ ಮುಂದಿನ ಪ್ರಶ್ನೆಗೆ ಉತ್ತರಿಸುತ್ತವೆ. ಬೇರೆ ಹೈಪರ್ವೈಸರ್ಗಳು ಮೋಡ್ಗಳ ಹೆಸರು ಬದಲಿಸುತ್ತವೆ ಮತ್ತು ತತ್ವವನ್ನು ಅಚ್ಚಳಿಯದೆ ಬಿಡುತ್ತವೆ.