Raspberry Pi + CentOS = وائي فائي هٽ اسپاٽ (يا ريڊ ٽوپي سان راسبي روٽر)

Raspberry سنگل بورڊ پي سي جي بنياد تي وائي فائي رسائي پوائنٽ ٺاهڻ تي انٽرنيٽ تي معلومات جو هڪ وڏو مقدار آهي. ضابطي جي طور تي، هن جو مطلب آهي Raspbian آپريٽنگ سسٽم استعمال ڪندي راسبي جي اصلي.

RPM جي بنياد تي سسٽم جي پيروي ڪرڻ جي ڪري، مان هن ننڍڙي معجزي کان پاس نه ٿي سگهيو ۽ ان تي منهنجي محبوب CentOS جي ڪوشش نه ڪري سگهيو.

آرٽيڪل 5GHz/AC وائي فائي روٽر ٺاهڻ لاءِ هدايتون مهيا ڪري ٿو Raspberry Pi 3 ماڊل B+ مان CentOS آپريٽنگ سسٽم جي بنياد تي. اتي ڪيترائي معياري پر ٿوري سڃاتل چالون هونديون، ۽ بونس جي طور تي - اضافي وائي فائي سامان کي راسبري سان ڳنڍڻ لاء هڪ ڊرائنگ، ان کي هڪ ئي وقت ۾ ڪيترن ئي طريقن سان هلائڻ جي اجازت ڏئي ٿي (2,4 + 5GHz).

Raspberry Pi + CentOS = وائي فائي هٽ اسپاٽ (يا ريڊ ٽوپي سان راسبي روٽر)
(آزاد طور تي دستياب تصويرن جو ميلاپ)

اچو ته فوري طور تي نوٽ ڪريون ته ڪي ڪائناتي رفتار ڪم نه ڪنديون. مان وڌ ۾ وڌ 100 ايم بي پي ايس کي نچوض ڪريان ٿو منهنجي راسبي مان هوا مٿان، ۽ اهو منهنجي انٽرنيٽ فراهم ڪندڙ جي رفتار کي ڍڪي ٿو. توهان کي اهڙي سست اي سي جي ضرورت ڇو آهي، جيڪڏهن نظريي ۾ توهان حاصل ڪري سگهو ٿا اڌ گيگا بٽ به N تي؟ جيڪڏهن توهان پنهنجو پاڻ کان اهو سوال ڪيو آهي، ته پوء اسٽور ڏانهن وڃو هڪ حقيقي روٽر خريد ڪرڻ لاء اٺ ٻاهرين اينٽينن سان.

0. توهان کي ڇا جي ضرورت پوندي

  • دراصل، ”رسبري پراڊڪٽ“ پاڻ ڪيليبر جو آهي: Pi 3 ماڊل B+ (مشڪل 5GHz اسپيڊ ۽ چينلز حاصل ڪرڻ لاءِ)؛
  • سٺو microSD >= 4GB؛
  • لينڪس ۽ microSD پڙهندڙ / ليکڪ سان ورڪ اسٽيشن؛
  • لينڪس ۾ ڪافي صلاحيتن جي دستيابي، مضمون هڪ تربيت يافته جيڪ لاء آهي؛
  • وائرڊ نيٽ ورڪ (eth0) Raspberry ۽ Linux جي وچ ۾ رابطي، مقامي نيٽ ورڪ تي DHCP سرور کي هلائڻ ۽ ٻنهي ڊوائيسز کان انٽرنيٽ جي رسائي.

آخري نقطي تي هڪ ننڍڙو تبصرو. ”ڪهڙو پهريون آيو، انڊا يا...“ ڪنهن به انٽرنيٽ رسائي سامان جي غير موجودگي ۾ وائي فائي روٽر ڪيئن ٺاهيو؟ اچو ته هن تفريحي مشق کي آرٽيڪل جي دائري کان ٻاهر ڇڏي ڏيو ۽ بس فرض ڪريو ته راسبي مقامي نيٽ ورڪ سان تار ذريعي ڳنڍيل آهي ۽ انٽرنيٽ تائين رسائي آهي. انهي حالت ۾، اسان کي "رسبري" قائم ڪرڻ لاء هڪ اضافي ٽي وي ۽ هڪ مينپوليٽر جي ضرورت نه هوندي.

1. انسٽال ڪريو CentOS

پروجيڪٽ جو گھر صفحو

هن آرٽيڪل لکڻ جي وقت، ڊوائيس تي CentOS جو هلندڙ نسخو 32-bit آهي. ورلڊ وائڊ ويب تي ڪٿي مون کي رايا مليا آهن ته 64-bit ARM آرڪيٽيڪچر تي اهڙين او ايسز جي ڪارڪردگي 20 سيڪڙو گهٽجي ويندي آهي. مان هن لمحي کي بغير تبصرو ڇڏيندس.

لينڪس تي، ڪرنل سان گهٽ ۾ گهٽ تصوير ڊائون لوڊ ڪريو "- RaspberryPI-"۽ ان کي microSD ڏانهن لکو:

# xzcat CentOS-Userland-7-armv7hl-RaspberryPI-Minimal-1810-sda.raw.xz | 
  dd of=/dev/mmcblk0 bs=4M
# sync

تصوير کي استعمال ڪرڻ شروع ڪرڻ کان اڳ، اسان ان مان SWAP ورهاڱي کي ختم ڪنداسين، روٽ کي پوري دستياب حجم تائين وڌايو ۽ SELinux کان نجات حاصل ڪنداسين. الورورٿم سادو آهي: لينڪس تي روٽ جي ڪاپي ٺاهيو، مائڪرو ايس ڊي مان سڀ ورهاڱي کي حذف ڪريو سواءِ پهرين (/ بوٽ)، هڪ نئون روٽ ٺاهيو ۽ ان جي مواد کي ڪاپي مان واپس ڪريو.

گهربل عملن جا مثال (سخت ڪنسول ٻاھر)

# mount /dev/mmcblk0p3 /mnt
# cd /mnt
# tar cfz ~/pi.tgz . --no-selinux
# cd
# umount /mnt

# parted /dev/mmcblk0

(parted) unit s
(parted) print free
Model: SD SC16G (sd/mmc)
Disk /dev/mmcblk0: 31116288s
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number  Start     End        Size       Type     File system     Flags
        63s       2047s      1985s               Free Space
 1      2048s     1370111s   1368064s   primary  fat32           boot, lba
 2      1370112s  2369535s   999424s    primary  linux-swap(v1)
 3      2369536s  5298175s   2928640s   primary  ext4
        5298176s  31116287s  25818112s           Free Space

(parted) rm 3
(parted) rm 2

(parted) print free
Model: SD SC16G (sd/mmc)
Disk /dev/mmcblk0: 31116288s
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number  Start     End        Size       Type     File system  Flags
        63s       2047s      1985s               Free Space
 1      2048s     1370111s   1368064s   primary  fat32        boot, lba
        1370112s  31116287s  29746176s           Free Space

(parted) mkpart
Partition type?  primary/extended? primary
File system type?  [ext2]? ext4
Start? 1370112s
End? 31116287s

(parted) set
Partition number? 2
Flag to Invert? lba
New state?  on/[off]? off

(parted) print free
Model: SD SC16G (sd/mmc)
Disk /dev/mmcblk0: 31116288s
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number  Start     End        Size       Type     File system  Flags
        63s       2047s      1985s               Free Space
 1      2048s     1370111s   1368064s   primary  fat32        boot, lba
 2      1370112s  31116287s  29746176s  primary  ext4

(parted) quit

# mkfs.ext4 /dev/mmcblk0p2 
mke2fs 1.44.6 (5-Mar-2019)
/dev/mmcblk0p2 contains a swap file system labelled '_swap'
Proceed anyway? (y,N) y
Discarding device blocks: done                            
Creating filesystem with 3718272 4k blocks and 930240 inodes
Filesystem UUID: 6a1a0694-8196-4724-a58d-edde1f189b31
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done   

# mount /dev/mmcblk0p2 /mnt
# tar xfz ~/pi.tgz -C /mnt --no-selinux

روٽ ورهاڱي جي مواد کي پيڪ ڪرڻ کان پوء، ان ۾ ڪجهه تبديليون ڪرڻ جو وقت آهي.

بند ڪريو SELinux in /mnt/etc/selinux/config:

SELINUX=disabled

ترميم ڪرڻ /mnt/etc/fstab, ان ۾ ڇڏيندي صرف ٻه داخلائون ورهاڱي بابت: بوٽ (/ بوٽ، ڪابه تبديلي نه) ۽ روٽ (اسان UUID قدر تبديل ڪريون ٿا، جيڪو لينڪس تي بلاڪڊ ڪمانڊ جي آئوٽ پٽ جي مطالعي سان ڳولي سگهجي ٿو):

UUID=6a1a0694-8196-4724-a58d-edde1f189b31  /     ext4    defaults,noatime 0 0
UUID=6938-F4F2                             /boot vfat    defaults,noatime 0 0

آخرڪار، اسان ڪرنل بوٽ پيرا ميٽرز کي تبديل ڪريون ٿا: اسان روٽ ورهاڱي لاء نئين جڳھ کي بيان ڪريون ٿا، ڊيبگنگ معلومات جي آئوٽ کي غير فعال ڪريو ۽ (اختياري طور تي) نيٽ ورڪ انٽرفيس تي IPv6 پتي کي تفويض ڪرڻ کان ڪنيل کي منع ڪري ٿو:

# cd
# umount /mnt
# mount /dev/mmcblk0p1 /mnt

هتي مواد آهي /mnt/cmdline.txt هيٺ ڏنل فارم ڏانهن (هڪ لائن بغير هائيفن جي):

root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait quiet ipv6.disable_ipv6=1

ٿي ويو:

# cd
# umount /mnt
# sync

اسان مائڪرو ايس ڊي کي ٻيهر ترتيب ڏيون ٿا ”رسبري“، ان کي لانچ ڪريو ۽ ان تائين نيٽ ورڪ رسائي حاصل ڪريو ssh (root/centos) ذريعي.

2. CentOS ترتيب ڏيڻ

پهرين ٽي غير مستحڪم تحريڪون: گذريو, يو-اي تازه ڪاري, ريبوٽ.

اسان نيٽ ورڪ جي انتظام کي ڏيو نيٽ ورڪ:

# yum install systemd-networkd
# systemctl enable systemd-networkd
# systemctl disable NetworkManager
# chkconfig network off

ھڪڙي فائل ٺاھيو (ڊائريڪٽريز سان گڏ) /etc/systemd/network/eth0.network:

[Match]
Name=eth0

[Network]
DHCP=ipv4

اسان "راسبري" کي ريبوٽ ڪيو ۽ ٻيهر نيٽ ورڪ تائين رسائي حاصل ڪريو ssh ذريعي (IP پتو تبديل ٿي سگھي ٿو). استعمال ٿيل شين تي ڌيان ڏيو /etc/resolv.confنيٽ ورڪ مئنيجر پاران اڳ ۾ ٺاهيل. تنهن ڪري، حل سان مسئلن جي صورت ۾، ان جي مواد کي تبديل ڪريو. استعمال ڪريو سسٽمڊ حل ٿيل اسان نه ڪنداسين.

اسان "غير ضروري" کي هٽايو، مرمت ۽ او ايس جي لوڊشيڊنگ کي تيز ڪريو:

# systemctl set-default multi-user.target
# yum remove GeoIP Network* aic* alsa* cloud-utils-growpart 
  cronie* dhc* firewal* initscripts iwl* kexec* logrotate 
  postfix rsyslog selinux-pol* teamd wpa_supplicant

ڪنھن کي گھرجي کلون ۽ جيڪو هضم نه ڪندو آهي سسٽم ٽائمرز، قائم ڪري سگھي ٿو جيڪو غائب آهي. / var / log- ۽ ذريعي ڏسو صحافي. جيڪڏهن توهان کي لاگ تاريخ جي ضرورت آهي (ڊفالٽ طور، معلومات صرف ان وقت کان ذخيرو ٿيل آهي جڏهن سسٽم شروع ٿئي ٿو):

# mkdir /var/log/journal
# systemd-tmpfiles --create --prefix /var/log/journal
# systemctl restart systemd-journald
# vi /etc/systemd/journald.conf

بنيادي خدمتن پاران IPv6 جي استعمال کي بند ڪريو (جيڪڏهن گهربل هجي)/ وغيره / ssh / sshd_config:

AddressFamily inet

/etc/sysconfig/chronyd:

OPTIONS="-4"

وقت جي لاڳاپي تي "رسبري" هڪ اهم شيء آهي. جيئن ته دٻي جي ٻاهران ڪو به هارڊويئر قابليت نه آهي جيڪو ريبوٽ تي ڪلاڪ جي موجوده حالت کي محفوظ ڪرڻ لاء، هم وقت سازي جي ضرورت آهي. هن لاء هڪ تمام سٺو ۽ تيز daemon آهي نڀاڳ - اڳ ۾ ئي نصب ۽ خودڪار طريقي سان شروع ٿئي ٿو. توھان تبديل ڪري سگھو ٿا NTP سرورز کي ويجھي وارن ڏانھن.

/etc/chrony.conf:

server 0.ru.pool.ntp.org iburst
server 1.ru.pool.ntp.org iburst
server 2.ru.pool.ntp.org iburst
server 3.ru.pool.ntp.org iburst

ٽائيم زون قائم ڪرڻ لاءِ اسين استعمال ڪنداسين چال. جيئن ته اسان جو مقصد هڪ وائي فائي روٽر ٺاهڻ آهي جيڪو 5GHz فريڪوئنسيز تي ڪم ڪري رهيو آهي، اسان اڳ ۾ ئي حيرانگي لاءِ تيار ڪنداسين ريگيوليٽر:

# yum info crDA
خلاصو: 802.11 وائرليس نيٽ ورڪنگ لاءِ ريگيوليٽري تعميل ڊيمون

هي برائي ڊيزائن، پڻ ٽائيم زون جي بنياد تي، "منع ڪري ٿو" استعمال (روس ۾) 5GHz تعدد ۽ چينلز جي "اعلي" نمبرن سان. چال براعظمن/شهرن جا نالا استعمال ڪرڻ کان سواءِ ٽائم زون مقرر ڪرڻ آهي، يعني ان جي بدران:

# timedatectl set-timezone Europe/Moscow

اسان پريس ڪريون ٿا:

# timedatectl set-timezone Etc/GMT-3

۽ سسٽم جي وار اسٽائل کي آخري ڇڪيون:

# hostnamectl set-hostname router

/root/.bash_profile:

. . .

# User specific environment and startup programs

export PROMPT_COMMAND="vcgencmd measure_temp"
export LANG=en_US.UTF-8
export PATH=$PATH:$HOME/bin

3. CentOS Add-ons

مٿي ڏنل هر شي کي سمجهي سگهجي ٿو مڪمل هدايتون انسٽال ڪرڻ لاءِ “وينلا” سينٽوس راسبي پي تي. توهان کي هڪ PC سان ختم ڪرڻ گهرجي جيڪو (ٻيهر) 10 سيڪنڊن کان گهٽ ۾ بوٽ ڪري ٿو، استعمال ڪري ٿو 15 ميگا بائيٽ کان گهٽ ريم ۽ 1.5 گيگا بائيٽ مائڪرو ايس ڊي (اصل ۾ 1 گيگا بائيٽ کان گهٽ هڪ نامڪمل / بوٽ جي ڪري، پر اچو ايماندار).

هن سسٽم تي وائي فائي رسائي پوائنٽ سافٽ ويئر کي نصب ڪرڻ لاء، توهان کي معياري CentOS تقسيم جي صلاحيتن کي ٿورو وڌائڻ جي ضرورت پوندي. سڀ کان پهريان، اچو ته ٺاهيل وائي فائي اڊاپٽر جي ڊرائيور (فرم ویئر) کي اپڊيٽ ڪريون. پروجيڪٽ جو هوم صفحو چوي ٿو:

وائي فائي Raspberry 3B ۽ 3B+ تي

Raspberry PI 3B/3B+ فرمائيندڙ فائلن کي اجازت نه آهي ته CentOS پروجيڪٽ طرفان ورهايو وڃي. توھان ھيٺ ڏنل مضمون استعمال ڪري سگھوٿا مسئلي کي سمجھڻ لاءِ، فرم ویئر حاصل ڪريو ۽ وائي فائي سيٽ اپ ڪريو.

CentOS پروجيڪٽ لاءِ ڇا منع ٿيل آهي اسان لاءِ ذاتي استعمال لاءِ منع ٿيل ناهي. اسان CentOS ۾ ورهائڻ واري وائي فائي فرم ویئر کي تبديل ڪريون ٿا براڊڪام ڊولپرز (جيڪي ساڳيون نفرت ڪندڙ بائنري بلبس ...). اهو، خاص طور تي، توهان کي رسائي پوائنٽ موڊ ۾ AC استعمال ڪرڻ جي اجازت ڏيندو.

وائي فائي فرم ويئر اپ گريڊڊوائيس ماڊل ۽ موجوده firmware ورزن مان ڳولا ڪريو:

# journalctl | grep $(basename $(readlink /sys/class/net/wlan0/device/driver))
Jan 01 04:00:03 router kernel: brcmfmac: F1 signature read @0x18000000=0x15264345
Jan 01 04:00:03 router kernel: brcmfmac: brcmf_fw_map_chip_to_name: using brcm/brcmfmac43455-sdio.bin for chip 0x004345(17221) rev 0x000006
Jan 01 04:00:03 router kernel: usbcore: registered new interface driver brcmfmac
Jan 01 04:00:03 router kernel: brcmfmac: brcmf_c_preinit_dcmds: Firmware version = wl0: Mar  1 2015 07:29:38 version 7.45.18 (r538002) FWID 01-6a2c8ad4
Jan 01 04:00:03 router kernel: brcmfmac: brcmf_c_preinit_dcmds: CLM version = API: 12.2 Data: 7.14.8 Compiler: 1.24.9 ClmImport: 1.24.9 Creation: 2014-09-02 03:05:33 Inc Data: 7.17.1 Inc Compiler: 1.26.11 Inc ClmImport: 1.26.11 Creation: 2015-03-01 07:22:34 

اسان ڏسون ٿا ته فرم ويئر ورزن 7.45.18 تاريخ 01.03.2015/XNUMX/XNUMX آهي، ۽ نمبرن جي هيٺين سيٽ کي ياد رکو: 43455 (brcmfmac43455-sdio.bin).

ڊائون لوڊ ڪريو موجوده Raspbian تصوير. سست ماڻهو مائڪرو ايس ڊي تي تصوير لکي سگهن ٿا ۽ اتان کان فرم ويئر سان فائلون وٺي سگهن ٿا. يا توهان لينڪس ۾ تصوير جي روٽ ورهاڱي کي نصب ڪري سگهو ٿا ۽ نقل ڪري سگهو ٿا جيڪو توهان کي ضرورت آهي اتان کان:

# wget https://downloads.raspberrypi.org/raspbian_lite_latest
# unzip -p raspbian_lite_latest > raspbian.img
# fdisk -l raspbian.img
Disk raspbian.img: 2 GiB, 2197815296 bytes, 4292608 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x17869b7d

Device        Boot  Start     End Sectors  Size Id Type
raspbian.img1        8192  532480  524289  256M  c W95 FAT32 (LBA)
raspbian.img2      540672 4292607 3751936  1.8G 83 Linux

# mount -t ext4 -o loop,offset=$((540672 * 512)) raspbian.img /mnt
# cp -fv /mnt/lib/firmware/brcm/*43455* ...
'/mnt/lib/firmware/brcm/brcmfmac43455-sdio.bin' -> ...
'/mnt/lib/firmware/brcm/brcmfmac43455-sdio.clm_blob' -> ...
'/mnt/lib/firmware/brcm/brcmfmac43455-sdio.txt' -> ...
# umount /mnt

نتيجي ۾ وائي فائي اڊاپٽر فرم ويئر فائلن کي ڪاپي ڪيو وڃي ۽ ڊاريڪٽري ۾ "راسبي" سان تبديل ڪيو وڃي /usr/lib/firmware/brcm/

اسان مستقبل جي روٽر کي ريبوٽ ڪيو ۽ مطمئن طور تي مسڪرايو:

# journalctl | grep $(basename $(readlink /sys/class/net/wlan0/device/driver))
Jan 01 04:00:03 router kernel: brcmfmac: F1 signature read @0x18000000=0x15264345
Jan 01 04:00:03 router kernel: brcmfmac: brcmf_fw_map_chip_to_name: using brcm/brcmfmac43455-sdio.bin for chip 0x004345(17221) rev 0x000006
Jan 01 04:00:03 router kernel: usbcore: registered new interface driver brcmfmac
Jan 01 04:00:03 router kernel: brcmfmac: brcmf_c_preinit_dcmds: Firmware version = wl0: Feb 27 2018 03:15:32 version 7.45.154 (r684107 CY) FWID 01-4fbe0b04
Jan 01 04:00:03 router kernel: brcmfmac: brcmf_c_preinit_dcmds: CLM version = API: 12.2 Data: 9.10.105 Compiler: 1.29.4 ClmImport: 1.36.3 Creation: 2018-03-09 18:56:28 

نسخو: 7.45.154 تاريخ 27.02.2018/XNUMX/XNUMX.

۽ يقيناً EPEL:

# cat > /etc/yum.repos.d/epel.repo << EOF
[epel]
name=Epel rebuild for armhfp
baseurl=https://armv7.dev.centos.org/repodir/epel-pass-1/
enabled=1
gpgcheck=0
EOF

# yum clean all
# rm -rfv /var/cache/yum
# yum update

4. نيٽ ورڪ جي ٺاھ جوڙ ۽ چئلينج اڳيان

جيئن اسان مٿي اتفاق ڪيو، "رسبري" مقامي نيٽ ورڪ سان "تار" سان ڳنڍيل آهي. اچو ته فرض ڪريون ته مهيا ڪندڙ انٽرنيٽ جي رسائي فراهم ڪري ٿي بلڪل ساڳئي طريقي سان: عوامي نيٽ ورڪ تي پتو متحرڪ طور تي DHCP سرور طرفان جاري ڪيو ويو آهي (شايد MAC پابند سان). انهي صورت ۾، راسبي جي آخري سيٽ اپ کان پوء، توهان کي صرف ان ۾ فراهم ڪندڙ جي ڪيبل کي "پلگ" ڪرڻ جي ضرورت آهي ۽ توهان ڪيو آهي. اختيار استعمال ڪندي سسٽم ڊي نيٽ ورڪ - هڪ الڳ مضمون جو موضوع ۽ هتي بحث نه ڪيو ويو آهي.

Raspberry جو وائي فائي انٽرفيس(s) هڪ مقامي نيٽ ورڪ آهي، ۽ بلٽ ان Ethernet اڊاپٽر (eth0) خارجي آهي. اچو ته مقامي نيٽ ورڪ کي مستحڪم طور تي نمبر ڏيو، مثال طور: 192.168.0.0/24. راسبي ائڊريس: 192.168.0.1. DHCP سرور خارجي نيٽ ورڪ (انٽرنيٽ) تي ڪم ڪندو.

نالي جي مطابقت جو مسئلو и مشهور گوئٽي مالا پروگرامر - ٻه مشڪلاتون جيڪي انتظار ڪن ٿيون هر ڪنهن جو جيڪو نيٽ ورڪ انٽرفيس ۽ خدمتن کي ترتيب ڏئي ٿو سسٽم جي تقسيم ۾.

متوازي افراتفري (لريڪل ڊگريشن)Lennart Pottering پنهنجو پروگرام مرتب ڪيو آهي سسٽم تمام سٺو. هي سسٽم ٻين پروگرامن کي ايترو جلدي شروع ڪري ٿو ته اهي، ريفري جي سيٽي جي ڌڪ کان بحال ٿيڻ جو وقت نه آهي، انهن جي رڪاوٽ واري ڪورس کي شروع ڪرڻ کان سواء شروع ۾ ٿڪجي ۽ گر ٿي وڃي.

پر سنجيدگي سان، سسٽمڊ او ايس جي شروعات ۾ شروع ٿيندڙ عملن جي جارحتي متوازي هڪ قسم جي "گدائي پل" آهي موسمي ترتيب واري LSB ماهرن لاء. خوشقسمتيء سان، هن "متوازي افراتفري" کي ترتيب ڏيڻ سادو آهي، جيتوڻيڪ هميشه واضح ناهي.

اسان مسلسل نالن سان ٻه ورچوئل پل انٽرفيس ٺاهيندا آهيون: lan и اهي. اسان وائي فائي اڊاپٽر کي "ڳنڍينداسين" پهرين سان، ۽ eth0 "رسبري" کي ٻئي سان.

/etc/systemd/network/lan.netdev:

[NetDev]
Name=lan
Kind=bridge

/etc/systemd/network/lan.network:

[Match]
Name=lan

[Network]
Address=192.168.0.1/24
IPForward=yes

/etc/systemd/network/wan.netdev:

[NetDev]
Name=wan
Kind=bridge
#MACAddress=xx:xx:xx:xx:xx:xx

/etc/systemd/network/wan.network:

[Match]
Name=wan

[Network]
DHCP=ipv4
IPForward=yes

IPForward = ها روٽنگ کي فعال ڪرڻ لاءِ sysctl ذريعي ڪرنل ڏانهن اشارو ڪرڻ جي ضرورت کي ختم ڪري ٿو.
MACA ائڊريس = اچو ته غير تبصرو ۽ تبديل ڪريو جيڪڏهن ضروري هجي.

پهرين اسان "ڳنڍيو" eth0. اسان ياد رکون ٿا "يونيفارميت جو مسئلو" ۽ صرف هن انٽرفيس جو MAC پتو استعمال ڪريو، جيڪو ڳولي سگھجي ٿو، مثال طور، هن وانگر:

# cat /sys/class/net/eth0/address 

اسان ٺاهيندا آهيون /etc/systemd/network/eth.network:

[Match]
MACAddress=b8:27:eb:xx:xx:xx

[Network]
Bridge=wan

اسان اڳوڻي ترتيب واري فائيل eth0 کي حذف ڪريون ٿا، راسبي ريبوٽ ڪريو ۽ ان تائين نيٽ ورڪ جي رسائي حاصل ڪريو (IP پتو گهڻو ڪري تبديل ٿي ويندو):

# rm -fv /etc/systemd/network/eth0.network
# reboot

5.DNSMASQ

وائي فائي رسائي پوائنٽس ٺاهڻ لاءِ ، ڪجھ به نه ٿو کٽي مٺي جوڙو متحرڪ + ميزبان اڃا تائين نه سمجهيو آهي. منهنجي خيال ۾.

جيڪڏهن ڪو وساري ڇڏي ته پوءِ...ميزبان - اها شيءِ آهي جيڪا وائي فائي ايڊاپٽرز کي ڪنٽرول ڪري ٿي (خاص طور تي، اهو انهن کي ورچوئل سان ڳنڍڻ جو خيال رکندو lan "raspberries")، وائرليس ڪلائنٽ کي اختيار ۽ رجسٽر ڪري ٿو.

متحرڪ - ڪلائنٽ جي نيٽ ورڪ اسٽيڪ کي ترتيب ڏئي ٿو: مسئلا IP پتي، ڊي اين ايس سرورز، ڊفالٽ گيٽ وي ۽ ساڳي نعمتون.

اچو ته dnsmasq سان شروع ڪريون:

# yum install dnsmasq

پوتر /etc/resolv.conf:

nameserver 1.1.1.1
nameserver 1.0.0.1
nameserver 8.8.8.8
nameserver 8.8.4.4
nameserver 77.88.8.8
nameserver 77.88.8.1
domain router.local
search router.local

ان کي پنهنجي مرضي مطابق تبديل ڪريو.

گھٽ ۾ گھٽ /etc/dnsmasq.conf:

domain-needed
bogus-priv
interface=lan
bind-dynamic
expand-hosts
domain=#
dhcp-range=192.168.0.100,192.168.0.199,255.255.255.0,24h
conf-dir=/etc/dnsmasq.d

"جادو" هتي پيٽرولر ۾ آهي پابند- متحرڪ، جيڪو dnsmasq ڊيمن کي ٻڌائي ٿو ته انتظار ڪريو جيستائين اهو سسٽم تي ظاهر ٿئي انٽرفيس = لان، ۽ شروع کان پوءِ فخر واري اڪيلائي جي فٽ کان بي هوش نه ٿيو.

# systemctl enable dnsmasq
# systemctl start dnsmasq; journalctl -f

6. HOSTAPD

۽ آخرڪار، جادو ميزباني ترتيبن. مون کي ڪو به شڪ ناهي ته ڪو ماڻهو هن مضمون کي پڙهي رهيو آهي صحيح طور تي انهن قيمتي لائينن جي ڳولا ۾.

hostapd انسٽال ڪرڻ کان پهريان، توهان کي "هڪجهڙائي واري مسئلي" تي قابو ڪرڻ جي ضرورت آهي. بلٽ ان وائي فائي اڊاپٽر wlan0 آساني سان پنهنجو نالو تبديل ڪري سگھي ٿو wlan1 جڏهن اضافي USB وائي فائي سامان ڳنڍيندي. تنهن ڪري، اسان هيٺ ڏنل طريقي سان انٽرفيس جا نالا درست ڪنداسين: اسان (وائرلیس) ايڊاپٽرز لاءِ منفرد نالا آڻينداسين ۽ انهن کي MAC پتي سان پابند ڪنداسين.

تعمير ٿيل وائي فائي اڊاپٽر لاء، جيڪو اڃا تائين wlan0 آهي:

# cat /sys/class/net/wlan0/address 
b8:27:eb:xx:xx:xx

اسان ٺاهيندا آهيون /etc/systemd/network/wl0.link:

[Match]
MACAddress=b8:27:eb:xx:xx:xx

[Link]
Name=wl0

هاڻي اسان کي پڪ ٿي ويندي wl0 - هي بلٽ ان وائي فائي آهي. اسان انهي کي پڪ ڪرڻ لاء راسبي ريبوٽ ڪريو.

انسٽال ڪريو:

# yum install hostapd wireless-tools

ٺاھ جوڙ فائيل /etc/hostapd/hostapd.conf:

ssid=rpi
wpa_passphrase=1234567890

channel=36

country_code=US

interface=wl0
bridge=lan

driver=nl80211

auth_algs=1
wpa=2
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP

macaddr_acl=0

hw_mode=a
wmm_enabled=1

# N
ieee80211n=1
require_ht=1
ht_capab=[MAX-AMSDU-3839][HT40+][SHORT-GI-20][SHORT-GI-40][DSSS_CCK-40]

# AC
ieee80211ac=1
require_vht=1
ieee80211d=0
ieee80211h=0
vht_capab=[MAX-AMSDU-3839][SHORT-GI-80]
vht_oper_chwidth=1
vht_oper_centr_freq_seg0_idx=42

هڪ لمحي لاءِ به وسارڻ کان سواءِ رياستي هنگامي ڪميٽي، اسان کي گهربل پيٽرولر تبديل ڪريو ۽ دستي طور تي ڪارڪردگي لاءِ چيڪ ڪريو:

# hostapd /etc/hostapd/hostapd.conf

hostapd انٽرايڪٽو موڊ ۾ شروع ٿيندي، ان جي رياست کي ڪنسول تائين نشر ڪندي. جيڪڏهن ڪو به نقص نه آهي، ته گراهڪ جيڪي AC موڊ کي سپورٽ ڪن ٿا، رسائي پوائنٽ سان ڳنڍڻ جي قابل هوندا. hostapd کي روڪڻ لاء - Ctrl-C.

باقي اهو آهي ته سسٽم جي شروعات ۾ hostapd کي فعال ڪرڻ. جيڪڏهن توهان معياري ڪم ڪريو ٿا (سسٽم سي ٽي ايل hostapd کي فعال ڪريو)، پوء ايندڙ ريبوٽ کان پوء توهان هڪ شيطان حاصل ڪري سگهو ٿا "رت ۾ رولنگ" جي تشخيص سان.انٽرفيس wl0 نه مليو". "متوازي افراتفري" جي نتيجي ۾، hostapd تيزيء سان شروع ڪيو ڪني کان وائرلیس اڊاپٽر مليو.

انٽرنيٽ علاجن سان ڀريل آهي: ڊيمون (ڪيترن منٽن) کي شروع ڪرڻ کان پهريان هڪ جبري وقت کان وٺي، ٻئي ڊيمون تائين جيڪو انٽرفيس جي ظاهر کي مانيٽر ڪري ٿو ۽ (ٻيهر) هوسٽ پيڊ شروع ڪري ٿو. حل ڪافي قابل عمل آهن، پر خوفناڪ بدصورت. اسان مدد لاء وڏي کي سڏيندا آهيون سسٽم ان جي "مقصد" ۽ "ڪم" ۽ "انحصار" سان.

تقسيم سروس فائل کي نقل ڪريو /etc/systemd/system/hostapd.service:

# cp -fv /usr/lib/systemd/system/hostapd.service /etc/systemd/system

۽ ان جي مواد کي هيٺين شڪل ۾ گھٽايو:

[Unit]
Description=Hostapd IEEE 802.11 AP, IEEE 802.1X/WPA/WPA2/EAP/RADIUS Authenticator
After=sys-subsystem-net-devices-wl0.device
BindsTo=sys-subsystem-net-devices-wl0.device

[Service]
Type=forking
PIDFile=/run/hostapd.pid
ExecStart=/usr/sbin/hostapd /etc/hostapd/hostapd.conf -P /run/hostapd.pid -B

[Install]
WantedBy=sys-subsystem-net-devices-wl0.device

اپڊيٽ ڪيل سروس فائل جو جادو نئين ٽارگيٽ تائين hostapd جي متحرڪ پابند ۾ آهي - wl0 انٽرفيس. جڏهن انٽرفيس ظاهر ٿئي ٿو، ڊيمون شروع ٿئي ٿو؛ جڏهن اهو غائب ٿي ويندو آهي، اهو بند ٿي ويندو آهي. ۽ اهو سڀ آن لائن آهي - سسٽم کي ريبوٽ ڪرڻ کان سواء. هي ٽيڪنڪ خاص طور تي مفيد ٿيندو جڏهن هڪ USB وائي فائي اڊاپٽر کي راسبي سان ڳنڍيندي.

هاڻي توهان ڪري سگهو ٿا:

# systemctl enable hostapd
# reboot

7. IPTABLES

”ڇا؟“ © ها، ها! ڪو به سسٽم. ڪو به نئون فينگل combines (فارم ۾ فائرالڊ)، جيڪو ساڳيو ڪم ڪري رهيو آهي.

اچو ته سٺي پراڻي استعمال ڪريون iptables، جن جون خدمتون، شروع ٿيڻ کان پوءِ، نيٽ ورڪ جي ضابطن کي ڪرنل ۾ لوڊ ڪنديون ۽ خاموشيءَ سان بند ٿي وينديون بغير رهاڪن ۽ وسيلن کي استعمال ڪرڻ کان سواءِ. systemd هڪ خوبصورت آهي IPMasquerade =، پر اسان اڃا تائين ايڊريس ترجمي (NAT) ۽ فائر وال کي iptables جي حوالي ڪنداسين.

انسٽال ڪريو:

# yum install iptables-services
# systemctl enable iptables ip6tables

مان iptables جي ترتيب کي اسڪرپٽ جي طور تي ذخيرو ڪرڻ کي ترجيح ڏيان ٿو (مثال):

#!/bin/bash

#
# Disable IPv6
#
ip6tables --flush
ip6tables --delete-chain

ip6tables --policy INPUT   DROP
ip6tables --policy FORWARD DROP
ip6tables --policy OUTPUT  DROP

ip6tables-save > /etc/sysconfig/ip6tables
systemctl restart ip6tables

#
# Cleaning
#
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT

#
# Loopback, lan
#
iptables -A INPUT -i lo  -j ACCEPT
iptables -A INPUT -i lan -j ACCEPT

#
# Ping, Established
#
iptables -A INPUT -p icmp  --icmp-type echo-request    -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

#
# NAT
#
iptables -t nat -A POSTROUTING -o wan -j MASQUERADE

#
# Saving
#
iptables-save > /etc/sysconfig/iptables
systemctl restart iptables

اسان مٿي ڏنل اسڪرپٽ تي عمل ڪريون ٿا ۽ Raspberry سان نئين وائرڊ SSH ڪنيڪشن قائم ڪرڻ جي صلاحيت وڃائي ويٺا آهيون. اھو صحيح آھي، اسان ھڪڙو وائي فائي روٽر ٺاھيو آھي، جنھن تائين رسائي "انٽرنيٽ ذريعي" ڊفالٽ طور تي منع ٿيل آھي - ھاڻي صرف "اوور دي ايئر". اسان فراهم ڪندڙ جي Ethernet ڪيبل کي ڳنڍيو ۽ سرفنگ شروع ڪيو!

8. بونس: +2,4GHz

جڏهن مون مٿي بيان ڪيل ڊرائنگ کي استعمال ڪندي پهريون Raspberry روٽر گڏ ڪيو، مون پنهنجي گهر ۾ ڪيترائي گيجٽ دريافت ڪيا جيڪي، وائي فائي ڊيزائن جي حدن جي ڪري، "راسبي" کي بلڪل به نه ڏسي سگهيا. 802.11b/g/n ۾ ڪم ڪرڻ لاءِ روٽر کي ٻيهر ترتيب ڏيڻ غير راندين وارو هو، ڇاڪاڻ ته هن معاملي ۾ وڌ ۾ وڌ رفتار “اوور دي ايئر” 40 Mbit کان وڌيڪ نه هئي، ۽ منهنجو پسنديده انٽرنيٽ فراهم ڪندڙ مون کي 100 (ڪيبل ذريعي) پيش ڪري ٿو.

حقيقت ۾، مسئلي جو هڪ حل اڳ ۾ ئي ايجاد ڪيو ويو آهي: هڪ ٻيو وائي فائي انٽرفيس جيڪو 2,4 GHz جي فريکوئنسي تي ڪم ڪري ٿو، ۽ هڪ سيڪنڊ رسائي پوائنٽ. هڪ ويجھي اسٽال تي مون پهرين نه، پر ٻي USB وائي فائي ”سيٽي“ خريد ڪئي. وڪرو ڪندڙ چپس بابت سوالن، ARM لينڪس ڪنيلز سان مطابقت ۽ اي پي موڊ ۾ ڪم ڪرڻ جي امڪان بابت سوالن جي ڪري عذاب ڪيو ويو (هو شروع ڪرڻ وارو پهريون هو).

اسان ٺاهيل وائي فائي اڊاپٽر سان قياس سان ”سيٽي“ ترتيب ڏيون ٿا.

پهرين، اچو ته ان جو نالو تبديل ڪريون wl1:

# cat /sys/class/net/wlan0/address 
b0:6e:bf:xx:xx:xx

/etc/systemd/network/wl1.link:

[Match]
MACAddress=b0:6e:bf:xx:xx:xx

[Link]
Name=wl1

اسان نئين وائي فائي انٽرفيس جي انتظام کي هڪ الڳ hostapd ڊيمن جي حوالي ڪنداسين، جيڪو سسٽم ۾ سخت وضاحت ڪيل "سيٽي" جي موجودگي جي بنياد تي شروع ۽ بند ٿيندو: wl1.

ٺاھ جوڙ فائيل /etc/hostapd/hostapd2.conf:

ssid=rpi2
wpa_passphrase=1234567890

#channel=1
#channel=6
channel=11

interface=wl1
bridge=lan

driver=nl80211

auth_algs=1
wpa=2
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP

macaddr_acl=0

hw_mode=g
wmm_enabled=1

# N
ieee80211n=1
require_ht=1
ht_capab=[HT40][SHORT-GI-20][SHORT-GI-40][DSSS_CCK-40]

ھن فائل جو مواد سڌو سنئون USB وائي فائي اڊاپٽر جي ماڊل تي منحصر آھي، تنھنڪري ھڪڙي عام ڪاپي / پيسٽ توھان کي ناڪام ٿي سگھي ٿو.

تقسيم سروس فائل کي نقل ڪريو /etc/systemd/system/hostapd2.service:

# cp -fv /usr/lib/systemd/system/hostapd.service /etc/systemd/system/hostapd2.service

۽ ان جي مواد کي هيٺين شڪل ۾ گھٽايو:

[Unit]
Description=Hostapd IEEE 802.11 AP, IEEE 802.1X/WPA/WPA2/EAP/RADIUS Authenticator
After=sys-subsystem-net-devices-wl1.device
BindsTo=sys-subsystem-net-devices-wl1.device

[Service]
Type=forking
PIDFile=/run/hostapd2.pid
ExecStart=/usr/sbin/hostapd /etc/hostapd/hostapd2.conf -P /run/hostapd2.pid -B

[Install]
WantedBy=sys-subsystem-net-devices-wl1.device

اهو سڀ ڪجهه رهي ٿو hostapd جي نئين مثال کي فعال ڪرڻ:

# systemctl enable hostapd2

اهو ئي سڀ ڪجهه آهي! پاڻ کي ”سيٽي“ ۽ ”رسبري“ کي ڇڪيو، پنهنجي چوڌاري وائرليس نيٽ ورڪن کي ڏسو.

۽ آخرڪار، مان توهان کي ڊيڄارڻ چاهيان ٿو USB وائي فائي اڊاپٽر جي معيار ۽ راسبي جي پاور سپلائي بابت. ڳنڍيل "گرم سيٽ" ڪڏهن ڪڏهن "رسبري منجمد" سبب ڪري سگهي ٿو مختصر مدت جي برقي مشڪلاتن جي ڪري.

جو ذريعو: www.habr.com

تبصرو شامل ڪريو