חיפוש
  • יניב אור

הגדרת כרטיס רשת אלחוטי כ-Access Point - על RPi

עודכן ב: 22 אוג 2019

המטרה היא, דבר ראשון, להפוך את ה-RPi לנייד. כלומר, שלא יהיה מחובר לראוטר באמצעות כבל רשת. את זה אני יכול להשיג, כמובן, בהתחברות לרשת האלחוטית הביתית - והוא אכן מקונפג לזה.

ראה: התקנת מערכת הפעלה על Raspberry Pi - מ-Windows 10.


מעבר לניידות, אני לא רוצה להיות תלוי ברשת אלחוטית קיימת - כך שאצטרך סיסמא וכולי, מחוץ לבית, למשל - רק כדי להתחבר לרספברי פיי. לכן, הפיכת כרטיס הרשת שמחובר אליו, ל-Access Point - זה פיתרון טוב.


בהמשך, אשתמש בכרטיס רשת אלחוטי נוסף שיהיו לו שני שימושים בו זמנית:

יהיה monitor mode לסריקת רשתות והוא גם יוגדר כ-managed כך שיוכל להתחבר לרשתות. אבל זה בהמשך, בפוסט נפרד.


לעניין ה-AP - מדובר על כרטיס רשת: Edimax EW-7811Un על RPi גירסה 2 -Raspbian Stretch Lite. כמו כן, ה-RPi מחובר ישירות לראוטר הביתי עם כבל רשת (במטרה לנתק בהמשך).


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

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


את הוידאו הבא הקלטתי לפני כמה חודשים במטרה להוסיף קריינות בהמשך. בינתיים, אכתוב את המלל.


0:00-0:08 - התחברות ל-RPi ממכונת Windows 10 באמצעות SSH.

0:08-0:27 - אני מריץ ifconfig כדי להראות את המצב הנוכחי של רכיבי הרשת. כרטיס אתרנט eth0 - כתובת 192.168.1.2. כרטיס אלחוטי wlan0 - כתובת 192.168.1.8.

מריץ iwconfig כדי להראות את המצב של כרטיסי הרשת האלחוטיים. wlan0 מוגדר כ-managed ומחובר לראוטר הביתי.

0:27-0:47 - אני מתקין שתי תוכנות: hostapd שתפקידה לקנפג את כרטיס הרשת כ-AP והתוכנה dnsmasq שמנהלת את ה-DNS ברשת שנוצרה.

0:47-1:11 - עצירת שני ה-services הללו ואתחול למערכת (הערה: עצירת ה-services מיותרת).

1:11-1:19 - התחברות מחדש.

1:19-1:58 - עריכת dhcpcd.conf והגדרת כתובת איי-פי סטטית 192.168.4.1 ל-wlan0. לאחר מכן, אתחול dhcpcd.

1:58-2:10 - אתחול המערכת והתחברות דרך SSH.

2:10-2:17 - אני מריץ ifconfig כדי להראות ש-wlan0 לא קיבל כתובת איי-פי.

2:17-2:45 - מאתחל את dhcpcd.

2:45-3:15 - יצירת גיבוי ל-dnsmasq.conf המקורי ויצירת חדש ובו מוגדר ה-dhcp range ל-wlan0.

3:15-3:35 - עריכת ההגדרות ב-hostapd.conf.

3:35-3:45 - יצירת psk באמצעות wpa_passphrase.

3:45-4:16 - עדכון hostapd.conf עם ה-psk מהשלב הקודם.

4:16-4:35 - יצירת קישור למיקום ה-hostapd.

4:35-4:50 - אתחול hostapd. שגיאה על מיסוך ה-service.

4:50-5:03 - ביטול המיסוך ואתחול. אין שגיאה.

5:03-5:11 - אתחול dnsmasq.

5:11-5:25 - אפשור ip forwarding ב-sysctl.conf.

5:25-5:35 - הגדרות רלוונטיות בפיירוול iptables.

5:35-5:46 - אתחול המערכת והתחברות מחדש.

5:46-5:57 - אני מראה ש-wlan0 לא קיבל איי-פי ושהוא לא מחובר לשום רשת אלחוטית.

5:57-6:20 - אתחול שני הסרביסים: hostapd ו-dnsmasq.

6:20-6:29 - מריץ ifconfig ומראה ש-wlan0 קיבל את הכתובת 192.168.4.1.

6:29-6:38 - מריץ iwconfig ומראה ש-wlan0 מוגדר כ-Master וכ-Access Point ושאר הפרטים.

6:38-6:51 - אני מראה שהרשת שיצרתי מופיעה ברשימה של הרשתות להתחברות אלחוטית.

6:51-7:46 - מתנתק מה-RPi חזרה לווינדוס, מקליק על הרשת שיצרתי, מכניס סיסמא ומתחבר.

7:46-7:56 - מדגיש את העובדה שיש חיבור לרשת אבל אין אינטרנט.

7:56-8:10 - מתחבר ל-RPi אבל הפעם דרך הכתובת שיצר, בניגוד לפעמים הקודמות שהיה מחובר לרשת הביתית.

8:10-8:22 - פינג ל-google.com מתוך ה-RPi - יש פינג. לשים לב, ה-RPi מחובר לראוטר עם כבל רשת.

8:22-8:50 - פינג לגוגל מהווינדוס - אין פינג - לא איי-פי ולא דומיין. כזכור, הווינדוס כרגע מחובר לרשת שפתח ה-RPi.

8:50-9:10 - מתקין את bridge-utils שזה בדיוק הרכיב שחסר כדי לקשר בין המידע שעובר ב-eth0 למידע שעובר ב-wlan0 ובעצם לחבר את ה-Access Point לעולם החיצון.

9:10-9:29 - עצרתי את hostapd והדבר גרם לניתוק, כמובן. יצאתי לווינדוס.

9:29-9:48 - התחברתי שוב ל-RPi, הפעם דרך eth0.

9:48-10:03 - מתחבר שוב ומראה של-wlan0 אין איי-פי והוא לא מחובר.

10:03-10:25 - עורך את dhcpcd ומגדיר להתעלם מ-eth0 ו-wlan0 - כך שלא יקצה להם איי-פי.

10:25-10:31 - משתמש ב-brctl ליצור br0.

10:31-10:45 - מראה ב-ifconfig את br0 ואת מצב רכיבי הרשת.

10:45-10:58 - יצרתי חיבור בין br0 ל-eth0.

10:58-11:14 - מראה את מצב רכיבי הרשת.

11:14-11:32 - עורך את network/interfaces ומגדיר את br0 ומקשר בינו לבין eth0 ו-wlan0.

11:32-11:57 - עורך את hostapd.conf ומוסיף לשם את הגשר br0. הדרייבר nl80211 כבר לא רלוונטי.

11:57-12:11 - אתחול למערכת והתחברות מחדש (דרך eth0).

12:11-12:26 - אני מריץ ifconfig ומראה ש-br0 קיבל איי-פי ומעתה ל-eth0 ול-wlan0 אין כתובת איי-פי.

12:26-12:34 - מריץ iwconfig ומראה ש-wlan0 לא מחובר לרשת כלשהי.

12:34-12:51 - אתחול לסרביסים: hostapd ו-dnsmasq.

12:51-13:04 - מריץ ifconfig ו-iwconfig ומראה ש-wlan0 הוא Access Point.

13:04-13:15 - ומופיע ברשימת רשתות אלחוטיות בווינדוס.

13:15-13:47 - אני מתחבר לרשת שיצר ה-RPi בהקלקה על הרשומה ברשימת הרשתות ומראה שהפעם יש אינטרנט.

13:47-13:54 - פינג ל-google.com מהווינדוס - יש פינג 👍


זה נחמד ויפה אבל בהמשך ניסיתי שהכל יעבוד באתחול ה-RPi וזה בינתיים לא צלח. דבר נוסף, המטרה היא לנתק את הכבל רשת. מה שניסיתי זה להשתמש בשני כרטיסי רשת - אחד כ-Access Point והשני מצב רגיל ומוניטור בו-זמנית. ניסיתי לחבר bridge בין שניהם אבל זה לא הצליח לי בינתיים.


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

0:00-0:20 - אתחול ל-RPi והתחברות אליו.

0:20-0:31 - בדיקת הסטטוס הנוכחי של dnsmasq - פעיל ותקין.

0:31-0:50 - בדיקת הסטטוס של hostapd - לא פעיל (מת).

0:50-1:11 - אתחול hostapd ובדיקת סטטוס - פעיל ותקין.

1:11-1:21 - עריכת הקובץ rc.local. הסקריפט הזה רץ בסיום כל runlevel רב משתמשים (2-5).

1:21-1:43 - אני מוסיף לקובץ אתחול ל-hostapd.

1:43-2:05 - אתחול למערכת והתחברות מחדש.

2:05-2:12 - בדיקת הסטטוס של hostapd - פעיל.

2:12-3:15 - עורך שוב את rc.local ונותן הוראה לשנות את הכתובת MAC של eth0 ושל br0.

3:15-3:45 - עורך את modprobe.d/8192cu.conf - קובץ ההגדרות לדרייבר (מודול) של הרשת אלחוטית. שיניתי את ה-MAC של הכרטיס רשת.

3:45-4:04 - ערכתי את sysctl.conf והגדרתי להתעלם מטיפול ב-IPv6.

4:04-4:23 - אתחול למערכת והתחברות מחדש.

4:23-4:44 - מריץ ifconfig ומראה שהכתובות MAC אכן השתנו. לשים לב לכתובות האיי-פי שהתקבלו. eth0 קיבל משהו מוזר: 169.254.185.103. קראתי על זה קצת וכנראה זה מראה על שגיאה כלשהי. מכאן הדברים הפסיקו לעבוד. לדעתי, קיבלתי banned מהראוטר עצמו או מה-ISP (שמקנפג את הראוטר מרחוק) מכיוון ששיניתי את ה-MAC או מסיבה אחרת. זאת השערה, אני לא מספיק מומחה בעניין.


* בשלב הזה אני מחזיר את כל ההגדרות אחורה, לפני ה-AP והגשר ומנסה שוב.

0:00-0:28 - המשכתי מהשלב הקודם בו אני מריץ ifconfig. אני מריץ בנוסף iwconfig ומראה את הרשת האלחוטית שנפתחה ע"י ה-RPi.

0:28-0:46 - ערכתי את network/interfaces ושמתי בהערה את השורות שמגדירות את br0.

0:46-1:05 - ערכתי את dhcpcd.conf, שמתי בהערה את ההתעלמות מ-eth0 ומ-wlan0 וביטלתי את ההגדרות איי-פי קבוע ל-wlan0.

1:05-1:38 - שמתי בהערה את ההגדרות ל-br0 והוספתי עצירה ל-hostapd ול-dnsmasq.

1:38-2:06 - אתחול למערכת והתחברות מחדש.

2:06-2:18 - מריץ ifconfig ו-iwconfig ומראה שההגדרות רשת חזרו למצב ההתחלתי.

2:18-2:29 - ערכתי את network/interfaces ואיפשרתי שוב את השורות שמגדירות את br0.

2:29-2:45 - ערכתי את rc.local ואיפשרתי מחדש את ההגדרות שחסמתי קודם.

2:45-3:00 - ערכתי את dhcpcd.conf ואיפשרתי את ההגדרות ל-AP.

3:00-3:20 - אתחול למערכת והתחברות מחדש.

3:20-3:33 - מריץ ifconfig ו-iwconfig ומראה שהגדרת ה-AP הצליחה.

3:33-4:07 - עורך את dhcpcd.conf ומגדיר איי-פי קבוע ל-br0.

4:07-4:25 - אתחול למערכת והתחברות מחדש דרך האיי-פי הקבוע שהוגדר.

4:25-4:31 - מריץ ifconfig ו-iwconfig ומראה את מצב הרשת.


* בשלב הזה - מעתה ואילך - אם אני זוכר נכון, דברים לא עבדו כמו שצריך מבחינת ה-bridge. הצלחתי להתחבר ל-AP אבל ללא חיבור לאינטרנט. אמשיך לנסות.


עדכון 22/8/19

חיברתי את ה-RPi למסך באמצעות כבל HDMI וישבתי מול syslog. עשיתי כמה ניסיונות להתחבר לרשת שנוצרה ע"י ה-AP, ללא הצלחה. המערכת נכמסת ל-kernel panic.

ניסיתי את כל האפשרויות. עם predictable netwrok names וללא הפיצ'ר הזה. עם שימוש ב-bridge וללא. כרטיס רשת אחד. בכולן ה-dnsmasq וה-hostapd רצים כמו שצריך. מתקבל אייפי 192.168.4.1. בכל אופן, המערכת נופלת כשמתחברים אל הרשת האלחוטית. זה עבד בפעמים הראשונות (מספר חודשים אחורה).


אחקור את העניין בהמשך...

© 2023 by DO IT YOURSELF. Proudly created with Wix.com