Raspberry Pi + CentOS = Wi-Fi හොට්ස්පොට් (හෝ රතු තොප්පියක් සහිත රාස්ප්බෙරි රවුටරය)

Raspberry තනි පුවරු පරිගණකයක් මත පදනම්ව Wi-Fi ප්රවේශ ස්ථාන නිර්මාණය කිරීම පිළිබඳ අන්තර්ජාලයේ විශාල තොරතුරු ප්රමාණයක් තිබේ. රීතියක් ලෙස, මෙයින් අදහස් කරන්නේ Raspberry හි උපන් Raspbian මෙහෙයුම් පද්ධතිය භාවිතා කිරීමයි.

RPM-පාදක පද්ධතිවල අනුගාමිකයෙකු වීම නිසා, මට මෙම කුඩා ආශ්චර්යය පසුකර යාමට නොහැකි වූ අතර මගේ ආදරණීය CentOS එය උත්සාහ කිරීමට නොහැකි විය.

CentOS මෙහෙයුම් පද්ධතිය මත පදනම් වූ Raspberry Pi 5 Model B+ වෙතින් 3GHz/AC Wi-Fi රවුටරයක් ​​සෑදීම සඳහා ලිපිය මඟින් උපදෙස් සපයයි. සම්මත නමුත් එතරම් නොදන්නා උපක්‍රම කිහිපයක් ඇති අතර ප්‍රසාද දීමනාවක් ලෙස - අතිරේක Wi-Fi උපකරණ Raspberry වෙත සම්බන්ධ කිරීම සඳහා චිත්‍රයක්, එය එකවර ආකාර කිහිපයකින් (2,4 + 5GHz) ක්‍රියා කිරීමට ඉඩ සලසයි.

Raspberry Pi + CentOS = Wi-Fi හොට්ස්පොට් (හෝ රතු තොප්පියක් සහිත රාස්ප්බෙරි රවුටරය)
(නොමිලේ ලබා ගත හැකි පින්තූර මිශ්‍රණය)

සමහර කොස්මික් ප්‍රවේග ක්‍රියා නොකරන බව අපි වහාම සටහන් කරමු. මම මගේ Raspberry වලින් උපරිම 100 Mbps වාතය හරහා මිරිකන අතර, මෙය මගේ අන්තර්ජාල සැපයුම්කරුගේ වේගය ආවරණය කරයි. න්‍යායාත්මකව ඔබට N මත පවා ගිගාබිට් භාගයක් ලබා ගත හැකි නම්, ඔබට මෙතරම් මන්දගාමී AC අවශ්‍ය වන්නේ ඇයි? ඔබ මෙම ප්‍රශ්නය ඔබෙන්ම අසා ඇත්නම්, බාහිර ඇන්ටනා අටක් සහිත සැබෑ රවුටරයක් ​​මිලදී ගැනීමට ගබඩාවට යන්න.

0. ඔබට අවශ්ය දේ

  • ඇත්ත වශයෙන්ම, "රාස්ප්බෙරි නිෂ්පාදනය" යනු ප්‍රමානික වේ: Pi 3 මාදිලිය B+ (ආශා කරන ලද 5GHz වේගයන් සහ නාලිකා ලබා ගැනීමට);
  • හොඳ microSD >= 4GB;
  • ලිනක්ස් සහ මයික්‍රෝ එස්ඩී රීඩර්/රයිටර් සමඟ වැඩපොළ;
  • ලිනක්ස් හි ප්‍රමාණවත් කුසලතා තිබීම, ලිපිය පුහුණු ගීක් සඳහා වේ;
  • Raspberry සහ Linux අතර රැහැන්ගත ජාල (eth0) සම්බන්ධතාවය, දේශීය ජාලයේ DHCP සේවාදායකය ධාවනය කිරීම සහ උපාංග දෙකෙන්ම අන්තර්ජාල ප්‍රවේශය.

අවසාන කරුණ ගැන කුඩා අදහසක්. "මුලින්ම ආවේ, බිත්තරය හෝ ..." අන්තර්ජාල ප්රවේශ උපකරණ නොමැති විට Wi-Fi රවුටරයක් ​​සාදා ගන්නේ කෙසේද? මෙම විනෝදාත්මක අභ්‍යාසය ලිපියේ විෂය පථයෙන් බැහැරව තබා රාස්ප්බෙරි දේශීය ජාලයට වයර් මගින් සම්බන්ධ කර ඇති බවත් අන්තර්ජාලයට ප්‍රවේශය ඇති බවත් උපකල්පනය කරමු. මෙම අවස්ථාවේදී, "raspberry" සැකසීම සඳහා අපට අතිරේක රූපවාහිනියක් සහ උපාමාරු යන්ත්රයක් අවශ්ය නොවනු ඇත.

1. CentOS ස්ථාපනය කරන්න

ව්‍යාපෘති මුල් පිටුව

මෙම ලිපිය ලියන අවස්ථාවේදී, උපාංගයේ CentOS හි ධාවන අනුවාදය 32-bit වේ. 64-bit ARM ගෘහ නිර්මාණ ශිල්පය මත එවැනි OS වල ක්‍රියාකාරිත්වය 20% කින් පමණ අඩු වන බවට ලෝක ව්‍යාප්ත වෙබ් අඩවියේ කොතැනක හෝ මතයක් මට හමු විය. මම අදහස් දැක්වීමකින් තොරව මේ මොහොතේ තබමි.

ලිනක්ස් හි, කර්නලය සමඟ අවම රූපය බාගන්න "-RaspberryPI-"සහ එය microSD වෙත ලියන්න:

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

රූපය භාවිතා කිරීමට පෙර, අපි එයින් SWAP කොටස ඉවත් කර, පවතින සම්පූර්ණ පරිමාවට root පුළුල් කර SELinux ඉවත් කරන්නෙමු. ඇල්ගොරිතම සරලයි: Linux හි root පිටපතක් සාදන්න, පළමු (/boot) හැර microSD වෙතින් සියලුම කොටස් මකා දමන්න, නව මූලයක් සාදා එහි අන්තර්ගතය පිටපතෙන් ආපසු ලබා දෙන්න.

අවශ්‍ය ක්‍රියා වල උදාහරණය (දරුණු කොන්සෝල ප්‍රතිදානය)

# 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 අක්‍රීය කරන්න /mnt/etc/selinux/config:

SELINUX=disabled

සංස්කරණය කරනවා /mnt/etc/fstab, එහි කොටස් පිළිබඳ ඇතුළත් කිරීම් දෙකක් පමණක් ඉතිරි වේ: boot (/boot, කිසිදු වෙනසක් නැත) සහ root (අපි UUID අගය වෙනස් කරමු, එය ලිනක්ස් හි blkid විධානයේ ප්‍රතිදානය අධ්‍යයනය කිරීමෙන් සොයාගත හැකිය):

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

අපි microSD "raspberry" වෙත නැවත සකස් කර, එය දියත් කර ssh (root/centos) හරහා ජාල ප්රවේශය ලබා ගනිමු.

2. CentOS පිහිටුවීම

පළමු නොසැලෙන චලනයන් තුන: සම්මතය, yum -y යාවත්කාලීන කිරීම, පද්ධතිය නැවත ආරම්භ.

අපි ජාල කළමනාකරණය ලබා දෙනවා ජාලගත කර ඇත:

# 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

අපි "raspberry" නැවත ආරම්භ කර නැවත ssh හරහා ජාල ප්රවේශය ලබා ගනිමු (IP ලිපිනය වෙනස් විය හැක). භාවිතා කරන දේ ගැන අවධානය යොමු කරන්න /etc/resolv.conf, ජාල කළමනාකරු විසින් කලින් නිර්මාණය කරන ලදී. එබැවින්, විසඳීමේ ගැටළු ඇති විට, එහි අන්තර්ගතය සංස්කරණය කරන්න. භාවිත systemd- විසඳා ඇත අපි එසේ නොකරමු.

අපි “අනවශ්‍ය” ඉවත් කර, මෙහෙයුම් පද්ධතිය පැටවීම අලුත්වැඩියා කර වේගවත් කරමු:

# 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

කාටද අවශ්‍ය cron වලින් සහ ගොඩනඟන ලද දේ දිරවන්නේ නැත systemd ටයිමර්, නැතිවූ දේ තහවුරු කළ හැක. / var / ලොග්- සහ බලන්න magazinectl. ඔබට ලොග් ඉතිහාසය අවශ්‍ය නම් (පෙරනිමියෙන්, තොරතුරු ගබඩා වන්නේ පද්ධතිය ආරම්භ වූ මොහොතේ සිට පමණි):

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

මූලික සේවාවන් මගින් IPv6 භාවිතය අබල කරන්න (අවශ්‍ය නම්)/ etc / ssh / sshd_config:

AddressFamily inet

/etc/sysconfig/chronyd:

OPTIONS="-4"

"raspberry" මත කාලයෙහි අදාළත්වය වැදගත් දෙයකි. නැවත පණගැන්වීමේදී ඔරලෝසුවේ වත්මන් තත්ත්වය සුරැකීමට කොටුවෙන් පිටත දෘඪාංග හැකියාවක් නොමැති බැවින්, සමමුහුර්ත කිරීම අවශ්ය වේ. මේ සඳහා ඉතා හොඳ සහ වේගවත් ඩීමන් වේ chrony - දැනටමත් ස්ථාපනය කර ස්වයංක්රීයව ආරම්භ වේ. ඔබට 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 සංඛ්‍යාතවල ක්‍රියාත්මක වන Wi-Fi රවුටරයක් ​​නිර්මාණය කිරීම බැවින්, අපි කලින් විස්මයන් සඳහා සූදානම් වෙමු. නියාමකය:

# yum තොරතුරු 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 ඇඩෝන

ඉහත සඳහන් කළ සෑම දෙයක්ම Raspberry Pi මත "වැනිලා" CentOS ස්ථාපනය කිරීම සඳහා සම්පූර්ණ උපදෙස් ලෙස සැලකිය හැකිය. ඔබ අවසන් විය යුත්තේ තත්පර 10කට අඩු කාලයකින් (නැවත) බූට් වන, මෙගාබයිට් 15කට වඩා අඩු RAM සහ ගිගාබයිට් 1.5කට අඩු මයික්‍රෝ එස්ඩී භාවිතා කරන (අසම්පූර්ණ /බූට් එකක් නිසා ඇත්ත වශයෙන්ම ගිගාබයිට් 1කට වඩා අඩුවෙන්, නමුත් අපි අවංක වෙමු).

මෙම පද්ධතියේ Wi-Fi ප්‍රවේශ ලක්ෂ්‍ය මෘදුකාංග ස්ථාපනය කිරීම සඳහා, ඔබට සම්මත CentOS බෙදාහැරීමේ හැකියාවන් තරමක් පුළුල් කිරීමට අවශ්‍ය වනු ඇත. මුලින්ම, අපි බිල්ට් Wi-Fi ඇඩැප්ටරයේ ධාවකය (ස්ථිරාංග) උත්ශ්රේණි කරමු. ව්‍යාපෘතියේ මුල් පිටුව මෙසේ කියයි:

Raspberry 3B සහ 3B+ මත Wifi

Raspberry PI 3B/3B+ ස්ථිරාංග ගොනු CentOS ව්‍යාපෘතිය මගින් බෙදා හැරීමට ඉඩ නොදේ. ගැටළුව තේරුම් ගැනීමට, ස්ථිරාංග ලබා ගැනීමට සහ wifi සැකසීමට ඔබට පහත ලිපි භාවිතා කළ හැකිය.

CentOS ව්‍යාපෘතිය සඳහා තහනම් කර ඇති දේ පුද්ගලික භාවිතය සඳහා අපට තහනම් නොවේ. අපි CentOS හි බෙදාහැරීමේ Wi-Fi ෆර්ම්වෙයාර් බ්‍රෝඩ්කොම් සංවර්ධකයන්ගෙන් අනුරූප එකක් සමඟ ප්‍රතිස්ථාපනය කරන්නෙමු (එම වෛරයට ලක් වූ ද්විමය බ්ලොබ්ස්...). මෙය, විශේෂයෙන්ම, ප්රවේශ ලක්ෂ්ය මාදිලියේ AC භාවිතා කිරීමට ඔබට ඉඩ සලසයි.

Wi-Fi ස්ථිරාංග උත්ශ්රේණි කිරීමඋපාංග ආකෘතිය සහ වත්මන් ස්ථිරාංග අනුවාදය සොයා ගන්න:

# 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 රූපය බාගන්න. කම්මැලි අයට image එක microSD වලට ලියලා එතනින් firmware එක තියෙන files ගන්න පුළුවන්. නැතහොත් ඔබට ලිනක්ස් හි රූපයේ මූල කොටස සවි කර ඔබට අවශ්‍ය දේ එතැනින් පිටපත් කළ හැකිය:

# 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

ප්‍රතිඵලයක් ලෙස ලැබෙන Wi-Fi ඇඩැප්ටර ස්ථිරාංග ගොනු නාමාවලියට පිටපත් කර "raspberry" සමඟ ප්‍රතිස්ථාපනය කළ යුතුය. /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 බන්ධනය සමඟ) ගතිකව නිකුත් කරනු ලැබේ. මෙම අවස්ථාවේදී, රාස්ප්බෙරි වල අවසාන සැකසුමෙන් පසුව, ඔබට සැපයුම්කරුගේ කේබලය එයට "ප්ලග්" කිරීමට අවශ්ය වන අතර ඔබ අවසන් කර ඇත. භාවිතා කිරීමට අවසර දීම systemd-networkd - වෙනම ලිපියක මාතෘකාව සහ මෙහි සාකච්ඡා නොකෙරේ.

Raspberry හි Wi-Fi අතුරුමුහුණත (ය) දේශීය ජාලයක් වන අතර, ගොඩනඟන ලද ඊතර්නෙට් ඇඩැප්ටරය (eth0) බාහිර වේ. දේශීය ජාලය ස්ථිතික ලෙස අංකනය කරමු, උදාහරණයක් ලෙස: 192.168.0.0/24. රාස්ප්බෙරි ලිපිනය: 192.168.0.1. DHCP සේවාදායකයක් බාහිර ජාලයේ (අන්තර්ජාලය) ක්‍රියා කරයි.

නම් කිරීමේ අනුකූලතා ගැටළුව и සුප්‍රසිද්ධ ග්වාටමාලා ක්‍රමලේඛකයෙක් - systemd බෙදාහැරීම් වලදී ජාල අතුරුමුහුණත් සහ සේවා වින්‍යාස කරන ඕනෑම කෙනෙකුට ඇති කරදර දෙකක්.

සමාන්තර අවුල් (ගීතමය අපගමනය)Lennart Pottering විසින් තමන්ගේම වැඩසටහනක් සම්පාදනය කර ඇත පද්ධතිමය ඉතා හොඳයි. මෙය පද්ධතිමය අනෙකුත් වැඩසටහන් කෙතරම් ඉක්මනින් දියත් කරයි ද යත්, විනිසුරුගේ විස්ල් පහරින් ගොඩ ඒමට වෙලාවක් නොමැතිව, ඔවුන්ගේ බාධක මාර්ගය ආරම්භ නොකර ආරම්භයේදීම පැකිලී වැටේ.

නමුත් බරපතල ලෙස, systemd OS ආරම්භයේදී දියත් කරන ලද ක්‍රියාවලීන්ගේ ආක්‍රමණශීලී සමාන්තරකරණය පළපුරුදු අනුක්‍රමික LSB විශේෂඥයින් සඳහා "බූරු පාලමක්" වේ. වාසනාවකට මෙන්, මෙම "සමාන්තර අවුල්" පිළිවෙලට ගෙන ඒම සෑම විටම පැහැදිලි නැතත්, සරල බව පෙනේ.

අපි නියත නම් සහිත අතථ්‍ය පාලම් අතුරුමුහුණත් දෙකක් සාදන්නෙමු: ලාන් и අවශ්යයි. අපි Wi-Fi ඇඩැප්ටරය (ය) පළමු එකටත්, eth0 “raspberry” දෙවන එකටත් “සම්බන්ධ” කරන්නෙමු.

/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 හරහා කර්නලය වෙත ඉඟි කිරීමේ අවශ්‍යතාවය ඉවත් කරයි.
MACAddress= අවශ්‍ය නම් කමෙන්ට් ඉවත් කර වෙනස් කරමු.

මුලින්ම අපි 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 මකා, Raspberry නැවත ආරම්භ කර එයට ජාල ප්‍රවේශය ලබා ගනිමු (IP ලිපිනය බොහෝ දුරට වෙනස් වනු ඇත):

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

5.DNSMASQ

Wi-Fi ප්‍රවේශ ලක්ෂ්‍ය සෑදීම සඳහා, මිහිරි යුවළකට වඩා කිසිවක් නැත dnsmasq + hostapd තාම ඒක තේරුනේ නෑ. මගේ මතය අනුව.

කාට හරි අමතක උනොත් ඉතින්...hostapd - මෙය Wi-Fi ඇඩැප්ටර පාලනය කරන දෙයයි (විශේෂයෙන්, එය අථත්ය වෙත සම්බන්ධ කිරීම ගැන සැලකිලිමත් වනු ඇත. ලාන් "raspberries"), රැහැන් රහිත සේවාලාභීන්ට අවසර දීම සහ ලියාපදිංචි කිරීම.

dnsmasq — සේවාලාභීන්ගේ ජාල තොගය වින්‍යාස කරයි: IP ලිපින, DNS සේවාදායකයන්, පෙරනිමි ද්වාරය සහ ඒ හා සමාන සතුටක් නිකුත් කරයි.

අපි 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 ඩීමන් හට කියයි interface=ලැන්, සහ ආරම්භයෙන් පසු සාඩම්බර තනිකමකින් ක්ලාන්ත නොවන්න.

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

6. HOSTAPD

අවසාන වශයෙන්, මැජික් hostapd වින්‍යාසයන්. කවුරුහරි මේ ලිපිය කියවන්නේ හරියටම මේ නිධන්ගත රේඛා සොයමින් බව මට සැකයක් නැත.

hostapd ස්ථාපනය කිරීමට පෙර, ඔබ "ඒකාකාරී ගැටලුව" ජය ගත යුතුය. අතිරේක USB Wi-Fi උපකරණ සම්බන්ධ කිරීමේදී ගොඩනඟන ලද Wi-Fi ඇඩැප්ටරය wlan0 පහසුවෙන් එහි නම wlan1 ලෙස වෙනස් කළ හැකිය. එබැවින්, අපි පහත දැක්වෙන ආකාරයෙන් අතුරුමුහුණත් නම් සකස් කරන්නෙමු: අපි (රැහැන් රහිත) ඇඩප්ටරයන් සඳහා අද්විතීය නම් ඉදිරිපත් කර MAC ලිපිනවලට සම්බන්ධ කරන්නෙමු.

තවමත් wlan0 වන බිල්ට් Wi-Fi ඇඩැප්ටරය සඳහා:

# 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 - මෙය බිල්ට්-ඉන් Wi-Fi වේ. මෙය තහවුරු කර ගැනීම සඳහා අපි Raspberry නැවත ආරම්භ කරමු.

ස්ථාපනය කරන්න:

# 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 එහි තත්වය console වෙත විකාශනය කරමින් අන්තර්ක්‍රියාකාරී ආකාරයෙන් ආරම්භ වනු ඇත. දෝෂ නොමැති නම්, AC මාදිලියට සහය දක්වන සේවාදායකයින්ට ප්‍රවේශ ස්ථානයට සම්බන්ධ වීමට හැකි වේ. hostapd නැවැත්වීමට - Ctrl-C.

පද්ධතිය ආරම්භයේදී hostapd සක්‍රීය කිරීම පමණක් ඉතිරිව ඇත. ඔබ සම්මත දේ කරන්නේ නම් (systemctl 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

යාවත්කාලීන කරන ලද සේවා ගොනුවේ මැජික් එක නව ඉලක්කයට - wl0 අතුරු මුහුණතට hostapd ගතික බැඳීම තුළ පවතී. අතුරු මුහුණත දිස්වන විට, ඩීමන් ආරම්භ වේ; එය අතුරුදහන් වූ විට, එය නතර වේ. මේ සියල්ල මාර්ගගතව ඇත - පද්ධතිය නැවත ආරම්භ නොකර. USB Wi-Fi ඇඩැප්ටරය Raspberry වෙත සම්බන්ධ කිරීමේදී මෙම තාක්ෂණය විශේෂයෙන් ප්රයෝජනවත් වනු ඇත.

දැන් ඔබට පුළුවන්:

# systemctl enable hostapd
# reboot

7. IPTables

"මොකද???" © ඔව්, ඔව්! කිසිවක් නැත පද්ධතිමය. නව විකෘති සංයෝජනයක් නොමැත (ආකෘතියෙන් ෆයර්වෝල්ඩ්), එය අවසන් වන්නේ එකම දෙයයි.

අපි හොඳ පැරණි එක භාවිතා කරමු 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 සම්බන්ධතා පිහිටුවීමේ හැකියාව නැති කර ගනිමු. ඒක හරි, අපි Wi-Fi රවුටරයක් ​​සාදා ඇත, පෙරනිමියෙන් “අන්තර්ජාලය හරහා” ප්‍රවේශය තහනම් කර ඇත - දැන් “ගුවන් හරහා” පමණි. අපි සැපයුම්කරුගේ ඊතර්නෙට් කේබලය සම්බන්ධ කර සැරිසැරීමට පටන් ගනිමු!

8. බෝනස්: +2,4GHz

ඉහත විස්තර කර ඇති චිත්‍රය භාවිතා කරමින් මම පළමු Raspberry router එකලස් කළ විට, මගේ නිවසේ Wi-Fi සැලසුම් සීමාවන් නිසා "raspberry" කිසිසේත් දැකිය නොහැකි උපකරණ ගණනාවක් මම සොයා ගතිමි. 802.11b/g/n හි වැඩ කිරීමට රවුටරය නැවත සකස් කිරීම ක්‍රීඩා නොකරන අතර, මෙම නඩුවේ "ගුවන් හරහා" උපරිම වේගය 40 Mbit නොඉක්මවන අතර, මගේ ප්‍රියතම අන්තර්ජාල සැපයුම්කරු මට 100 (කේබල් හරහා) ලබා දෙයි.

ඇත්ත වශයෙන්ම, ගැටලුවට විසඳුමක් දැනටමත් සොයාගෙන ඇත: 2,4 GHz සංඛ්යාතයකින් ක්රියාත්මක වන දෙවන Wi-Fi අතුරුමුහුණත සහ දෙවන ප්රවේශ ලක්ෂ්යය. අසල ඇති කුටියකදී මම මිලදී ගත්තේ පළමුවැන්න නොව දෙවන USB Wi-Fi "විස්ල්" ය. චිප්සෙට් එක, ARM ලිනක්ස් කර්නල් සමඟ ගැළපුම සහ AP මාදිලියේ වැඩ කිරීමේ හැකියාව පිළිබඳ ප්‍රශ්නවලින් විකුණුම්කරු වද හිංසාවට ලක් විය (ඔහු මුලින්ම ආරම්භ කළේ).

අපි ගොඩනඟන ලද Wi-Fi ඇඩැප්ටරය සමඟ සාදෘශ්‍යයෙන් "විස්ල්" වින්‍යාස කරමු.

පළමුව, අපි එය නැවත නම් කරමු 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

නව Wi-Fi අතුරුමුහුණත කළමනාකරණය කිරීම අපි වෙනම 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 Wi-Fi ඇඩැප්ටරයේ ආකෘතිය මත කෙලින්ම රඳා පවතී, එබැවින් සාමාන්‍ය පිටපතක්/ඇලවීමක් ඔබට අසාර්ථක විය හැක.

බෙදාහැරීමේ සේවා ගොනුව පිටපත් කරන්න /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 Wi-Fi ඇඩැප්ටරයේ ගුණාත්මකභාවය සහ Raspberry හි බල සැපයුම පිළිබඳව ඔබට අනතුරු ඇඟවීමට අවශ්‍යය. සම්බන්ධිත "උණුසුම් විස්ල්" සමහර විට කෙටි කාලීන විදුලි කරදර හේතුවෙන් "රාස්ප්බෙරි කැටි" ඇති විය හැක.

මූලාශ්රය: www.habr.com

අදහස් එක් කරන්න