VPS ನಲ್ಲಿ OpenVPN: ತೆರೆಯಲು /dev/net/tun ಸಾಧನವಿಲ್ಲ
ಕಾನ್ಫಿಗ್ ಸಾಮಾನ್ಯವಾಗಿ ಸರಿಯಾಗಿದೆ: ಅತಿಥಿಗೆ tun ಸಾಧನ ಕಾಣುತ್ತಿಲ್ಲ. ಇದು VM ಆಗಿದೆಯೇ ಅಥವಾ ಕರ್ನಲ್ ಹಂಚಿಕೊಳ್ಳುವ ಕಂಟೇನರ್ ಆಗಿದೆಯೇ ಎಂದು ಗುರುತಿಸಿ, ಕರ್ನಲ್ ಹೊಂದಿರುವ ಪದರವನ್ನು ಸರಿಪಡಿಸಿ.
ಮೊದಲ ಆರಂಭ /dev/net/tun ಅಥವಾ ತೆರೆಯಲಾಗದ TUN/TAP ಸಾಧನದ ಬಗ್ಗೆ ಸಂದೇಶದೊಂದಿಗೆ ವಿಫಲವಾಗುತ್ತದೆ. ಪ್ರಮಾಣಪತ್ರಗಳನ್ನು ಇನ್ನೂ ಓದಿಲ್ಲ, ಆದ್ದರಿಂದ ಪ್ರೊಫೈಲ್ನಲ್ಲಿ ಯಾವುದೂ ತಪ್ಪಿಲ್ಲ. ಡೀಮನ್ ಈ ಅತಿಥಿಯಲ್ಲಿ ಇಲ್ಲದ ವಸ್ತುವನ್ನು ಕರ್ನಲ್ನಿಂದ ಕೇಳುತ್ತಿದೆ.
ಆ ವಸ್ತು tun ಮಾಡ್ಯೂಲ್ ಒದಗಿಸುವ ಅಕ್ಷರ ಸಾಧನ. ಅದನ್ನು ನೀವು ರಚಿಸಬಹುದೇ ಎಂಬುದು ಕರ್ನಲ್ ಯಾರ ಒಡೆತನದಲ್ಲಿದೆ ಎಂಬುದನ್ನು ಅವಲಂಬಿಸಿದೆ.
ಡೀಮನ್ ಕರ್ನಲ್ನಿಂದ ಏನನ್ನು ಕೇಳುತ್ತದೆ
OpenVPN /dev/net/tun ತೆರೆದು ಡ್ರೈವರ್ನಿಂದ ಇಂಟರ್ಫೇಸ್ ಕೇಳುತ್ತದೆ. ಡ್ರೈವರ್ tun ಮಾಡ್ಯೂಲ್, ಮತ್ತು ಸಾಧನ ನೋಡ್ ಎಂಬುದು ಬಳಕೆದಾರ ಸ್ಥಳ ಅದನ್ನು ತಲುಪಲು ಬಳಸುವ ಹಿಡಿಕೆ. ಮಾಡ್ಯೂಲ್ ಲೋಡ್ ಆಗಿಲ್ಲದಿದ್ದರೆ ನೋಡ್ ಇಲ್ಲದಿರಬಹುದು ಅಥವಾ ತೆರೆಯುವಿಕೆ ವಿಫಲವಾಗಬಹುದು. ಎರಡೂ ಸ್ಥಿತಿಗಳು server.conf ಸಂಪಾದನೆಯಿಂದ ಸರಿಪಡೆಯುವುದಿಲ್ಲ.
ಈ ದೋಷವನ್ನು ಮೊದಲು ವೇದಿಕೆಯ ಪ್ರಶ್ನೆಯಾಗಿ ಓದಿ. ಕಾನ್ಫಿಗ್ ದೋಷ ಸಾಧನ ತೆರೆದ ನಂತರ ಕಾಣಿಸುತ್ತದೆ, ಅದಕ್ಕಿಂತ ಮೊದಲು ಅಲ್ಲ.
VM ಅಥವಾ ಕರ್ನಲ್ ಹಂಚಿಕೊಳ್ಳುವ ಅತಿಥಿ
KVM, Xen ಅಥವಾ ಇನ್ನೊಂದು ಪೂರ್ಣ ವರ್ಚುವಲ್ ಯಂತ್ರದಲ್ಲಿ ಕರ್ನಲ್ ನಿಮ್ಮ ನಿಯಂತ್ರಣದಲ್ಲಿದೆ. ನೀವು ಮಾಡ್ಯೂಲ್ಗಳನ್ನು ಲೋಡ್ ಮಾಡಿ ನೋಡ್ ರಚಿಸಬಹುದು. OpenVZ, Virtuozzo ಅಥವಾ LXC ಶೈಲಿಯ ಕಂಟೇನರ್ನಲ್ಲಿ ಅತಿಥಿ ಹೋಸ್ಟ್ ಕರ್ನಲ್ ಹಂಚಿಕೊಳ್ಳುತ್ತದೆ, ಆದ್ದರಿಂದ ಅದರೊಳಗಿನ root ಹೋಸ್ಟ್ ಲೋಡ್ ಮಾಡದ ಮಾಡ್ಯೂಲ್ ಅನ್ನು ಲೋಡ್ ಮಾಡಲಾಗದು.
ಆದ್ದರಿಂದ ಅದೇ ವೈಫಲ್ಯಕ್ಕೆ ಎರಡು ಬೇರೆ ಬೇರೆ ಒಡೆಯರಿದ್ದಾರೆ. ಮೊದಲ ಸಂದರ್ಭದಲ್ಲಿ ಇನ್ಸ್ಟೆನ್ಸ್ನ ಒಳಗಿನಿಂದಲೇ ಸರಿಪಡಿಸಬಹುದು. ಎರಡನೆಯದರಲ್ಲಿ ಹೋಸ್ಟ್ ಅಥವಾ ಪೂರೈಕೆದಾರರನ್ನು ಏನಾದರೂ ತೆರೆದು ತೋರಿಸಲು ಕೇಳುತ್ತಿದ್ದೀರಿ.
ನೀವು ಯಾವ ಸಂದರ್ಭದಲ್ಲಿದ್ದೀರಿ ಎಂದು ನಿರ್ಧರಿಸುವ ಮೊದಲು ls -l /dev/net/tun, lsmod | grep tun ಮತ್ತು ip -brief link show ಚಲಾಯಿಸಿ.
VM ನಲ್ಲಿ ಬೂಟ್ ಸಮಯದಲ್ಲಿ ಮಾಡ್ಯೂಲ್ ಲೋಡ್ ಮಾಡಿ
ವರ್ಚುವಲ್ ಯಂತ್ರದಲ್ಲಿ modprobe tun ಸಾಮಾನ್ಯವಾಗಿ ಸಾಧನ ನೋಡ್ ರಚಿಸುತ್ತದೆ. ಅದು ಕಾಣಿಸಿಕೊಂಡಿದೆಯೇ ಎಂದು ಪರಿಶೀಲಿಸಿ, ನಂತರ ಒಮ್ಮೆ ಟೈಪ್ ಮಾಡಿದ ಆಜ್ಞೆಯನ್ನು ನಂಬದೆ ಡಿಸ್ಟ್ರಿಬ್ಯೂಷನ್ನ ಮಾಡ್ಯೂಲ್ ಕಾನ್ಫಿಗ್ ಮೂಲಕ ಲೋಡ್ ಅನ್ನು ಶಾಶ್ವತಗೊಳಿಸಿ. ಮರುಬೂಟ್ ನಂತರ ಮಾಯವಾಗುವ ನೋಡ್ ಮುಂದಿನ ತಿಂಗಳು ಅದೇ ಟಿಕೆಟ್ ಆಗುತ್ತದೆ.
ನೀವು ಬೂಟ್ ಮಾಡಿದ ಕರ್ನಲ್ನಲ್ಲಿ ಆ ಮಾಡ್ಯೂಲ್ ಇದೆಯೇ ಎಂದೂ ಪರಿಶೀಲಿಸಿ. ಸವೆದ ವೆಂಡರ್ ಕರ್ನಲ್ನಲ್ಲಿ ಅದು ಇಲ್ಲದಿರಬಹುದು.
ನೋಡ್ ಇದ್ದರೂ ತೆರೆಯುವಿಕೆ ವಿಫಲವಾದರೆ, ಮುಂದಿನ ಸಂಶಯಗಳು ಅನುಮತಿಗಳು ಮತ್ತು ಸಾಧನದ major/minor ಸಂಖ್ಯೆಗಳು. ಅವು ಸ್ಥಳೀಯ ಸರಿಪಡಿಸುವಿಕೆಗಳು, ಪೂರೈಕೆದಾರರಿಗೆ ವಿನಂತಿಗಳಲ್ಲ.
ಕಂಟೇನರ್ನಲ್ಲಿ ಸಾಧನ ಹೋಸ್ಟ್ನದು
ಕಂಟೇನರ್ನಲ್ಲಿ ಸಾಧನ ಮತ್ತು ಸಾಮರ್ಥ್ಯ ಎರಡು ಪ್ರತ್ಯೇಕ ಅಗತ್ಯಗಳು. ರನ್ಟೈಮ್ /dev/net/tun ಅನ್ನು ಹಾದುಹೋಗಲು ಬಿಡಬೇಕು, ಮತ್ತು ಕಂಟೇನರ್ಗೆ ಇಂಟರ್ಫೇಸ್ ರಚಿಸಲು ನೆಟ್ವರ್ಕ್ ಸಾಮರ್ಥ್ಯ ಬೇಕು. ಎರಡನ್ನೂ ನೀಡದ rootless ರನ್ಟೈಮ್ ಪ್ರೊಫೈಲ್ ಹೇಗೆ ಬರೆದರೂ ಅದೇ ತೆರೆಯುವ ದೋಷವನ್ನು ಉತ್ಪಾದಿಸುತ್ತಲೇ ಇರುತ್ತದೆ. ಅನೇಕ OpenVZ ಹೋಸ್ಟ್ಗಳು ಗ್ರಾಹಕ ಪ್ಯಾನೆಲ್ನಲ್ಲಿ TUN/TAP ಟಾಗಲ್ ನೀಡುತ್ತವೆ, ಅದನ್ನು ಆನ್ ಮಾಡಿ ಮರುಪ್ರಾರಂಭಿಸಿದರೆ ಸಾಮಾನ್ಯವಾಗಿ ಇಡೀ ಪರಿಹಾರ ಅಷ್ಟೇ.
ಪೂರೈಕೆದಾರರಿಗೆ ಎರಡು ನಿಖರ ಪ್ರಶ್ನೆಗಳನ್ನು ಕೇಳಿ: ಹೋಸ್ಟ್ನಲ್ಲಿ tun ಮಾಡ್ಯೂಲ್ ಲೋಡ್ ಆಗಿದೆಯೇ, ಮತ್ತು ಈ ಇನ್ಸ್ಟೆನ್ಸ್ ಒಳಗೆ ಸಾಧನ ಲಭ್ಯವಿದೆಯೇ? ಅಸ್ಪಷ್ಟ ಟಿಕೆಟ್ಗೆ ಅಸ್ಪಷ್ಟ ಉತ್ತರ ಸಿಗುತ್ತದೆ.
ಮಾಡ್ಯೂಲ್ ಮರುನಿರ್ಮಾಣ ಅಪರೂಪವಾಗಿ ಸಹಾಯ ಮಾಡುವುದೇಕೆ
ಅತಿಥಿಯ ಒಳಗೆ ಮಾಡ್ಯೂಲ್ ನಿರ್ಮಿಸುವುದು ಅಪರೂಪವಾಗಿ ಸಹಾಯ ಮಾಡುತ್ತದೆ. ಕಂಪೈಲ್ ಮಾಡಲು ನಡೆಯುತ್ತಿರುವ ಕರ್ನಲ್ನ ನಿಖರ ಕಾನ್ಫಿಗ್ ಬೇಕು, ಮತ್ತು /proc/config.gz ಐಚ್ಛಿಕವಾಗಿದ್ದು ಕನಿಷ್ಠ ಇಮೇಜ್ಗಳಲ್ಲಿ ಹೆಚ್ಚಾಗಿ ಇರುವುದಿಲ್ಲ. ಕೆಲಸ ಮಾಡುವ ಮಾಡ್ಯೂಲನ್ನೂ ಕಂಟೇನರ್ ಒಡೆತನದಲ್ಲಿಲ್ಲದ ಕರ್ನಲ್ಗೆ ಸೇರಿಸಲಾಗದು.
ಸಾಧನ ಕಾಣಿಸಿಕೊಂಡ ನಂತರ ಸೇವೆಯನ್ನು ಮರುಪ್ರಾರಂಭಿಸಿ, ಟ್ರಾಫಿಕ್ ಪರೀಕ್ಷಿಸುವ ಮೊದಲು ಇಂಟರ್ಫೇಸ್ ದೃಢೀಕರಿಸಿ. tun0 ಕಾಣುವುದು ಡೀಮನ್ ಸಾಧನ ತೆರೆದಿದೆ ಎಂದು ತೋರಿಸುತ್ತದೆ. ಫಾರ್ವರ್ಡಿಂಗ್, ಫೈರ್ವಾಲ್ ನಿಯಮಗಳು ಅಥವಾ ಕ್ಲೈಂಟ್ಗಳು ಪಡೆಯುವ ಮಾರ್ಗಗಳ ಬಗ್ಗೆ ಅದು ಇನ್ನೂ ಏನೂ ಹೇಳುವುದಿಲ್ಲ.
ಇವು ಪ್ರತ್ಯೇಕ ಸಾಕ್ಷ್ಯವಿರುವ ಪ್ರತ್ಯೇಕ ಪ್ರಶ್ನೆಗಳು. ಸಾಧನ ಇಲ್ಲದಿರುವುದು ಪೂರ್ವಾಪೇಕ್ಷಿತ ವೈಫಲ್ಯ; ಇದ್ದರೂ ಏನನ್ನೂ ಸಾಗಿಸದ ಸುರಂಗ ನೀತಿ ವೈಫಲ್ಯ.