<ph type="x-smartling-placeholder"></ph> GitHub에서 소스 보기
이 가이드에서는 Wireshark를 구성하고 Pyspinel을 실행하여 패킷을 스니프하는 방법을 설명합니다. Thread 네트워크로부터 수신됩니다
패킷 스니핑에 Wireshark extcap 플러그인을 사용하려면 패킷 스니핑을 참조하세요. extcap 사용
스니퍼 환경 설정
시작하기 전에 다음 단계를 완료하세요.
스니퍼 빌드
ot-rcp
바이너리 출력을 사용하여 스니퍼 역할을 하는 NCP 기기를 빌드하고 플래시합니다.
북유럽 nRF52840
스니퍼로 사용할 Nordic nRF52840 예시를 설정하려면 클론하세요.
openthread/ot-nrf528xx
하고 빌드 환경을 설정합니다.
git clone https://github.com/openthread/ot-nrf528xx --recursive
./script/bootstrap
전송 속도를 460800으로 설정합니다. #define UART_BAUDRATE NRF_UARTE_BAUDRATE_115200
줄을 찾습니다.
src/nrf52840/transport-config.h
로 대체하고 #define UART_BAUDRATE NRF_UARTE_BAUDRATE_460800
로 대체합니다.
바이너리를 빌드합니다.
./script/build nrf52840 UART_trans
ot-rcp
바이너리 출력을 16진수로 변환합니다.
arm-none-eabi-objcopy -O ihex build/bin/ot-rcp ot-rcp.hex
다음에 설명된 대로 ot-rcp.hex
파일을 nRF52840 보드에 플래시합니다.
nRF52840을 플래시합니다.
nRF52840에서 대용량 저장 기기 (MSD)를 사용 중지하여 데이터 문제 방지 손상 또는 드롭이 나타나는 현상은 다음과 같습니다.
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.
스레드 네트워크 속성
계속하기 전에 원하는 스레드 네트워크의 다음 속성을 가져옵니다. 냄새를 맡을 수 있습니다. Wireshark 구성 및 Pyspinel 실행에 필요합니다. 있습니다.
메시 로컬 프리픽스
대상 스레드 네트워크의 기기에서 메시 로컬 프리픽스를 가져오려면 다음 안내를 따르세요.
OpenThread CLI 사용:
dataset active
Mesh Local Prefix: fd33:3333:3344:0/64NCP와 함께
wpanctl
사용:wpanctl getprop IPv6:MeshLocalPrefix
IPv6:MeshLocalPrefix = "fd33:3333:3344:0::/64"OTBR Web GUI를 사용하여 상태를 선택합니다. 메시 로컬 프리픽스가 나열됨 as IPv6:MeshLocalPrefix 와 유사한
wpanctl
.
채널
대상 스레드 네트워크의 기기에서 채널을 가져오려면 다음을 실행하세요.
OpenThread CLI 사용:
channel
15NCP와 함께
wpanctl
사용:wpanctl getprop NCP:Channel
NCP:Channel = 15OTBR Web GUI를 사용하여 상태를 선택합니다. 채널은 NCP:Channel(
wpanctl
와 유사).
네트워크 키
스레드 네트워크 키는 9.1.1.1 이후에 패킷을 복호화하기 위해 Wireshark가 있습니다 대상 스레드 네트워크의 기기에서 네트워크 키를 가져오려면 다음을 실행하세요.
OpenThread CLI 사용:
networkkey
33334444333344443333444433334444NCP와 함께
wpanctl
사용:wpanctl getprop Network:Key
Network:Key = [33334444333344443333444433334444]
스레드 네트워크 키는 OTBR 웹 GUI에서 사용할 수 없습니다.
스니퍼 옵션
옵션 | |||||
---|---|---|---|---|---|
-u or --uart |
|
||||
-c or --channel |
|
||||
--no-reset |
|
||||
--crc |
|
||||
-b or --baudrate |
|
||||
--rssi |
|
||||
--tap |
|
스니퍼 실행
NCP용 특정 기기 경로와 NCP용 채널을 사용해야 합니다. 스니핑을 시도 중인 스레드 네트워크입니다.
이 가이드를 따르는 경우 nRF52840 DK를 호스트 머신에 연결해야 합니다.
nRF52840과 같습니다. Pyspinel 스니퍼를 실행하려면
-b
플래그를 사용하여 전송 속도를 지정합니다 (기본값에서 변경된 경우).
--no-reset
플래그를 생략합니다.
RSSI를 표시하도록 Wireshark를 구성하는 경우 --rssi
도 포함해야 합니다.
스니퍼 도구를 실행할 때 플래그를 지정합니다. 예를 들어,
Wireshark 출력에 RSSI가 포함된 /dev/ttyACM0
에 마운트된 기기:
cd path-to-pyspinel
python sniffer.py -c 15 -u /dev/ttyACM0 --crc --rssi -b 460800 | wireshark -k -i -
이제 관련 패킷 및 관련 프로토콜을 볼 수 있습니다. 다음과 같이 설정합니다.
자세한 내용은 스피넬 스니퍼 참조: Pyspinel 스니퍼 실행에 대해 자세히 알아보세요.
네이티브 USB 연결
nRF52840 DK USB 포트를 사용하려면 OpenThread ot-rcp
바이너리가
USB_trans
로 빌드해야 합니다.
./script/build nrf52840 USB_trans
--no-reset
플래그를 사용합니다.
스니퍼를 실행할 때 -b
플래그를 생략합니다.
python sniffer.py -c 15 -u /dev/ttyACM0 --crc --no-reset --rssi | wireshark -k -i -
리소스
그 밖의 Nordic 도구는 Nordic Semiconductor — 스레드를 참조하세요. Wireshark를 사용한 nRF52840 기반의 스니퍼입니다.