WireGuard PersistentKeepalive: NAT ಮ್ಯಾಪಿಂಗ್ ಜೀವಂತವಾಗಿರಿಸಿ
ಪೀರ್ ಸಂಚಾರ ಕಳುಹಿಸಿದ ತಕ್ಷಣ ಮಾತ್ರ ಹಿಮ್ಮುಖ ಸಂಪರ್ಕ ಕೆಲಸ ಮಾಡಿದರೆ, ಮ್ಯಾಪಿಂಗ್ ಅವಧಿ ಮುಗಿಯುತ್ತಿದೆ. ರೌಟರ್ನ ಹಿಂದೆ keepalive ಹೊಂದಿಸಿ, ನಂತರ ನಿಜವಾದ ಟೈಮೌಟ್ ಓದಿ.
ಮನೆಯ ಪೆಟ್ಟಿಗೆ ಸುರಂಗವನ್ನು ತೆರೆದು ಯಾವುದೇ ತೊಂದರೆಯಿಲ್ಲದೆ ಕ್ಲೌಡ್ ಸರ್ವರ್ ತಲುಪುತ್ತದೆ. ಮನೆಯ ಪೆಟ್ಟಿಗೆ ಕೊನೆಯದಾಗಿ ಏನಾದರೂ ಕಳುಹಿಸಿದ ನಂತರ ಕ್ಲೌಡ್ ಸರ್ವರ್ ಒಂದು ಅಥವಾ ಎರಡು ನಿಮಿಷಗಳ ಕಾಲ ಮನೆಯ ಅಪ್ಲಿಕೇಶನ್ ತಲುಪಬಲ್ಲದು, ನಂತರ ನಿಲ್ಲುತ್ತದೆ. WireGuard ಲಾಗ್ನಲ್ಲಿ ಏನೂ ಕಾಣಿಸುವುದಿಲ್ಲ, ಯಾವುದೇ ಹ್ಯಾಂಡ್ಶೇಕ್ ದೋಷ ವರದಿಯಾಗುವುದಿಲ್ಲ, ಮತ್ತು ಸುರಂಗವನ್ನು ಮರುಪ್ರಾರಂಭಿಸಿದರೆ ಸ್ವಲ್ಪ ಸಮಯ ಸರಿಹೋಗುತ್ತದೆ. ಆ ಮಾದರಿಯು ಅವಧಿ ಮುಗಿಯುತ್ತಿರುವ ಮ್ಯಾಪಿಂಗ್, ಮುರಿದ ಸುರಂಗವಲ್ಲ, ಮತ್ತು ಕೆಳಗಿನ ಕೈಪಿಡಿ ಏನನ್ನೂ ಬದಲಿಸುವ ಮೊದಲು ಅದನ್ನು ದೃಢೀಕರಿಸುತ್ತದೆ.
ಮಾದರಿಯು ನಿಷ್ಕ್ರಿಯತೆಯಲ್ಲಿ ಅವಧಿ ಮುಗಿಯುವಿಕೆ ಎಂದು ದೃಢೀಕರಿಸಿ
ಪ್ರತ್ಯೇಕಿಸುವ ವಿವರವೆಂದರೆ ಸಮಯ. ಮನೆಯ ಪೀರ್ ಸಂಚಾರ ಕಳುಹಿಸಿದ ತಕ್ಷಣ ಹಿಮ್ಮುಖ ಸಂಪರ್ಕ ಕೆಲಸ ಮಾಡಿ, ಶಾಂತ ಮಧ್ಯಂತರದ ನಂತರ ವಿಫಲವಾದರೆ, ಮಾರ್ಗ ಸರಿಯಾಗಿದೆ ಮತ್ತು ಮಧ್ಯದ ಸ್ಥಿತಿ ಅಲ್ಲ. ಅದು ಎಂದಿಗೂ ಕೆಲಸ ಮಾಡದಿದ್ದರೆ, ಸಂಚಾರದ ನಂತರವೂ ಕೂಡ, ಇದು ತಪ್ಪಾದ ರೋಗನಿರ್ಣಯ.
sudo wg show wg0 latest-handshakes
sudo wg show wg0 endpoints
sudo wg show wg0 transfer
ಮನೆಯ ಪೀರ್ ಏನಾದರೂ ಕಳುಹಿಸಿದ ತಕ್ಷಣ ಮೊದಲ ಎರಡನ್ನು ಚಲಾಯಿಸಿ, ಐದು ನಿಮಿಷ ಕಾಯಿರಿ ಮತ್ತು ಮತ್ತೆ ಚಲಾಯಿಸಿ. ಹೊಸ ಎಂಡ್ಪಾಯಿಂಟ್ ಇಲ್ಲದೆ ವೇಳಾಪಟ್ಟಿಯಂತೆ ನವೀಕರಣವಾಗುವ ಹ್ಯಾಂಡ್ಶೇಕ್ ಟೈಮ್ಸ್ಟ್ಯಾಂಪ್ ಸುರಂಗ ಜೀವಂತವಾಗಿದೆ ಎಂದು ಹೇಳುತ್ತದೆ. ಬದಲಾದದ್ದು ಹೊರಗಿನಿಂದ ಬೇಡಿಕೆಯಿಲ್ಲದ ಪ್ಯಾಕೆಟ್ಗಳು ಬರುವ ಸಾಮರ್ಥ್ಯ, ಇದು ಸುರಂಗದ್ದಲ್ಲ, ಮಾರ್ಗದ ಗುಣಲಕ್ಷಣ.
ನಂತರ ಹಿಮ್ಮುಖ ಪ್ರಯತ್ನ ಮಾಡಿ ಮತ್ತು ವರ್ಗಾವಣೆ ಕೌಂಟರ್ಗಳನ್ನು ಗಮನಿಸಿ. ಕ್ಲೌಡ್ ಬದಿ ಬೈಟ್ಗಳನ್ನು ಕಳುಹಿಸಿ ಮನೆಯ ಬದಿ ಯಾವುದನ್ನೂ ಸ್ವೀಕರಿಸದಿದ್ದರೆ, ಪ್ಯಾಕೆಟ್ ಕ್ಲೌಡ್ ಬಿಟ್ಟು ದಾರಿಯಲ್ಲಿ ಸ್ಥಿತಿ ಇಟ್ಟುಕೊಳ್ಳುವ ಸಾಧನದಲ್ಲಿ ಸತ್ತಿದೆ. ನೀವು ಹುಡುಕುತ್ತಿರುವ ಸಹಿ ಅದೇ. ಎರಡೂ ಕೌಂಟರ್ಗಳು ಚಲಿಸಿದರೆ, ಸುರಂಗ ಪ್ಯಾಕೆಟ್ ತಲುಪಿಸಿದೆ ಮತ್ತು ಶಂಕಿತ ಅಪ್ಲಿಕೇಶನ್.
keepalive ಅನ್ನು ರೌಟರ್ನ ಹಿಂದಿನ ಪೀರ್ನಲ್ಲಿ ಇರಿಸಿ
ಶಾಶ್ವತ keepalive ಗಳು ವೇಳಾಪಟ್ಟಿಯಂತೆ ಸಣ್ಣ ದೃಢೀಕೃತ ಪ್ಯಾಕೆಟ್ ಕಳುಹಿಸುವ ಮೂಲಕ NAT ಮ್ಯಾಪಿಂಗ್ ಮತ್ತು ಯಾವುದೇ ಫೈರ್ವಾಲ್ ಸ್ಥಿತಿಯನ್ನು ಜೀವಂತವಾಗಿರಿಸುತ್ತವೆ. ಸೆಟ್ಟಿಂಗ್ ರೌಟರ್ನ ಹಿಂದಿನ ಯಂತ್ರದ, ದೂರದ ಪೀರ್ನ ಒಳಪ್ರವೇಶದಲ್ಲಿರಬೇಕು, ಏಕೆಂದರೆ ಅದರ ಹೊರಹೋಗುವ ಪ್ಯಾಕೆಟ್ ಸ್ಥಿತಿಯನ್ನು ಸೃಷ್ಟಿಸುವ ಬದಿ ಅದೇ.
[Peer]
PublicKey = <cloud peer public key>
AllowedIPs = 10.71.0.1/32
PersistentKeepalive = 25
ಅದನ್ನು ಇರುವ ಪೀರ್ ವಿಭಾಗಕ್ಕೆ ವಿಲೀನ ಮಾಡಿ. ಅದೇ ಸಾರ್ವಜನಿಕ ಕೀಯೊಂದಿಗೆ ಎರಡನೇ ಬ್ಲಾಕ್ ಸೇರಿಸುವುದು ಆಯ್ಕೆಗಳನ್ನು ಸೇರಿಸುವ ಸರಿಯಾದ ದಾರಿಯಲ್ಲ, ಮತ್ತು wg-quick ಅವುಗಳನ್ನು ನಿಮಗಾಗಿ ವಿಲೀನ ಮಾಡುವುದಿಲ್ಲ. ದಾಖಲಾಗಿರುವ 25 ಸೆಕೆಂಡುಗಳು ಸಾಮಾನ್ಯ UDP ಟೈಮೌಟ್ಗಳ ಕೆಳಗೆ ಇರಲು ಆಯ್ಕೆಮಾಡಿದ ಉದಾಹರಣೆ, ವಿಶೇಷ ಅರ್ಥವಿರುವ ಮೌಲ್ಯವಲ್ಲ.
ಅದೇ ಸೂಚನೆಯನ್ನು ಕ್ಲೌಡ್ ಬದಿಯಲ್ಲಿ ಇಡುವುದು ಈ ಸಮಸ್ಯೆಗೆ ಸಹಾಯ ಮಾಡುವುದಿಲ್ಲ. ಆ ಪೀರ್ನ ಪ್ಯಾಕೆಟ್ಗಳು ಈಗಾಗಲೇ ಸಾರ್ವಜನಿಕ ವಿಳಾಸದಿಂದ ಬರುತ್ತಿವೆ, ಆದ್ದರಿಂದ ಮುಖ್ಯ ದಿಕ್ಕಿನಲ್ಲಿ ಉಳಿಸಿಕೊಳ್ಳಲು ಮ್ಯಾಪಿಂಗ್ ಇಲ್ಲ. ಇದು ಸಂಚಾರ ಸೇರಿಸುತ್ತದೆ ಮತ್ತು ಏನನ್ನೂ ಬದಲಿಸುವುದಿಲ್ಲ.
ಮಧ್ಯಂತರ ಊಹಿಸುವ ಬದಲು ಟೈಮರ್ಗಳನ್ನು ಓದಿ
keepalive ಗಳು ಕೆಲಸ ಮಾಡುತ್ತವೆ ಏಕೆಂದರೆ ಸ್ಥಿತಿ ಅವಧಿ ಮುಗಿಯುವುದಕ್ಕಿಂತ ಹೆಚ್ಚಾಗಿ ಬರುತ್ತವೆ. ಇದು ಟೈಮೌಟ್ ಅನ್ನು ನಿಮಗೆ ನಿಜವಾಗಿ ಬೇಕಾದ ಸಂಖ್ಯೆಯಾಗಿಸುತ್ತದೆ, ಮತ್ತು Linux ನಲ್ಲಿ ಅನುವಾದ ಮಾಡುವ ಸಾಧನದಲ್ಲಿ ಅದನ್ನು ಓದಬಹುದು:
sysctl net.netfilter.nf_conntrack_udp_timeout
sysctl net.netfilter.nf_conntrack_udp_timeout_stream
sudo conntrack -L -p udp --dport 51820
ಮೊದಲ ಮೌಲ್ಯವು ಒಂದೇ ದಿಕ್ಕಿನಲ್ಲಿ ಮಾತ್ರ ಕಂಡ UDP ಹರಿವಿನ ಟೈಮೌಟ್, ಮತ್ತು ಎರಡನೆಯದು ಪ್ರತಿಕ್ರಿಯೆಗಳು ಗಮನಿಸಿದ ನಂತರ ಅನ್ವಯಿಸುತ್ತದೆ. ಎರಡೂ ಸಾಮಾನ್ಯವಾಗಿ ಚಿಕ್ಕವು, ಮತ್ತು ಶಾಂತವಾದ ಮ್ಯಾಪಿಂಗ್ ನಿಮ್ಮ ಹರಿವಿಗೆ ಅನ್ವಯವಾಗುವುದನ್ನು ಅನುಸರಿಸುತ್ತದೆ.
ಆ ಸಂಖ್ಯೆಯನ್ನು ನಿಮ್ಮ ಮಧ್ಯಂತರದೊಂದಿಗೆ ಹೋಲಿಸಿ. 30 ಸೆಕೆಂಡುಗಳ ಟೈಮೌಟ್ ಅಡಿಯಲ್ಲಿ 25 ಸೆಕೆಂಡುಗಳ keepalive ಕೆಲಸ ಮಾಡುತ್ತದೆ; ಅದೇ keepalive 15 ಸೆಕೆಂಡುಗಳ ಟೈಮೌಟ್ ಅಡಿಯಲ್ಲಿ ಕೆಲಸ ಮಾಡುವುದಿಲ್ಲ. ಎಷ್ಟೇ ಬಾರಿ ಮರುಪ್ರಯತ್ನಿಸಿದರೂ ಆ ಲೆಕ್ಕ ಬದಲಾಗುವುದಿಲ್ಲ. ಕೆಲವು ಗ್ರಾಹಕ ರೌಟರ್ಗಳು ಮತ್ತು ಮೊಬೈಲ್ ನಿರ್ವಾಹಕರು Linux ಡೀಫಾಲ್ಟ್ಗಿಂತ ಬಹಳ ಚಿಕ್ಕ ಮೌಲ್ಯಗಳನ್ನು ಬಳಸುತ್ತಾರೆ, ಆದ್ದರಿಂದ ಒಂದು ನೆಟ್ವರ್ಕ್ನಲ್ಲಿ ಕೆಲಸ ಮಾಡುವ ಸಂರಚನೆ ಇನ್ನೊಂದರಲ್ಲಿ ವಿಫಲವಾಗುತ್ತದೆ.
| Observation | What it means | Reasonable response |
|---|---|---|
| Works after traffic, dies when idle | Mapping or firewall state expiring | Lower the keepalive interval |
| Never works, even immediately | No return route, listener or firewall | Stop tuning keepalive |
| Works for hours, then dies once | Carrier-side translation or address change | Check the endpoint and logs together |
ಶ್ರೋತ ಮತ್ತು ಫೈರ್ವಾಲ್ ಅನ್ನು ಪ್ರತ್ಯೇಕವಾಗಿ ಪರಿಶೀಲಿಸಿ
ಜೀವಂತ ಮ್ಯಾಪಿಂಗ್ ಅಗತ್ಯ ಮತ್ತು ಸಾಕಲ್ಲ. ಮನೆಯ ಪೆಟ್ಟಿಗೆಯ ಅಪ್ಲಿಕೇಶನ್ ಸರಿಯಾದ ವಿಳಾಸದಲ್ಲಿ ಕೇಳಬೇಕು, ಮತ್ತು ಹೋಸ್ಟ್ ಫೈರ್ವಾಲ್ ಡೀಕ್ರಿಪ್ಟ್ ಆದ ನಂತರ ಪ್ಯಾಕೆಟ್ಗೆ ಅನುಮತಿ ನೀಡಬೇಕು.
sudo ss -lntup | grep 8080
sudo wg show wg0 allowed-ips
curl -sS -m 5 http://10.71.0.2:8080/health
ಸಾಕೆಟ್ ಸುರಂಗದ ವಿಳಾಸಕ್ಕೆ ಅಲ್ಲದೆ ಭೌತಿಕ ಇಂಟರ್ಫೇಸ್ ವಿಳಾಸಕ್ಕೆ ಮಾತ್ರ ಬದ್ಧವಾಗಿದ್ದರೆ, ಸುರಂಗದಲ್ಲಿ ಬರುವ ಪ್ಯಾಕೆಟ್ಗಳು ಫೈರ್ವಾಲ್ ಕೇಳುವ ಮೊದಲೇ ಬಿಡಲ್ಪಡುತ್ತವೆ. ಈ ವೈಫಲ್ಯ ಕ್ಲೌಡ್ ಬದಿಯಿಂದ ಮ್ಯಾಪಿಂಗ್ ಸಮಸ್ಯೆಯಂತೆಯೇ ಕಾಣುತ್ತದೆ, ಮತ್ತು ಪ್ರತಿ keepalive ಹೊಂದಾಣಿಕೆಯನ್ನೂ ತಡೆದುಕೊಳ್ಳುತ್ತದೆ.
ಅನುಮತಿಸಿದ ಪಟ್ಟಿಯ ಪರಿಶೀಲನೆ ಇನ್ನೊಂದು ದಿಕ್ಕಿನಲ್ಲೂ ಸಮಾನ ಮುಖ್ಯ. ಕ್ಲೌಡ್ ಪೀರ್ ಉತ್ತರಿಸಬೇಕಾದರೆ ಮನೆಯ ಸುರಂಗ ವಿಳಾಸವನ್ನು ಮೂಲವಾಗಿ ಅನುಮತಿಸಬೇಕು, ಮತ್ತು ಮನೆಯ ಪೀರ್ ಕ್ಲೌಡ್ ವಿಳಾಸವನ್ನು ಗಮ್ಯವಾಗಿ ಅನುಮತಿಸಬೇಕು. keepalive ಪ್ಯಾಕೆಟ್ಗಳು ದೃಢೀಕೃತ ಸಂಚಾರ ಮತ್ತು ಅದೇ ನಿಯಮಗಳನ್ನು ಅನ್ವಯಿಸುತ್ತವೆ, ಆದ್ದರಿಂದ ಕೆಲಸ ಮಾಡುವಂತೆ ಕಾಣುವ keepalive ಕೆಲಸ ಮಾಡದ ಅಪ್ಲಿಕೇಶನ್ನೊಂದಿಗೆ ಸಹಬಾಳ್ವೆ ಮಾಡಬಹುದು.
ಬದಲಾವಣೆಯನ್ನು ಹರಡಿಸಿ ಮತ್ತು ಅದರ ಮಿತಿಗಳನ್ನು ತಿಳಿಯಿರಿ
ಸೆಟ್ಟಿಂಗ್ ಅನ್ವಯಿಸಿ, ಅದು ನಿಮ್ಮ ನವೀಕರಣ ವಿಧಾನವಾದರೆ ಇಂಟರ್ಫೇಸ್ ಮರುಪ್ರಾರಂಭಿಸಿ, ನಂತರ ತಕ್ಷಣದ ಪರೀಕ್ಷೆಯ ಬದಲು ನಿಷ್ಕ್ರಿಯತಾ ಪರೀಕ್ಷೆಯನ್ನು ಪುನರಾವರ್ತಿಸಿ. ಮೊದಲು ಓದಿದ ಟೈಮೌಟ್ಗಿಂತ ಹೆಚ್ಚು ಕಾಯಿರಿ, ಹಿಮ್ಮುಖ ವಿನಂತಿ ಮಾಡಿ ಮತ್ತು ಎರಡೂ ತುದಿಗಳಲ್ಲಿ ಕೌಂಟರ್ಗಳು ಚಲಿಸಿದ್ದನ್ನು ದೃಢೀಕರಿಸಿ.
ಮಧ್ಯಂತರ ಮತ್ತು ಅಳೆದ ಟೈಮೌಟ್ ಅನ್ನು ಅದರ ಪಕ್ಕದಲ್ಲಿ ದಾಖಲಿಸಿ. ಭವಿಷ್ಯದಲ್ಲಿ ರೌಟರ್ ಫರ್ಮ್ವೇರ್ ಬದಲಾದರೆ, ಅಥವಾ ಮೊಬೈಲ್ ಸಂಪರ್ಕಕ್ಕೆ ಹೋದರೆ, ಟೈಮೌಟ್ ಬದಲಾಗಬಹುದು. ಟಿಪ್ಪಣಿಯೇ ಮೌಲ್ಯವನ್ನು ನಕಲಿಸುವ ಬದಲು ಮತ್ತೆ ಪಡೆಯಲು ಬಿಡುತ್ತದೆ. ಒಂದೇ ಸಾಲಿನಲ್ಲಿ ಎರಡು ಸಂಖ್ಯೆಗಳು ನಂತರ ಪೂರ್ಣ ತನಿಖೆಯನ್ನು ಉಳಿಸುತ್ತವೆ.
ಶಾಶ್ವತ keepalive ಗಳು ಸ್ಥಿತಿಯನ್ನು ರಕ್ಷಿಸುತ್ತವೆ. ಅವು ಪೋರ್ಟ್ ತೆರೆಯುವುದಿಲ್ಲ, ಅನುಮತಿಸಿದ ಪಟ್ಟಿಗೆ ನಮೂದು ಸೇರಿಸುವುದಿಲ್ಲ, ಮತ್ತು ಶ್ರೋತ ಕಾಣಿಸಿಕೊಳ್ಳುವಂತೆ ಮಾಡುವುದಿಲ್ಲ. ಹಿಮ್ಮುಖ ಸಂಪರ್ಕ ಸಂಪೂರ್ಣವಾಗಿ ಕೆಲಸ ಮಾಡದಿದ್ದಾಗ, ದೋಷ ಆ ಮೂರರಲ್ಲಿ ಒಂದು, ಮತ್ತು WireGuard ತ್ವರಿತ ಪ್ರಾರಂಭ ಅದೇ ಸಂಕುಚಿತ ಪದಗಳಲ್ಲಿ keepalive ಸೆಟ್ಟಿಂಗ್ ವಿವರಿಸುತ್ತದೆ.