Bu kılavuzda, Wireshark'ın nasıl yapılandırılacağı ve Pyspinel'in bir Thread ağındaki paketleri algılamak için nasıl çalıştırılacağı ele alınmaktadır.
Paket yoklama için Wireshark ek bilgi eklentisini kullanmak üzere Extcap kullanarak paket koklama konusuna bakın.
Sniffer ortamını ayarlama
Başlamadan önce aşağıdaki adımları uygulayın:
- Paket Körükleme Şartları'nı inceleyin.
- Wireshark'ı yükleyin ve yapılandırın.
- Pyspinel ve bağımlıları bağımsız değişken olmadan yükle.
Snifen'i oluşturun
ot-rcp
ikili programını çıkışını kullanarak Snipli olarak hizmet vermek için bir NCP cihazı oluşturup yanıp sönün.
Kuzey nRF52840
Sniffer olarak kullanılacak Nordic nRF52840 örneğini ayarlamak için openthread/ot-nrf528xx
özelliğini klonlayın ve derleme ortamını ayarlayın:
git clone https://github.com/openthread/ot-nrf528xx --recursive
./script/bootstrap
Bağlantı hızını 460800 olarak ayarlayın. src/nrf52840/transport-config.h
bölgesinde #define UART_BAUDRATE NRF_UARTE_BAUDRATE_115200
satırını bulun ve #define UART_BAUDRATE NRF_UARTE_BAUDRATE_460800
ile değiştirin.
İkili program oluşturun:
./script/build nrf52840 UART_trans
ot-rcp
ikili programını çıkış onaltılık değere dönüştürün:
arm-none-eabi-objcopy -O ihex build/bin/ot-rcp ot-rcp.hex
ot-rcp.hex
dosyasını nRF52840 panosuna yanıp sönerken
nnFF52840'ı Flash'ı tıklayın bölümünü inceleyin.
Hata ayıklama bağlantı noktasını kullanırken veri bozulması veya düşme gibi sorunlarla karşılaşmamak için nRF52840 üzerinde Toplu Depolama Cihazı (MSD) özelliğini devre dışı bırakın:
expect <<EOF
spawn JLinkExe
expect "J-Link>"
send "msddisable\n"
expect "Probe configured successfully."
exit
EOF
spawn JLinkExe SEGGER J-Link Commander V6.42b (Compiled Feb 5 2019 17:35:31) DLL version V6.42b, compiled Feb 5 2019 17:35:20 Connecting to J-Link via USB...O.K. Firmware: J-Link OB-SAM3U128-V2-NordicSemi compiled Jan 7 2019 14:07:15 Hardware version: V1.00 S/N: 683411111 VTref=3.300V Type "connect" to establish a target connection, '?' for help J-Link>msddisable Probe configured successfully.
Mesaj dizisi ağ özellikleri
Devam etmeden önce, sıkıştırmak istediğiniz Thread ağı için aşağıdaki özellikleri edinin. Wireshark yapılandırması için ve Pyspinel sniff'ini çalıştırmak için bunlara ihtiyacınız vardır.
Örgü Yerel Öneki
Hedef Thread ağındaki bir cihazdan Mesh Yerel Öneki'ni almak için:
OpenThread KSA'yı kullanma:
dataset active
Mesh Local Prefix: fd33:3333:3344:0/64NCP ile
wpanctl
kullanma:wpanctl getprop IPv6:MeshLocalPrefix
IPv6:MeshLocalPrefix = "fd33:3333:3344:0::/64"OTBR Web GUI'yi kullanarak Durum'u seçin. Örgü Yerel Öneki,
wpanctl
ile benzer IPv6:MeshLocalPrefix olarak listelenir.
Kanal
Kanalı, hedef Thread ağındaki bir cihazdan almak için:
OpenThread KSA'yı kullanma:
channel
15NCP ile
wpanctl
kullanma:wpanctl getprop NCP:Channel
NCP:Channel = 15OTBR Web GUI'yi kullanarak Durum'u seçin. Kanal,
wpanctl
kanalına benzer şekilde NCP:Kanal olarak listelenir.
Ağ Anahtarı
Thread Ağ Anahtarı, yakalama sonrasında paketlerin şifresini çözmek için Wireshark tarafından kullanılır. Ağ Anahtarını hedef Thread ağındaki bir cihazdan almak için:
OpenThread KSA'yı kullanma:
networkkey
33334444333344443333444433334444NCP ile
wpanctl
kullanma:wpanctl getprop Network:Key
Network:Key = [33334444333344443333444433334444]
Mesaj Dizisi Ağ Anahtarı, OTBR Web GUI'sında kullanılamaz.
Sniffer seçenekleri
Seçenekler | |||||
---|---|---|---|---|---|
-u or --uart |
|
||||
-c or --channel |
|
||||
--no-reset |
|
||||
--crc |
|
||||
-b or --baudrate |
|
||||
--rssi |
|
||||
--tap |
|
Sniffer'ı çalıştırın
NCP'niz için belirli bir cihaz yolu ve yoklamaya çalıştığınız Thread ağı için kanal kullandığınızdan emin olun.
Bu kılavuzda belirtilen nRF52840 DK, hata ayıklama bağlantı noktası tarafından nRF52840 Flash dosyası bölümünde açıklandığı gibi ana makineye eklenmelidir. Pyspinel sniffer'ı çalıştırmak için baud hızını belirtmek üzere -b
işaretini kullanın (varsayılan değerden değiştirildiyse) ve --no-reset
işaretini çıkarın.
RSSI görüntülemek için Wireshark'ı yapılandırın. Sniffer aracını çalıştırdığınızda --rssi
işaretini de eklemeniz gerekir. Örneğin, Channel Connect 15'i Wireshark çıkışına RSSI ekleyebilirsiniz. Bunu yapmak için /dev/ttyACM0
bölümüne takılan bir cihazı kullanabilirsiniz:
cd path-to-pyspinel
python sniffer.py -c 15 -u /dev/ttyACM0 --crc --rssi -b 460800 | wireshark -k -i -
Artık Wireshark'da bu yapılandırma için paketleri ve ilgili protokolleri görüntüleyebilmeniz gerekir:
Pyspinel dinleyiciyi çalıştırma hakkında daha fazla bilgi için Sinel sniffer referansı sayfasına bakın.
Yerel USB bağlantısı
nRF52840 DK USB bağlantı noktasını kullanmak için OpenThread ot-rcp
ikili programının USB_trans
ile oluşturulması gerekir:
./script/build nrf52840 USB_trans
nRF52840 DK'yı Flash'a geçirin, USB bağlantı noktası üzerinden ana makineye bağlayın, ardından --no-reset
işaretini kullanın ancak
sniffer'ı çalıştırırken -b
işaretini çıkarın:
python sniffer.py -c 15 -u /dev/ttyACM0 --crc --no-reset --rssi | wireshark -k -i -
Kaynaklar
Diğer İskandinav araçları için Wireshark ile nRF52840 tabanlı Nordic Semiconductor - Thread Sniffer makalesine bakın.