eth0:0 ಒಂದು ಲೇಬಲ್, ಸಾಧನವಲ್ಲ: SNAT ಹೊಂದಾಣಿಕೆಯನ್ನು ಸರಿಪಡಿಸಿ
ಶೂನ್ಯ ಕೌಂಟರ್ ಎಂದರೆ ನಿಯಮವು ಅಸ್ತಿತ್ವದಲ್ಲಿರಲು ಸಾಧ್ಯವಿಲ್ಲದ ಇಂಟರ್ಫೇಸ್ ಅನ್ನು ಹೆಸರಿಸುತ್ತದೆ. ನಿಜವಾದ ಸಾಧನವನ್ನು ಓದಿ, -o ಹೊಂದಾಣಿಕೆಯನ್ನು ಸರಿಪಡಿಸಿ, ನಂತರ ಅನುವಾದಿತ ವಿಳಾಸವನ್ನು ಉದ್ದೇಶಪೂರ್ವಕವಾಗಿ ಆರಿಸಿ.
ಒಂದು VPN ಕ್ಲೈಂಟ್ ಪೂಲ್ಗೆ ತನ್ನದೇ ಸಾರ್ವಜನಿಕ ವಿಳಾಸವನ್ನು ನೀಡಬೇಕಿದ್ದ NAT ನಿಯಮವು ಶೂನ್ಯ ಪ್ಯಾಕೆಟ್ನಲ್ಲಿ ನಿಂತಿದೆ, ಅದೇ ಪೂಲ್ ತಪ್ಪು ಮೂಲದೊಂದಿಗೆ ಹೊರಹೋಗುತ್ತಲೇ ಇದೆ. ನಿಯಮ ಸಾಮಾನ್ಯವಾಗಿ ವಿಳಾಸದಲ್ಲಿ ತಪ್ಪಾಗುವುದಿಲ್ಲ; ಇಂಟರ್ಫೇಸ್ನಲ್ಲಿ ತಪ್ಪಾಗುತ್ತದೆ. -o eth0:0 ಅಸ್ತಿತ್ವದಲ್ಲಿಲ್ಲದ ಸಾಧನವನ್ನು ಸೂಚಿಸುತ್ತದೆ, ಏಕೆಂದರೆ eth0:0 ವಿಳಾಸಕ್ಕೆ ಜೋಡಿಸಲಾದ ಲೇಬಲ್, ಮತ್ತು ಆ ವಿಳಾಸದ ಸಾಧನ eth0 ಆಗಿದೆ. ಕೌಂಟರ್ಗಳನ್ನು ನೋಡುವುದು ಇದನ್ನು ಖಚಿತಪಡಿಸುವ ಅತ್ಯಂತ ವೇಗದ ದಾರಿ, ಮತ್ತು ಸರಿಪಡಿಸುವಿಕೆ ತನಿಖೆ ಸೂಚಿಸುವುದಕ್ಕಿಂತ ಚಿಕ್ಕದು.
ಕರ್ನಲ್ ಸಾಧನವನ್ನು ಏನೆಂದು ಕರೆಯುತ್ತದೆ ಎಂದು ಪರಿಶೀಲಿಸಿ
ಏನನ್ನಾದರೂ ಬದಲಿಸುವ ಮೊದಲು ಎರಡು ನೋಟಗಳನ್ನು ಪ್ರತ್ಯೇಕವಾಗಿ ಓದಿ:
ip link show
ip address show dev eth0
ip route get 203.0.113.20
ಲಿಂಕ್ ಪಟ್ಟಿ ಇಂಟರ್ಫೇಸ್ಗಳನ್ನು ತೋರಿಸುತ್ತದೆ. ವಿಳಾಸ ಪಟ್ಟಿ ಲೇಬಲ್ ಹೊಂದಿರುವ ಎರಡನೇ IPv4 ವಿಳಾಸವನ್ನು ತೋರಿಸಬಹುದು eth0:0, ಮತ್ತು ಆ ವಿಳಾಸದ ಸಾಧನ ಇನ್ನೂ eth0 ಆಗಿದೆ. iproute2 ವಿಳಾಸ ಕೈಪಿಡಿ ಲೇಬಲ್ ಅನ್ನು ವಿಳಾಸದ ಹೆಸರಾಗಿ ಪರಿಗಣಿಸುತ್ತದೆ, ಎರಡನೇ ಲಿಂಕ್ ಆಗಿ ಅಲ್ಲ, ಮತ್ತು ಇಡೀ ಸಮಸ್ಯೆ ಸುತ್ತುವುದೇ ಈ ವ್ಯತ್ಯಾಸದ ಸುತ್ತ.
ಇತಿಹಾಸವು ಗೊಂದಲವನ್ನು ವಿವರಿಸುತ್ತದೆ. ಹಳೆಯ ifconfig eth0:0 ವಾಕ್ಯರಚನೆ ನಿಜವಾಗಿಯೂ ಹೊಸ ಇಂಟರ್ಫೇಸ್ನಂತೆ ಕಾಣುತ್ತಿತ್ತು, ಮತ್ತು ಆ ಕಾಲದ ಸ್ಕ್ರಿಪ್ಟ್ಗಳು ಇನ್ನೂ ಒಂದನ್ನು ಉಲ್ಲೇಖಿಸುತ್ತವೆ. ಇಂದಿನ ವ್ಯವಸ್ಥೆಯಲ್ಲಿ ಅಲಿಯಾಸ್ ವಿಳಾಸದ ಮೇಲಿನ ಲೇಬಲ್, ಮತ್ತು ರೂಟಿಂಗ್ ಅಥವಾ netfilter ಮಾರ್ಗದಲ್ಲಿ ಯಾವುದೂ ಅದನ್ನು ಪ್ರತ್ಯೇಕ ನಿರ್ಗಮನ ಬಿಂದುವಾಗಿ ಪರಿಗಣಿಸುವುದಿಲ್ಲ.
ನಿಯಮ ನಿಜವಾಗಿ ಯಾವುದಕ್ಕೆ ಹೊಂದಿಕೆಯಾಯಿತು ಎಂದು ಪರಿಶೀಲಿಸಿ
ಕೌಂಟರ್ಗಳನ್ನು ನಿಯಮಗಳ ಪಟ್ಟಿಯೊಂದಿಗೆ ಓದಿ, ನೆನಪಿನಿಂದ ಅಲ್ಲ:
iptables -t nat -L POSTROUTING -v -n --line-numbers
ಹೊಂದಿಕೆಯಾಗುವ ಸಂಚಾರ ಹರಿಯುತ್ತಿರುವಾಗ ಪ್ಯಾಕೆಟ್ ಕೌಂಟರ್ ಶೂನ್ಯದಲ್ಲೇ ಉಳಿಯುವ ನಿಯಮವು ಮೌಲ್ಯಮಾಪನವಾಗುವುದಿಲ್ಲ, ಮತ್ತು ಈ ಕೆಳಗಿನದನ್ನು ಹೆಸರಿಸುವ ಔಟ್ಪುಟ್-ಇಂಟರ್ಫೇಸ್ ಷರತ್ತು eth0:0 ಸಾಮಾನ್ಯ ಕಾರಣ. ರೂಟ್ ಆಯ್ಕೆ ಮಾಡಿದ ಔಟ್ಪುಟ್ ಸಾಧನ eth0, ಆದ್ದರಿಂದ ಬೇರೆ ಹೆಸರನ್ನು ಹುಡುಕುವ ಷರತ್ತು ಕರ್ನಲ್ ಯಾವ ಮೂಲ ವಿಳಾಸವನ್ನು ಆಯ್ಕೆ ಮಾಡಿದರೂ ಎಂದಿಗೂ ನಿಜವಾಗುವುದಿಲ್ಲ.
ಷರತ್ತನ್ನು ನಿಜವಾದ ಸಾಧನಕ್ಕೆ ಬದಲಿಸಿ ಮತ್ತು ಲೇಬಲ್ ಅನ್ನು ಅದರಿಂದ ಹೊರಗೆ ಬಿಡಿ. ಆ ಸಾಧನವನ್ನು ಹಂಚಿಕೊಳ್ಳುವ ಎರಡು ಕ್ಲೈಂಟ್ ಪೂಲ್ಗಳನ್ನು ಪ್ರತ್ಯೇಕಿಸಬೇಕಿದ್ದರೆ, ಅವುಗಳನ್ನು ಮೂಲ ಪೂರ್ವಪ್ರತ್ಯಯದಿಂದ ಪ್ರತ್ಯೇಕಿಸಿ, ಅಸ್ತಿತ್ವದಲ್ಲಿರಲು ಸಾಧ್ಯವಿಲ್ಲದ ಇಂಟರ್ಫೇಸ್ ಹೆಸರಿನಿಂದ ಅಲ್ಲ. ಅತಿಕ್ರಮಿಸದ -s ಹೊಂದಾಣಿಕೆಗಳನ್ನು ಹೊಂದಿರುವ ಎರಡು ನಿಯಮಗಳು ಓದಲು ಮತ್ತು ಪರೀಕ್ಷಿಸಲು ಸಾಧ್ಯ; ಕಾಲ್ಪನಿಕ ಸಾಧನವನ್ನು ಹೊಂದಿರುವ ಒಂದು ನಿಯಮ ಅವೆರಡೂ ಅಲ್ಲ. ಪ್ರತಿ ನಿಯಮಕ್ಕೆ ಪೂಲ್ ಅನ್ನು ಹೆಸರಿಸುವ ಟಿಪ್ಪಣಿ ಸೇರಿಸಿ, ಏಕೆಂದರೆ ಆರು ತಿಂಗಳ ನಂತರ ಪೂರ್ವಪ್ರತ್ಯಯ ಮಾತ್ರ ಅದು ಏಕೆ ಅಲ್ಲಿದೆ ಎಂದು ಯಾರಿಗೂ ಹೇಳುವುದಿಲ್ಲ.
ಸಾಧನವನ್ನು ಆಯ್ಕೆ ಮಾಡಿದ ರೂಟ್ ಅನ್ನು ಪರಿಶೀಲಿಸಿ
Postrouting NAT ರೂಟ್ ಈಗಾಗಲೇ ಔಟ್ಪುಟ್ ಇಂಟರ್ಫೇಸ್ ಆಯ್ಕೆ ಮಾಡಿದ ನಂತರ ಚಲಿಸುತ್ತದೆ, ಆದ್ದರಿಂದ ನಿಯಮದಲ್ಲಿನ ಇಂಟರ್ಫೇಸ್ ರೂಟ್ ಆಯ್ಕೆ ಮಾಡಿದ್ದೇ ಆಗಿರಬೇಕು. ಕರ್ನಲ್ ಅನ್ನು ನೇರವಾಗಿ ಕೇಳಿ ip route get ಬಳಸಿ ಪ್ರತಿನಿಧಿ ಕ್ಲೈಂಟ್ ವಿಳಾಸಕ್ಕಾಗಿ, ಮತ್ತು ಅದು ವರದಿ ಮಾಡುವ ಸಾಧನ ಮತ್ತು ಮೂಲ ಎರಡನ್ನೂ ಓದಿ.
ಉತ್ತರ eth0 ಎಂದು ಹೆಸರಿಸಿದರೆ, ನಿಯಮದ ಇಂಟರ್ಫೇಸ್ ಭಾಗ ನಿರ್ಣಯವಾಗಿದೆ. ಅದು ಸುರಂಗ ಸಾಧನವನ್ನು ಹೆಸರಿಸಿದರೆ, ನೀವು ಸಂಪಾದಿಸುತ್ತಿರುವ ನಿಯಮವನ್ನು ಪ್ಯಾಕೆಟ್ ಎಂದಿಗೂ ತಲುಪುವುದಿಲ್ಲ, ಮತ್ತು ಹುಡುಕಾಟ ರೂಟಿಂಗ್ ಕೋಷ್ಟಕ ಮತ್ತು ಅದರ ಆದ್ಯತೆಗಳಿಗೆ ಹೋಗುತ್ತದೆ. ಪ್ಯಾಕೆಟ್ ಬೇರೆಡೆಯಿಂದ ಹೊರಟ ಕಾರಣ ಎಂದಿಗೂ ಹೊಂದಿಕೆಯಾಗದ ನಿಯಮವು ಕೌಂಟರ್ ಔಟ್ಪುಟ್ನಲ್ಲಿ ತಪ್ಪಾಗಿ ಬರೆದ ಸಾಧನವಿರುವ ನಿಯಮದಂತೆಯೇ ಕಾಣುತ್ತದೆ. ಏನನ್ನಾದರೂ ಸಂಪಾದಿಸುವ ಮೊದಲು ಎರಡರಲ್ಲಿ ಯಾವ ಸಂದರ್ಭ ಎಂದು ಖಚಿತಪಡಿಸಿ, ಏಕೆಂದರೆ ಎರಡನೆಯದಕ್ಕೆ ಪಠ್ಯ ಬದಲಾವಣೆ ಅಲ್ಲ, ರೂಟಿಂಗ್ ಬದಲಾವಣೆ ಬೇಕು.
ಅನುವಾದಿತ ಮೂಲವನ್ನು ಉದ್ದೇಶಪೂರ್ವಕವಾಗಿ ಆರಿಸಿ
ಸಾಧನ ಸರಿಯಾದ ನಂತರ, ಮೂಲ ವಿಳಾಸ ಪ್ರತ್ಯೇಕ ನಿರ್ಧಾರ. ಇದು ಕೇವಲ ಉದಾಹರಣೆಯ IPv4 ಪೂಲ್ ಮತ್ತು ಮಾದರಿ ವಿಳಾಸ:
iptables -t nat -A POSTROUTING -s 10.8.1.0/24 -o eth0 \
-j SNAT --to-source 203.0.113.20
ವಿಳಾಸವನ್ನು --to-source ಒಳಗೆ ಬರೆಯುವುದರಿಂದ ಯಾರೂ ಅದನ್ನು ನಿಮ್ಮ ಕಡೆಗೆ ಮತ್ತೆ ರೂಟ್ ಮಾಡುವುದಿಲ್ಲ. ಮೇಲ್ಭಾಗದ ಪೂರೈಕೆದಾರರು ಅಥವಾ ವಿಳಾಸದ ಮಾಲೀಕರು ಆ ವಿಳಾಸದ ಪ್ರತ್ಯುತ್ತರಗಳನ್ನು ಈ ಹೋಸ್ಟ್ಗೆ ತಲುಪಿಸಬೇಕು, ಮತ್ತು ವಿಳಾಸವು ನೀವು ಬಳಸಲು ಅಧಿಕಾರ ಹೊಂದಿರುವಂತಹದ್ದೇ ಆಗಿರಬೇಕು. ಹಾಗಿಲ್ಲದಿದ್ದರೆ, ನಿಯಮ ಹೊಂದಿಕೆಯಾಗಿ ಅನುವಾದಿಸುತ್ತದೆ ಮತ್ತು ಪ್ರತ್ಯುತ್ತರಗಳು ಇನ್ನೂ ಬೇರೆಡೆಗೆ ಹೋಗುತ್ತವೆ.
ಮೂಲ ವಿಳಾಸವನ್ನು ಬದಲಿಸುವುದು ಮೇಲ್ಭಾಗದ ಲಿಂಕ್ ಬದಲಿಸುವುದಕ್ಕೆ ಸಮವಲ್ಲ. ನಿಜವಾದ ಅಗತ್ಯ ಬೇರೆ ಭೌತಿಕ ಮಾರ್ಗವಾದರೆ, ರೂಟಿಂಗ್ ನೀತಿ ಮೊದಲು ಆ ಮಾರ್ಗವನ್ನು ಆಯ್ಕೆ ಮಾಡಬೇಕು; ನಂತರ SNAT ನೀತಿ ಆಯ್ಕೆ ಮಾಡಿದ ಸಾಧನದಲ್ಲಿ ಮೂಲವನ್ನು ಮತ್ತೆ ಬರೆಯುತ್ತದೆ. ಹೆಚ್ಚಿನ ಲೇಬಲ್ಗಳನ್ನು eth0 ಸೇರಿಸುವುದು ಮಾರ್ಗವನ್ನೂ ಅಲ್ಲ, ಅಧಿಕಾರವನ್ನೂ ಅಲ್ಲ.
ಈಗಷ್ಟೇ ತೆರೆದ ಸಂಪರ್ಕದಿಂದ ಪರಿಶೀಲಿಸಿ
ಇರುವ ಸಂಪರ್ಕವನ್ನು ಮತ್ತೆ ಬಳಸದೆ ಹೊಸ ಕ್ಲೈಂಟ್ ಸಂಪರ್ಕ ತೆರೆಯಿರಿ. ಸಂಪರ್ಕ ಟ್ರ್ಯಾಕಿಂಗ್ ಹರಿವು ಪ್ರಾರಂಭವಾದಾಗ ದಾಖಲಿಸಿದ ಅನುವಾದವನ್ನು ಉಳಿಸಿಕೊಳ್ಳುತ್ತದೆ, ಆದ್ದರಿಂದ ಹಳೆಯ ಅಧಿವೇಶನವು ಹಿಂದಿನ ಮೂಲ ವಿಳಾಸವನ್ನು ಬಳಸುತ್ತಾ ಸರಿಯಾದ ಹೊಸ ನಿಯಮವನ್ನು ಮುರಿದಂತೆ ಕಾಣಿಸಬಹುದು. ಕೌಂಟರ್ ಏರುವುದನ್ನು ನೋಡಿ, ನಂತರ ಅನುವಾದಿತ ಮೂಲವನ್ನು ತಂತಿಯಲ್ಲಿ ಅಥವಾ ದೂರದ ತುದಿಯಲ್ಲಿ ಗಮನಿಸಿ.
ಒಂದು ಇಂಟರ್ಫೇಸ್ ಹಂಚಿಕೊಳ್ಳುವ ಹಲವು ಪೂಲ್ಗಳಿಗೆ, ಪ್ರತಿಯೊಂದಕ್ಕೂ ಸ್ಪಷ್ಟ ಮೂಲ ಹೊಂದಾಣಿಕೆ ಮತ್ತು ತನ್ನದೇ ಅನುವಾದ ವಿಳಾಸ ನೀಡಿ, ಅವುಗಳನ್ನು ಫೈರ್ವಾಲ್ನ ನಿರ್ವಹಿತ ಸಂರಚನೆಯಲ್ಲಿ ಇರಿಸಿ ಮತ್ತು ಯಾವ ಕ್ರಮದಲ್ಲಿ ಮೌಲ್ಯಮಾಪನವಾಗುತ್ತವೆ ಎಂದು ಬರೆದಿಡಿ. ನಂತರ ನೀವು ಪರಿಶೀಲಿಸಿದ್ದನ್ನು ದಾಖಲಿಸಿ: ip route get ನಿಂದ ಸಾಧನ, ಚಲಿಸಿದ ಕೌಂಟರ್, ಮತ್ತು ದೂರದ ಬದಿ ನೋಡಿದ ಮೂಲ. ಆ ದಾಖಲೆ ಲೇಬಲ್ ಗೊಂದಲವನ್ನು ಪುನರಾವರ್ತಿಸದೆ ಮುಂದಿನ ವರದಿಗೆ ಉತ್ತರಿಸುತ್ತದೆ.