Extcap을 사용하여 패킷 스니핑

<ph type="x-smartling-placeholder"></ph> GitHub에서 소스 보기

이 가이드에서는 Wireshark에서 패킷을 스니핑하도록 Wireshark용 extcap을 구성하여 스레드 네트워크.

extcap 없이 패킷 스니핑에 Pyspinel을 사용하려면 패킷 스니핑을 참조하세요. Pyspinel 속성을 포함합니다.

스니퍼 환경 설정

시작하기 전에 다음 단계를 완료하세요.

인증

이 가이드는 Zolertia Firefly (Texas Instruments CC2538)에서 SoC)를 사용합니다.

  • Debian 4.19.37 — Wireshark 3.0.4
  • macOS Mojave 10.14.6 — Wireshark 3.0.5
  • 64비트 Windows 10 버전 17134 — Wireshark 3.0.6

스니퍼 빌드 및 플래시

빌드 및 플래시 안내는 플랫폼에 따라 다릅니다.

CC2538 빌드 및 플래시에 대한 안내는 CC2538 예제를 참조하세요. GitHub의 README를 참조하세요.

일반적인 빌드 안내는 OpenThread 빌드 방법을 참고하세요.

스니퍼 사용

Wireshark가 처음 실행될 때 Wireshark 캡처 화면이 표시됩니다. 그것은 OpenThread 스니퍼에 연결된 하드웨어 인터페이스를 나열해야 합니다.

단일 인터페이스에서 캡처

인터페이스를 처음 사용하는 경우 옵션 버튼을 클릭합니다. 다음과 같습니다.

OT 스니퍼 와이어샤크 Extcap 캡처

  1. 채널을 원하는 값으로 설정합니다.
  2. IEEE 802.15.4 TAP를 검사하여 채널 정보가 pcap 출력에 포함되며 Wireshark GUI에 표시될 수 있습니다.
  3. Save parameter on capture start(캡처 시작 시 매개변수 저장)를 선택하여 다음 사항을 확인합니다. 매개변수는 캡처하기 시작한 후에 저장되므로 다음 번에 인터페이스를 사용할 때 다시 설정합니다( 채널 변경).
  4. 시작을 클릭합니다.

OT 스니퍼 Wireshark Extcap 옵션

매개변수가 이미 저장된 경우 하드웨어를 선택하여 스니핑을 시작합니다. 인터페이스를 열고 왼쪽 상단의 Wireshark 아이콘을 클릭합니다.

다양한 인터페이스에서 캡처

캡처 화면에 나열된 모든 하드웨어 인터페이스를 선택하고 Wireshark 아이콘을 탭합니다.

여러 소스에서 캡처할 때 이 필드를 사용하여 개별 스니퍼를 식별합니다. 인터페이스:

  • 인터페이스 ID (frame.interface_id) — Wireshark에서 사용하는 인터페이스 식별자입니다. 캡처 인터페이스 식별을 위한
  • 인터페이스 이름 (frame.interface_name) — 캡처 인터페이스를 식별하는 Wireshark
  • 채널 (wpan-tap.ch_num) — IEEE 802.15.4 캡처 채널 (범위: 11~26)

OT 스니퍼 Wireshark Extcap 패킷

문제 해결

OpenThread 스니퍼가 Wireshark 인터페이스로 나열되지 않음

  1. 여러 Python 인터프리터가 설치된 경우 Python 3이 인터프리터는 extcap 스크립트에서 사용됩니다. Pyspinel은 Python 2를 지원하지 않습니다.
  2. 하드웨어가 USB에 열거되어 있고 드라이버가 로드되는지 확인합니다.
  3. 올바른 펌웨어 (NCP 또는 RCP)가 사용할 수 있습니다
  4. extcap 경로에 있는 Python 스크립트가 실행 가능한지 확인합니다.
    • OS X 및 Linux: <ph type="x-smartling-placeholder">
        </ph>
      1. extcap_ot.py에 실행 권한이 있는지 확인합니다. 파일:
        ls -l extcap_ot.py
        
      2. 실행 (x) 권한이 없으면 권한을 수정합니다.
        chmod +x extcap_ot.py
        
      3. 인터페이스가 나열되는지 확인합니다.
        extcap_ot.py --extcap-interfaces
        
    • Windows:
      1. 인터페이스가 나열되는지 확인합니다.
        extcap_ot.bat --extcap-interfaces
        
      2. Python 오류와 함께 종료되면 Python 버전이 3.x인지 확인합니다.
        py -3 --version
        

Wireshark는 루트 사용자만 패킷을 캡처하도록 허용합니다.

Ubuntu에 Wireshark를 설치하는 동안 하나를 선택하라는 메시지가 표시됩니다. 다음 옵션 중에서 선택합니다.

  1. wireshark 사용자 그룹을 만들고 해당 그룹의 모든 구성원이 다음을 수행할 수 있도록 허용 캡처 패킷을 캡처합니다.
  2. root 사용자만 패킷을 캡처하도록 허용합니다.

root 사용자로 Wireshark를 사용하지 않는 것이 좋습니다. 선택 항목 해당 옵션의 설정을 변경합니다.

sudo dpkg-reconfigure wireshark-common

Wireshark가 캡처를 wireshark 그룹의 경우 올바른 사용자를 그룹에 추가해야 할 수도 있습니다.

sudo usermod -a -G wireshark user

또한 올바른 사용자를 dialout 그룹에 추가합니다.

sudo usermod -a -G dialout user

Wireshark를 닫았다가 다시 시작하여 새 사용자 그룹 설정을 적용합니다.

Windows의 여러 USB 인터페이스에서 캡처할 때 Wireshark 형식 오류가 발생합니다.

알려진 문제입니다. 일부 이전 버전의 Wireshark 버전을 제공할 수 있습니다 Wireshark 3.0.6 또는 확인할 수 있습니다