Google is committed to advancing racial equity for Black communities. See how.
این صفحه به‌وسیله ‏Cloud Translation API‏ ترجمه شده است.
Switch to English

Wi-Fi Access Point Setting برای OpenThread Border Router

یک نقطه دسترسی Wi-Fi (AP) شبکه Thread را به اینترنت متصل می کند.

Raspberry Pi 3B (RPi3B) که به عنوان روتر حاشیه OpenThread (OTBR) عمل می کند همچنین ممکن است به عنوان یک نقطه دسترسی نرم (SoftAP) عمل کند. این SoftAP به عنوان یک سرور DHCP برای اختصاص آدرس IPv4 به RPi3B و هر دستگاهی که به عنوان کمیسر خارجی استفاده می شود عمل می کند.

BeagleBone Black فاقد پشتیبانی از Wi-Fi داخلی است و نمی تواند به عنوان نقطه دسترسی Wi-Fi استفاده شود.

تمام دستورات پیکربندی و ترمینال در RPi3B که دارای OTBR است اجرا می شود. برای اطلاعات بیشتر به ساخت و پیکربندی مراجعه کنید.

RPi3B باید از طریق اترنت به اینترنت متصل شود (رابط eth0 ، همانطور که در خروجی ifconfig نشان داده می شود) تا با موفقیت به عنوان SoftAP عمل کند.

اگر اسکریپت راه اندازی OTBR را بدون غیرفعال کردن NETWORK_MANAGER اجرا کردید ، همانطور که در Build و Configuration توضیح داده شده است ، Wi-Fi AP قبلاً پیکربندی شده است. برای اطلاعات بیشتر به پایین استفاده از مدیر شبکه بروید .

بسته ها را نصب کنید

سه بسته مورد نیاز است:

  • hostapd - استفاده از رادیو Wi-Fi داخلی دستگاه را به عنوان AP مجاز می کند
  • dnsmasq - یک سرور DHCP و DNS ترکیبی
  • tayga - NAT64 بی حالت
sudo apt-get install hostapd dnsmasq tayga

پیکربندی آدرسهای ثابت IPv4

در نسخه های جدید Raspbian ، پیکربندی رابط بصورت پیش فرض توسط dhcpcd شود. dhcpcd برای رابط غیرفعال کنید و آدرسهای ثابت IPv4 را برای SoftAP پیکربندی کنید.

  1. به روز رسانی dhcpcd به چشم پوشی از wlan0 (Wi-Fi را) رابط:
    1. فایل پیکربندی dhcpcd را باز کنید:
      sudo vim /etc/dhcpcd.conf
    2. خط زیر را به انتهای پرونده اضافه کنید:
      denyinterfaces wlan0
  2. پیکربندی آدرسهای ثابت IPv4 در رابط wlan0 :
    1. ایجاد یک فایل پیکربندی برای wlan0 رابط:
      sudo vim /etc/network/interfaces.d/wlan0
    2. اضافه کردن پارامترهای پیکربندی زیر را به wlan0 فایل:
      allow-hotplug wlan0
      iface wlan0 inet static
          address 192.168.1.2
          netmask 255.255.255.0
          network 192.168.1.0
          broadcast 192.168.1.255

hostapd را پیکربندی کنید

  1. ایجاد یک hostapd فایل پیکربندی:
    sudo vim /etc/hostapd/hostapd.conf
  2. پارامترهای پیکربندی زیر را به hostapd.conf :

    # The Wi-Fi interface configured for static IPv4 addresses
    interface=wlan0
    
    # Use the 802.11 Netlink interface driver
    driver=nl80211
    
    # The user-defined name of the network
    ssid=BorderRouter-AP
    
    # Use the 2.4GHz band
    hw_mode=g
    
    # Use channel 6
    channel=6
    
    # Enable 802.11n
    ieee80211n=1
    
    # Enable WMM
    wmm_enabled=1
    
    # Enable 40MHz channels with 20ns guard interval
    ht_capab=[HT40][SHORT-GI-20][DSSS_CCK-40]
    
    # Accept all MAC addresses
    macaddr_acl=0
    
    # Use WPA authentication
    auth_algs=1
    
    # Require clients to know the network name
    ignore_broadcast_ssid=0
    
    # Use WPA2
    wpa=2
    
    # Use a pre-shared key
    wpa_key_mgmt=WPA-PSK
    
    # The network passphrase
    wpa_passphrase=12345678
    
    # Use AES, instead of TKIP
    rsn_pairwise=CCMP
    
  3. این فایل پیکربندی جدید را به عنوان daemon پیش فرض تنظیم کنید:

    1. فایل پیکربندی پیش فرض را باز کنید:
      sudo vim /etc/default/hostapd
    2. فعال کردن DAEMON_CONF پارامتر و اشاره آن به جدید hostapd فایل پیکربندی:
      DAEMON_CONF="/etc/hostapd/hostapd.conf"
  4. هنگام راه اندازی مجدد ، به طور خودکار hostapd را بوت استرپ کنید:

    1. چیزی را اشکار و دستی شروع hostapd در مورد آن پوشانده است:
      sudo systemctl unmask hostapd
      sudo systemctl start hostapd
    2. ایجاد یک فایل پیکربندی سرویس برای hostapd :
      sudo vim /etc/systemd/system/hostapd.service
    3. پارامترهای پیکربندی زیر را به hostapd.service :

      [Unit]
      Description=Hostapd IEEE 802.11 Access Point
      After=sys-subsystem-net-devices-wlan0.device
      BindsTo=sys-subsystem-net-devices-wlan0.device
      
      [Service]
      Type=forking
      PIDFile=/var/run/hostapd.pid
      ExecStart=/usr/sbin/hostapd -B /etc/hostapd/hostapd.conf -P /var/run/hostapd.pid
      
      [Install]
      WantedBy=multi-user.target
      
    4. پرونده /etc/rc.local را باز کنید:

      sudo vim /etc/rc.local

    5. موارد زیر را قبل از خط exit 0 در انتهای پرونده اضافه کنید:

      sudo service hostapd start

نقطه دستیابی را تأیید کنید

هنگامی که hostapd پیکربندی شده است، SoftAP باید زندگی می کنند (هر چند بدون اتصال به اینترنت).

برای تأیید ، RPi3B را دوباره راه اندازی کنید:

sudo reboot

پس از راه اندازی مجدد ، شبکه های بی سیم را در دستگاه دیگری بررسی کنید. شما باید BorderRouter-AP SSID را مشاهده کنید.

dnsmasq را پیکربندی کنید

  1. برای سهولت در پیکربندی ، اگر یک فایل پیکربندی پیش فرض dnsmasq قبل روی سیستم شما وجود دارد ، آن را منتقل کرده و یک پرونده جدید ایجاد کنید:
    sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.orig
    sudo vim /etc/dnsmasq.conf
  2. پارامترهای پیکربندی زیر را به dnsmasq.conf :

    # The Wi-Fi interface configured for static IPv4 addresses
    interface=wlan0
    
    # Explicitly specify the address to listen on
    listen-address=192.168.1.2
    
    # Bind to the interface to make sure we aren't sending things elsewhere
    bind-interfaces
    
    # Forward DNS requests to the Google DNS
    server=8.8.8.8
    
    # Don't forward short names
    domain-needed
    
    # Never forward addresses in non-routed address spaces
    bogus-priv
    
    # Assign IP addresses between 192.168.1.50 and 192.168.1.150 with a 12 hour lease time
    dhcp-range=192.168.1.50,192.168.1.150,12h
    
  3. سرویس bind9 ممکن است در هنگام راه اندازی با dnsmasq مغایرت داشته باشد. برای اطمینان از عدم وجود تعارض ، سرویس bind9 را به روز کنید تا قبل از شروع dnsmasq شروع به کار نکند. پرونده /lib/systemd/system/bind9.service را باز کنید:

    sudo vim /lib/systemd/system/bind9.service

  4. تغییر After پارامتر به طوری bind9 شروع می شود پس dnsmasq :

    "After=network.target dnsmasq.service"

NAT را پیکربندی کنید

Network Address Translation (NAT) روشی برای ترجمه آدرسهای IP در حین انتقال بسته ها است. NAT64 آدرسهای بین IPv6 و IPv4 را ترجمه می کند.

OTBR از tayga برای NAT64 بدون حالت ، iptables برای NAT44 بدون حالت استفاده می کند و این دو را با هم ترکیب می کند تا NAT64 با حالت را فراهم کند. این اجازه می دهد تا دستگاه های Thread با میزبان های IPv4 ارتباط برقرار کنند. برای اطلاعات بیشتر به اسناد Tayga مراجعه کنید.

tayga را پیکربندی کنید

  1. پیکربندی را ایجاد کنید:
    1. پرونده /etc/tayga.conf را باز کنید:
      sudo vim /etc/tayga.conf
    2. فایل را با پیکربندی زیر به روز کنید:
      prefix 64:ff9b::/96
      dynamic-pool 192.168.255.0/24
      ipv6-addr 2001:db8:1::1
      ipv4-addr 192.168.255.1
      
  2. فعال کردن tayga :
    1. پرونده /etc/default/tayga باز کنید:
      sudo vim /etc/default/tayga
    2. پارامتر RUN به yes :
      RUN="yes"
      تغییر دهید

در این پیکربندی ، ipv6-addr اختیاری است. اگر ipv6-addr تعریف نشده باشد ، tayga آن را از پارامتر prefix برای شما تولید می کند.

پارامترهای پیکربندی

پارامتر شرح
prefix از آنجا که Tayga NAT64 بدون حالت را ارائه می دهد ، برای نقشه برداری از تمام IPv4 به IPv6 پیشوند a /96 یا بالاتر لازم است. این پارامتر باید یک پیشوند استفاده نشده /96 از محدوده آدرس IPv6 شما باشد. برای OTBR ، از پیشوند شناخته شده ( 64:ff9b::/96 ) استفاده کنید تا ترجمه خودکار آدرس را فعال کنید.
dynamic-pool برای Tayga لازم است تا نقشه IPv6 را به IPv4 ترسیم کند. روی شبکه IPv4 تنظیم کنید.
ipv6-addr برای Tayga لازم است که به عنوان یک روتر IPv6 عمل کند. هنگام استفاده از پیشوند Well-Known برای پارامتر prefix ، این آدرس باید آدرسی باشد که در prefix موجود نباشد .
ipv4-addr برای Tayga لازم است که به عنوان یک روتر IPv4 عمل کند. این آدرس باید آدرسی باشد که در dynamic-pool .

فعال کردن بازارسال

  1. انتقال IPv4 و IPv6 را فعال کنید:
    sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
    sudo sh -c "echo 1 > /proc/sys/net/ipv6/conf/all/forwarding"
  2. برای اطمینان از فعال بودن حمل و نقل IPv4 پس از راه اندازی مجدد ، فایل پیکربندی sysctl نیز به روز کنید:
    1. باز /etc/sysctl.conf فایل:
      sudo vim /etc/sysctl.conf
    2. پارامتر بازارسال IPv4 را از حالت کامنت خارج کنید و اطمینان حاصل کنید که روی 1:
      net.ipv4.ip_forward=1
      تنظیم شده است
  3. NAT را با iptables پیکربندی کنید:
    1. NAT 44:
      sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
      را فعال کنید
    2. فیلتر پیکربندی بین wlan0 (از Wi-Fi) و eth0 رابط (اترنت):
      sudo iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
      sudo iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT
  4. هنگام راه اندازی مجدد این قوانین NAT را به طور خودکار اعمال کنید:
    1. قوانین را در پرونده /etc/iptables.ipv4.nat ذخیره کنید:
      sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"
    2. Open the /etc/rc.local file:
      sudo vim /etc/rc.local
    3. موارد زیر را قبل از خط exit 0 در انتهای پرونده اضافه کنید:
      iptables-restore < /etc/iptables.ipv4.nat

پیکربندی را تأیید کنید

  1. Raspberry Pi 3B:
    sudo reboot
    را دوباره راه اندازی کنید
    صفحه اصلی GUI وب OTBR
  2. پس از راه اندازی مجدد دستگاه دیگری (نه RPi3B) را به نقطه دسترسی Wi-Fi BorderRouter-AP متصل کنید .
  3. پنجره مرورگری را در آن دستگاه باز کرده و به قسمت 192.168.1.2 بروید (آدرس IPv4 که برای رابط wlan0 پیکربندی شده است). اگر پیکربندی AP موفقیت آمیز باشد ، GUI وب OTBR بارگیری می شود.

نقطه دسترسی Wi-Fi BorderRouter-AP همچنین باید اتصال به اینترنت منظم را فراهم کند. با مراجعه یا پینگ هر وب سایت عمومی از دستگاه متصل به نقطه دسترسی Wi-Fi BorderRouter-AP ، تأیید کنید.

عیب یابی

اگر نقطه دسترسی Wi-Fi BorderRouter-AP در دسترس نیست ، وضعیت سیستم RPi3B را بررسی کنید:

sudo systemctl status

اگر وضعیت RPi3B را در وضعیت تخریب شده نشان می دهد ، بررسی کنید کدام سرویس ها شروع به کار نکرده اند:

sudo systemctl --failed

اگر AP دستی تنظیم شده باشد و هیچ یک از سرویس های مورد نیاز OTBR شروع به کار نکرده اند:

  1. از مراحل پیکربندی در Build and Configuration و Wi-Fi Access Point Setup بازگردید و خطاها را بررسی کنید.
  2. RPi3B را مجدداً راه اندازی کنید یا از اسکریپت server برای توقف و راه اندازی مجدد سرویس های مورد نیاز OTBR استفاده کنید:
cd ot-br-posix
./script/server NETWORK_MANAGER=0

با استفاده از مدیر شبکه

وقتی AP هنگام نصب بصورت خودکار تنظیم می شود ، توسط مدیر شبکه مدیریت می شود. اسکریپت راه اندازی OTBR از همان مقادیر پیش فرض با جزئیات در تنظیم دستی استفاده می کند:

  • SSID = BorderRouter-AP
  • رمز عبور = 12345678

با استفاده از ابزار خط فرمان nmcli مدیر شبکه را کنترل کنید.

به عنوان مثال ، برای نمایش تمام اطلاعات مربوط به AP هنگامی که OTBR فعال و فعال است:

nmcli -s c show BorderRouter-AP

برای اطلاعات بیشتر ، به اسکریپت / اسکریپت OTBR Network Manager / _network_manager مراجعه کنید).