Pyspinel ile Paket Algılama

Kaynağı GitHub'da görüntüle

Bu kılavuzda, Wireshark'ı yapılandırma ve paketleri algılamak için Pyspinel çalıştırma hakkında bilgi verilmektedir. Thread'i kullanıyor.

Paket yoklama için Wireshark extcap eklentisini kullanmak istiyorsanız bkz. Packet Sniffing extcap ile değiştirin.

Sniffer ortamını ayarlama

Başlamadan önce aşağıdaki adımları tamamlayın:

Ses dinleyiciyi oluşturma

ot-rcp ikili çıkışını kullanarak bir NCP cihazı oluşturun ve yoklayıcı olarak hizmet verecek bir NCP cihazı yükleyin.

İskandinav nRF52840

Nordic nRF52840 örneğini dinleyici olarak kullanmak üzere ayarlamak için openthread/ot-nrf528xx ve derleme ortamını ayarlayın:

git clone https://github.com/openthread/ot-nrf528xx --recursive
./script/bootstrap

Bilgi akış hızını 460.800 olarak ayarlayın. #define UART_BAUDRATE NRF_UARTE_BAUDRATE_115200 hattını bul src/nrf52840/transport-config.h olarak değiştirip #define UART_BAUDRATE NRF_UARTE_BAUDRATE_460800 ile değiştirin.

İkili dosyayı oluşturun:

./script/build nrf52840 UART_trans

ot-rcp ikili çıktısını 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ı aşağıda açıklandığı şekilde nRF52840 kartına Flash ile yükleyin nRF52840'ı Flash ile yükleyin.

Verilerle ilgili sorun yaşamamak için nRF52840 üzerinde Toplu Depolama Cihazı'nı (MSD) devre dışı bırakın hata ayıklama bağlantı noktası kullanılırken bozulma veya çökme:

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.

İş parçacığı ağ özellikleri

Devam etmeden önce, istediğiniz Thread ağı için aşağıdaki özellikleri alın koklamak. Wireshark yapılandırması ve Pyspinel'i çalıştırmak için bu bilgilere ihtiyacınız olacaktır yok.

Örgü Yerel Öneki

Hedef Thread ağındaki bir cihazdan Örgü Yerel Ön Eki'ni almak için:

  1. OpenThread CLI'ı kullanarak:

    dataset active
    Mesh Local Prefix: fd33:3333:3344:0/64
    

  2. NCP ile wpanctl kullanma:

    wpanctl getprop IPv6:MeshLocalPrefix
    IPv6:MeshLocalPrefix = "fd33:3333:3344:0::/64"
    

  3. OTBR Web GUI'yi kullanarak Durum'u seçin. Örgü Yerel Öneki listelenmiş IPv6:MeshLocalPrefix olarak, wpanctl ile benzerdir.

Kanal

Kanalı, hedef Thread ağındaki bir cihazdan almak için:

  1. OpenThread CLI'ı kullanarak:

    channel
    15
    

  2. NCP ile wpanctl kullanma:

    wpanctl getprop NCP:Channel
    NCP:Channel = 15
    

  3. OTBR Web GUI'yi kullanarak Durum'u seçin. Kanal şu şekilde listelenir: wpanctl benzeri NCP:Kanal.

Ağ Anahtarı

Thread Ağ Anahtarı, Wireshark tarafından yakalamanız gerekir. Hedef Thread ağındaki bir cihazdan ağ anahtarını almak için:

  1. OpenThread CLI'ı kullanarak:

    networkkey
    33334444333344443333444433334444
    

  2. NCP ile wpanctl kullanma:

    wpanctl getprop Network:Key
    Network:Key = [33334444333344443333444433334444]
    

Thread Ağ Anahtarı, OTBR Web GUI'de kullanılamaz.

Sniffer seçenekleri

Seçenekler
-u or --uart
Varsayılan değer
Yok - seri bağlantısı var, soket bağlantısı değil.
Açıklama
-u veya --uart işareti ve ardından /dev/ttyUSB0 gibi bir cihaz yolu.
-c or --channel
Varsayılan değer
11
Açıklama
-c veya --channel işareti takip edilir İş Parçacığı Ağınızda yapılandırılan kanal tarafından paketleri koklamak için kullanılır.
--no-reset
Varsayılan değer
Bu işaret, varsayılan davranışı geçersiz kılar.
Açıklama
NCP'niz varsa --no-reset işareti gerekir cihaz, ana makineye yerel USB ile bağlı olduğundan bağlantı.
--crc
Varsayılan değer
Bu işaret, varsayılan davranışı geçersiz kılar.
Açıklama
--crc işareti, aşağıdaki gibi platformlar için gereklidir: TI ve Nordic Yarı İletken Dişli levhalar. Bayrak "Hatalı FCS"yi önlemek için CRC'yi yeniden hesaplar (çerçeve kontrolü dizisi) uyarısını devre dışı bırakır.
-b or --baudrate
Varsayılan değer
115200
Açıklama
-b veya --baudrate işareti kullanılır değerini atayın. Bu değeri aynı olacak şekilde ayarla NCP'nizde kullanılan bilgi akış hızı derlemesi (460800 önerilir).
--rssi
Varsayılan değer
Bu işaret, varsayılan davranışı geçersiz kılar.
Açıklama
--rssi işareti, RSSI'nin pcap çıktısına dahil edilir. Bu işareti aşağıdaki durumlarda kullanmanız gerekir: TI CC24xx FCS biçimi seçeneğinin Wireshark'ta etkinleştirilmesi gerekir.
--tap
Varsayılan değer
Bu işaret, varsayılan davranışı geçersiz kılar.
Açıklama
--tap işareti, Çerçeve biçimi için DLT_IEEE802_15_4_TAP(283), meta veri içeren TLV'ler içeren sözde bir başlıkla (örneğin, FCS, RSSI, LQI, Kanal). Belirtilmemişse DLT_IEEE802_15_4_WITHFCS(195), PHY sonrasında ek RSSI ve LQI ile varsayılan olarak çerçeve içine alın. Bu işareti aşağıdaki durumlarda kullanmanız gerekir: ITU-T CRC-16 seçeneği Wireshark'ta etkinleştirilmiştir. Bu seçenek etkinleştirilmezse kullanıyorsanız bu bayrağı kullanmayın.

Sniffer'ı çalıştır

NCP'niz için spesifik cihaz yolunu ve Algılamaya çalıştığınız iş parçacığı ağı.

Bu kılavuza uyuyorsanız nRF52840 DK, Flash ve destekleyici" başlıklı videoda açıklandığı gibi, nRF52840. Pispinel makarasını çalıştırmak için bilgi hızını belirtmek için -b işaretini kullanın (varsayılan değer değiştirildiyse) ve --no-reset işaretini atlayın.

RSSI'yi görüntülemek için Wireshark'ı yapılandırırsanız --rssi işaretini tıklayın. Örneğin, bir komut dosyası kullanarak Kanal 15'i koklamak Wireshark çıkışına RSSI dahil edilmiş şekilde /dev/ttyACM0 noktasına monte edilen cihaz:

cd path-to-pyspinel
python sniffer.py -c 15 -u /dev/ttyACM0 --crc --rssi -b 460800 | wireshark -k -i -

Artık bunun için paketleri ve ilgili protokolleri görüntüleyebilmeniz gerekir. Wireshark'taki yapılandırma:

Wireshark Yakalama

Daha fazla bilgi için Spinel sniffer referans: .

Yerel USB bağlantısı

nRF52840 DK USB bağlantı noktasının kullanılması için OpenThread ot-rcp ikili programının USB_trans ile derlenmek:

./script/build nrf52840 USB_trans
nRF52840 DK'yı tarayın, USB ile ana makineye bağlayın bağlantı noktasını seçin, ardından --no-reset işaretini kullanın ancak algılayıcıyı ç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 bkz. Nordic yarı İletken — Thread Wireshark ile nRF52840'a dayalı Sniffer.