ಪೂರ್ಣ ಟನಲ್ vs ಎಂಡ್ಪಾಯಿಂಟ್ ರೂಟ್: VPN ಸರ್ವರ್ ಅನ್ನು ತಲುಪಬಹುದಾಗಿ ಇರಿಸುವುದು
ಟನಲ್ ತಾನು ಬದಲಾಯಿಸುವ ನೆಟ್ವರ್ಕ್ ಮೇಲೆಯೇ ಸಾಗುತ್ತದೆ. ಹೋಸ್ಟ್ ರೂಟ್ ವಿನಾಯಿತಿಯನ್ನು ಅಪ್ಲಿಕೇಶನ್ ಮಟ್ಟದ ಸಾಕೆಟ್ ಗುರುತಿನೊಂದಿಗೆ ಹೋಲಿಸಿ, ಪ್ರತಿಯೊಂದೂ ಯಾವಾಗ ವಿಫಲವಾಗುತ್ತದೆ ಎಂದು ತಿಳಿಯಿರಿ.
ಟನಲ್ ಮೂಲಕ ಡೀಫಾಲ್ಟ್ ರೂಟ್ ಸೇರಿಸಿ, ಟನಲ್ನ ಸ್ವಂತ ಪ್ಯಾಕೆಟ್ಗಳೂ ಅದನ್ನು ಅನುಸರಿಸುತ್ತವೆ. ಆಗ ಕೋಷ್ಟಕದಲ್ಲಿ ತನ್ನನ್ನೇ ಸೋಲಿಸುವ ನಿಯಮ ಇರುತ್ತದೆ. ಸರ್ವರ್ಗೆ ಇರುವ ಎನ್ಕ್ರಿಪ್ಟೆಡ್ ಸಂಪರ್ಕವು ತಾನು ಸ್ಥಾಪಿಸಲು ಪ್ರಯತ್ನಿಸುತ್ತಿರುವ ಸಂಪರ್ಕದ ಒಳಗಡೆಯೇ ಸಾಗಲು ಪ್ರಯತ್ನಿಸುತ್ತದೆ.
ಎರಡು ಕಾರ್ಯವಿಧಾನಗಳು ಆ ಲೂಪ್ ಅನ್ನು ತಡೆಯುತ್ತವೆ. ಒಂದು ರೌಟಿಂಗ್ ಕೋಷ್ಟಕದಲ್ಲಿ ಕಾಣುತ್ತದೆ, ಇನ್ನೊಂದು ಅಪ್ಲಿಕೇಶನ್ ಒಳಗೆ ವಾಸಿಸುತ್ತದೆ.
ಒಳ ಮತ್ತು ಹೊರ ಸಂಚಾರ ಬೇರೆ ಬೇರೆ ನಿರ್ಧಾರಗಳು
ಅಪ್ಲಿಕೇಶನ್ ಪ್ಯಾಕೆಟ್ ವರ್ಚುವಲ್ ಇಂಟರ್ಫೇಸ್ಗೆ ಪ್ರವೇಶಿಸಿ ಎನ್ಕ್ಯಾಪ್ಸುಲೇಟ್ ಆಗುತ್ತದೆ. ಫಲಿತಾಂಶ ಸರ್ವರ್ನ ಸಾರ್ವಜನಿಕ ವಿಳಾಸಕ್ಕೆ ವಿಳಾಸೀಕರಿಸಿದ ಹೊಸ ಪ್ಯಾಕೆಟ್. ಆ ಪ್ಯಾಕೆಟ್ಗೆ ಭೌತಿಕ ನೆಟ್ವರ್ಕ್ನಲ್ಲಿ ರೂಟ್ ಬೇಕು, ಏಕೆಂದರೆ ಅದರ ಯಾವ ಭಾಗವೂ ಟನಲ್ ಪ್ರವೇಶಿಸಬಾರದು.
ಎರಡೂ ರೌಟಿಂಗ್ ನಿರ್ಧಾರಗಳು, ಮತ್ತು ಮೊದಲನೆಯದು ಮಾತ್ರ ಟನಲ್ಗೆ ಸೇರಿದ್ದು. ಕ್ಲೈಂಟ್ ಸರ್ವರ್ ಅನ್ನೂ ಆವರಿಸುವ ಡೀಫಾಲ್ಟ್ ರೂಟ್ ಸ್ಥಾಪಿಸಿದಾಗ, ಹೊರ ಪ್ಯಾಕೆಟ್ ಕೂಡ ಸೆಳೆತಕ್ಕೆ ಸಿಗುತ್ತದೆ.
ಲಕ್ಷಣಗಳು ತಕ್ಷಣ ಮತ್ತು ಸಂಪೂರ್ಣ. ಹ್ಯಾಂಡ್ಶೇಕ್ ಪೂರ್ಣಗೊಂಡು ನಂತರ ಏನೂ ಹರಿಯುವುದಿಲ್ಲ, ಅಥವಾ ರೂಟ್ ಸ್ಥಾಪಿಸಿದ ಕ್ಷಣವೇ ಸಂಪರ್ಕ ಕಡಿತಗೊಳ್ಳುತ್ತದೆ. ಎರಡೂ ಸಂದರ್ಭಗಳಲ್ಲಿ keepalive ಇನ್ನು ಹೊರಹೋಗಲು ಸಾಧ್ಯವಿಲ್ಲ.
ಆಯ್ಕೆ ಒಂದು: ಎಂಡ್ಪಾಯಿಂಟ್ಗೆ ಹೋಸ್ಟ್ ರೂಟ್
ನೇರ ವಿಧಾನವು ಮೂಲ ಗೇಟ್ವೇ ಮೂಲಕ ಸರ್ವರ್ನ ವಿಳಾಸಕ್ಕೆ ರೂಟ್ ಸೇರಿಸುತ್ತದೆ. ಅದಕ್ಕೆ ಒಂದು ಸಾಲು ಸಾಕು. ಕೋಷ್ಟಕ ಓದುವ ಯಾರಿಗೂ ಅದು ಕಾಣುತ್ತದೆ. ಬದಲಾವಣೆ ದಾಖಲೆಯಲ್ಲಿ ವಿವರಿಸುವುದೂ ಸುಲಭ.
ಅದರ ದೌರ್ಬಲ್ಯ ಕೆಳಗಿನ ಮಾರ್ಗ ಬದಲಾದಾಗ ಕಾಣುತ್ತದೆ. ಉಳಿಸಿದ ರೂಟ್ ಹಳೆಯ ನೆಟ್ವರ್ಕ್ನ ಗೇಟ್ವೇ ಮತ್ತು ಇಂಟರ್ಫೇಸ್ ಅನ್ನು ಹೆಸರಿಸುತ್ತದೆ. Wi-Fi ಬದಲಾದ ನಂತರ ಆ ಗೇಟ್ವೇ ಇಲ್ಲದಿರಬಹುದು, ಮತ್ತು ರೂಟ್ ಹಿಂದೆ ಉಳಿಯುತ್ತದೆ, ಸರಿಯಾಗಿ ಕಾಣುತ್ತದೆ ಮತ್ತು ಏನನ್ನೂ ಮಾಡುವುದಿಲ್ಲ.
# before the tunnel: which path reaches the endpoint?
ip route get 198.51.100.7
# pin it through the current gateway
ip route add 198.51.100.7/32 via 192.168.1.1 dev wlan0
# after the tunnel is up, confirm the pin survived
ip route get 198.51.100.7
ಹೋಸ್ಟ್ಹೆಸರು ಇದನ್ನು ಕಷ್ಟಕರಗೊಳಿಸುತ್ತದೆ. ಎಂಡ್ಪಾಯಿಂಟ್ ಹಲವು ವಿಳಾಸಗಳಿಗೆ ಪರಿಹರಿಸುವ ಹೆಸರಾದರೆ, ವಿನಾಯಿತಿ ನಿಜವಾಗಿ ಬಳಕೆಯಲ್ಲಿರುವ ವಿಳಾಸವನ್ನು ಆವರಿಸಬೇಕು. ನಂತರದ ಹುಡುಕಾಟವು ರೂಟ್ ಎಂದೂ ಆವರಿಸದ ಯಾವುದನ್ನೋ ಹಿಂತಿರುಗಿಸಬಹುದು.
ಆಯ್ಕೆ ಎರಡು: ಸಾಕೆಟ್ ರಕ್ಷಿಸುವುದು
ಇನ್ನೊಂದು ವಿಧಾನ ರೌಟಿಂಗ್ ಕೋಷ್ಟಕವನ್ನು ಎಂದೂ ಸ್ಪರ್ಶಿಸುವುದಿಲ್ಲ. ಕ್ಲೈಂಟ್ ಟನಲ್ ಒಯ್ಯುವ ಸಾಕೆಟ್ ಅನ್ನು ಗುರುತಿಸುತ್ತದೆ ಅಥವಾ ರಕ್ಷಿಸುತ್ತದೆ, ಆದ್ದರಿಂದ ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಂ ನೀತಿಯ ಪ್ರಕಾರ ಆ ಸಾಕೆಟ್ನ ಸಂಚಾರವನ್ನು ಟನಲ್ನ ಹೊರಗೆ ಕಳುಹಿಸುತ್ತದೆ. Android ಈ ಕಾರ್ಯವಿಧಾನವನ್ನು ನೇರವಾಗಿ VPN ಅಪ್ಲಿಕೇಶನ್ಗಳಿಗೆ ನೀಡುತ್ತದೆ. ಡೆಸ್ಕ್ಟಾಪ್ ಕ್ಲೈಂಟ್ಗಳು ಫೈರ್ವಾಲ್ ಗುರುತುಗಳು ಅಥವಾ ಸಾಧನಕ್ಕೆ-ಬಂಧಿಸುವ ಕರೆಗಳೊಂದಿಗೆ ಸಮಾನಾಂತರಗಳನ್ನು ಜಾರಿಗೆ ತರುತ್ತವೆ.
ಪ್ರಯೋಜನವೆಂದರೆ ವಿನಾಯಿತಿ ಉಳಿಸಿದ ಗೇಟ್ವೇ ಬದಲು ಸಂಪರ್ಕವನ್ನು ಅನುಸರಿಸುತ್ತದೆ. ನೆಟ್ವರ್ಕ್ ಬದಲಾವಣೆ ಕೆಳಗಿನ ಮಾರ್ಗವನ್ನು ಮರುಬರೆಯುತ್ತದೆ, ಮತ್ತು ರಕ್ಷಿತ ಸಾಕೆಟ್ ಅದರೊಂದಿಗೆ ಚಲಿಸುತ್ತದೆ ಏಕೆಂದರೆ ಅದು ಎಂದೂ ವಿಳಾಸಕ್ಕೆ ಪಿನ್ ಆಗಿರಲಿಲ್ಲ. ರೂಟ್ ಕೋಷ್ಟಕ ಸ್ವಚ್ಛವಾಗಿರುತ್ತದೆ.
ಬೆಲೆ ಗೋಚರತೆ. ರೌಟಿಂಗ್ ಕೋಷ್ಟಕದಲ್ಲಿ ಯಾವುದೂ ವಿನಾಯಿತಿಯನ್ನು ತೋರಿಸುವುದಿಲ್ಲ, ಆದ್ದರಿಂದ ಹೋಸ್ಟ್ ರೂಟ್ ಹುಡುಕುವ ಪರಿಶೀಲಕರಿಗೆ ಏನೂ ಸಿಗುವುದಿಲ್ಲ ಮತ್ತು ವಿನ್ಯಾಸ ಅಸುರಕ್ಷಿತ ಎಂದು ತೀರ್ಮಾನಿಸಬಹುದು. ರಕ್ಷಣೆ ಕ್ಲೈಂಟ್ನ ಕೋಡ್ನಲ್ಲಿ ಮತ್ತು ಆ ಕೋಡ್ ಸ್ಥಾಪಿಸುವ ನೀತಿ ನಿಯಮಗಳಲ್ಲಿ ವಾಸಿಸುತ್ತದೆ.
ಅವುಗಳ ನಡುವೆ ಆಯ್ಕೆ
ಕ್ಲೈಂಟ್ ಬೆಂಬಲಿಸಿದಾಗ ಸಾಕೆಟ್ ಮಟ್ಟದ ಕಾರ್ಯವಿಧಾನವನ್ನು ಆಯ್ಕೆಮಾಡಿ, ಏಕೆಂದರೆ ಪಿನ್ ಆದ ರೂಟ್ ಅನ್ನು ಮುರಿಯುವ ನೆಟ್ವರ್ಕ್ ಬದಲಾವಣೆಗಳನ್ನು ಅದು ತಾಳಿಕೊಳ್ಳುತ್ತದೆ. ವಿನಾಯಿತಿ ಇತರ ಉಪಕರಣಗಳಿಗೆ ಗೋಚರವಾಗಬೇಕಾದಾಗ, ಅಥವಾ ಕ್ಲೈಂಟ್ ಉತ್ತಮ ಏನನ್ನೂ ನೀಡದಿದ್ದಾಗ ಹೋಸ್ಟ್ ರೂಟ್ ಆಯ್ಕೆಮಾಡಿ.
ಯಾವ ಕಾರ್ಯವಿಧಾನವೂ ಸರ್ವರ್ ವಿಳಾಸವು ಸಂಪೂರ್ಣವಾಗಿ ತಲುಪಬಹುದಾಗಿರಬೇಕೆಂಬ ಅಗತ್ಯವನ್ನು ತೆಗೆದುಹಾಕುವುದಿಲ್ಲ. ಖಾಸಗಿ ಗೇಟ್ವೇಗೆ ಸಾರ್ವಜನಿಕ ಕೇಳುವ ವಿಳಾಸವಿರುತ್ತದೆ, ಮತ್ತು ಟನಲ್ನ ಹೊರಗೆ ಉಳಿಯಬೇಕಾದದ್ದು ಅದೇ ವಿಳಾಸ. ಅದರ ಹಿಂದಿನ ಒಳ ನೆಟ್ವರ್ಕ್ಗಳು ಟನಲ್ ಅಸ್ತಿತ್ವಕ್ಕೆ ಬಂದ ನಂತರವೇ ತಲುಪಬಹುದಾಗುತ್ತವೆ.
ನೀವು ಯಾವುದನ್ನು ಆರಿಸಿದರೂ, ಅದನ್ನು ಟನಲ್ ಹೊಂದಿರುವ ಘಟಕದ ಬಳಿ ಇರಿಸಿ. ಕೈಯಿಂದ ಸೇರಿಸಿದ ಅಲೆದಾಡುವ ಹೋಸ್ಟ್ ರೂಟ್ ಮುಂದಿನ ನೆಟ್ವರ್ಕ್ವರೆಗೆ ಕೆಲಸ ಮಾಡುತ್ತದೆ, ನಂತರ ಅದು ನಾಳೆಯ ನಿಗೂಢ ಅಡಚಣೆಯಾಗುತ್ತದೆ.