mDNS WireGuard ಮೇಲೆ: ಸಹವರ್ತಿ ಉತ್ತರಿಸುವ ಮೊದಲು ಮೂರು ದ್ವಾರಗಳು
Avahi ಗೆ ಸೂಕ್ತ ಸಂಪರ್ಕಸಾಧನ, ಗುಂಪಿಗೆ ಮಾರ್ಗ ಮತ್ತು ಗಮ್ಯಸ್ಥಾನವನ್ನು ಹೊಂದಿರುವ ಸಹವರ್ತಿ ಬೇಕು. ಮೂರು ದ್ವಾರಗಳು, ಮೂರು ಪ್ರತ್ಯೇಕ ಪರಿಶೀಲನೆಗಳು ಮತ್ತು ಯಾವುದೇ ಹಂಚಿಕೆ ಇಲ್ಲ.
WireGuard ಸಾಧನದಲ್ಲಿ ಮಲ್ಟಿಕಾಸ್ಟ್ ಧ್ವಜವನ್ನು ಹೊಂದಿಸುವುದು ಸಂಪರ್ಕಸಾಧನವನ್ನು ಅನ್ವೇಷಣಾ ತಂತ್ರಾಂಶಕ್ಕೆ ಸೂಕ್ತವಾಗಿಸುತ್ತದೆ, ಮತ್ತು ಧ್ವಜ ಮಾಡುವುದು ಅಷ್ಟೇ. ಅದು ಗುಂಪು ಪ್ಯಾಕೆಟ್ ಎಲ್ಲಿಗೆ ಹೋಗಬೇಕೆಂದು ಪ್ರೋಟೋಕಾಲ್ ಗೆ ಹೇಳುವುದಿಲ್ಲ, ಮತ್ತು ಹಲವು ಸಹವರ್ತಿಗಳಿರುವ ಸಾಧನದಲ್ಲಿ ಒಂದೇ ಸ್ಪಷ್ಟ ಉತ್ತರವಿಲ್ಲ. ಚಾಲನೆಯಲ್ಲಿರುವ ಡೀಮನ್ ಮತ್ತು ಕಂಡುಹಿಡಿದ ಸೇವೆಯ ನಡುವೆ ಮೂರು ಪ್ರತ್ಯೇಕ ದ್ವಾರಗಳು ನಿಂತಿವೆ.
ಅವುಗಳನ್ನು ಕ್ರಮವಾಗಿ ಪರೀಕ್ಷಿಸಿ, ಏಕೆಂದರೆ ಒಂದನ್ನು ದಾಟುವುದು ಮುಂದಿನದರ ಬಗ್ಗೆ ಏನನ್ನೂ ಹೇಳುವುದಿಲ್ಲ.
ಮೊದಲ ದ್ವಾರ: ಧ್ವಜ ಮತ್ತು ಡೀಮನ್ ನ ನೀತಿ
ಲಿನಕ್ಸ್ WireGuard ಸಾಧನವು ARP ಇಲ್ಲದೆ ಪಾಯಿಂಟ್-ಟು-ಪಾಯಿಂಟ್ ಕೊಂಡಿಯಾಗಿ ರಚಿಸಲಾಗುತ್ತದೆ, ಮತ್ತು ಡೀಫಾಲ್ಟ್ ಆಗಿ ಮಲ್ಟಿಕಾಸ್ಟ್ ಧ್ವಜವನ್ನು ಹೊಂದಿರುವುದಿಲ್ಲ. ಧ್ವಜವನ್ನು ಸೇರಿಸುವುದು ಸ್ಥಳೀಯ ಸಂಪರ್ಕಸಾಧನ ಬದಲಾವಣೆ, ಅದನ್ನು ಸಾಧನವನ್ನು ನಿರ್ವಹಿಸುವ ಯಾವುದೇ ವಸ್ತು ಮಾಡುತ್ತದೆ. Avahi ಯು ಅದರ ಮೇಲೆ ತನ್ನದೇ ವಿಶ್ವದೃಷ್ಟಿಯನ್ನು ಹೊಂದಿದೆ, ಮತ್ತು ಅದರ ಡೀಫಾಲ್ಟ್ ನೀತಿ ಪಾಯಿಂಟ್-ಟು-ಪಾಯಿಂಟ್ ಸಂಪರ್ಕಸಾಧನಗಳನ್ನು ಸಂಪೂರ್ಣವಾಗಿ ಬಿಟ್ಟುಬಿಡುತ್ತದೆ. ಆದ್ದರಿಂದ ಒಂದು ಪ್ಯಾಕೆಟ್ ಚಲಿಸುವ ಮೊದಲು ಎರಡು ಸ್ವತಂತ್ರ ಅರ್ಹತಾ ಪರೀಕ್ಷೆಗಳು ಅನ್ವಯಿಸುತ್ತವೆ.
ಆದ್ದರಿಂದ ಡೀಮನ್ ಗೆ ಸ್ಪಷ್ಟ ನಿರ್ಧಾರ ಬೇಕು, ಕೇವಲ ಚಾಲನೆಯಲ್ಲಿರುವ ಪ್ರಕ್ರಿಯೆ ಅಲ್ಲ. ಅದರ ದಾಖಲಿತ ನಿಯಂತ್ರಣಗಳಲ್ಲಿ allow-interfaces, deny-interfaces ಮತ್ತು allow-point-to-point ಸೇರಿವೆ, ಮತ್ತು ಕೊನೆಯದು ಜನರು ತಪ್ಪಿಸಿಕೊಳ್ಳುವ ಸೆಟ್ಟಿಂಗ್.
ಕೆಳಗಿನ ಪರಿಶೀಲನೆಗಳು ಕೊಂಡಿ ಧ್ವಜಗಳು, ಮಲ್ಟಿಕಾಸ್ಟ್ ಮಾರ್ಗ ಮತ್ತು ಡೀಮನ್ ನ ಸಂರಚನೆಯು ಒಟ್ಟಾರೆಯಾಗಿ ಪಾರ್ಸ್ ಆಗುತ್ತದೆಯೇ ಎಂದು ವರದಿ ಮಾಡುತ್ತವೆ:
ip -d link show wg0
ip route get 224.0.0.251
avahi-daemon --check
ಯಶಸ್ವಿಯಾಗಿ ಪ್ರಾರಂಭವಾದ ಡೀಮನ್ ನಿಮಗೆ ಮುಖ್ಯವಾದ ಸಂಪರ್ಕಸಾಧನದಲ್ಲಿ ಸಾಕೆಟ್ ಗಳನ್ನು ತೆರೆದಿರಬೇಕೆಂದಿಲ್ಲ. ಸೇವಾ ಸ್ಥಿತಿಯು ಕವರೇಜ್ ಗೆ ಸಮ ಎಂದು ಊಹಿಸುವ ಬದಲು ಅದರ ಪರಿಣಾಮಕಾರಿ ಸಂರಚನೆಯನ್ನು ಓದಿ.
ಎರಡನೇ ದ್ವಾರ: ಗುಂಪಿಗೆ ಮಾರ್ಗ
ಎರಡನೇ ದ್ವಾರ ಸಾಮಾನ್ಯ ಮಾರ್ಗನಿರ್ದೇಶನ. 224.0.0.251 ಗೆ ಉದ್ದೇಶಿಸಿದ ಪ್ಯಾಕೆಟ್ ಉಳಿದೆಲ್ಲದರಂತೆ ಫಾರ್ವರ್ಡಿಂಗ್ ಕೋಷ್ಟಕವನ್ನು ಅನುಸರಿಸುತ್ತದೆ, ಮತ್ತು ಕೋಷ್ಟಕವು ಅದನ್ನು ಭೌತಿಕ LAN ಸಂಪರ್ಕಸಾಧನದ ಮೂಲಕ ಹೊರಕ್ಕೆ ಕಳುಹಿಸಿದರೆ ಯಾವುದೇ WireGuard ಸಂರಚನೆಯೂ ಅದನ್ನು ಬದಲಿಸುವುದಿಲ್ಲ. ಮೊದಲು ಮಾರ್ಗವನ್ನು ಸರಿಪಡಿಸಿ, ಉಳಿದ ತನಿಖೆ ಚಿಕ್ಕದಾಗುತ್ತದೆ. ಯಾವುದೇ ಸಹವರ್ತಿ ಕೀಲಿಯನ್ನು ಸ್ಪರ್ಶಿಸುವ ಮೊದಲು ಕರ್ಣಲ್ ಗುಂಪು ವಿಳಾಸದ ಬಗ್ಗೆ ಏನು ವರದಿ ಮಾಡುತ್ತದೆ ಎಂದು ನೋಡಿ.
| Observation | Gate it belongs to | What it does not prove |
|---|---|---|
Multicast flag present on wg0 | Interface eligibility | The daemon will use the interface |
Route to the group via wg0 | Forwarding | Any peer will receive it |
| Destination inside a peer's allowed list | Peer selection | That peer's network will answer |
ನಿರ್ದಿಷ್ಟ ಮಾರ್ಗವಿಲ್ಲದಿದ್ದರೆ, ಕರ್ಣಲ್ ಕೊಂಡಿಯ ಸ್ವಂತ ಮಲ್ಟಿಕಾಸ್ಟ್ ನಿರ್ವಹಣೆಗೆ ಹಿಂತಿರುಗುತ್ತದೆ, ಆದ್ದರಿಂದ ಡೀಫಾಲ್ಟ್ ಸಮತಟ್ಟಾದ LAN ನಲ್ಲಿ ಸರಿ ಕಾಣುತ್ತದೆ ಮತ್ತು ಅದೇ ಗುಂಪು ಸಂಚಾರವು ಸುರಂಗದ ಮೂಲಕ ಹೊರಹೋಗಬೇಕಾದ ಕ್ಷಣದಲ್ಲಿ ತಪ್ಪು ಕಾಣುತ್ತದೆ. ವೈಫಲ್ಯವು ಕಳುಹಿಸುವವರ ಕಡೆಯಿಂದ ಸದ್ದಿಲ್ಲದೆ ಇರುತ್ತದೆ: ಪ್ರಶ್ನೆ ಎಲ್ಲಿಗೋ ಹೋಗುತ್ತದೆ, ಮತ್ತು ಉತ್ತರ ಎಂದಿಗೂ ಬರುವುದಿಲ್ಲ.
ಮೂರನೇ ದ್ವಾರ: WireGuard ಪ್ರತಿ ಪ್ಯಾಕೆಟ್ ಗೆ ಒಬ್ಬ ಸಹವರ್ತಿಯನ್ನು ಆಯ್ಕೆ ಮಾಡುತ್ತದೆ
WireGuard ಅನುಮತಿಸಿದ ವಿಳಾಸ ಗುಚ್ಛಗಳಲ್ಲಿ ಗಮ್ಯಸ್ಥಾನವನ್ನು ಹುಡುಕಿ ಹೊರಹೋಗುವ ಸಹವರ್ತಿಯನ್ನು ಆಯ್ಕೆ ಮಾಡುತ್ತದೆ, ಮತ್ತು ಲಿನಕ್ಸ್ ಪ್ರಸಾರಣ ಮಾರ್ಗವು ಆ ಹುಡುಕಾಟವನ್ನು ಪ್ರತಿ ಪ್ಯಾಕೆಟ್ ಗೆ ಒಮ್ಮೆ ನಡೆಸುತ್ತದೆ. ಫಲಿತಾಂಶ ಒಂದೇ, ಮತ್ತು ಪ್ಯಾಕೆಟ್ ಆ ಸಹವರ್ತಿಗೆ ಎನ್ ಕ್ರಿಪ್ಟ್ ಆಗುತ್ತದೆ. ಅದೇ ಗುಂಪು ಪೂರ್ವಪ್ರತ್ಯಯವು ಹಲವು ಸಹವರ್ತಿಗಳ ಅನುಮತಿಸಿದ ಪಟ್ಟಿಗಳಲ್ಲಿ ಕಾಣಿಸಿಕೊಳ್ಳುವುದು ಸದಸ್ಯತ್ವ ಅಥವಾ ಪ್ರತಿಕೃತಿಯನ್ನು ಸೃಷ್ಟಿಸುವುದಿಲ್ಲ; ಅದು ಅವುಗಳಲ್ಲಿ ಒಂದಕ್ಕೆ ಪರಿಹಾರವಾಗುವ ಅಸ್ಪಷ್ಟ ಹುಡುಕಾಟವನ್ನು ಸೃಷ್ಟಿಸುತ್ತದೆ.
ಎರಡು ತುದಿಗಳ ಮೀಸಲು ಕೊಂಡಿಯಲ್ಲಿ ಇದು ನೀವು ಬಯಸುವುದೇ ಆಗಿದೆ, ಏಕೆಂದರೆ ಉದ್ದೇಶಪೂರ್ವಕವಾಗಿ ಸಾಗಿಸುವ ಗುಂಪು ಸಂಚಾರಕ್ಕೆ ಒಬ್ಬನೇ ಉದ್ದೇಶಿತ ಸ್ವೀಕರಿಸುವವನಿದ್ದಾನೆ. ಐದು ಸಹವರ್ತಿಗಳಿರುವ ಸಂಪರ್ಕಸಾಧನದಲ್ಲಿ ಇದು ಮಿತಿ, ವೈಶಿಷ್ಟ್ಯವಲ್ಲ, ಮತ್ತು ಸರಿಪಡಿಸುವಿಕೆ ಯಾವುದೇ ಒಂದು ಸಹವರ್ತಿಯ ಸಂರಚನೆಯಲ್ಲ, ವಿನ್ಯಾಸದಲ್ಲಿರಬೇಕು.
ಹಂಚಿಕೆಯ ವಿನ್ಯಾಸಕ್ಕೆ ಸ್ಪಷ್ಟ ರಿಲೇ, ಪ್ರತ್ಯೇಕ ಕೊಂಡಿಗಳು ಅಥವಾ ಸಂಪೂರ್ಣವಾಗಿ ಬೇರೆ ಅನ್ವೇಷಣಾ ಕಾರ್ಯವಿಧಾನ ಬೇಕು. ಪ್ರತಿ ಕ್ಲೈಂಟ್ ಗೇಟ್ ವೇಗೆ ಪಿಂಗ್ ಮಾಡಬಹುದು ಎಂಬ ಕಾರಣಕ್ಕೆ ಎರಡು-ತುದಿ ಪಾಕವಿಧಾನವನ್ನು ಬಹು-ಕ್ಲೈಂಟ್ ಪರಿಹಾರವಾಗಿ ಪ್ರಕಟಿಸುವುದು — ಹೀಗಿಯೇ ಇದು ತಪ್ಪಾಗಿ ನಿಯೋಜನೆಯಾಗುತ್ತದೆ.
ಒಳಬರುವ ದಿಕ್ಕನ್ನು ಬೇರೆ ರೀತಿಯಲ್ಲಿ ಪರಿಶೀಲಿಸಲಾಗುತ್ತದೆ: ಸ್ವೀಕರಿಸಿದ ಪ್ಯಾಕೆಟ್ ನ ಮೂಲವು ದೃಢೀಕೃತ ಸಹವರ್ತಿಯ ಅನುಮತಿಸಿದ ಪಟ್ಟಿಯ ಒಳಗೆ ಇರಬೇಕು. ಅಲ್ಲಿ ಮಲ್ಟಿಕಾಸ್ಟ್ ಗಮ್ಯಸ್ಥಾನವನ್ನು ಸೇರಿಸುವುದು ಕಳುಹಿಸುವವರ ನಿಜವಾದ ಮೂಲ ಮಾಲೀಕತ್ವವನ್ನು ಬದಲಿಸುವುದಿಲ್ಲ.
ಪ್ರತಿಬಿಂಬವು ಗಡಿ, ಸೇತುವೆ ಅಲ್ಲ
Avahi ಯ ಪ್ರತಿಫಲಕವು ತಾನು ಆಯ್ಕೆ ಮಾಡಿದ ಸಂಪರ್ಕಸಾಧನಗಳ ನಡುವೆ mDNS ಸಂದೇಶಗಳನ್ನು ಅನ್ವಯ ಸ್ತರದಲ್ಲಿ ಮರುಉತ್ಪಾದಿಸುತ್ತದೆ. ಇದು ಜಾಲಗಳ ನಡುವಿನ ಅನ್ವೇಷಣಾ ಗಡಿ, ಎಥರ್ನೆಟ್ ಸೇತುವೆ ಅಲ್ಲ ಮತ್ತು ಸಾಮಾನ್ಯ ಮಲ್ಟಿಕಾಸ್ಟ್ ರೂಟರ್ ಅಲ್ಲ. ಒಂದೇ ಜಾಲಗಳಿಗೆ ಸಂಪರ್ಕಿಸಿದ ಎರಡು ಪ್ರತಿಫಲಕಗಳು ಪುನರಾವರ್ತಿತ ಘೋಷಣೆಗಳ ಲೂಪ್ ಅನ್ನು ಸುಲಭವಾಗಿ ಸೃಷ್ಟಿಸುತ್ತವೆ.
ಪ್ರತಿಬಿಂಬವು ಸೇವಾ ಹೆಸರುಗಳು ಮತ್ತು ಅವುಗಳ ಮೆಟಾಡೇಟಾವನ್ನು ಇನ್ನೊಂದು ಜಾಲಕ್ಕೆ ಒಪ್ಪಿಸುತ್ತದೆ, ಇದು ಮಾರ್ಗನಿರ್ದೇಶನದ ನಿರ್ಧಾರದಷ್ಟೇ ಗೋಪ್ಯತೆಯ ನಿರ್ಧಾರ. ಆಯ್ಕೆ ಮಾಡಿದ ಸಂಪರ್ಕಸಾಧನಗಳನ್ನು ಮಿತಿಗೊಳಿಸಿ, ಮತ್ತು ಸ್ಥಾಪಿತ ಆವೃತ್ತಿ ಬೆಂಬಲಿಸುವಲ್ಲಿ ಸೇವಾ ಶೋಧಕಗಳನ್ನು ಬಳಸಿ, ಇದರಿಂದ ಅಧಿಕೃತ ಬಳಕೆದಾರರಿಗೆ ಬೇಕಾದ ಘೋಷಣೆಗಳು ಮಾತ್ರ ಗಡಿಯನ್ನು ದಾಟುತ್ತವೆ.
ಅನ್ವೇಷಣೆ ಮತ್ತು ಬಳಕೆ ಪ್ರತ್ಯೇಕ ಫಲಿತಾಂಶಗಳಾಗಿ ಉಳಿಯುತ್ತವೆ. ಕ್ಲೈಂಟ್ ತಾನಿರುವ ಸ್ಥಳದಿಂದ ಜಾಹೀರಾತಾದ ವಿಳಾಸ ತಲುಪಲಾಗದ ಸೇವೆಯ ಅಥವಾ ಅದರ ಪ್ರವೇಶ ನೀತಿ ಪೋರ್ಟ್ ಅನ್ನು ನಿರಾಕರಿಸುವ ಸೇವೆಯ ಘೋಷಣೆಯನ್ನು ನೋಡಬಹುದು. ಘೋಷಣೆ ಕಾಣಿಸಿಕೊಂಡ ನಂತರ ಸೇವಾ ಸಂಪರ್ಕವನ್ನು ದೃಢೀಕರಿಸಿ, ಮತ್ತು ಅಪ್ಲಿಕೇಶನ್ ಸ್ಥಿರ DNS ಹೆಸರು ಅಥವಾ ಸ್ಪಷ್ಟ ಸರ್ವರ್ ವಿಳಾಸವನ್ನು ಬೆಂಬಲಿಸಿದರೆ ಕೊಂಡಿಯ ಸ್ಥಳೀಯ ಅನ್ವೇಷಣೆಯನ್ನು ವಿಸ್ತರಿಸುವ ಬದಲು ಅದನ್ನೇ ಆದ್ಯತೆ ನೀಡಿ. ಕ್ರಿಪ್ಟೋಕಿ ಮಾರ್ಗನಿರ್ದೇಶನದ ವಿವರಣೆ ಈ ಎಲ್ಲವೂ ಅವಲಂಬಿಸಿರುವ ಗಮ್ಯಸ್ಥಾನ ಆಧಾರಿತ ಸಹವರ್ತಿ ಆಯ್ಕೆಯನ್ನು ಒಳಗೊಳ್ಳುತ್ತದೆ.