ההפעלה הראשונה נכשלת עם הודעה על /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 של ההתקן הם החשודים הבאים. אלה תיקונים מקומיים, לא בקשות לספק.

במכולה, המארח הוא הבעלים של ההתקן

במכולה, ההתקן והיכולת הם שתי דרישות נפרדות. ה-runtime חייב להעביר את /dev/net/tun, והמכולה זקוקה ליכולת הרשת כדי ליצור ממשק. runtime ללא root שלא מעניק אף אחד מהם ימשיך לייצר את אותה שגיאת פתיחה בכל ניסוח של הפרופיל. מארחי OpenVZ רבים מציגים מתג TUN/TAP בפאנל הלקוח, והפעלתו יחד עם אתחול היא לעיתים קרובות כל הפתרון.

שאלו את הספק שתי שאלות מדויקות: האם מודול tun טעון במארח, והאם ההתקן זמין בתוך המופע הזה? קריאה מעורפלת מקבלת תשובה מעורפלת.

מדוע בנייה מחדש של המודול לעיתים רחוקות עוזרת

בניית מודול בתוך האורח לעיתים רחוקות עוזרת. ההידור דורש את התצורה של הקרנל שרץ בדיוק, ו-/proc/config.gz הוא אופציונלי ולעיתים קרובות חסר בתמונות מינימליות. אפילו מודול עובד אינו יכול להיות מוכנס לקרנל שהמכולה אינה מחזיקה בו.

לאחר שההתקן מופיע, הפעילו מחדש את השירות ואמתו את הממשק לפני בדיקת תעבורה. לראות את tun0 מראה שהדמון פתח את ההתקן. זה עדיין לא אומר דבר על העברה, חוקי firewall או המסלולים שהלקוחות מקבלים.

אלה שאלות נפרדות עם ראיות נפרדות. התקן חסר הוא כשל בתנאי מוקדם; מנהרה שקיימת אך אינה נושאת דבר היא כשל מדיניות.

מאמרים קשורים