רשת אלחוטית בדביאן

פוסט זה נועד דבר ראשון בשביל תיעוד שלי על הדברים שעשיתי, ודבר שני שגם אתם תוכלו להיעזר בו במידה ואתם זקוקים לעזרה.

שימו לב שהרבה מהצעדים שעשיתי ידנית, נעשים עבורכם בהפצות שהן יותר "ידידותיות" (ידידותיות זה דבר יחסי) למשתמש, אם כי אני מוצא את הכתיבה הזו עדיפה על פני עבודה גרפית או "אוטומטית".

העברתי את המחשב שלי למקום אחר בבית, ולצערי אין ביכולתי למתוח כבלים בשביל שתהיה לי רשת חוטית, אז יש לי כרגע רשת אלחוטית עם router מבוסס לינוקס (WRT54GL) וכמובן מחשב מבוסס לינוקס.

למזלי, אני עובד בלינוקס, אחרת הייתי צריך עכשיו לקנות רשיון חדש של Windows. הסיבה היא כמובן שהחלפתי כמה רכיבי חומרה אצלי במחשב. למשל הוספתי לפני שנה זכרון למחשב, הוספתי כרטיס ISDN שעכשיו בכלל הסרתי אותו ושמתי במקומו כרטיס רשת אלחוטית (אני לא משתמש בISDN ואין לי מקום לעוד כרטיס). לפי הרשיון של מיקרוסופט הייתי צריך לשלם על רישיון חדש כאילו רכשתי מחשב מחדש… מזל שאני לא צריך לפחד מה BSA שהתעוררו לחיים כי אני עובד עם לינוקס. בכלל לדעתי זה הפתרון הכי טוב נגד הבריונות הזו -> לעבוד עם קוד פתוח ותוכנה חופשית במקום.

כאשר התקנתי את כרטיס הרשת, lspci זיהה אותו, וחיפוש קצר העלה שמדובר בדריברים של rt2500. התקנתי את הקוד יצרתי חבילה של המודולים והתקנתי אותם. תחפשו מידע על הפקודה m-a בדביאן, בשביל לעשות פעולה כזו אוטומטית. לאחר מכן הרצתי את modprobe והעלתי את המודול הנכון לאוויר ו… שום דבר לא קרה פרט לזה שהמודול היה באוויר.

הלכתי לקובץ שיצרתי ל modprobe ב

/etc/modprobe.d/

והגדרתי לו את השורה הבאה:

alias wlan0 rt2500

השורה אומרת שכאשר הדריבר של rt2500 נטען, תקצא device בשם wlan0. הבעיה היא שזה לא עבד ועדיין הדריבר היה באוויר וזהו. אז אין לי device כלשהו, אין לי פלט כלשהו בשום לוג אין כלום. חיפושים בגוגל לא העלו כלום, עד שהתחלתי להטריד את צפריר (תודה על העזרה ד"א), שעזר לי, אבל בסופו של דבר משהו שהוא אמר כיוון אותי לכיוון שלא חשבתי עליו (וגם הוא לא, אם כי הוא היה כיוון :)), וזה לבדוק את ההגדרות של udev.

הייתי צריך להגדיר ל udev חוק שאומר שכאשר המודול של rt2500 נטען לאוויר אז לטעון device עבור המודול שנטען. אתחול של udev לא עבד, וראיתי עוד כל מיני חוקים שקשורים לכרטיסי רשת כמו לתת חוק לפי כתובת ה mac, ובשביל זה הייתי צריך לכבות את המחשב ולהסתכל מה רשום על הכרטיס בפנים, אז עשיתי את זה, רשמתי את כתובת ה mac, ואחרי שדביאן עלה בשנית הכרטיס רשת זוהה כמו שצריך, עם device, וזהו לא צריך יותר מזה !

ההגדרה שלי בudev ד"א היא כזו:

DRIVERS=="rt2500" ACTION=="add", RUN+="/sbin/ifconfig $env{INTERFACE} up"

זה כל השינויים שעשיתי שקשורים לכרטיס רשת. במידה ואתם לא יודעים להתעסק עם udev, אנא תלמדו קודם לפני שאתם עושים ניסויים, אחרת אתם יכולים להרוס לכם את ההתנהגות של המחשב בלי שתבינו למה. את החוק הזה יצרתי בקובץ תחת /etc/udev/rules.d/ אשר החזיק priority לפני השם. במקרה שלי הלכתי לפי כרטיסי רשת אחרים, ונתתי את קדימות מספר 85, כלומר:

85-rt2500

בתור שם הקובץ.

השלב הבא היה להגדיר את etc/network/interfaces/ ששם דביאן מחזיק את ההגדרות לכל device של כרטיס רשת בו אנחנו רוצים להשתמש. העניין הוא וזה חשוב מאוד: צריך להתקין כמה כלים מאוד חשובים בלינוקס לטיפול בתקשורת אלחוטית לפני השלב הבא, דבר שעשיתי עוד לפני התקנת הכרטיס רשת. הכלים הם wireless-tools וכלי אחר מאוד חשוב הוא wpasupplicant אשר אחראי על עבודה עם תקשורת מקודדת.

עכשיו בהגדרות של interfaces הסתבכתי היות וזו הפעם הראשונה שאני מגדיר ידנית הגדרות לכרטיס רשת אלחוטי בקובץ הזה. חיפושים בגוגל מראים תמיד אותו הדבר (כמעט כולם) ולהרבה היו את אותם הבעיות שאני נתקלתי בהם כאשר עבדתי עם pre-up וזה שגיאה ש ioctl של הכרטיסי רשת שלי היא לא פרטית. אחרי מחקר ארוך ומייגע, למדתי שלא צריך לעבוד עם pre-up אלא להגדיר קובץ חוקים בשם wpa_supplicant.conf (אני שמתי אותו תחת /etc/) ששם הגדרתי את כל מה שצריך עבור החיבור רשת האלחוטי שלי ומשם הוא צריך לשאוב את ההגדרות.

עכשיו קובץ הinterfaes שלי מכיל משהו בסגנון הבא (שימו לב שזה לא באמת ההגדרות, אלא שיניתי אותם קצת בשביל הפוסט הזה):

auto wlan0
allow-hotplug wlan0

iface wlan0 inet static
address 192.168.4.130
netmask 255.255.255.0
gateway 192.168.4.1
dns-nameservers 11.12.13.14,15.16.17.18
wireless-essid essid-name
wpa-conf /etc/wpa_supplicant.conf

כאמור זה לא באמת הגדרות הרשת האמיתיות אצלי, (שימו לב ל nameserver שהכתובות IP שם אינן נכונות בכלל, וגם הרשת הפנימית אצלי בבית שונה לגמרי מכתובות המוצגות כאן, וכן צריך להחליף את essid-name בשם של הרשת האלחוטית שלכם).

עכשיו הרצתי את הפקודה

/etc/init.d/networking restart

בשביל לקבל את הרשת עובדת, העפתי את eth0 כי רציתי שהוא לא יהיה פעיל ולעבוד בצורה אלחוטית, ו… שום דבר ! אין לי dns אין לי gateway אפילו אין לי גישה ל router. שברתי את הראש למעלה מ5 שעות עד שחשבתי פתאום על ה firewall שלי. אני עובד על המחשב עם shorewall שהוא סקריפט ממש נחמד לעבודה עם iptables. החלטתי לכבות אותו (שזה אומר להעיף את כל החוקים מ iptables) ופתאום הכל עובד. תמיד זה הבעיות הפשוטות [להגדיר את ה device של הכרטיס רשת אלחוטית במקרה הזה]) שגונבות ממך את כל האנרגיה והזמן, ובסוף שורה אחת בקובץ ההגדרות היא מה שמשנה. אחרי שהוספתי לקובץ interfaces של shorewall את wlan0 והרמתי את iptables חזרה, והכל התחיל לעבוד ! עכשיו אני כותב את שורות אלו תחת רשת אלחוטית.

5 מחשבות על “רשת אלחוטית בדביאן

  1. רפי גורדון

    עידו,
    ראשית תודה על הפוסט הזה, אני משוכנע שהוא יכול להיות לעזר לאנשים שמנסים לעבוד עם
    wireless.
    שנית, יש לי אליך מספר שאלות:
    1) האם הכרטיס רשת האלחוטי שקניתי תומך ב- master mode
    2) ואם כן – האם חשבת לנסות לקנפג את הכרטיס להיות ACCESS POINT?

    אני יודע בוודאות שישנם מספר כרטיסי רשת אלחוטיים שמאפשרים master mode; ושניתן לקנפג אותם כ-access point

    רפי

  2. ik_5 מאת

    דבר ראשון אין בעד מה.
    1.לפי מה שקראתי פעם, כל כרטיס רשת תומך ב Master mode זה הכל שאלה של דריברים. יש הרבה בעיות שמשרדי התקשורת בעולם עושים מבחינה של רכיבים אלחוטיים, בשביל שלא יהיה אפשר לשדר ולקלוט בכל תדר (תאורטית זה אפשרי עם כרטיס רשת אלחוטי) יש לך הרבה הגבלות, והרבה פעמים גם לא מספקים לך את כל המידע בשביל שתיצור דריבר כמו שצריך.

    2. לא ניסיתי לעבוד בתור Access point, אם כי אני כן רוצה לנסות פעם 🙂

  3. רפי גורדון

    תודה על תשובתך.
    איני מבין משהו כאן:
    לפי הבנתי, הטווח של כרטיס רשת אלחוטי רגיל הוא מוגבל מאוד , כלומר רדיוס של כמה עשרות
    מטרים.
    אם כך – מה העניין של
    "בשביל שלא יהיה אפשר לשדר ולקלוט בכל תדר "?
    אם הטווח הוא קטן, ומיועד לסביבה ביתי – למה זה ישנה למישהו?
    ואגב – יש לך מושג איך ניתן לבדוק אם כרטיס תומך ב-master mode?
    בברכה,
    רפי

  4. Jabka Atu

    משהוא קטן שלא העלת זה נושא הקרנל וגירסת הדריבר כידוע היתה החלפה ל r2XXX של חלק מהמודולים.

    שים לב ש auto ו hotplug ביחד זה מתכון לצרות.

  5. ik_5 מאת

    רפי, כמו בכל דבר אחר, זה תמיד אודות שליטה. הסיבה שהרבה זמן לא אישרו בארץ את blue tooth היתה בגלל שגופים של משרד הביטחון היו הבעלים של התדרים. זה לא חשוב שהתדרים האלו עובדים בטווח קצר, ומי שבאמת רוצה לרגל או לעשות משהו יכול לעשות זאת ע"י בנייה מקומית של מכשירים כאלו, זה היה יותר עניין של שליטה.

    ג'בקה, הקרנל הוא 2.6.26-1-amd64 שהתקנתי מ debian testing (לא עשיתי התאמות מיוחדות).

    לגבי hotplug ו auto, לא ידעתי את זה, תודה על המידע

להשאיר תגובה

הזינו את פרטיכם בטופס, או לחצו על אחד מהאייקונים כדי להשתמש בחשבון קיים:

הלוגו של WordPress.com

אתה מגיב באמצעות חשבון WordPress.com שלך. לצאת מהמערכת / לשנות )

תמונת Twitter

אתה מגיב באמצעות חשבון Twitter שלך. לצאת מהמערכת / לשנות )

תמונת Facebook

אתה מגיב באמצעות חשבון Facebook שלך. לצאת מהמערכת / לשנות )

תמונת גוגל פלוס

אתה מגיב באמצעות חשבון Google+ שלך. לצאת מהמערכת / לשנות )

מתחבר ל-%s