WIFI: одноранговые сети

Настройка, программирование, распределённые вычисления

Модераторы: Olej, bellic, vikos

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

WIFI: одноранговые сети

Непрочитанное сообщение Olej » 17 сен 2022, 20:19

Имеются в виду сети Ad-Hoc (IBSS - Independent Basic Service Set, p2p...) + mesh-сети (ячеистая топология).
И то и другое (и необходимость) уже затрагивалось раньше:
- по Ad-Hoc: связь по WiFi своими руками
У нас возникла совершенно новая подсетка 192.168.2.0 (у меня такой нет).
Как я понимаю, это - всё!
Если на другом WiFi ответном проделать то же самое, то получим линк.
- по mesh: Mesh сети
Таким образом, в любом месте без интернета или при его блокировке, благодаря данному фреймворку и приложению можно совершенно спокойно продолжать общаться и обмениваться информацией.
Mesh сети — это вполне осмысленный следующий шаг в развитии беспроводных сетей, в mesh сети вы «сам себе провайдер», вас нельзя отключить от этой сети, с вами нельзя разорвать договор о пользовании интернетом, вас нельзя подслушивать СОРМ'ом спец оборудованием.
Но там дело как-то не дошло, за недостатком времени, до детального разьирательства (т.е.) создания и опробывания сети.
Пришло время разобраться...

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: WIFI: одноранговые сети

Непрочитанное сообщение Olej » 17 сен 2022, 20:25

Olej писал(а):
17 сен 2022, 20:19
Пришло время разобраться...
Пока лучшее что мне нашлось - mac80211 Multiple Virtual Interface (vif):
Подсистема mac80211 в ядре Linux поддерживает создание нескольких беспроводных интерфейсов с помощью одной физической беспроводной карты. Это зависит от драйвера, реализующего это. Это может позволить вам присоединиться к нескольким сетям одновременно или подключиться к одной сети при маршрутизации трафика от интерфейса точки доступа.
The <type> field is where you define what sort of interface you're creating. It is one of:
* ibss - IBSS/ad-hoc
* mp - Mesh Point
* monitor - Monitor
* ap - Access Point (special steps required)
* station - Station/Client
P.S. Эта часть документации - из документации утилиты iw:

Код: Выделить всё

olej@R420:~$ which iw
/usr/sbin/iw
Возможно, её придётся доустанавливать дополнительно (в дистрибутиве или конфигурации).

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: WIFI: одноранговые сети

Непрочитанное сообщение Olej » 17 сен 2022, 20:56

Olej писал(а):
17 сен 2022, 20:19
Пришло время разобраться...
Прежде (для пользования команд iw) нужно уточниться с 2-мя вопросами:
1. для каждого типа WiFi определить (и как?) то, какие mode он поддерживает - не все чипы поддерживают все возможности.
2. как соотносятся физические номера WiFi устройств (phy1 ...) с именами интерфейсов.
(такое соотношение показано здесь: WiFi: диагностика и управление - но это косвенный способ)

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: WIFI: одноранговые сети

Непрочитанное сообщение Olej » 17 сен 2022, 21:08

Olej писал(а):
17 сен 2022, 20:56
2. как соотносятся физические номера WiFi устройств (phy1 ...) с именами интерфейсов.

Код: Выделить всё

olej@compaq:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Linuxmint
Description:    LMDE 5 (elsie)
Release:        5
Codename:       elsie

Код: Выделить всё

olej@compaq:~$ lsusb | grep -i wireless
Bus 002 Device 004: ID 148f:7601 Ralink Technology, Corp. MT7601U Wireless Adapter
Bus 002 Device 003: ID 148f:5370 Ralink Technology, Corp. RT5370 Wireless Adapter

Код: Выделить всё

olej@compaq:~$ lsusb -t
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/3p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/8p, 480M
        |__ Port 7: Dev 3, If 0, Class=Vendor Specific Class, Driver=rt2800usb, 480M
        |__ Port 8: Dev 4, If 0, Class=Vendor Specific Class, Driver=mt7601u, 480M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/3p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/6p, 480M
        |__ Port 1: Dev 3, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
        |__ Port 1: Dev 3, If 1, Class=Human Interface Device, Driver=usbhid, 1.5M
В такой форме я могу хоть драйвера поддерживающий определить! (rt2800usb для 148f:5370 - Device 003 + mt7601u для 148f:7601 - Device 004).

Код: Выделить всё

olej@compaq:~$ rfkill
ID TYPE DEVICE      SOFT      HARD
 0 wlan phy0   unblocked unblocked
 1 wlan phy1   unblocked unblocked
Кто из phy0 / phy1 - 148f:7601 и кто 148f:5370 :?:

Код: Выделить всё

olej@compaq:~$ ip l | grep wlx -A1
3: wlxc83a35c1eb3f: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DORMANT group default qlen 1000
    link/ether c8:3a:35:c1:eb:3f brd ff:ff:ff:ff:ff:ff
4: wlx008736005357: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DORMANT group default qlen 1000
    link/ether 00:87:36:00:53:57 brd ff:ff:ff:ff:ff:ff
И кто из них wlxc83a35c1eb3f а кто wlx008736005357 :?:
Прямым указанием (командой), а не ковырянием в дебрях /sys :-(

Код: Выделить всё

olej@compaq:~$ ls -lL /sys/class/ieee80211/phy*/device/net/
/sys/class/ieee80211/phy0/device/net/:
итого 0
drwxr-xr-x 6 root root 0 сен 17 20:00 wlxc83a35c1eb3f

/sys/class/ieee80211/phy1/device/net/:
итого 0
drwxr-xr-x 6 root root 0 сен 17 20:58 wlx008736005357

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: WIFI: одноранговые сети

Непрочитанное сообщение Olej » 17 сен 2022, 21:54

Olej писал(а):
17 сен 2022, 21:08
Прямым указанием (командой), а не ковырянием в дебрях /sys
Вот таким косвенным способом "через задницу" я могу соотнести:

Код: Выделить всё

olej@compaq:~$ ls /sys/class/ieee80211
phy0  phy1
- ph0 :

Код: Выделить всё

olej@compaq:/sys/class/ieee80211/phy1/device$ ls -l /sys/class/ieee80211/phy0/device/driver
lrwxrwxrwx 1 root root 0 сен 17 20:00 /sys/class/ieee80211/phy0/device/driver -> ../../../../../../../bus/usb/drivers/rt2800usb

olej@compaq:/sys/class/ieee80211/phy1/device$ cat /sys/class/ieee80211/phy0/device/modalias
usb:v148Fp5370d0101dc00dsc00dp00icFFiscFFipFFin00

olej@compaq:/sys/class/ieee80211/phy1/device$ ls /sys/class/ieee80211/phy0/device/net
wlxc83a35c1eb3f
ph0 = 148Fp5370 = wlxc83a35c1eb3f

- ph1 :

Код: Выделить всё

olej@compaq:/sys/class/ieee80211/phy1/device$ ls -l /sys/class/ieee80211/phy1/device/driver
lrwxrwxrwx 1 root root 0 сен 17 20:58 /sys/class/ieee80211/phy1/device/driver -> ../../../../../../../bus/usb/drivers/mt7601u

olej@compaq:/sys/class/ieee80211/phy1/device$ cat /sys/class/ieee80211/phy1/device/modalias
usb:v148Fp7601d0000dc00dsc00dp00icFFiscFFipFFin00

olej@compaq:/sys/class/ieee80211/phy1/device$ ls /sys/class/ieee80211/phy1/device/net
wlx008736005357
ph1 = 148Fp7601 = wlx008736005357

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: WIFI: одноранговые сети

Непрочитанное сообщение Olej » 17 сен 2022, 22:08

Olej писал(а):
17 сен 2022, 20:56
1. для каждого типа WiFi определить (и как?) то, какие mode он поддерживает - не все чипы поддерживают все возможности.
Вот таким вот объёмным :-( способом:

Код: Выделить всё

olej@compaq:/sys/class/ieee80211$ iw phy phy0 info
Wiphy phy0
	wiphy index: 0
	max # scan SSIDs: 4
	max scan IEs length: 2257 bytes
	max # sched scan SSIDs: 0
	max # match sets: 0
	Retry short long limit: 2
	Coverage class: 0 (up to 0m)
	Device supports RSN-IBSS.
	Supported Ciphers:
		* WEP40 (00-0f-ac:1)
		* WEP104 (00-0f-ac:5)
		* TKIP (00-0f-ac:2)
		* CCMP-128 (00-0f-ac:4)
		* CCMP-256 (00-0f-ac:10)
		* GCMP-128 (00-0f-ac:8)
		* GCMP-256 (00-0f-ac:9)
		* CMAC (00-0f-ac:6)
		* CMAC-256 (00-0f-ac:13)
		* GMAC-128 (00-0f-ac:11)
		* GMAC-256 (00-0f-ac:12)
	Available Antennas: TX 0 RX 0
	Supported interface modes:
		 * IBSS
		 * managed
		 * AP
		 * AP/VLAN
		 * monitor
		 * mesh point
	Band 1:
		Capabilities: 0x17e
			HT20/HT40
			SM Power Save disabled
			RX Greenfield
			RX HT20 SGI
			RX HT40 SGI
			RX STBC 1-stream
			Max AMSDU length: 3839 bytes
			No DSSS/CCK HT40
		Maximum RX AMPDU length 32767 bytes (exponent: 0x002)
		Minimum RX AMPDU time spacing: 2 usec (0x04)
		HT TX/RX MCS rate indexes supported: 0-7, 32
		Bitrates (non-HT):
			* 1.0 Mbps
			* 2.0 Mbps (short preamble supported)
			* 5.5 Mbps (short preamble supported)
			* 11.0 Mbps (short preamble supported)
			* 6.0 Mbps
			* 9.0 Mbps
			* 12.0 Mbps
			* 18.0 Mbps
			* 24.0 Mbps
			* 36.0 Mbps
			* 48.0 Mbps
			* 54.0 Mbps
		Frequencies:
			* 2412 MHz [1] (20.0 dBm)
			* 2417 MHz [2] (20.0 dBm)
			* 2422 MHz [3] (20.0 dBm)
			* 2427 MHz [4] (20.0 dBm)
			* 2432 MHz [5] (20.0 dBm)
			* 2437 MHz [6] (20.0 dBm)
			* 2442 MHz [7] (20.0 dBm)
			* 2447 MHz [8] (20.0 dBm)
			* 2452 MHz [9] (20.0 dBm)
			* 2457 MHz [10] (20.0 dBm)
			* 2462 MHz [11] (20.0 dBm)
			* 2467 MHz [12] (20.0 dBm) (no IR)
			* 2472 MHz [13] (20.0 dBm) (no IR)
			* 2484 MHz [14] (20.0 dBm) (no IR)
	Supported commands:
		 * new_interface
		 * set_interface
		 * new_key
		 * start_ap
		 * new_station
		 * new_mpath
		 * set_mesh_config
		 * set_bss
		 * authenticate
		 * associate
		 * deauthenticate
		 * disassociate
		 * join_ibss
		 * join_mesh
		 * remain_on_channel
		 * set_tx_bitrate_mask
		 * frame
		 * frame_wait_cancel
		 * set_wiphy_netns
		 * set_channel
		 * set_wds_peer
		 * probe_client
		 * set_noack_map
		 * register_beacons
		 * start_p2p_device
		 * set_mcast_rate
		 * connect
		 * disconnect
		 * set_qos_map
		 * set_multicast_to_unicast
	software interface modes (can always be added):
		 * AP/VLAN
		 * monitor
	valid interface combinations:
		 * #{ AP, mesh point } <= 8,
		   total <= 8, #channels <= 1
	HT Capability overrides:
		 * MCS: ff ff ff ff ff ff ff ff ff ff
		 * maximum A-MSDU length
		 * supported channel width
		 * short GI for 40 MHz
		 * max A-MPDU length exponent
		 * min MPDU start spacing
	Device supports TX status socket option.
	Device supports HT-IBSS.
	Device supports SAE with AUTHENTICATE command
	Device supports low priority scan.
	Device supports scan flush.
	Device supports AP scan.
	Device supports per-vif TX power setting
	Driver supports full state transitions for AP/GO clients
	Driver supports a userspace MPM
	Device supports configuring vdev MAC-addr on create.
	max # scan plans: 1
	max scan plan interval: -1
	max scan plan iterations: 0
	Supported TX frame types:
		 * IBSS: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
		 * managed: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
		 * AP: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
		 * AP/VLAN: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
		 * mesh point: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
		 * P2P-client: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
		 * P2P-GO: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
		 * P2P-device: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
	Supported RX frame types:
		 * IBSS: 0x40 0xb0 0xc0 0xd0
		 * managed: 0x40 0xb0 0xd0
		 * AP: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0
		 * AP/VLAN: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0
		 * mesh point: 0xb0 0xc0 0xd0
		 * P2P-client: 0x40 0xd0
		 * P2P-GO: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0
		 * P2P-device: 0x40 0xd0
	Supported extended features:
		* [ RRM ]: RRM
		* [ FILS_STA ]: STA FILS (Fast Initial Link Setup)
		* [ CQM_RSSI_LIST ]: multiple CQM_RSSI_THOLD records
		* [ CONTROL_PORT_OVER_NL80211 ]: control port over nl80211
		* [ SCAN_RANDOM_SN ]: use random sequence numbers in scans
		* [ SCAN_MIN_PREQ_CONTENT ]: use probe request with only rate IEs in scans
		* [ CONTROL_PORT_NO_PREAUTH ]: disable pre-auth over nl80211 control port support
		* [ DEL_IBSS_STA ]: deletion of IBSS station support
		* [ SCAN_FREQ_KHZ ]: scan on kHz frequency support
		* [ CONTROL_PORT_OVER_NL80211_TX_STATUS ]: tx status for nl80211 control port support

Код: Выделить всё

olej@compaq:/sys/class/ieee80211$ iw phy phy1 info
Wiphy phy1
	wiphy index: 1
	max # scan SSIDs: 4
	max scan IEs length: 2257 bytes
	max # sched scan SSIDs: 0
	max # match sets: 0
	Retry short limit: 7
	Retry long limit: 4
	Coverage class: 0 (up to 0m)
	Supported Ciphers:
		* WEP40 (00-0f-ac:1)
		* WEP104 (00-0f-ac:5)
		* TKIP (00-0f-ac:2)
		* CCMP-128 (00-0f-ac:4)
		* CCMP-256 (00-0f-ac:10)
		* GCMP-128 (00-0f-ac:8)
		* GCMP-256 (00-0f-ac:9)
		* CMAC (00-0f-ac:6)
		* CMAC-256 (00-0f-ac:13)
		* GMAC-128 (00-0f-ac:11)
		* GMAC-256 (00-0f-ac:12)
	Available Antennas: TX 0 RX 0
	Supported interface modes:
		 * managed
		 * monitor
	Band 1:
		Capabilities: 0x17e
			HT20/HT40
			SM Power Save disabled
			RX Greenfield
			RX HT20 SGI
			RX HT40 SGI
			RX STBC 1-stream
			Max AMSDU length: 3839 bytes
			No DSSS/CCK HT40
		Maximum RX AMPDU length 65535 bytes (exponent: 0x003)
		Minimum RX AMPDU time spacing: 2 usec (0x04)
		HT TX/RX MCS rate indexes supported: 0-7, 32
		Bitrates (non-HT):
			* 1.0 Mbps (short preamble supported)
			* 2.0 Mbps (short preamble supported)
			* 5.5 Mbps (short preamble supported)
			* 11.0 Mbps (short preamble supported)
			* 6.0 Mbps
			* 9.0 Mbps
			* 12.0 Mbps
			* 18.0 Mbps
			* 24.0 Mbps
			* 36.0 Mbps
			* 48.0 Mbps
			* 54.0 Mbps
		Frequencies:
			* 2412 MHz [1] (20.0 dBm)
			* 2417 MHz [2] (20.0 dBm)
			* 2422 MHz [3] (20.0 dBm)
			* 2427 MHz [4] (20.0 dBm)
			* 2432 MHz [5] (20.0 dBm)
			* 2437 MHz [6] (20.0 dBm)
			* 2442 MHz [7] (20.0 dBm)
			* 2447 MHz [8] (20.0 dBm)
			* 2452 MHz [9] (20.0 dBm)
			* 2457 MHz [10] (20.0 dBm)
			* 2462 MHz [11] (20.0 dBm)
			* 2467 MHz [12] (20.0 dBm) (no IR)
			* 2472 MHz [13] (20.0 dBm) (no IR)
			* 2484 MHz [14] (20.0 dBm) (no IR)
	Supported commands:
		 * new_interface
		 * set_interface
		 * new_key
		 * start_ap
		 * new_station
		 * new_mpath
		 * set_mesh_config
		 * set_bss
		 * authenticate
		 * associate
		 * deauthenticate
		 * disassociate
		 * join_ibss
		 * join_mesh
		 * remain_on_channel
		 * set_tx_bitrate_mask
		 * frame
		 * frame_wait_cancel
		 * set_wiphy_netns
		 * set_channel
		 * set_wds_peer
		 * probe_client
		 * set_noack_map
		 * register_beacons
		 * start_p2p_device
		 * set_mcast_rate
		 * connect
		 * disconnect
		 * set_qos_map
		 * set_multicast_to_unicast
	software interface modes (can always be added):
		 * monitor
	interface combinations are not supported
	HT Capability overrides:
		 * MCS: ff ff ff ff ff ff ff ff ff ff
		 * maximum A-MSDU length
		 * supported channel width
		 * short GI for 40 MHz
		 * max A-MPDU length exponent
		 * min MPDU start spacing
	Device supports TX status socket option.
	Device supports HT-IBSS.
	Device supports SAE with AUTHENTICATE command
	Device supports low priority scan.
	Device supports scan flush.
	Device supports AP scan.
	Device supports per-vif TX power setting
	Driver supports full state transitions for AP/GO clients
	Driver supports a userspace MPM
	Device supports active monitor (which will ACK incoming frames)
	Device supports configuring vdev MAC-addr on create.
	max # scan plans: 1
	max scan plan interval: -1
	max scan plan iterations: 0
	Supported TX frame types:
		 * IBSS: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
		 * managed: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
		 * AP: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
		 * AP/VLAN: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
		 * mesh point: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
		 * P2P-client: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
		 * P2P-GO: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
		 * P2P-device: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
	Supported RX frame types:
		 * IBSS: 0x40 0xb0 0xc0 0xd0
		 * managed: 0x40 0xb0 0xd0
		 * AP: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0
		 * AP/VLAN: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0
		 * mesh point: 0xb0 0xc0 0xd0
		 * P2P-client: 0x40 0xd0
		 * P2P-GO: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0
		 * P2P-device: 0x40 0xd0
	Supported extended features:
		* [ RRM ]: RRM
		* [ FILS_STA ]: STA FILS (Fast Initial Link Setup)
		* [ CQM_RSSI_LIST ]: multiple CQM_RSSI_THOLD records
		* [ CONTROL_PORT_OVER_NL80211 ]: control port over nl80211
		* [ SCAN_RANDOM_SN ]: use random sequence numbers in scans
		* [ SCAN_MIN_PREQ_CONTENT ]: use probe request with only rate IEs in scans
		* [ CONTROL_PORT_NO_PREAUTH ]: disable pre-auth over nl80211 control port support
		* [ SCAN_FREQ_KHZ ]: scan on kHz frequency support
		* [ CONTROL_PORT_OVER_NL80211_TX_STATUS ]: tx status for nl80211 control port support
Как я предполагаю по этому выводу, phy0 чип RT5370 (драйвер) поддерживает:

Код: Выделить всё

Supported interface modes:
		 * IBSS
		 * managed
		 * AP
		 * AP/VLAN
		 * monitor
		 * mesh point
А ph1 имеет только:

Код: Выделить всё

Supported interface modes:
		 * managed
		 * monitor
Хотя это может и не так!

Ответить

Вернуться в «Сети»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 7 гостей