جدول المحتويات:

جسر شبكة واي فاي Raspberry Pi Enterprise: 9 خطوات
جسر شبكة واي فاي Raspberry Pi Enterprise: 9 خطوات

فيديو: جسر شبكة واي فاي Raspberry Pi Enterprise: 9 خطوات

فيديو: جسر شبكة واي فاي Raspberry Pi Enterprise: 9 خطوات
فيديو: ✓Wireless Distribution System WDS Bridge on Flash DD WRT Router Extend Increase Range WiFi Repeater 2024, ديسمبر
Anonim
جسر شبكة واي فاي Raspberry Pi Enterprise
جسر شبكة واي فاي Raspberry Pi Enterprise

بقلم: رايلي باريت وديلان هالاند

الهدف من هذا المشروع هو السماح لجهاز إنترنت الأشياء ، مثل Weemo Smart Plug أو Amazon Echo أو Gaming Console أو أي جهاز آخر يدعم Wi-Fi بالاتصال بشبكة WPA_EAP Enterprise باستخدام Raspberry Pi Zero W كحزمة جهاز الشحن. خطوات التكوين الإضافية مطلوبة للأجهزة المتصلة بشبكة مؤسسة ، والعديد من الأجهزة غير متوافقة على الإطلاق. باستخدام جسر Wi-Fi ، يمكن لأي جهاز الوصول بسهولة إلى الإنترنت عن طريق الاتصال بـ Pi.

يمكن تنفيذ النظام على بطاقة لاسلكية واحدة أو بطاقتين منفصلتين حسب متطلبات المستخدم. بالنسبة للأنظمة التي تتطلب قوة إشارة أعلى وسرعات تحميل / تنزيل أسرع ، فمن الأفضل استخدام بطاقة لاسلكية مخصصة لاستضافة نقطة الوصول. ومع ذلك ، بالنسبة للأنظمة التي تكون فيها قوة الإشارة وعرض النطاق أقل أهمية ، أو حيث يكون هناك حاجة إلى حل أكثر فعالية من حيث التكلفة ، يمكن مشاركة بطاقة واحدة عن طريق نقطة الوصول ووصلة الشبكة.

اللوازم

Raspberry Pi Zero W

الوصول إلى لوحة مفاتيح وشاشة

بعض المعرفة بالبرمجة (لأغراض التصحيح ، إعداد Raspberry Pi)

محول WiFi خارجي / دونجل (اختياري)

الخطوة 1: إعداد Raspberry Pi

إعداد Raspberry Pi
إعداد Raspberry Pi

ابدأ بتوصيل Pi بلوحة مفاتيح وشاشة (قد يتطلب محول HDMI).

بعد ذلك ، يمكنك البدء بكتابة الأمر:

sudo su

سيضمن هذا حصولك على الامتيازات اللازمة لتعديل الملفات على pi.

سترغب الآن في تثبيت dnsmasq و hostapd باستخدام الأمر:

apt-get install dnsmasq hostapd

يمكنك الآن البدء في إعداد جسر WiFi.

ملاحظة - سيحتوي البرنامج التعليمي التالي على معلومات لأولئك الذين يستخدمون بطاقة لاسلكية واحدة على اللوحة لكل من نقطة الوصول وللاتصال بالشبكة. من الممكن أيضًا تكوين النظام ليعمل على بطاقتين منفصلتين. للقيام بذلك ، ما عليك سوى البحث عن سطور "wlan1" التي تم التعليق عليها في الملفات المتوفرة ، واستبدلها بخطوط "ap0" المجاورة.

الخطوة 2: 70- قاعدة ثابتة- net.rules

ابدأ بإيجاد عنوان MAC الخاص بك عن طريق كتابة:

iw ديف

قم بإنشاء الملف التالي:

nano /etc/udev/rules.d/70-persistent-net.rules

وتحريره بحيث يحتوي على ما يلي

SUBSYSTEM == "ieee80211" ، الإجراء == "إضافة | تغيير" ، ATTR {macaddress} == "b8: 27: eb: c0: 38: 40" ، KERNEL == "phy0" ، / RUN + = "/ sbin / iw phy phy0 interface add ap0 type _ap "، / RUN + =" / bin / ip link set ap0 address b8: 27: eb: c0: 38: 40"

يخبر هذا الملف النظام بتخصيص جهاز لنقطة الوصول عند التمهيد. هنا ، يجب استبدال عنوان MAC بعنوان pi الخاص بك ، والذي وجدته للتو.

(بطاقتان لاسلكيتان) هذا الملف غير مطلوب عند استخدام بطاقتين لاسلكيتين.

الخطوة 3: Hostapd.conf

بعد ذلك ، ستقوم بتحرير ملف hostapd.conf عن طريق إدخال ما يلي:

nano /etc/hostapd/hostapd.conf

قم بتعديل الملف بحيث يطابق التكوين التالي:

ctrl_interface = / var / run / hostapd

ctrl_interface_group = 0 # واجهة = واجهة ap0 = مشغل wlan1 = nl80211 ssid = testnet hw_mode = قناة g = 6 wmm_enabled = 0 macaddr_acl = 0 auth_algs = 1 wpa = 2 wpa_passphrase = 0123456789 wpa_key_mgmt = WPA-PSKs

لاحظ أنه بينما يتم تعيين قناتي هنا على 6 ، قد تحتاج إلى تغيير هذه القيمة لتتناسب مع القناة التي يعمل بها wlan0. في بعض الشبكات ، سيتم تغيير القناة تلقائيًا لنقطة الوصول لمطابقة wlan0 ، لكن هذه لم تكن تجربتي على شبكة المؤسسة. يمكنك التحقق من القنوات المستخدمة حاليًا والواجهات عن طريق الكتابة

قناة iwlist

(بطاقتان لاسلكيتان) قم ببساطة بإلغاء التعليق على السطر الذي يحتوي على wlan1 والتعليق على السطر الذي يحتوي على ap0.

الخطوة 4: Dnsmasq.conf

الآن ستقوم بتحرير ملف dnsmasq.conf:

nano /etc/dnsmasq.conf

أزل التعليق أو أضف الأسطر التالية:

الواجهة = الصغرى ، أب 0

# interface = lo، wlan1 no-dhcp-interface = lo bind-interfaces server = 8.8.8.8 المجال الزائف الخاص dhcp-range = 192.168.2.100، 192.168.2.200، 12h

يمكنك استخدام الشبكة الفرعية الخاصة بك هنا إذا كنت ترغب في ذلك ، فقط تأكد من أنك متسق.

(اثنان من بطاقات WirelessCcards) قم بإلغاء التعليق على السطر الذي يحتوي على wlan1 ، ثم قم بالتعليق على السطر الذي يحتوي على ap0.

الخطوة 5: الواجهات

بعد ذلك ، ستحتاج إلى تعديل ملف الواجهات:

نانو / الخ / شبكة / واجهات

لو تلقائي

auto ap0 #auto wlan1 auto wlan0 iface lo inet الاسترجاع iface eth0 inet dhcp allow-hotplug ap0 # allow-hotplug wlan1 iface ap0 inet static #iface wlan1 inet static address 192.168.2.1 netmask 255.255.255.0 hostapd /etc/hostapd/hostapd. allow-hotplug wlan0 iface wlan0 inet dhcp pre-up wpa_supplicant -B -Dwext -i wlan0 -c / etc / wpa_supplicant / wpa_supplicant.conf killall post-down killall -q wpa_supplicant

تجدر الإشارة إلى أن واجهة wlan0 يجب أن تأتي بعد أي واجهة تقوم بإعادة التوجيه إليها ، وإلا فلن يعمل النظام بشكل صحيح.

(بطاقتان لاسلكيتان) قم بإلغاء التعليق على أي أسطر تحتوي على wlan1 وقم بالتعليق على أي أسطر تحتوي على ap0.

الخطوة 6: Wpa_supplicant.conf

ستقوم الآن بتعديل ملف wpa_supplicant.conf الموجود في:

nano /etc/wpa_supplicant/wpa_supplicant.conf

يتم تكوين بعض الشبكات بشكل مختلف عن غيرها ، لذا قد يتطلب هذا الجزء بعض الترقيع ، وهنا ملف wpa_supplicant.conf الذي سمح لي بالاتصال بالشبكة في Cal Poly:

country = USctrl_interface = DIR = / var / run / wpa_supplicant GROUP = netdev update_config = شبكة واحدة = {ssid = "SecureMustangWireless" scan_ssid = 1 key_mgmt = WPA-EAP pairwise = CCMP TKIP group = CCMP TKIP Identity = "username calpoly.edu "password =" your_password "phase1 =" peapver = 0 "stage2 =" MSCHAPV2 "}

يستخدم هذا الملف لتكوين wlan0 للاتصال بشبكة المؤسسة الخاصة بك. تتطلب بعض شبكات المؤسسات شهادة CA من أجل الاتصال. لا تتطلب شبكة الحرم الجامعي في Cal Poly شهادة ، لذا فقد تخطيت هذا الجزء ، ولكن يمكنك بسهولة تنزيل الشهادات المناسبة وإضافتها إلى ملف wpa_supplicant الخاص بك مع السطر

ca_cert = "/ path / to / cert.pem"

الخطوة 7: هوستابدستارت سكربت

آخر شيء يجب القيام به هو كتابة برنامج نصي يبدأ كلا الواجهتين ويقوم بإعداد إعادة توجيه الحزمة عند بدء تشغيل النظام. قم بإنشاء ملف يسمى hostapdstart عن طريق كتابة:

nano / usr / local / bin / hostapdstart

أضف ما يلي إلى الملف

sudo ifdown - فرض wlan0 && sudo ifdown --force ap0 && sudo ifup ap0 && sudo ifup wlan0

#sudo ifdown - فرض wlan0 && sudo ifdown - فرض wlan1 && sudo ifup wlan1 && sudo ifup wlan0 sudo sysctl -w net.ipv4.ip_forward = 1 sudo iptables -t nat -A POSTROUTING -s 192.168.2.0/24! -d 192.168.2.0/24 -j MASQUERADEsudo systemctl إعادة تشغيل dnsmasq

ينزل هذا البرنامج النصي كلا الواجهتين ، ثم يعيدهما بالترتيب الصحيح ، ويخبر pi أنك ترغب في إعادة توجيه الحزم من واجهة إلى أخرى ، وأخيرًا يعيد تشغيل dnsmasq حتى تصبح التغييرات سارية المفعول.

(بطاقتان لاسلكيتان) uncomment سطر مع wlan1 وسطر التعليق مع ap0.

الخطوة 8: Rc.local

أخيرًا ، نريد أن يبدأ النظام عند بدء تشغيل النظام ، لذلك سنقوم بتعديل ملف rc.local ، والذي يتم تشغيله عند التمهيد:

نانو /etc/rc.local

ما عليك سوى إضافة السطر التالي إلى نهاية الملف:

hostapdstart> 1 &

يجب أن يبدو ملفك كما يلي:

_IP = $ (hostname -I) || trueif ["$ _IP"]؛ ثم printf "عنوان IP الخاص بي هو٪ s / n" "$ _IP" fi

hostapdstart> 1 &

خروج 0

الخطوة 9: إعادة التشغيل

وهذا كل شيء! الآن ، بافتراض أن لديك كل شيء تم إعداده بشكل صحيح ، وأن دونجل WiFi متصل (إذا كنت تستخدم واحدًا) ، فأنت تحتاج ببساطة إلى إعادة تشغيل Raspberry Pi بالأمر:

اعادة التشغيل

بمجرد إعادة تشغيل Pi الخاص بك بنجاح ، يجب أن تكون قادرًا على رؤية اسم نقطة الوصول الخاصة بك على أي جهاز (هاتف ، كمبيوتر محمول ، إلخ). بمجرد الاتصال باستخدام كلمة المرور المحددة ، يجب أن يوصلك مباشرة بشبكة المؤسسة المطلوبة!

شكر خاص للروابط التالية لتزويدنا بفكرة عن كيفية التعامل مع هذا المشروع:

  • https://blog.thewalr.us/2017/09/26/raspberry-pi-ze…
  • https://www.raspberrypi.org/forums/viewtopic.php؟p…
  • https://www.raspberrypi.org/forums/viewtopic.php؟f…

أخبرنا إذا كان لديك أي أسئلة أو تعليقات أو اقتراحات!

تحدي إنترنت الأشياء
تحدي إنترنت الأشياء
تحدي إنترنت الأشياء
تحدي إنترنت الأشياء

الوصيف في تحدي إنترنت الأشياء

موصى به: