Depending on the NIC, there are different steps required in order to capture on 6GHz frequencies. Intel AX210/BE200 - Require a station on the parent interface to scan and determine that it is in a US regulatory domain before a monitor mode interface can be assigned a 6GHz frequency. Mediatek 7921/7922 - No regulatory domain restriction at this time. |
|
[root@ibase-i5-f36 py-scripts]# ./lf_sniff_radio.py --help
usage: ./lf_sniff_radio.py
--mgr localhost
--mgr_port 8080
--radio wiphy0
--outfile /home/lanforge/test_sniff.pcap
--duration 1
--channel 36
--channel_bw 40
--center_freq 5190
--radio_mode AUTO
--monitor_name Sniffer0
AX210 sniff command
===================
./lf_sniff_radio.py
--mgr 192.168.0.104
--mgr_port 8080
--radio wiphy7
--outfile /home/lanforge/sniff_6G_80.pcap
--duration 20
//--channel 1e
--channel_bw 80
--channel_freq 5955
--center_freq 5985
--radio_mode AUTO
--monitor_name SNIFF_6G_80
--disable_ht40 0
--disable_ht80 0
--ht160_enable 0
--ax210
--num_stations 1
--security wpa2
--ssid axe11000_5g
--password lf_axe11000_5g
--ax210_scan_time 10
This script will sniff a Radio following modifications to its settings.
lf_sniff_radio.py will create a monitor and be able to capture wireshark pcap files:
The monitor also uses iw commands to set up the proper bw and frequency to be monitored
Note:
iw [options] devset freq [NOHT|HT20|HT40+|HT40-|5MHz|10MHz|80MHz]
devset freq [5|10|20|40|80|80+80|160] [ [ ]]
Example to monitor channel 36 (5180)
sudo iw devset freq 5180 40 5190
for bw of 20 do not need to set the control frequency
Verify the configuration with :(need to do sudo)
iw devinfo
example:
[lanforge@ct523c-3ba3 ~]$ sudo iw dev SNIFF_5G_40 info
[sudo] password for lanforge:
Interface SNIFF_5G_40
ifindex 49
wdev 0x2
addr d8:f8:83:36:4c:a0
type monitor
wiphy 0
channel 36 (5180 MHz), width: 20 MHz, center1: 5180 MHz
txpower 0.00 dBm
[lanforge@ct523c-3ba3 ~]$
Help: 5Ghz frequencies
Tested on 02/16/2023:
kernel version: 5.19.17+
gui version: 5.4.6
the script modified a radio and created a pcap file as expected when ran directly on a lanforge system (ct523c & ct521a).
options:
-h, --help show this help message and exit
--mgr MGR --mgr: IP Address of LANforge
--mgr_port MGR_PORT --mgr_port: HTTP Port of LANforge
--radio RADIO --radio: Radio to sniff
--outfile OUTFILE --outfile: give the filename with path
--duration DURATION --duration duration in sec, for which you want to capture
--channel CHANNEL
--channel Set channel pn selected Radio, the channel [52, 56 ...]
channel will get converted to the control frequency.
Must enter Channel
--channel_freq CHANNEL_FREQ
--channel_freq this is the frequency that the channel operates at
Must enter --channel or --channel_freq
--channel_freq takes presidence if both entered if value not zero
--channel_bw CHANNEL_BW
--channel_bw select the bandwidth to be monitored, [ [20|40|80|80+80|160]], default=20
--center_freq CENTER_FREQ
--center_freq select the bandwidth to be monitored, not needed if bw is 20
--radio_mode RADIO_MODE
--radio_mode select the radio mode [AUTO, 802.11a, 802.11b, 802.11ab ...]
--monitor_name MONITOR_NAME
Wi-Fi monitor name
--disable_ht40 DISABLE_HT40
Enable/Disable "disable_ht40" [0-disable,1-enable]
--disable_ht80 DISABLE_HT80
Enable/Disable "disable_ht80" [0-disable,1-enable]
--ht160_enable HT160_ENABLE
Enable/Disable "ht160_enable" [0-disable,1-enable]"
--ax210 --ax210 will create a station on the ax210 to get the regulatory domain for 6g and admin down the station then create the monitor for 6g on the AX210 radio
--number_template NUMBER_TEMPLATE
Start the station numbering with a particular number. Default is 0000
--station_list STATION_LIST [STATION_LIST ...]
Optional: User defined station names, can be a comma or space separated list
--upstream_port UPSTREAM_PORT
--upstream_port upstream port default: eth2
--side_a_min_rate SIDE_A_MIN_RATE
--side_a_min_rate bps rate minimum for side_a default: 1024000
--side_b_min_rate SIDE_B_MIN_RATE
--side_b_min_rate bps rate minimum for side_b default: 1024000
--security SECURITY WiFi Security protocol: < open | wep | wpa | wpa2 | wpa3 >
--ssid SSID WiFi SSID for script objects to associate to
--password PASSWORD WiFi passphrase/password/key
--mode MODE Used to force mode of stations default: 0 (auto)
--num_stations NUM_STATIONS
Number of stations to create
--ax210_scan_time AX210_SCAN_TIME
Time to wait for scan
--ap AP Used to force a connection to a particular AP
--log_level LOG_LEVEL
Set logging level: debug | info | warning | error | critical
--lf_logger_config_json LF_LOGGER_CONFIG_JSON
--lf_logger_config_json, json configuration of logger
--sniff_bytes SNIFF_BYTES
keep this many bytes per packet, helps to reduce overall capture size
--sniff_using SNIFF_USING
Default sniffer is wireshark, which is only useful from a desktop setting.
Combine options with a comma: dumpcap,mate_xterm
tshark: headless tshark utility
dumpcap: headless dumpcap utility
mate_terminal: make tshark/dumpcap interactive in a MATE terminal
mate_xterm: make tshark/dumpcap interactive in an xterm
mate_kill_dumpcap: kill previously issued dumpcap
lf_sniff_radio.py will create a monitor on LANforge (cli command add_monitor)
./lf_sniff_radio.py --mgr 192.168.101.197 --radio "1.wiphy2" \ --outfile sniff_6G-AX210.pcapng --duration 10 --channel 37e --ax210 \ --num_stations 1 --ssid test --ax210_scan_time 20
./lf_sniff_radio.py --mgr 192.168.100.193 --radio "6.wiphy0" \ --outfile sniff_6G-MTK.pcapng --duration 10 --channel 133e