ಸರ್ವರ್ ಹೊಸ ವಿಳಾಸಕ್ಕೆ ಸ್ಥಳಾಂತರಗೊಂಡಿದೆ, ಕ್ಲೈಂಟ್ಗಳು ಇನ್ನೂ ಸಂಪರ್ಕಗೊಳ್ಳುತ್ತವೆ, ಮತ್ತು ಅವರು ಕಳುಹಿಸುವ ಯಾವುದೂ ಇಂಟರ್ನೆಟ್ ತಲುಪುವುದಿಲ್ಲ. ಆ ವಿಭಜನೆಯೇ ಸುಳಿವು: ಕೇಳುವ ಸಾಕೆಟ್ ಮತ್ತು ಪೋರ್ಟ್ ಫಾರ್ವರ್ಡಿಂಗ್ ಸ್ಥಳಾಂತರವನ್ನು ದಾಟಿ ಉಳಿದವು, ಆದ್ದರಿಂದ ಟನೆಲ್ ಮೇಲೇರುತ್ತದೆ, ಆದರೆ ಫಾರ್ವರ್ಡ್ ಆದ ಪ್ಯಾಕೆಟ್ಗಳಿಗೆ ಅನ್ವಯಿಸುವ ಮೂಲ ಅನುವಾದ ಇನ್ನೂ ಹೋಸ್ಟ್ನಲ್ಲಿ ಇಲ್ಲದ ವಿಳಾಸವನ್ನು ಹೆಸರಿಸುತ್ತದೆ. ಮರುಬರೆದ ಆ ಪ್ಯಾಕೆಟ್ಗಳಿಗೆ ಉತ್ತರಗಳು ಇನ್ನು ಇಲ್ಲದ ಯಂತ್ರಕ್ಕೆ ಹೋಗುತ್ತವೆ.

ಸಂಪರ್ಕ ಮತ್ತು ಫಾರ್ವರ್ಡಿಂಗ್ ಬೇರೆ ಬೇರೆ ಕಡೆ ವಿಫಲವಾಗುತ್ತವೆ

ಸ್ಥಾಪನೆ ಕ್ಲೈಂಟ್ಗಳಿಗೆ ಈಗಾಗಲೇ ತಿಳಿದಿರುವ ಅಂತ್ಯಬಿಂದುವನ್ನು ಅವಲಂಬಿಸಿದೆ: ಸಾರ್ವಜನಿಕ ವಿಳಾಸ, ಅದರ ಮುಂದಿನ ಪೋರ್ಟ್ ಫಾರ್ವರ್ಡಿಂಗ್ ಮತ್ತು ಒಳಗಿನ ಶ್ರೋತ. ಫಾರ್ವರ್ಡ್ ಆದ ಸಂಚಾರವು ಪ್ಯಾಕೆಟ್ ಟನೆಲ್ಗೆ ಪ್ರವೇಶಿಸಿದ ನಂತರ ತೆಗೆದುಕೊಳ್ಳುವ ಎರಡನೇ ನಿರ್ಧಾರವನ್ನು ಅವಲಂಬಿಸಿದೆ, ಆಗ ಹೋಸ್ಟ್ ತನ್ನ ಮೂಲವನ್ನು ಮರುಬರೆಯುತ್ತದೆ, ಉತ್ತರಗಳು ಹಿಂತಿರುಗುವ ದಾರಿ ಕಂಡುಕೊಳ್ಳಲು.

ವಿಳಾಸ ಬದಲಾವಣೆ ಎರಡನೇ ನಿರ್ಧಾರವನ್ನಷ್ಟೇ ಮುರಿಯುತ್ತದೆ, ಆದ್ದರಿಂದ ಲಕ್ಷಣವನ್ನು "ಸಂಪರ್ಕವಿದೆ ಆದರೆ ಇಂಟರ್ನೆಟ್ ಇಲ್ಲ" ಎಂದು ಓದಲಾಗುತ್ತದೆ. ಕ್ಲೈಂಟ್ ಬದಿಯ ಸಾಮಾನ್ಯ ಪರಿಶೀಲನೆಗಳು ಆರೋಗ್ಯಕರವಾಗಿ ಕಾಣುವುದಕ್ಕೂ ಇದೇ ಕಾರಣ: ಹ್ಯಾಂಡ್ಶೇಕ್ ಪೂರ್ಣಗೊಳ್ಳುತ್ತದೆ, ಕ್ಲೈಂಟ್ಗೆ ವಿಳಾಸ ಸಿಗುತ್ತದೆ, ಮತ್ತು ಸರ್ವರ್ನ ಟನೆಲ್ ವಿಳಾಸಕ್ಕೆ ping ಕೂಡ ಉತ್ತರಿಸಬಹುದು. ಇನ್ನೊಂದು ಬದಿಯಲ್ಲಿರುವ ದೋಷಕ್ಕಾಗಿ ಕ್ಲೈಂಟ್ನಲ್ಲಿ ಗಂಟೆಗಳು ವ್ಯರ್ಥವಾಗುತ್ತವೆ, ಆದ್ದರಿಂದ ನಿಯಮಗಳ ಕೋಷ್ಟಕವೇ ಮೊದಲು ನೋಡಬೇಕಾದ ಜಾಗ.

ಸಂಪಾದಿಸುವ ಮೊದಲು ನಿಯಮ ಮತ್ತು ಅದರ ಕೌಂಟರ್ಗಳನ್ನು ಓದಿ

ಕೌಂಟರ್ಗಳೊಂದಿಗೆ ಅನುವಾದ ನಿಯಮಗಳನ್ನು ಪಟ್ಟಿ ಮಾಡಿ ಮತ್ತು ಸಂರಚಿಸಿದ ಮೂಲವನ್ನು ಹೋಸ್ಟ್ ನಿಜವಾಗಿ ಹೊಂದಿರುವ ವಿಳಾಸಗಳೊಂದಿಗೆ ಹೋಲಿಸಿ. ಸತ್ತ ವಿಳಾಸಕ್ಕೆ ಮರುಬರೆದ ನಿಯಮ ಸಾಮಾನ್ಯವಾಗಿ ಒಳಹೋಗುವ ದಾರಿಯಲ್ಲಿ ಸಂಚಾರ ತೋರಿಸುತ್ತದೆ, ಏಕೆಂದರೆ ಪ್ಯಾಕೆಟ್ಗಳು ಅದನ್ನು ತಲುಪಿ ಅನುವಾದವಾಗುತ್ತವೆ, ಮತ್ತು ಹಿಂತಿರುಗುವ ದಾರಿಯಲ್ಲಿ ಏನೂ ಇಲ್ಲ.

sudo iptables -t nat -L POSTROUTING -n -v --line-numbers
ip -4 addr show

ಅಲ್ಲಿರುವಾಗ ಮೂರು ಕ್ಷೇತ್ರಗಳನ್ನು ಪರಿಶೀಲಿಸಿ: ಮೂಲ ಹೊಂದಾಣಿಕೆಯಲ್ಲಿನ ಪೂಲ್, ನಿಯಮ ಒಂದನ್ನು ಹೆಸರಿಸಿದರೆ ನಿರ್ಗಮನ ಇಂಟರ್ಫೇಸ್, ಮತ್ತು ಟನೆಲ್-ನಿಂದ-ಟನೆಲ್ ಸಂಚಾರ ಮರುಬರೆಯುವುದನ್ನು ತಡೆಯುವ ಹೊರತುಪಡಿಸುವಿಕೆ. ಸಂಪಾದನೆಯ ವೇಳೆ ಆ ಹೊರತುಪಡಿಸುವಿಕೆಯನ್ನು ಕಳೆದುಕೊಳ್ಳುವುದು ಸುಲಭ, ಮತ್ತು ಅದನ್ನು ಕಳೆದುಕೊಂಡರೆ ಸಹವರ್ತಿಗಳ ನಡುವಿನ ಸಂಚಾರ ಕೆಲಸ ಮಾಡುತ್ತಿರುವಂತೆ ಕಾಣುತ್ತದೆ, ಆದರೆ ಅದರ ಉತ್ತರಗಳು ವಿಚಿತ್ರ ಮಾರ್ಗ ತೆಗೆದುಕೊಳ್ಳುತ್ತವೆ.

ಕೌಂಟರ್ಗಳು ಸೊನ್ನೆಯಲ್ಲಿ ನಿಂತಿದ್ದರೆ, ಪ್ಯಾಕೆಟ್ಗಳು ಎಂದಿಗೂ ಈ ನಿಯಮ ತಲುಪುವುದಿಲ್ಲ ಮತ್ತು ವಿಳಾಸವೇ ಈಗಿನ ಸಮಸ್ಯೆ ಅಲ್ಲ. ಸರಪಳಿಯಲ್ಲಿ ಹಿಂದಿನ ಸ್ಪರ್ಧಾತ್ಮಕ ನಿಯಮವನ್ನು ಹುಡುಕಿ, ಮೂಲವನ್ನು ಸಂಪಾದಿಸುವ ಬದಲು ಯಾರಾದರೂ ಬದಲಿಯನ್ನು ಸೇರಿಸಿದಾಗ ಇದು ಸಂಭವಿಸುತ್ತದೆ. ಒಂದು ನಿಮಿಷ ಮೊದಲು ಬರೆದಿಟ್ಟ ಔಟ್ಪುಟ್ನೊಂದಿಗೆ ನಿಯಮ ಸಂಖ್ಯೆಗಳನ್ನು ಹೋಲಿಸಿ. ಕ್ರಮ ಸಂರಚನೆಯ ಭಾಗ, ಅಲಂಕಾರಿಕ ವಿವರವಲ್ಲ.

ಮೂಲವನ್ನು ಬದಲಾಯಿಸಿ, ಅಥವಾ ಒಂದನ್ನು ಹೆಸರಿಸುವುದನ್ನು ನಿಲ್ಲಿಸಿ

ಹೋಸ್ಟ್ಗೆ ಸ್ಥಿರ ವಿಳಾಸವಿದ್ದರೆ, ಇನ್ನೊಂದನ್ನು ಸೇರಿಸುವ ಬದಲು ನಿಯಮವನ್ನು ಅದರ ಜಾಗದಲ್ಲೇ ಬದಲಾಯಿಸಿ. ನಿಯಮ ಸಂಖ್ಯೆಯಿಂದ ಬದಲಾಯಿಸುವುದು ಸರಪಳಿಯ ಉಳಿದ ಭಾಗ ಅವಲಂಬಿಸಿರುವ ಕ್ರಮವನ್ನು ಕಾಪಾಡುತ್ತದೆ.

sudo iptables -t nat -R POSTROUTING 1 -s 10.8.0.0/24 ! -d 10.8.0.0/24 -j SNAT --to-source 10.151.0.40

ವಿಳಾಸವನ್ನು ಕ್ರಿಯಾತ್ಮಕವಾಗಿ ನೀಡಿದಾಗ, ಯಾವುದೇ ಮೂಲವನ್ನು ಹೆಸರಿಸಬೇಡಿ ಮತ್ತು ಕರ್ನಲ್ ನಿರ್ಗಮನ ಇಂಟರ್ಫೇಸ್ನಿಂದ ಪ್ರಸ್ತುತದ್ದನ್ನು ಆಯ್ಕೆ ಮಾಡಲಿ. ಆ ರೂಪವು ಮುಂದಿನ ಸ್ಥಳಾಂತರವನ್ನು ಸಂಪಾದನೆ ಇಲ್ಲದೆ ದಾಟುತ್ತದೆ, ಯಾವ ವಿಳಾಸ ಬಳಸಲಾಯಿತು ಎಂಬುದನ್ನು ಮರೆಮಾಡುವ ಬೆಲೆಗೆ.

sudo iptables -t nat -R POSTROUTING 1 -s 10.8.0.0/24 ! -d 10.8.0.0/24 -o eth0 -j MASQUERADE

IPv4 ಫಾರ್ವರ್ಡಿಂಗ್ ನಿರ್ವಹಿತ ಸಂರಚನೆಯ ಮೂಲಕ ಇನ್ನೂ ಸಕ್ರಿಯವಾಗಿದೆ ಎಂದು ಖಚಿತಪಡಿಸಿ, ನಂತರ ವಿತರಣೆಯ ಸ್ವಂತ ಕ್ರಮದಿಂದ ನಿಯಮವನ್ನು ಶಾಶ್ವತಗೊಳಿಸಿ. ಚಾಲನೆಯಲ್ಲಿರುವ ಕರ್ನಲ್ನಲ್ಲಿ ಮಾತ್ರ ಮಾಡಿದ ಬದಲಾವಣೆ ಮುಂದಿನ ರೀಬೂಟ್ನೊಂದಿಗೆ ಮರಳಿ ಬರುತ್ತದೆ, ಸಾಮಾನ್ಯವಾಗಿ ಯಾರೂ ಬದಲಾವಣೆಗೆ ಜೋಡಿಸದ ನಿರ್ವಹಣಾ ಕಿಟಕಿಯಲ್ಲಿ.

ಬದಲಿಯನ್ನು ತಪ್ಪಾಗಿ ಮಾಡುವ ಎರಡು ದಾರಿಗಳು

ಪೂಲ್ ಅನ್ನು ಸರ್ವರ್ನ LAN ವಿಳಾಸದ ಬದಲು ಅದರ ಟನೆಲ್ ವಿಳಾಸಕ್ಕೆ ಅನುವಾದಿಸಿದರೆ ಉತ್ತರಗಳು ನೇರವಾಗಿ ಟನೆಲ್ಗೆ ಮರಳಿ ಹೋಗುತ್ತವೆ, ಅಲ್ಲಿ ಅವು ಎಂದೂ ಕೇಳದ ಕ್ಲೈಂಟ್ನ ಕಡೆಗೆ ಮಾರ್ಗೀಕರಣಗೊಳ್ಳುತ್ತವೆ. ಸಂಪರ್ಕವು ಮಾರ್ಗ ಸುತ್ತಿನಂತೆ ನಿಂತುಹೋಗುತ್ತದೆ, ಏಕೆಂದರೆ ಅದು ನಿಜವಾಗಿಯೂ ಸುತ್ತು.

ಹಳೆಯದರ ಮೇಲೆ ಎರಡನೇ ಅನುವಾದವನ್ನು ಜೋಡಿಸುವುದು ಇನ್ನೊಂದು ತಪ್ಪು. ಮೊದಲು ಹೊಂದುವ ನಿಯಮ ಗೆಲ್ಲುತ್ತದೆ, ಆದ್ದರಿಂದ ಹಳೆಯ ನಮೂದು ಅಳಿಸುವವರೆಗೆ ಪ್ಯಾಕೆಟ್ಗಳನ್ನು ನಿರ್ವಹಿಸುತ್ತದೆ, ಮತ್ತು ಹೊಸ ನಿಯಮದ ಕೌಂಟರ್ಗಳು ಸೊನ್ನೆಯಲ್ಲೇ ಉಳಿಯುತ್ತವೆ, ಆದರೆ ಎಲ್ಲರೂ ಬದಲಿಯನ್ನೇ ದೂಷಿಸುತ್ತಾರೆ. ಹೊಸದನ್ನು ಸೇರಿಸುವ ಮೊದಲು ನಕಲನ್ನು ಅಳಿಸಿ. ನಂತರ ಪಟ್ಟಿಯನ್ನು ಇನ್ನೊಮ್ಮೆ ಓದಿ ಮತ್ತು ಪೂಲ್ಗೆ ನಿಖರವಾಗಿ ಒಂದೇ ಅನುವಾದ ಹೊಂದುತ್ತದೆ ಎಂದು ಖಚಿತಪಡಿಸಿ.

ಟನೆಲ್ IPv6 ಸಹ ಸಾಗಿಸಿದರೆ, ಇಡೀ ಪರಿಶೀಲನೆಯನ್ನು ಇನ್ನೊಂದು ಸ್ಟಾಕ್ನಲ್ಲಿ ಪುನರಾವರ್ತಿಸಿ. ಅನುವಾದ ಮತ್ತು ಮಾರ್ಗೀಕೃತ ಪೂರ್ವಪ್ರತ್ಯಯವಿಲ್ಲದ IPv6 ಡೀಫಾಲ್ಟ್ ಮಾರ್ಗ ಅಷ್ಟೇ ಮೌನವಾಗಿ ವಿಫಲವಾಗುತ್ತದೆ, ಮತ್ತು ಅದನ್ನು ಮರೆಯುವುದು ಸುಲಭ ಏಕೆಂದರೆ ಅದರ ಮೇಲಿನದೆಲ್ಲವೂ ಒಂದೇ ರೀತಿ ಕಾಣುತ್ತದೆ.

ಒಳಬರುವ ಸೇವೆಗಳಿಗೆ ವಿರುದ್ಧ ಅನುವಾದ ಬೇಕು

VPN ಕ್ಲೈಂಟ್ನಲ್ಲಿರುವ ಸೇವೆ ಹೊರಗಿನಿಂದ ತಲುಪಬಲ್ಲದಾಗಿರಬೇಕಾದರೆ ಅದಕ್ಕೆ ಗಮ್ಯಸ್ಥಾನ ಅನುವಾದ ಬೇಕು, ಮೂಲ ಅನುವಾದ ಅಲ್ಲ: ಸಾರ್ವಜನಿಕ ಪೋರ್ಟ್ ಒಳಗೆ ಬರುವ ಮೊದಲು ಕ್ಲೈಂಟ್ನ ಟನೆಲ್ ವಿಳಾಸಕ್ಕೆ ಮರುಬರೆಯಲಾಗುತ್ತದೆ. ನಂತರ ಫಾರ್ವರ್ಡ್ ಮಾರ್ಗಕ್ಕೆ ಆ ಸಂಚಾರಕ್ಕೆ ಅನುಮತಿ ನೀಡುವ ಸ್ಪಷ್ಟ ನಿಯಮ ಬೇಕು.

sudo iptables -t nat -A PREROUTING -p tcp --dport 8080 -j DNAT --to-destination 10.9.8.2:8080

ಟನೆಲ್ ಅನ್ನು ಸ್ವತಃ ಸಾಗಿಸುವ ಪೋರ್ಟ್ ಅನ್ನು ಎಂದಿಗೂ ಅನುವಾದಿಸಬೇಡಿ, ಏಕೆಂದರೆ ಆ ಮರುಬರವು ಸೇವೆಯನ್ನು ತಲುಪಬಲ್ಲದಾಗಿ ಇರಿಸುವ ಸಂಪರ್ಕವನ್ನು ಕಡಿತಗೊಳಿಸುತ್ತದೆ. ಟನೆಲ್ ಪೋರ್ಟ್ ಅನ್ನು ಗಮ್ಯಸ್ಥಾನ ನಿಯಮಗಳಿಂದ ಸಂಪೂರ್ಣ ಹೊರಗಿಡಿ. ಕೊನೆಯಲ್ಲಿ ಎರಡೂ ತುದಿಗಳಿಂದ ಪರಿಶೀಲಿಸಿ: ಹೊಸ ನಿಯಮದಲ್ಲಿ ಕೌಂಟರ್ಗಳು, ಟನೆಲ್ ಸಾಧನದಲ್ಲಿ ಚಿಕ್ಕ ಕ್ಯಾಪ್ಚರ್, ಮತ್ತು ಸಾರ್ವಜನಿಕವನ್ನು ಪ್ರಯತ್ನಿಸುವ ಮೊದಲು ಟನೆಲ್ ಒಳಗಿನ ವಿಳಾಸಕ್ಕೆ ಒಂದು ವಿನಂತಿ.

ಸಂಬಂಧಿತ ಲೇಖನಗಳು