Tshark 로 IPv6 트래픽 분석

WiresharkBeginner
지금 연습하기

소개

이 랩에서는 Wireshark 의 명령줄 도구인 Tshark 를 사용하여 IPv6 네트워크 트래픽을 분석하는 방법을 배우게 됩니다. IPv6 필터를 사용하여 패킷을 캡처하고 홉 제한 (hop limit) 및 트래픽 클래스 (traffic class) 를 포함한 특정 패킷 세부 정보를 검사하는 것과 같은 필수 기술을 연습하게 됩니다.

실습을 통해 라이브 IPv6 트래픽을 캡처하고 디스플레이 필터를 적용하여 저장된 캡처를 분석하는 경험을 쌓게 됩니다. 이 랩은 Tshark 의 강력한 기능을 사용하여 기본적인 명령부터 고급 분석 방법까지 다룹니다.

-f "ip6"를 사용하여 IPv6 캡처

이 단계에서는 Wireshark 의 캡처 필터 옵션 -f "ip6"를 사용하여 IPv6 네트워크 트래픽을 캡처하는 방법을 배우게 됩니다. 이 필터는 네트워크 스니핑 (sniffing) 프로세스 중에 IPv6 패킷만 캡처하도록 보장합니다. IPv6 는 더 큰 주소 공간을 가진 IPv4 를 대체하도록 설계된 최신 버전의 인터넷 프로토콜입니다. 네트워크 트래픽을 분석할 때 캡처의 노이즈를 줄이기 위해 IPv6 와 같은 특정 프로토콜에 집중하는 것이 유용한 경우가 많습니다.

  1. 먼저 Xfce 데스크톱의 터미널 아이콘을 클릭하거나 단축키 Ctrl+Alt+T를 사용하여 LabEx VM 에서 터미널을 엽니다. 터미널은 이 랩의 모든 명령을 실행하는 곳입니다.

  2. 캡처 파일을 저장할 기본 작업 디렉토리로 이동합니다.

cd ~/project
  1. IPv6 캡처 필터를 사용하여 Wireshark 를 시작합니다. 이 명령은 Wireshark 에게 IPv6 프로토콜을 사용하는 패킷만 캡처하도록 지시합니다.
sudo wireshark -k -f "ip6" -i any

이 명령을 자세히 살펴보겠습니다.

  • -k는 Wireshark 가 시작될 때 즉시 캡처를 시작합니다.
  • -f "ip6"는 IPv6 캡처 필터를 적용합니다 (IPv6 패킷만 캡처됩니다).
  • -i any는 사용 가능한 모든 네트워크 인터페이스에서 캡처합니다.
  1. IPv6 패킷만 캡처되는 Wireshark 의 GUI 가 열리는 것을 볼 수 있습니다. 네트워크에 IPv6 트래픽이 없는 경우 (많은 환경에서 일반적임), IPv6 주소를 ping 하여 일부 테스트 트래픽을 생성할 수 있습니다.
ping6 -c 4 ipv6.google.com

ping6 명령은 ICMPv6 패킷을 보내 IPv6 연결을 테스트합니다. -c 4 옵션은 중지하기 전에 정확히 4 개의 패킷을 보냅니다.

  1. Wireshark 에서 캡처된 패킷을 관찰합니다. 표시된 모든 패킷은 IPv6 패킷이어야 합니다. 패킷 목록은 다음과 같은 기본 정보를 표시합니다.

    • 소스 IPv6 주소 (패킷이 온 곳)
    • 대상 IPv6 주소 (패킷이 가는 곳)
    • 프로토콜 (어떤 유형의 IPv6 트래픽인지)
    • 패킷 길이 및 기타 기본 세부 정보
  2. 분석을 완료한 후 캡처를 중지하려면 Wireshark 의 도구 모음에서 빨간색 사각형 "Stop" 버튼을 클릭합니다. 이렇게 하면 패킷 표시가 고정되어 새로운 패킷이 분석을 방해하지 않고 캡처된 트래픽을 검사할 수 있습니다.

-Y "ipv6"를 사용하여 IPv6 패킷 필터링

이 단계에서는 Wireshark 의 디스플레이 필터 옵션 -Y "ipv6"를 사용하여 캡처된 IPv6 트래픽을 분석하기 위해 디스플레이 필터를 적용하는 방법을 배우게 됩니다. 이 필터는 기존 캡처 파일에서 IPv6 패킷만 표시하여 다른 프로토콜 패킷을 무시하면서 IPv6 트래픽에 집중할 수 있도록 도와줍니다.

  1. 먼저 이전 단계에서 캡처 파일이 있는지 확인합니다. 그렇지 않은 경우 먼저 IPv6 트래픽을 캡처합니다. 다음 명령은 모든 인터페이스에서 IPv6 패킷만 캡처하는 Wireshark 를 시작합니다.
cd ~/project
sudo wireshark -k -f "ip6" -i any -w ipv6_capture.pcapng

(충분한 패킷을 캡처하기 위해 10-15 초 동안 실행한 다음 Wireshark 에서 중지 버튼을 클릭하여 캡처를 중지합니다.)

  1. 이제 Wireshark 의 디스플레이 필터 기능을 사용하여 캡처된 IPv6 패킷을 필터링합니다. -Y 옵션을 사용하면 캡처 파일에서 표시할 항목을 지정할 수 있습니다.
sudo wireshark -r ipv6_capture.pcapng -Y "ipv6"

이 명령은 두 가지 주요 작업을 수행합니다.

  • -r은 Wireshark 에게 지정된 캡처 파일 (ipv6_capture.pcapng) 에서 읽도록 지시합니다.
  • -Y는 "ipv6" 디스플레이 필터를 적용하여 IPv6 패킷만 표시합니다.
  1. Wireshark 가 열리면 인터페이스에 IPv6 패킷만 표시됩니다. 상단의 디스플레이 필터 표시줄에 활성 필터로 "ipv6"가 표시되는 것을 확인합니다. 즉, IPv6 가 아닌 모든 패킷은 일시적으로 보이지 않게 됩니다.

  2. 디스플레이 필터가 어떻게 작동하는지 이해하기 위해 좀 더 구체적인 IPv6 필터를 시도해 보겠습니다. 다음 예제는 트래픽을 좁히는 방법을 보여줍니다.

## IPv6 ICMP 패킷만 필터링 (ping6 트래픽과 같은)
sudo wireshark -r ipv6_capture.pcapng -Y "icmpv6"

## 특정 주소와 관련된 IPv6 트래픽 필터링 (여기서는 예제로 localhost ::1 사용)
sudo wireshark -r ipv6_capture.pcapng -Y "ipv6.addr == ::1"
  1. 다양한 필터를 시도하면서 패킷 목록이 즉시 업데이트되는 방식을 관찰합니다. 이 실시간 필터링은 대용량 캡처 파일에서 특정 트래픽 패턴을 빠르게 찾는 데 도움이 됩니다. 디스플레이 필터 구문은 강력하며 조건을 결합하여 매우 구체적인 필터를 만들 수 있습니다.

-z ip6_hop,tree 로 Hop Limit 확인

이 단계에서는 Wireshark 의 통계 기능을 사용하여 IPv6 홉 제한 (Hop Limit) 값을 분석하는 방법을 배우게 됩니다. IPv6 의 홉 제한 필드는 IPv4 의 TTL(Time To Live) 필드와 유사하며, 패킷이 폐기되기 전에 통과할 수 있는 라우터 (홉) 의 수를 지정합니다. 이는 패킷이 네트워크에서 무한정 순환하는 것을 방지하는 데 중요한 메커니즘입니다.

  1. 먼저 캡처 파일로 작업할 프로젝트 디렉토리로 이동합니다. 이렇게 하면 모든 파일이 한 곳에 정리됩니다.
cd ~/project
  1. 아직 캡처 파일을 생성하지 않은 경우, IPv6 트래픽을 특별히 캡처하는 파일을 지금 만들겠습니다. -f "ip6" 필터는 Wireshark 에게 IPv6 패킷만 캡처하도록 지시하고, -i any는 사용 가능한 모든 인터페이스에서 수신함을 의미합니다.
sudo wireshark -k -f "ip6" -i any -w ipv6_hoplimit.pcapng

(캡처가 충분한 패킷을 수집할 수 있도록 10-15 초 동안 실행한 다음 Wireshark 에서 중지 버튼을 클릭하여 중지합니다.)

  1. 이제 Tshark (Wireshark 의 명령줄 버전) 를 사용하여 홉 제한 값을 분석합니다. -z ip6_hop,tree 옵션은 캡처된 패킷에서 홉 제한 값의 분포를 보여주는 통계 트리 (statistical tree) 를 생성합니다.
sudo tshark -r ipv6_hoplimit.pcapng -z ip6_hop,tree
  1. 출력은 패킷에서 발견된 각 홉 제한 값에 대한 세 가지 중요한 정보를 표시합니다.
  • 실제 홉 제한 값 (일반적인 값은 64, 128 또는 255)
  • 해당 특정 홉 제한을 가진 패킷 수
  • 해당 값이 전체 패킷에서 차지하는 비율
  1. 다음은 일반적인 출력의 모습입니다. 실제 숫자는 네트워크 트래픽에 따라 다를 수 있습니다.
===================================================================
IPv6 Hop Limit Tree
===================================================================
Hop Limit    Count     %
      64       12    60%
     128        6    30%
     255        2    10%
===================================================================
  1. IPv6 주소를 포함하는 보다 자세한 보기를 보려면 이 명령을 사용할 수 있습니다. -q 옵션은 패킷 수 정보를 억제하여 출력을 더 조용하게 만듭니다.
sudo tshark -r ipv6_hoplimit.pcapng -z ip6_hop,ipv6 -q

-V 옵션으로 상세 정보 표시

이 단계에서는 Wireshark 의 상세 모드를 사용하여 IPv6 패킷을 심층적으로 검사하는 방법을 살펴보겠습니다. -V 플래그는 네트워크 패킷을 구성하는 모든 기술적 세부 정보를 계층별로 확인해야 할 때 특히 유용합니다. 이는 IPv6 통신에서 서로 다른 프로토콜이 어떻게 상호 작용하는지 이해하는 데 도움이 됩니다.

  1. 먼저 올바른 작업 디렉토리에 위치해 보겠습니다. 이렇게 하면 캡처 파일에 쉽게 액세스할 수 있습니다.
cd ~/project
  1. 아직 캡처 파일이 없는 경우, IPv6 트래픽을 위해 특별히 새 파일을 만들겠습니다. 다음 명령은 라이브 캡처를 시작합니다.
sudo wireshark -k -f "ip6" -i any -w ipv6_verbose.pcapng

(충분한 데이터를 수집하기 위해 캡처를 약 10-15 초 동안 실행한 다음 수동으로 중지합니다.)

  1. 이제 tshark 를 사용하여 캡처된 패킷을 자세히 검사합니다. 상세 모드 (-V) 는 전체 분석을 제공합니다.
sudo tshark -r ipv6_verbose.pcapng -V -c 5

이 명령을 분석하면 다음과 같습니다.

  • -r은 읽을 입력 파일을 지정합니다.
  • -V는 모든 프로토콜 계층을 표시하는 상세 출력을 활성화합니다.
  • -c 5는 초기 분석을 용이하게 하기 위해 출력을 5 개의 패킷으로 제한합니다.
  1. 출력은 몇 가지 중요한 섹션을 표시합니다.
  • 프레임 정보 (패킷이 언제, 어떻게 캡처되었는지 표시)
  • 이더넷 계층 (MAC 주소 및 링크 계층 세부 정보)
  • IPv6 세부 정보 (버전, 트래픽 클래스 및 플로우 레이블 포함)
  • 전송 계층 프로토콜 (TCP, UDP 또는 ICMPv6 여부)
  • 사용 가능한 경우 실제 페이로드 데이터
  1. 특정 프로토콜로 작업할 때 필터를 상세 출력과 결합할 수 있습니다. 이 예제는 ICMPv6 패킷에만 집중합니다.
sudo tshark -r ipv6_verbose.pcapng -Y "icmpv6" -V -c 3
  1. 문서화 또는 이후 분석을 위해 상세 출력을 텍스트 파일에 저장할 수 있습니다. 이렇게 하면 검사의 영구적인 기록이 생성됩니다.
sudo tshark -r ipv6_verbose.pcapng -V > ipv6_packet_details.txt

요약

이 랩에서는 Wireshark 의 명령줄 도구인 Tshark 를 사용하여 IPv6 트래픽을 분석하는 주요 기술을 배웠습니다. -f "ip6" 필터를 사용하여 IPv6 패킷을 캡처하고 -i any를 사용하여 인터페이스를 모니터링하는 연습을 했으며, ping6 테스트 트래픽으로 결과를 확인했습니다.

또한 -Y "ipv6"와 같은 표시 필터를 적용하고, -z ip6_hop,tree를 사용하여 홉 제한을 검사하고, -V 상세 옵션을 사용하여 자세한 패킷 구조를 확인하여 고급 IPv6 분석을 탐구했습니다. 이러한 기술은 네트워크 환경에서 효율적인 IPv6 트래픽 검사 및 문제 해결을 가능하게 합니다.