ip rule ಬಳಸಿ ನೀತಿ ನಿಯಮ ಸೇರಿಸಿ, ಅದು ಲಿಂಕ್ ಹೋಗುವವರೆಗೆ ಕೆಲಸ ಮಾಡುತ್ತದೆ; ಆ ಕ್ಷಣದಲ್ಲಿ ಅದು ಸುಮ್ಮನೆ ಇಲ್ಲ. ಯಾವುದೂ ಗಟ್ಟಿಯಾಗಿ ವಿಫಲವಾಗಲಿಲ್ಲ: ಕರ್ನಲ್ ಸ್ಥಿತಿ ಬದಲಾಯಿತು, ಮತ್ತು ನಿಯಮ ಇರಬೇಕೆಂದು ಯಾವುದೇ ಸಂರಚನಾ ಮಾಲೀಕರಿಗೆ ತಿಳಿದಿರಲಿಲ್ಲ. ಉಳಿಯುವ ಮತ್ತು ಉಳಿಯದ ನಿಯಮದ ನಡುವಿನ ಸಂಪೂರ್ಣ ವ್ಯತ್ಯಾಸ ಇಷ್ಟೇ. systemd-networkd ಇರುವ ಹೋಸ್ಟ್‌ನಲ್ಲಿ ಪರಿಹಾರವೆಂದರೆ ನಿಯಮಕ್ಕೆ ಮಾಲೀಕರನ್ನು ಕೊಡುವುದು, ಪ್ರತಿ ಮರುಸಂಪರ್ಕದ ನಂತರ ಆಜ್ಞೆಯನ್ನು ಮತ್ತೆ ಓಡಿಸುವುದಲ್ಲ.

ನಿಯಮ ಯಾರಾದರೂ ಅದನ್ನು ಹೊಂದಿದರೆ ಮಾತ್ರ ಇರುತ್ತದೆ

ಕರ್ನಲ್‌ನ ಮಾರ್ಗನೀತಿ ಸ್ಥಿತಿ, ಸಂರಚನೆಯಲ್ಲ. ಅದು ಚಾಲನೆಯಲ್ಲಿರುವ ವ್ಯವಸ್ಥೆಯಲ್ಲಿ ವಾಸಿಸುತ್ತದೆ, ಮತ್ತು ಅದು ಅವಲಂಬಿಸಿರುವ ಇಂಟರ್ಫೇಸ್ ಅನ್ನು ಒಡೆಯುವ ಯಾವುದೇ ವಿಷಯ ಅದನ್ನು ಜೊತೆಗೆ ಕೊಂಡೊಯ್ಯಬಹುದು. ಶೆಲ್ ಆಜ್ಞೆ ಆ ಸ್ಥಿತಿಯನ್ನು ಬದಲಿಸುತ್ತದೆ ಮತ್ತು ಉದ್ದೇಶದ ಯಾವುದೇ ದಾಖಲೆ ಬಿಡುವುದಿಲ್ಲ.

ನೆಟ್‌ವರ್ಕ್ ನಿರ್ವಾಹಕರು ವಿರುದ್ಧ ರೀತಿಯಲ್ಲಿ ಕೆಲಸ ಮಾಡುತ್ತಾರೆ: ಅವರು ಸಂರಚನೆ ಓದಿ, ಅನ್ವಯಿಸಿ, ಲಿಂಕ್ ಘಟನೆ ಹಿಂದಿನ ಸ್ಥಿತಿಯನ್ನು ಅಮಾನ್ಯಗೊಳಿಸಿದಾಗ ಮತ್ತೆ ಅನ್ವಯಿಸುತ್ತಾರೆ. ಅವರ ಸಂರಚನೆಯಲ್ಲಿ ಘೋಷಿಸಿದ ನಿಯಮ ಮತ್ತೆ ರಚನೆಯಾಗುತ್ತದೆ, ಆದರೆ ಅವರ ಪಕ್ಕದಲ್ಲಿ ಸೇರಿಸಿದ ನಿಯಮ ಮಾಲೀಕರಿಲ್ಲದ ಹೊರಗಿನ ವಸ್ತು.

ಆ ವ್ಯತ್ಯಾಸಕ್ಕೆ networkd ನಲ್ಲಿ ಹೆಸರಿದೆ, ಮತ್ತು ಏನನ್ನಾದರೂ ಸಕ್ರಿಯಗೊಳಿಸುವ ಮೊದಲು ಅದನ್ನು ಓದುವುದು ಯೋಗ್ಯ. ಇತ್ತೀಚಿನ ಆವೃತ್ತಿಗಳಲ್ಲಿ ಹೊರಗಿನ ನಿಯಮಗಳನ್ನು ಡೀಫಾಲ್ಟ್ ಆಗಿ ತೆಗೆದುಹಾಕಲಾಗುತ್ತದೆ, ಇದು ತಮ್ಮ ಕೈಬರಹದ ನಮೂದುಗಳು ಉಳಿಯುತ್ತವೆ ಎಂದು ನಿರೀಕ್ಷಿಸಿದವರನ್ನು ಬೆಚ್ಚಿಬೀಳಿಸುತ್ತದೆ.

ಸೆಟ್ಟಿಂಗ್ ಅನ್ನು ನಂಬುವ ಮೊದಲು ಆವೃತ್ತಿ ಓದಿ

ಮಾಲೀಕತ್ವದ ನಡವಳಿಕೆಯನ್ನು networkd.conf ನಲ್ಲಿನ ಸೆಟ್ಟಿಂಗ್ ನಿಯಂತ್ರಿಸುತ್ತದೆ, ಮತ್ತು ಆ ಸೆಟ್ಟಿಂಗ್ ಹಳೆಯ systemd ಬಿಡುಗಡೆಗಳಲ್ಲಿ ಇಲ್ಲ. ಅದರ ಸುತ್ತ ವಿನ್ಯಾಸ ಮಾಡುವ ಮೊದಲು ಸ್ಥಾಪಿತ ಆವೃತ್ತಿಯನ್ನು ಪರಿಶೀಲಿಸಿ, ಏಕೆಂದರೆ ಹಳೆಯ ಹೋಸ್ಟ್ ನೀವು ಓದುತ್ತಿರುವ ದಾಖಲೆಗಿಂತ ಬೇರೆ ರೀತಿ ವರ್ತಿಸುತ್ತದೆ.

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

systemctl --version | head -1
networkctl --version | head -1
grep -R "ManageForeign" /etc/systemd/ /usr/lib/systemd/ 2>/dev/null

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

ನಿಯಮ ಮತ್ತು ಅದು ತೋರಿಸುವ ಕೋಷ್ಟಕವನ್ನು ಘೋಷಿಸಿ

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

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

[RoutingPolicyRule]
Family=ipv4
IPProtocol=tcp
SourcePort=443
Table=100
Priority=1000

[Route]
Destination=10.80.0.0/24
Gateway=10.80.0.1
Table=100

ನಂತರ ಮತ್ತೆ ಲೋಡ್ ಮಾಡಿ ಮತ್ತು ಫೈಲ್ ಬದಲು ಕರ್ನಲ್ ಸ್ಥಿತಿ ಓದಿ. ಸ್ವಚ್ಛವಾಗಿ ಪಾರ್ಸ್ ಆದ ಸಂರಚನೆಯೂ ನೀವು ಉದ್ದೇಶಿಸದ ನಿಯಮವನ್ನು ಉಂಟುಮಾಡಬಹುದು, ಮತ್ತು ಎರಡು ದೃಶ್ಯಗಳು ಘೋಷಣೆ ಪೂರ್ಣವಾಗಿದ್ದಾಗ ಮಾತ್ರ ಹೊಂದುತ್ತವೆ.

ಇಂಟರ್ಫೇಸ್‌ಗೆ ಒಬ್ಬ ಮಾಲೀಕರನ್ನು ಆಯ್ಕೆ ಮಾಡಿ

ಒಂದೇ ಸುರಂಗದಲ್ಲಿ ಇಬ್ಬರು ನಿರ್ವಾಹಕರು ಎರಡರಲ್ಲೂ ದೋಷದಂತೆ ಕಾಣುವ ಜಗಳವನ್ನು ಉಂಟುಮಾಡುತ್ತಾರೆ. ಇರುವ wg-quick ಸೆಟಪ್ ಅನ್ನು networkd ಗೆ ಆಮದು ಮಾಡುವುದು ಸೇರಿಸುವಿಕೆಯಲ್ಲ, ಸ್ಥಳಾಂತರ, ಮತ್ತು ಎರಡನ್ನೂ ಓಡಿಸಿದರೆ ಇಂಟರ್ಫೇಸ್ ಮತ್ತು ಅದರ ನಿಯಮಗಳು ಇಬ್ಬರು ಮಾಲೀಕರ ಅಡಿಯಲ್ಲಿ ಉಳಿಯುತ್ತವೆ.

ಸ್ಥಳಾಂತರವನ್ನು ಒಂದೇ ಬಾರಿಗೆ ಮಾಡಿ: ಹಳೆಯ ಯುನಿಟ್ ನಿಲ್ಲಿಸಿ, ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿ, networkd ನಲ್ಲಿ ಇಂಟರ್ಫೇಸ್ ಮತ್ತು ಅದರ ಮಾರ್ಗಗಳನ್ನು ಘೋಷಿಸಿ, ನಂತರ ಮತ್ತೆ ಲೋಡ್ ಮಾಡಿ. ಹಳೆಯ ಯುನಿಟ್ ಬೂಟ್‌ನಲ್ಲಿ ಮರಳಿ ಬರಲಾಗದೆಂದು ಪರಿಶೀಲಿಸಿ. ಮರುಚಾಲನೆಯ ನಂತರ ಮತ್ತೆ ಸಕ್ರಿಯವಾಗುವ ಉಳಿದ ಯುನಿಟ್ ನೀವು ಈಗಷ್ಟೇ ಘೋಷಿಸಿದ ಸ್ಥಿತಿಯ ಮೇಲೆ ಬರೆಯುತ್ತದೆ. ಹೊಸದು ಒಂದು ಮರುಸಂಪರ್ಕವನ್ನು ದಾಟುವವರೆಗೆ ಹಳೆಯ ಸಂರಚನಾ ಫೈಲ್ ಇರಿಸಿ, ನಂತರ ನಿವೃತ್ತಿಗೊಳಿಸಿ.

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

ಜೀವನಚಕ್ರದ ಘಟನೆಗಳನ್ನು ಅಭ್ಯಾಸ ಮಾಡಿ

ಸಂರಚನೆ ಘಟನೆಗಳಾದ್ಯಂತ ಅದರ ನಡವಳಿಕೆಯಷ್ಟೇ ಒಳ್ಳೆಯದು. ಲಿಂಕ್ ಕೆಳಗಿಳಿಸಿ, ಮೇಲೆತ್ತಿ, ಸೇವೆ ಮರುಪ್ರಾರಂಭಿಸಿ ಮತ್ತು ವಿಳಾಸ ನವೀಕರಿಸಿ. ಪ್ರತಿಯೊಂದರ ನಂತರ ನಿಯಮಗಳ ಪಟ್ಟಿ ಮತ್ತು ಕೋಷ್ಟಕದ ವಿಷಯ ಓದಿ.

sudo networkctl reload
ip rule show
ip route show table 100
sudo systemctl restart systemd-networkd

ಉದ್ದೇಶಿತ ಫಲಿತಾಂಶ ಎಂದರೆ ಅದೇ ಮಾಲೀಕತ್ವದ ನೀತಿ ಮತ್ತೆ ರಚನೆಯಾಗುವುದು ಮತ್ತು ಹಳೆಯ ಸ್ಥಿತಿ ನಿವೃತ್ತಿಯಾಗುವುದು, ಇದು ಪ್ರತಿ ಮರುಸಂಪರ್ಕದ ನಂತರ ಶೆಲ್ ನಿಯಮವನ್ನು ಮತ್ತೆ ಸೇರಿಸುವುದಕ್ಕಿಂತ ಹೆಚ್ಚು ಬಾಳಿಕೆ ಬರುತ್ತದೆ. ಬದಲಾವಣೆ-ದಾಖಲೆಯಲ್ಲಿ ನಿಯಮದ ಮಾಲೀಕ ಫೈಲ್ ಮತ್ತು ಅದನ್ನು ಬೆಂಬಲಿಸುವ ಆವೃತ್ತಿಯನ್ನು ಹೆಸರಿಸುವ ಒಂದು ಸಾಲು ಇರಿಸಿ. ಆಗ ಮುಂದಿನ ಎಂಜಿನಿಯರ್ ಶೆಲ್ ಇತಿಹಾಸ ಅಗೆಯದೆ ನೀತಿ ಕಂಡುಕೊಳ್ಳಬಹುದು. ಯಾರೂ ಹೊಂದಿರದ ನಿಯಮ ಮತ್ತೆ ಕಳೆದುಹೋಗುವ ನಿಯಮ.

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