TUN/TAP: ಅಮಾನ್ಯ ಆರ್ಗ್ಯುಮೆಂಟ್ — OpenVPN ಫ್ರೇಮಿಂಗ್ ಹೊಂದಿಕೆಯಾಗುತ್ತಿಲ್ಲ
ಕೋಡ್ 22 ರ ಬರವಣಿಗೆ ದೋಷಗಳು ಸಾಮಾನ್ಯವಾಗಿ ಎರಡೂ ತುದಿಗಳು ಡೇಟಾ-ಪ್ಯಾಕೆಟ್ಗಳ ಫ್ರೇಮಿಂಗ್ ಬಗ್ಗೆ ಒಪ್ಪಿಕೊಳ್ಳುತ್ತಿಲ್ಲ ಎಂದು ಅರ್ಥ, ಡ್ರೈವರ್ ದೋಷವಲ್ಲ. ಎರಡೂ ತುದಿಗಳಲ್ಲಿ ಸಂಕೋಚನವನ್ನು ಹೋಲಿಸಿ, ನಂತರ ಸಾಧನದ ಪ್ರಕಾರ.
ಕ್ಲೈಂಟ್ ದೃಢೀಕರಣ ಮಾಡುತ್ತದೆ, ಲಾಗ್ ಸಂಪರ್ಕಗೊಂಡಿದೆ ಎನ್ನುತ್ತದೆ, ಮತ್ತು ಯಾವುದೇ ಪ್ಯಾಕೆಟ್ ಸುರಂಗವನ್ನು ದಾಟುವುದಿಲ್ಲ. ಸರ್ವರ್ write to TUN/TAP: Invalid argument (code=22) ನೊಂದಿಗೆ ಪ್ರಯತ್ನವನ್ನು ಕೊನೆಗೊಳಿಸುತ್ತದೆ, ಅದು ಡ್ರೈವರ್ ದೋಷದಂತೆ ಕಾಣುತ್ತದೆ ಮತ್ತು ಸಾಮಾನ್ಯವಾಗಿ ಹಾಗಲ್ಲ. ರೌಟರ್ಗಳು ಮತ್ತು ಸಣ್ಣ Linux ಸರ್ವರ್ಗಳಲ್ಲಿ ಆ ಸಾಲು ಹೆಚ್ಚಾಗಿ ಎರಡೂ ತುದಿಗಳು ಡೇಟಾ-ಪ್ಯಾಕೆಟ್ಗಳನ್ನು ಹೇಗೆ ಫ್ರೇಮ್ ಮಾಡಬೇಕು ಎಂಬುದರ ಬಗ್ಗೆ ಒಪ್ಪಿಕೊಳ್ಳುತ್ತಿಲ್ಲ ಎಂದು ಅರ್ಥ, ಆದ್ದರಿಂದ ಕರ್ನೆಲ್ ತನಗೆ ನೀಡಿದ ಡೀಕ್ರಿಪ್ಟ್ ಆದ ಬಫರ್ ಅನ್ನು ತಿರಸ್ಕರಿಸುತ್ತದೆ. ಆ ಹಂತದಲ್ಲಿ ರೌಟಿಂಗ್ ಅನ್ನು ಇನ್ನೂ ಪರೀಕ್ಷಿಸಲಾಗಿಲ್ಲ.
ಸರಿಯಾದ ರೌಟಿಂಗ್ ಟೇಬಲ್ ಮತ್ತು ಮುರಿದ ಫ್ರೇಮಿಂಗ್ ಒಪ್ಪಂದವು ಕ್ಲೈಂಟ್ನಿಂದ ಒಂದೇ ರೀತಿ ಕಾಣುತ್ತವೆ: ಸಂಪರ್ಕಗೊಂಡಿದೆ, ಮತ್ತು ಏನೂ ಕೆಲಸ ಮಾಡುತ್ತಿಲ್ಲ.
ಸುರಂಗ ಏರುತ್ತದೆ ಮತ್ತು ಅದನ್ನು ಯಾವುದೂ ದಾಟುವುದಿಲ್ಲ
ಸುರಂಗ ಸಾಧನದಲ್ಲಿ ಬರವಣಿಗೆ ದೋಷಗಳು ಡೀಕ್ರಿಪ್ಶನ್ ನಂತರ ಮತ್ತು ರೌಟಿಂಗ್ ಮೊದಲು ಸಂಭವಿಸುತ್ತವೆ. ಡೀಮನ್ ಪ್ಯಾಕೆಟ್ ಅನ್ನು ಡೀಕ್ರಿಪ್ಟ್ ಮಾಡಿ ಇಂಟರ್ಫೇಸ್ಗೆ ನೀಡುತ್ತದೆ, ಮತ್ತು ಬಫರ್ ಆ ಸಾಧನ ನಿರೀಕ್ಷಿಸುವುದಕ್ಕೆ ಹೊಂದಿಕೆಯಾಗದ ಕಾರಣ ಇಂಟರ್ಫೇಸ್ ಅದನ್ನು ತಿರಸ್ಕರಿಸುತ್ತದೆ. ಕೋಡ್ 22 ಅಮಾನ್ಯ ಆರ್ಗ್ಯುಮೆಂಟ್ನ ಸಾಮಾನ್ಯ ಉತ್ತರ, ಆದ್ದರಿಂದ ಉಪಯುಕ್ತ ಮಾಹಿತಿ ಪದರ: ಇದು ಡೇಟಾ ಮಾರ್ಗ, ಹ್ಯಾಂಡ್ಶೇಕ್ ಅಲ್ಲ. ನಿನ್ನೆ ಸಂಚಾರ ನಡೆಯುತ್ತಿದ್ದು ಇಂದು ಯಾವುದೇ ಕಾನ್ಫಿಗರೇಶನ್ ಬದಲಾವಣೆ ಇಲ್ಲದೆ ನಿಂತರೆ, ನೆಟ್ವರ್ಕ್ ಮೇಲೆ ಸಂಶಯಪಡುವ ಮೊದಲು ಡೀಫಾಲ್ಟ್ ಅನ್ನು ಸರಿಸಿದ ಪ್ಯಾಕೇಜ್ ಅಥವಾ ಫರ್ಮ್ವೇರ್ ನವೀಕರಣದ ಮೇಲೆ ಸಂಶಯಪಡಿ.
ಮೊದಲ ದೋಷದ ಬದಲು ಡೇಟಾ-ಚಾನೆಲ್ ಸೆಟಪ್ ಸುತ್ತಮುತ್ತಲಿನ ಲಾಗ್ ಓದಿ. ಒಪ್ಪಿದ ಸಂಕೋಚನ ಮೋಡ್, dev ಪ್ರಕಾರ ಮತ್ತು ಪುಷ್ ಮಾಡಿದ ಆಯ್ಕೆಗಳು ಎಲ್ಲಾ ಹೆಚ್ಚಿನ ವರ್ಬೋಸಿಟಿಯಲ್ಲಿ ಕಾಣಿಸುತ್ತವೆ, ಮತ್ತು ಅವು ಮೂರು ಅಸಂಗತಿಗಳಲ್ಲಿ ಯಾವುದು ನಿಮ್ಮಲ್ಲಿದೆ ಎಂದು ಹೇಳುತ್ತವೆ.
ಸಂಕೋಚನವು ಫ್ರೇಮಿಂಗ್, ಬ್ಯಾಂಡ್ವಿಡ್ತ್ ಅಲ್ಲ
ಸಂಕೋಚನ ಸಕ್ರಿಯವಾದಾಗ, ಪ್ರತಿ ಡೇಟಾ-ಪ್ಯಾಕೆಟ್ ಅದನ್ನು ಹೇಗೆ ಎನ್ಕೋಡ್ ಮಾಡಲಾಗಿದೆ ಎಂಬುದನ್ನು ವಿವರಿಸುವ ಹೆಡರ್ ಅನ್ನು ಹೊತ್ತೊಯ್ಯುತ್ತದೆ, ಮತ್ತು ಎರಡೂ ತುದಿಗಳು ಆ ಹೆಡರ್ ಬಗ್ಗೆ ಒಪ್ಪಬೇಕು. ಹಳೆಯ ಮಾದರಿ ಕಾನ್ಫಿಗರೇಶನ್ನಿಂದ ಇನ್ನೂ comp-lzo ಹೊತ್ತಿರುವ ಸರ್ವರ್, ಸಂಕೋಚನ ಸಾಲಿಲ್ಲದ ಕ್ಲೈಂಟ್ನೊಂದಿಗೆ ಜೋಡಣೆಯಾದಾಗ ನಿಖರವಾಗಿ ಈ ದೋಷವನ್ನು ಉಂಟುಮಾಡುತ್ತದೆ: ಸರ್ವರ್ ಕ್ಲೈಂಟ್ ಎಂದಿಗೂ ಬರೆಯದ ಹೆಡರ್ ಅನ್ನು ನಿರೀಕ್ಷಿಸುತ್ತದೆ. comp-lzo ಅನ್ನು compress lz4-v2 ನೊಂದಿಗೆ ಮಿಶ್ರಣ ಮಾಡುವುದು ಸಹ ಅದೇ ರೀತಿ ವಿಫಲವಾಗುತ್ತದೆ, ಏಕೆಂದರೆ ಎರಡನ್ನೂ ಸಂಕೋಚನ ಎಂದು ಕರೆದರೂ ಅಲ್ಗಾರಿದಮ್ಗಳು ಭಿನ್ನ. ಆಧುನಿಕ ಲಿಂಕ್ಗಳಲ್ಲಿ ಆಯ್ಕೆಯು ಬ್ಯಾಂಡ್ವಿಡ್ತ್ ವೈಶಿಷ್ಟ್ಯವಲ್ಲ, ಬದಲಾಗಿ ಫ್ರೇಮಿಂಗ್ ಒಪ್ಪಂದ.
ಆವೃತ್ತಿಗಳ ನಡವಳಿಕೆ ಒಂದು ಬಲೆ ಸೇರಿಸುತ್ತದೆ. 2.5 ಸರಣಿಯು ಸಂಕೋಚನ ಆಯ್ಕೆಗಳಿಗೆ ಅಪ್ರಚಲಿತ ಎಚ್ಚರಿಕೆಗಳನ್ನು ನೀಡಲು ಪ್ರಾರಂಭಿಸಿತು, ಮತ್ತು 2.6 ಸಂಕುಚಿತ ಪ್ಯಾಕೆಟ್ಗಳನ್ನು ತಿರಸ್ಕರಿಸುವುದು ಮತ್ತು ಡೇಟಾವನ್ನು ಸರಳವಾಗಿ ಸಂಕುಚಿತಗೊಳಿಸದೆ ಬಿಡುವುದರ ನಡುವೆ ಗೆರೆ ಎಳೆಯುತ್ತದೆ. ಆದ್ದರಿಂದ ರೌಟರ್ ಫರ್ಮ್ವೇರ್ ನವೀಕರಣವು ಯಾರೂ ಸುರಂಗವನ್ನು ಸಂಪಾದಿಸದೆಯೇ ಪರಿಣಾಮಕಾರಿ ಒಪ್ಪಂದವನ್ನು ಬದಲಿಸಬಹುದು.
ಎರಡೂ ತುದಿಗಳನ್ನು ಹೊಂದಿಸಿ ಅಥವಾ ಎರಡರಿಂದಲೂ ತೆಗೆದುಹಾಕಿ
ಪ್ರತಿ ಸಂಕೋಚನ ಸೂಚನೆಯನ್ನು ಪಟ್ಟಿ ಮಾಡಿ: ಸರ್ವರ್ ಫೈಲ್, ಪುಷ್ ಮಾಡಿದ ಯಾವುದೇ ಆಯ್ಕೆಗಳು, ಕ್ಲೈಂಟ್-ನಿರ್ದಿಷ್ಟ ಫೈಲ್ಗಳು ಮತ್ತು ಕ್ಲೈಂಟ್ ಪ್ರೊಫೈಲ್. ಸರ್ವರ್ನಲ್ಲಿನ comp-lzo ಗೆ ಕ್ಲೈಂಟ್ನಲ್ಲಿ ಅದೇ ಪದ ಬೇಕು, ಮತ್ತು adaptive ಹಳೆಯ ಬಿಲ್ಡ್ಗಳಲ್ಲಿ ಬರಿ ಆಯ್ಕೆ ಸಾಮಾನ್ಯವಾಗಿ ಅರ್ಥೈಸುವ ಪರಂಪರೆಯ ಡೀಫಾಲ್ಟ್. LZO ಅಥವಾ ಸಂಕೋಚನ ಎಂದು ಲೇಬಲ್ ಮಾಡಿದ ರೌಟರ್ನ GUI ಸ್ವಿಚ್ ಅದೇ ಆಯ್ಕೆಯನ್ನು ಬರೆಯುತ್ತದೆ, ಆದ್ದರಿಂದ ಅಲ್ಗಾರಿದಮ್ಗಳನ್ನು ಮಿಶ್ರಣ ಮಾಡುವ ಬದಲು ಹೊಂದಿಕೆಯಾಗುವಂತೆ ಹೊಂದಿಸಿ. ಹೋಲುವ ಹೆಸರು ಹೊಂದಾಣಿಕೆಯಾಗುತ್ತದೆ ಎಂದು ಭಾವಿಸಬೇಡಿ.
ಸಂಕೋಚನ ಬೇಡವಾದರೆ, ಎರಡೂ ತುದಿಗಳಿಂದ ಉದ್ದೇಶಪೂರ್ವಕವಾಗಿ ತೆಗೆದುಹಾಕಿ. ಸರ್ವರ್ನಲ್ಲಿನ allow-compression no ಸಂಕುಚಿತ ಪ್ಯಾಕೆಟ್ಗಳನ್ನು ತಿರಸ್ಕರಿಸುತ್ತದೆ, ಆದರೆ ಕ್ಲೈಂಟ್ಗಳು ಅವುಗಳನ್ನು ನೀಡುವುದನ್ನು ನಿಲ್ಲಿಸಿದ ನಂತರವೇ; ಕ್ಲೈಂಟ್ ಇನ್ನೂ ಸಂಕೋಚನವನ್ನು ಕಳುಹಿಸುತ್ತಿರುವಾಗ ಅದನ್ನು ಅನ್ವಯಿಸುವುದು ಇನ್ನೊಂದು ದಿಕ್ಕಿನಲ್ಲಿ ಅಸಂಗತಿಯನ್ನು ಮತ್ತೆ ಸೃಷ್ಟಿಸುತ್ತದೆ.
ಪುಷ್ ಮತ್ತು ಸಾಧನದ ಪ್ರಕಾರವನ್ನು ಪರಿಶೀಲಿಸಿ
ಸರ್ವರ್ ತನ್ನ ಮುಖ್ಯ ಫೈಲ್ನಿಂದ ಅಥವಾ ಕ್ಲೈಂಟ್-ನಿರ್ದಿಷ್ಟ ಫೈಲ್ನಿಂದ ಸಂಕೋಚನ ಸೂಚನೆಯನ್ನು ಪುಷ್ ಮಾಡಬಹುದು, ಮತ್ತು ಕ್ಲೈಂಟ್ pull-filter ನೊಂದಿಗೆ ಪುಷ್ ಮಾಡಿದ ಆಯ್ಕೆಗಳನ್ನು ಬಿಟ್ಟುಬಿಡಬಹುದು. ವರ್ಬೋಸಿಟಿ 4 ನಲ್ಲಿ ಒಂದು ಕ್ಲೈಂಟ್ ಸಂಪರ್ಕಿಸಿ, ಸರ್ವರ್ ಘೋಷಿಸಿದ್ದನ್ನು ಕ್ಲೈಂಟ್ ಸ್ವೀಕರಿಸಿದ್ದಕ್ಕೆ ಹೋಲಿಸಿ ಓದಿ, ನಂತರ ಯಾವುದೇ ಫಿಲ್ಟರ್ ಅದನ್ನು ತೆಗೆದುಹಾಕಿಲ್ಲ ಎಂದು ಖಚಿತಪಡಿಸಿ. ಎರಡೂ ಕಡೆ ಈಗ ಒಪ್ಪಿಕೊಂಡರೂ ದೋಷ ಉಳಿದರೆ, ಸಾಧನದ ಪ್ರಕಾರವನ್ನು ನೋಡಿ: ಒಂದು ತುದಿಯಲ್ಲಿ dev tap ಮತ್ತು ಇನ್ನೊಂದರಲ್ಲಿ dev tun ಫ್ರೇಮ್ಗಳನ್ನು ವಿನಿಮಯ ಮಾಡಿಕೊಳ್ಳಲಾರವು, ಮತ್ತು ಕರ್ನೆಲ್ ಸಹ ಅದೇ ರೀತಿ ಬರವಣಿಗೆಯನ್ನು ತಿರಸ್ಕರಿಸುತ್ತದೆ.
ಬ್ರಿಡ್ಜ್ ಮಾಡಿದ TAP ನಿಯೋಜನೆಗೆ ಸರ್ವರ್ನಲ್ಲಿ ನಿಜವಾದ ಬ್ರಿಡ್ಜ್ ಬೇಕು, ಬೇರೆ ಸಾಧನದ ಹೆಸರು ಮಾತ್ರವಲ್ಲ. ಇಂಟರ್ಫೇಸ್ ಅನ್ನು ಬ್ರಿಡ್ಜ್ಗೆ ಸೇರಿಸದೆ tap0 ಎಂದು ಮರುನಾಮಕರಣ ಮಾಡಿದರೆ ಬರವಣಿಗೆಯನ್ನು ಸ್ವೀಕರಿಸಿ ಎಲ್ಲಿಗೂ ಹೋಗದ ಸಾಧನ ಉಂಟಾಗುತ್ತದೆ.
ನಂತರ ಒಂದು ಕ್ಲೈಂಟ್ ಮತ್ತು ಒಂದು ಗಮ್ಯಸ್ಥಾನದೊಂದಿಗೆ ಪರಿಶೀಲಿಸಿ: ಸರ್ವರ್ನ ಸುರಂಗ ವಿಳಾಸಕ್ಕೆ ಪಿಂಗ್ ಮಾಡಿ, ನಂತರ ಅದರ LAN ನಲ್ಲಿನ ಹೋಸ್ಟ್ಗೆ. ಮೊದಲನೆಯದು ಡೇಟಾ-ಚಾನೆಲ್ ಅನ್ನು ಸಾಬೀತುಪಡಿಸುತ್ತದೆ ಮತ್ತು ಎರಡನೆಯದು ಫಾರ್ವರ್ಡಿಂಗ್.