ಹೊಸ ಕಂಟೇನರ್ ಲಾಗ್‌ಗಳು ಸಾಮಾನ್ಯವಾಗಿ /proc/sys/net/ipv4/route/flush ಬಗ್ಗೆ Read-only file system ದೂರಿನೊಂದಿಗೆ ಕೊನೆಗೊಳ್ಳುತ್ತವೆ, ಮತ್ತು ಆ ಸಾಲಿಗೆ ಸಂಪೂರ್ಣ ಆರೋಗ್ಯಕರವಾಗಿರಬಹುದಾದ ಟನೆಲ್‌ನ ದೋಷ ಹೊರಿಸಲಾಗುತ್ತದೆ. ಅದರ ಹಿಂದಿನ ಬರವಣಿಗೆ IPv4 ರೂಟ್ ಕ್ಯಾಶ್ ಹೋದ ಮೇಲೆ ಯಾವುದೇ ಉಪಯುಕ್ತ ಕೆಲಸ ಮಾಡದ ಕರ್ನಲ್ ನಮೂದನ್ನು ಗುರಿಯಾಗಿಸುತ್ತದೆ. ಕಂಟೇನರ್ ಒಳಗೆ /proc/sys ಓದಲು-ಮಾತ್ರವಾಗಿ ಮೌಂಟ್ ಆಗುತ್ತದೆ, ಆದ್ದರಿಂದ ಯಾವುದೇ ಮೌಲ್ಯ ಬರುವ ಮೊದಲೇ ಮರುನಿರ್ದೇಶನ ನಿರಾಕರಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಶೆಲ್ ಆ ನಿರಾಕರಣೆಯನ್ನು ಮುದ್ರಿಸುತ್ತದೆ. ಕೆಲಸ ಮಾಡುವ ಟನೆಲ್ ಹಳೆಯ ಸಾಲು ಸ್ಕ್ರಿಪ್ಟ್‌ನಲ್ಲಿರುವವರೆಗೆ ಈ ಎಚ್ಚರಿಕೆಯನ್ನು ಮುದ್ರಿಸಬಹುದು, ಮತ್ತು --privileged ಬರವಣಿಗೆಯನ್ನು ಎಂದಿಗೂ ಅರ್ಥಪೂರ್ಣಗೊಳಿಸುವುದಿಲ್ಲ.

ಸ್ಕ್ರಿಪ್ಟ್ ಏನನ್ನು ಫ್ಲಶ್ ಮಾಡಲು ಪ್ರಯತ್ನಿಸಿತು

ಹಳೆಯ ಸಂಪರ್ಕ ಸ್ಕ್ರಿಪ್ಟ್‌ಗಳು ಕ್ಯಾಶ್ ಸ್ವಚ್ಛಗೊಳಿಸುವಿಕೆಯೊಂದಿಗೆ ಕೊನೆಗೊಳ್ಳುತ್ತಿದ್ದವು: ಕರ್ನಲ್ ನಿಯಂತ್ರಣ ಫೈಲ್‌ಗೆ ಮೌಲ್ಯ ಬರೆಯುವುದು ಮತ್ತು IPv4 ಸ್ಟ್ಯಾಕ್‌ಗೆ ತನ್ನ ರೂಟಿಂಗ್ ಕ್ಯಾಶ್ ಅನ್ನು ಬಿಸಾಡಲು ಕೇಳುವುದು, ಇದರಿಂದ ಹಳೆಯ ನಮೂದುಗಳ ಅವಧಿ ಮುಗಿಯುವವರೆಗೆ ಕಾಯದೆ ಹೊಸ ಟನೆಲ್ ರೂಟ್ ಆಯ್ಕೆಯಾಗುತ್ತದೆ. ಫೈಲ್ /proc/sys/net/ipv4/ ಅಡಿಯಲ್ಲಿ ವಿಳಾಸಗೊಳಿಸಲಾಗಿತ್ತು, ಇದು ಕ್ರಿಯೆಯನ್ನು ರೂಟಿಂಗ್ ಆದೇಶವಲ್ಲದೆ ಶೆಲ್ ಮರುನಿರ್ದೇಶನವಾಗಿಸಿತು. ಕರ್ನಲ್ 3.6 ಆ ಕ್ಯಾಶ್ ಅನ್ನು ತೆಗೆದುಹಾಕಿತು, ಮತ್ತು ಅದರೊಂದಿಗೆ ಫ್ಲಶ್ ಇರುವಿಕೆಯ ಕಾರಣವನ್ನೂ. ಪ್ರಸ್ತುತ ಡೇಟಾ ಮಾರ್ಗದಲ್ಲಿ ಯಾವುದೂ ಆ ಬರವಣಿಗೆಯನ್ನು ಅವಲಂಬಿಸಿಲ್ಲ.

ನಮೂದು ಸ್ವತಃ ಹಳೆಯ ಬರೆಯಲು-ಮಾತ್ರ ಫೈಲ್ ಆಗಿ ಉಳಿಯಿತು, ಆದ್ದರಿಂದ ಇನ್ನೂ ಅದರೊಳಗೆ ಬರೆಯುವ ಸ್ಕ್ರಿಪ್ಟ್ ನಿಜವಾದ ಮಾರ್ಗ ಮತ್ತು ನಿಜವಾದ ಅನುಮತಿ ಪರಿಶೀಲನೆಗೆ ತಲುಪುತ್ತದೆ. ಹೋಸ್ಟ್‌ನಲ್ಲಿ ಬರವಣಿಗೆ ಯಶಸ್ಸನ್ನು ಹಿಂತಿರುಗಿಸುತ್ತದೆ ಮತ್ತು ಏನನ್ನೂ ಬದಲಿಸುವುದಿಲ್ಲ. ಕಂಟೇನರ್‌ನಲ್ಲಿ ಅದೇ ಮರುನಿರ್ದೇಶನ ಓದಲು-ಮಾತ್ರ /proc/sys ಗೆ ಬಡಿಯುತ್ತದೆ ಮತ್ತು EROFS ನೊಂದಿಗೆ ವಿಫಲವಾಗುತ್ತದೆ, ಅದನ್ನು ಶೆಲ್ ಓದಲು-ಮಾತ್ರ ಫೈಲ್‌ಸಿಸ್ಟಂ ಸಂದೇಶವಾಗಿ ಮುದ್ರಿಸುತ್ತದೆ. ಮಾರ್ಗ ನಿಜವಾಗಿ ಇಲ್ಲದ ಕರ್ನಲ್‌ಗಳಲ್ಲಿ ಪದಪುಂಜ No such file or directory ಆಗುತ್ತದೆ, ಮತ್ತು ತೀರ್ಮಾನ ಬದಲಾಗುವುದಿಲ್ಲ.

ಎರಡು ದೋಷಗಳು ಬೇರೆ ಬೇರೆ ವಿಷಯ ಹೇಳುತ್ತವೆ, ಮತ್ತು ವ್ಯತ್ಯಾಸವನ್ನು ಸ್ಪಷ್ಟವಾಗಿ ಇಟ್ಟುಕೊಳ್ಳುವುದು ಯೋಗ್ಯ. Read-only file system ಎಂದರೆ ಕರ್ನಲ್ ನಮೂದನ್ನು ತಲುಪಿ ಬರವಣಿಗೆಯನ್ನು ನಿರಾಕರಿಸಿತು; No such file or directory ಎಂದರೆ ನಮೂದು ಹೋಗಿದೆ. ಯಾವ ಸಂದೇಶವೂ ಟನೆಲ್ ಸಾಧನ, ರೂಟ್‌ಗಳು ಅಥವಾ ಹೆಸರು ಪರಿಹಾರದ ಬಗ್ಗೆ ವರದಿ ಮಾಡುವುದಿಲ್ಲ, ಆದ್ದರಿಂದ ಯಾವುದೂ ಹೆಚ್ಚಿನ ಸವಲತ್ತನ್ನು ಸಮರ್ಥಿಸಲಾರದು.

ಸಂದೇಶವನ್ನು ಕಾರಣಾತ್ಮಕವಾಗಿ ಕಾಣಿಸುವಂತೆ ಮಾಡುವುದು ಕ್ರಮವೇ. ಸಂಪರ್ಕ ಸ್ಕ್ರಿಪ್ಟ್ ಕೊನೆಯ ಸ್ವಚ್ಛಗೊಳಿಸುವಿಕೆಗೆ ತಲುಪುವ ಮೊದಲು ರೂಟ್‌ಗಳನ್ನು ಸ್ಥಾಪಿಸುತ್ತದೆ, ಇಂಟರ್‌ಫೇಸ್ ಸ್ಥಿತಿಯನ್ನು ಬದಲಿಸುತ್ತದೆ ಮತ್ತು ಹೆಸರು ಪರಿಹಾರವನ್ನು ಮರುಬರೆಯುತ್ತದೆ, ಆದ್ದರಿಂದ ಕೊನೆಯದಾಗಿ ಮುದ್ರಿಸಿದ ಸಾಲೇ ಜನರು ಉಲ್ಲೇಖಿಸುವ ಸಾಲು, ಪ್ರತಿ ಮುಖ್ಯ ಹಂತವೂ ಯಶಸ್ಸು ಹಿಂತಿರುಗಿಸಿದ್ದರೂ ಸಹ. ಈ ಎಚ್ಚರಿಕೆಯನ್ನು ಮುದ್ರಿಸುತ್ತಲೇ ಸ್ಥಾಪನೆಯಾಗಿ ಸಂಚಾರವನ್ನು ಸಾಗಿಸುವ ಟನೆಲ್ ಮೇಲಿನ ಕಾರ್ಯವಿಧಾನಕ್ಕೆ ನಿಖರವಾಗಿ ಹೊಂದುತ್ತದೆ.

ಸವಲತ್ತು ಸೇರಿಸುವ ಮೊದಲು ಮೌಂಟ್ ಮತ್ತು ರೂಟ್ ಪರಿಶೀಲಿಸಿ

ಮೂರು ಓದುವಿಕೆಗಳು ಮೇಲ್ನೋಟದ ಎಚ್ಚರಿಕೆಯನ್ನು ನಿಜವಾದ ವೈಫಲ್ಯದಿಂದ ಬೇರ್ಪಡಿಸುತ್ತವೆ: ಸ್ಥಾಪಿತ ಸ್ಕ್ರಿಪ್ಟ್ ಇನ್ನೂ ಸಾಲನ್ನು ಹೊಂದಿದೆಯೇ, /proc/sys ಹೇಗೆ ಮೌಂಟ್ ಆಗಿದೆ, ಮತ್ತು ಅಪ್ಲಿಕೇಶನ್‌ನ ಸಂಚಾರ ವಾಸ್ತವವಾಗಿ ಎಲ್ಲಿಗೆ ಹೋಗುತ್ತದೆ. ಅವುಗಳನ್ನು ಅದೇ ಕಂಟೇನರ್ ನೇಮ್‌ಸ್ಪೇಸ್‌ನಲ್ಲಿ ಅಥವಾ ಎಚ್ಚರಿಕೆ ಕಾಣಿಸಿದ ಹೋಸ್ಟ್‌ನಲ್ಲಿ ಚಲಾಯಿಸಿ, ಏಕೆಂದರೆ ಸಂಬಂಧವಿಲ್ಲದ ಯಂತ್ರದಲ್ಲಿ ಪರಿಶೀಲನೆ ಬೇರೆ ಪ್ರಶ್ನೆಗೆ ಉತ್ತರಿಸುತ್ತದೆ.

grep -n 'ipv4/route/flush' /usr/share/vpnc-scripts/vpnc-script
findmnt -no OPTIONS /proc/sys
ip -4 route get 10.20.5.10

grep ಉತ್ತರ ಕಾಣುವುದಕ್ಕಿಂತ ದುರ್ಬಲವಾಗಿದೆ, ಏಕೆಂದರೆ ಹೊಂದಿಕೆ ಸಾಲು ಇರುವುದನ್ನು ಸಾಬೀತುಪಡಿಸುತ್ತದೆ, ರಕ್ಷಣೆಯಿಲ್ಲದೆ ಚಲಿಸುತ್ತದೆ ಎಂದಲ್ಲ; ನಿರ್ವಹಿತ ಸ್ಕ್ರಿಪ್ಟ್ ಬರವಣಿಗೆಯನ್ನು ಅದನ್ನು ಬಿಟ್ಟುಬಿಡುವ ಕಾವಲಿನ ಒಳಗೆ ಇಟ್ಟುಕೊಳ್ಳಬಹುದು. findmnt -no OPTIONS /proc/sys ಮೌಂಟ್ ಅನ್ನು ನೇರವಾಗಿ ನಿರ್ಣಯಿಸುತ್ತದೆ, ಮತ್ತು ಆ ಔಟ್‌ಪುಟ್‌ನಲ್ಲಿ ro ಎಂದರೆ ಆ ಬಿಂದುವಿನ ಕೆಳಗಿನ ಪ್ರತಿ ಬರವಣಿಗೆಯೂ ನಿರಾಕರಿಸಲ್ಪಡುತ್ತದೆ, ಸ್ಕ್ರಿಪ್ಟ್ ಏನೇ ಮಾಡಿದರೂ. ನಂತರ ರೂಟ್ ಹುಡುಕಾಟ ಅಪ್ಲಿಕೇಶನ್‌ಗೆ ಬೇಕಾದ ಗಮ್ಯಸ್ಥಾನ ಟನೆಲ್ ಇಂಟರ್‌ಫೇಸ್ ಮೂಲಕ ಅಥವಾ ಕಂಟೇನರ್‌ನ ಡೀಫಾಲ್ಟ್ ಗೇಟ್‌ವೇ ಮೂಲಕ ಪರಿಹಾರವಾಗುತ್ತದೆಯೇ ಎಂದು ತೋರಿಸುತ್ತದೆ. ಡೀಫಾಲ್ಟ್ ಗೇಟ್‌ವೇ ಆಯ್ಕೆಮಾಡುವ ಹುಡುಕಾಟ ಎಂದರೆ ಟನೆಲ್ ಮೇಲೆ ಬಂದಿದೆ ಮತ್ತು ಅದರೊಳಗೆ ಏನೂ ರೂಟ್ ಆಗುತ್ತಿಲ್ಲ, ಇದು ರೂಟಿಂಗ್ ಸಮಸ್ಯೆ, ಸವಲತ್ತಿನದಲ್ಲ.

ಸರಿಪಡಿಸುವಿಕೆ ನಿಜವಾಗಿ ಎಲ್ಲಿಂದ ಬರುತ್ತದೆ

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

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

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