WireGuard ಕ್ಲೈಂಟ್‌ನ DNS ಪ್ರಶ್ನೆಯನ್ನು ಬೇರೆ ರಿಸಾಲ್ವರ್‌ಗೆ ಕಳುಹಿಸುವುದು ಒಂದು ನಿಯಮದಂತೆ ಕಾಣುತ್ತದೆ ಮತ್ತು ಮೂರು ನಿರ್ಧಾರಗಳಂತೆ ವರ್ತಿಸುತ್ತದೆ. ಗಮ್ಯವನ್ನು ಮರುಬರೆಯಬೇಕು, ಪ್ಯಾಕೆಟ್ ಅನ್ನು ಮುಂದಕ್ಕೆ ಕಳುಹಿಸಬೇಕು, ಮತ್ತು ಉತ್ತರವು ಗೇಟ್‌ವೇ ರಚಿಸಿದ ಅನುವಾದ ಸ್ಥಿತಿಯ ಮೂಲಕ ಹಿಂತಿರುಗುವ ದಾರಿಯನ್ನು ಕಂಡುಕೊಳ್ಳಬೇಕು. ಮೂರನೆಯದನ್ನು ಬಿಟ್ಟರೆ ಪ್ರಶ್ನೆ ಸ್ವಚ್ಛವಾಗಿ ಹೊರಟುಹೋಗುತ್ತದೆ, ಆದರೆ ಕ್ಲೈಂಟ್ ಶಾಶ್ವತವಾಗಿ ಕಾಯುತ್ತಿರುತ್ತದೆ.

10.77.0.0/24 ನಲ್ಲಿ ಅಧಿಕೃತ ಕ್ಲೈಂಟ್‌ಗಳು wg0 ಮೂಲಕ ಬಂದು, ಜಾಹೀರಾತು ಮಾಡಿದ ವಿಳಾಸ 10.77.0.1 ಅನ್ನು ಕೇಳಿ, 203.0.113.53 ನಲ್ಲಿ ರಿಸಾಲ್ವರ್ ಅಗತ್ಯವಿದೆ ಎಂಬ ಉದಾಹರಣೆ ತೆಗೆದುಕೊಳ್ಳಿ. ಮೇಲ್ಗಣ ವಿಳಾಸವು ದಾಖಲೀಕರಣದ ಪ್ಲೇಸ್‌ಹೋಲ್ಡರ್, ಕೆಲಸ ಮಾಡುವ ಸೇವೆಯಲ್ಲ.

ಪ್ರಶ್ನೆಯನ್ನು ಮರುನಿರ್ದೇಶಿಸುವುದು ಅದರ ಗಮ್ಯವನ್ನು ಮಾತ್ರ ಬದಲಿಸುತ್ತದೆ

PREROUTING ನಲ್ಲಿ ಗಮ್ಯ-NAT ನಿಯಮವು ರೂಟಿಂಗ್ ನಿರ್ಧಾರ ತೆಗೆದುಕೊಳ್ಳುವ ಮೊದಲೇ ವಿಳಾಸವನ್ನು ಮರುಬರೆಯುತ್ತದೆ, ಆದ್ದರಿಂದ ಪ್ಯಾಕೆಟ್ ನಂತರ ಹಳೆಯದರ ಬದಲು ಹೊಸ ಗಮ್ಯದ ಕಡೆಗೆ ರೂಟ್ ಆಗುತ್ತದೆ. ಕ್ಲೈಂಟ್‌ನ ಮೂಲ ವಿಳಾಸವು ಆ ಕ್ರಿಯೆಯಿಂದ ಮುಟ್ಟದೆ ಉಳಿಯುತ್ತದೆ. ಆದ್ದರಿಂದ ಪೂರ್ಣವಾಗಿ ಕಾಣುವ ನಿಯಮವೂ ಮೌನವನ್ನು ಉಂಟುಮಾಡಬಹುದು: ವಿನಂತಿ ಈಗ ಕ್ಲೈಂಟ್‌ನ ಖಾಸಗಿ ಶ್ರೇಣಿಯ ಬಗ್ಗೆ ಎಂದೂ ಕೇಳದ ರಿಸಾಲ್ವರ್‌ಗೆ ಹೋಗುತ್ತದೆ. ಗೇಟ್‌ವೇ ಒಂದು ಕ್ಷೇತ್ರವನ್ನು ಅನುವಾದಿಸಿ ಎರಡನೆಯ ಸಮಸ್ಯೆಯನ್ನು ಬಳುವಳಿಯಾಗಿ ಪಡೆದುಕೊಂಡಿತು.

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

ಕೆಳಗಿನ ನಿಯಮಗಳು ಒಂದು ಒಳಬರುವ ಇಂಟರ್ಫೇಸ್, ಒಂದು ಕ್ಲೈಂಟ್ ಶ್ರೇಣಿ ಮತ್ತು ಒಂದು ಮೂಲ ಗಮ್ಯ ವಿಳಾಸವನ್ನು ಆಯ್ಕೆ ಮಾಡುತ್ತವೆ. ಗೇಟ್‌ವೇಯಲ್ಲಿ ಬೇರೆ ಯಾವುದಕ್ಕೂ ಪರಿಣಾಮವಾಗುವುದಿಲ್ಲ, ಮತ್ತು ಗೇಟ್‌ವೇಯದೇ ಪ್ರಶ್ನೆ ಸ್ವಲ್ಪವೂ ಹೊಂದಿಕೆಯಾಗುವುದಿಲ್ಲ.

sysctl -w net.ipv4.ip_forward=1
iptables -t nat -A PREROUTING -i wg0 -s 10.77.0.0/24 -d 10.77.0.1 -p udp --dport 53 -j DNAT --to-destination 203.0.113.53:53
iptables -t nat -A PREROUTING -i wg0 -s 10.77.0.0/24 -d 10.77.0.1 -p tcp --dport 53 -j DNAT --to-destination 203.0.113.53:53

ಉತ್ತರದ ಮಾರ್ಗವು ಪ್ರತ್ಯೇಕ ನಿರ್ಧಾರ

ಎರಡು ವ್ಯವಸ್ಥೆಗಳು ಉತ್ತರ ಹಿಂತಿರುಗಲು ಅವಕಾಶ ನೀಡುತ್ತವೆ, ಮತ್ತು ಒಂದನ್ನು ಬೇಗ ಆಯ್ಕೆ ಮಾಡಿದರೆ ಒಂದು ಡೀಬಗ್ ಅಧಿವೇಶನ ಉಳಿಯುತ್ತದೆ. ಒಂದೋ ಮೇಲ್ಗಣ ರಿಸಾಲ್ವರ್‌ಗೆ ಈ ಗೇಟ್‌ವೇ ಮೂಲಕ 10.77.0.0/24 ಗೆ ಹಿಂತಿರುಗುವ ರೂಟ್ ಇರುತ್ತದೆ, ಅಥವಾ ಗೇಟ್‌ವೇ ನಿರ್ಗಮನದಲ್ಲಿ ಮೂಲವನ್ನು ಅನುವಾದಿಸುತ್ತದೆ, ಆಗ ಉತ್ತರವು ಮೇಲ್ಗಣಕ್ಕೆ ಈಗಾಗಲೇ ತಿಳಿದಿರುವ ವಿಳಾಸಕ್ಕೆ ತಲುಪುತ್ತದೆ. ಎರಡೂ ಕೆಲಸ ಮಾಡುತ್ತವೆ; ಮೇಲ್ಗಣದ ಮೇಲಿನ ನಿಮ್ಮ ನಿಯಂತ್ರಣಕ್ಕೆ ಒಂದೇ ಹೊಂದುತ್ತದೆ.

ರೂಟಿಂಗ್ ಮೊದಲ ಪ್ರಯತ್ನಕ್ಕೆ ಅರ್ಹವಾಗಿದೆ, ಏಕೆಂದರೆ ಅದು ಕ್ಲೈಂಟ್‌ನ ವಿಳಾಸವನ್ನು ರಿಸಾಲ್ವರ್‌ಗೆ ಗೋಚರವಾಗಿ ಇರಿಸುತ್ತದೆ ಮತ್ತು ಎರಡನೆಯ ಅನುವಾದ ಪದರವನ್ನು ತಪ್ಪಿಸುತ್ತದೆ. ಮೇಲ್ಗಣವು ನಿಮ್ಮ ನಿಯಂತ್ರಣದ ಹೊರಗಿದ್ದರೆ, ನಿರ್ದಿಷ್ಟ ನಿರ್ಗಮನ ಇಂಟರ್ಫೇಸ್‌ನಲ್ಲಿ ಮೂಲದ ಅನುವಾದವೇ ಪ್ರಾಯೋಗಿಕ ಆಯ್ಕೆ.

ಆ ಅನುವಾದವನ್ನು ಮರುನಿರ್ದೇಶನದಷ್ಟೇ ಬಿಗಿಯಾಗಿ ಸೀಮಿತಗೊಳಿಸಿ, ಇಲ್ಲದಿದ್ದರೆ ನಿಯಮವು ಅದಕ್ಕೆ ಆಕಸ್ಮಿಕವಾಗಿ ಹೊಂದುವ ಯಾವುದಕ್ಕೂ ಸಾಮಾನ್ಯ ಉದ್ದೇಶದ NAT ಆಗುತ್ತದೆ:

iptables -t nat -A POSTROUTING -s 10.77.0.0/24 -d 203.0.113.53 -o eth0 -p udp --dport 53 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 10.77.0.0/24 -d 203.0.113.53 -o eth0 -p tcp --dport 53 -j MASQUERADE

ಸಂಪರ್ಕ ಟ್ರ್ಯಾಕಿಂಗ್ ಮ್ಯಾಪಿಂಗ್ ಅನ್ನು ಜೋಡಿಯಾಗಿ ಇರಿಸುತ್ತದೆ, ಆದ್ದರಿಂದ ಹಿಂತಿರುಗುವಾಗ ಉತ್ತರವು ಕ್ಲೈಂಟ್‌ನ ಮೂಲ ಟ್ಯೂಪಲ್‌ಗೆ ಮರುಬರೆಯಲ್ಪಡುತ್ತದೆ. ನಿರ್ಗಮನ ನಿಯಮವಿಲ್ಲದಿದ್ದರೆ, ರಿಸಾಲ್ವರ್ ತನ್ನ ಉತ್ತರವನ್ನು ತಲುಪಲಾಗದ ಖಾಸಗಿ ವಿಳಾಸಕ್ಕೆ ಕಳುಹಿಸುತ್ತದೆ, ಮತ್ತು ಕ್ಲೈಂಟ್ ದೋಷದ ಬದಲು ಸಮಯ ಮೀರುವಿಕೆಯನ್ನು ಕಾಣುತ್ತದೆ.

ಕೆಲಸವು ಕಾಣುವುದಕ್ಕಿಂತ ಸಂಕುಚಿತವಾಗಿ ನಿಯಮಗಳನ್ನು ಬರೆಯಿರಿ

ಮುಂದಕ್ಕೆ ಕಳುಹಿಸುವ ಅನುಮತಿ ಅದೇ ವ್ಯಾಪ್ತಿಗೆ ಸೇರಿದೆ. ಯಂತ್ರದಲ್ಲಿನ ಪ್ರತಿ DNAT ಸಂಪರ್ಕವನ್ನೂ ಸ್ವೀಕರಿಸುವ ಬದಲು ಕ್ಲೈಂಟ್‌ನಿಂದ ರಿಸಾಲ್ವರ್‌ಗೆ ಹರಿವು ಮತ್ತು conntrack ಈಗಾಗಲೇ ಗುರುತಿಸುವ ಹಿಂತಿರುಗುವ ಸಂಚಾರಕ್ಕೆ ಅನುಮತಿ ನೀಡಿ. ಸರ್ವವ್ಯಾಪಿ ಸ್ವೀಕೃತಿಯು DNS ಗೆ ಸಂಬಂಧವಿಲ್ಲದ ಪೋರ್ಟ್ ಮುಂದಕ್ಕೆ ಕಳುಹಿಸುವಿಕೆಗಳಿಗೂ ಅಧಿಕಾರ ನೀಡುತ್ತದೆ.

ಗೇಟ್‌ವೇಯ ಸ್ವಂತ ರಿಸಾಲ್ವರ್ ಬೇರೆ ಕೋಡ್ ಮಾರ್ಗ. ಸ್ಥಳೀಯವಾಗಿ ಹೊರಡಿಸಿದ ಪ್ರಶ್ನೆ OUTPUT ಮೂಲಕ ಹೋಗುತ್ತದೆ, ಆದ್ದರಿಂದ ಗೇಟ್‌ವೇ ಶೆಲ್‌ನಿಂದ ಪರೀಕ್ಷಿಸುವುದು PREROUTING ನಿಯಮವನ್ನೂ ಅಲ್ಲ, ಮುಂದಕ್ಕೆ ಕಳುಹಿಸುವ ನೀತಿಯನ್ನೂ ಅಲ್ಲ ಅಭ್ಯಾಸ ಮಾಡುವುದಿಲ್ಲ. ಆದ್ದರಿಂದ ಸ್ಥಳೀಯ ಪರೀಕ್ಷೆ ಉತ್ತೀರ್ಣವಾಗಬಹುದು, ಆದರೆ ಪ್ರತಿ ಕ್ಲೈಂಟ್ ವಿಫಲವಾಗುತ್ತದೆ, ಮತ್ತು ವಿರುದ್ಧವೂ ಅಷ್ಟೇ ಸಾಮಾನ್ಯ.

ಇಲ್ಲಿ ಯಾವುದೂ ಪೋರ್ಟ್ 443 ನಲ್ಲಿ HTTPS ಮೇಲಿನ DNS ಅನ್ನು ಅಥವಾ ಪೋರ್ಟ್ 853 ನಲ್ಲಿ TLS ಮೇಲಿನ DNS ಅನ್ನು ಒಳಗೊಳ್ಳುವುದಿಲ್ಲ, ಮತ್ತು IPv6 ಅನ್ನೂ ಒಳಗೊಳ್ಳುವುದಿಲ್ಲ. IPv6 ರಿಸಾಲ್ವರ್ ಕಾನ್ಫಿಗರ್ ಆದ ಕ್ಲೈಂಟ್ ಇಡೀ ವ್ಯವಸ್ಥೆಯನ್ನು ಸಂತೋಷದಿಂದ ನಿರ್ಲಕ್ಷಿಸುತ್ತದೆ.

ಹೊಸ ಪ್ರಶ್ನೆ ಏನನ್ನು ಸಾಬೀತುಪಡಿಸುತ್ತದೆ

ಸಂಪರ್ಕ ಟ್ರ್ಯಾಕಿಂಗ್ ಹಿಂದಿನ ಮ್ಯಾಪಿಂಗ್‌ಗಳನ್ನು ನೆನಪಿಡುತ್ತದೆ, ಆದ್ದರಿಂದ ನಿಯಮ ಬದಲಾವಣೆಗೆ ಮೊದಲು ಕಳುಹಿಸಿದ ಪ್ರಶ್ನೆಗೆ ಹಳೆಯ ಸ್ಥಿತಿಯಿಂದ ಉತ್ತರ ಸಿಗಬಹುದು ಮತ್ತು ಹೊಸ ನಿಯಮ ಮುರಿದಂತೆ ಕಾಣಬಹುದು. ಹೊಸ ಮೂಲ ಪೋರ್ಟ್‌ನಿಂದ ಪ್ರಾರಂಭಿಸಿ, ಮತ್ತು ಕ್ಲೈಂಟ್ ಉತ್ತರಗಳನ್ನು ಕ್ಯಾಶ್ ಮಾಡುವಲ್ಲಿ ಹೊಸ ಹೆಸರಿನಿಂದ.

dig @10.77.0.1 example.com A +short
conntrack -L -p udp --dport 53 | head

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

ಏನನ್ನೂ ಮರುನಿರ್ದೇಶಿಸುವ ಮೊದಲು ನೀವು ನಿರೀಕ್ಷಿಸುವ ಹೆಸರುಗಳನ್ನು ರಿಸಾಲ್ವರ್ ತಿಳಿದಿದೆಯೇ ಎಂದು ಖಚಿತಪಡಿಸಿ. ಸಾರ್ವಜನಿಕ ಹೆಸರುಗಳಿಗೆ ಉತ್ತರಿಸುವ ಆದರೆ ನಿಮ್ಮ ಖಾಸಗಿ ವಲಯಕ್ಕೆ ಉತ್ತರಿಸದ ಬದಲಿ ಕೆಲಸ ಮಾಡುವ ಹುಡುಕಾಟವನ್ನು ಮುರಿದ ಸುರಂಗದಂತೆ ಕಾಣುವ NXDOMAIN ಆಗಿ ಪರಿವರ್ತಿಸುತ್ತದೆ. ಕ್ಲೈಂಟ್ ಮಾರ್ಗ ಒಳಗೊಳ್ಳುವ ಮೊದಲು ಗೇಟ್‌ವೇಯಿಂದ ನೇರವಾಗಿ ರಿಸಾಲ್ವರ್ ಪರೀಕ್ಷಿಸಿ. ಮತ್ತು iptables ವಿಸ್ತರಣೆಗಳ ಉಲ್ಲೇಖ ಈ ನಿಯಮಗಳು ಅವಲಂಬಿಸಿರುವ DNAT ಮತ್ತು masquerade ಅರ್ಥಶಾಸ್ತ್ರವನ್ನು ದಾಖಲಿಸುತ್ತದೆ.

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