패킷 캡처를 사용한 네트워크 트래픽 분석
패킷 캡처 개요
패킷 캡처는 네트워크 트래픽을 분석하고 네트워크 문제를 해결하는 데 도움이 되는 도구입니다. 패킷 캡처 도구는 모니터링 및 로깅을 위해 네트워크를 통해 이동하는 실시간 데이터 패킷을 캡처합니다.
패킷 캡처는 물리적 인터페이스, reth 인터페이스 그리고 gr, ip 및 lsq-/ls와 같은 터널 인터페이스에서 지원됩니다. 그러나 보안 터널 인터페이스(st0)에서는 패킷 캡처가 지원되지 않습니다.
패킷은 수정 없이 이진 데이터로 캡처됩니다. 이러한 패킷 정보는 Wireshark 또는 tcpdump 등의 패킷 분석기를 사용하여 오프라인 상태에서 읽을 수 있습니다. 라우팅 엔진으로 향하거나 라우팅 엔진에서 발생하는 패킷을 신속하고 캡처하고 온라인에서 분석해야 하는 경우, J-Web 패킷 캡처 진단 도구를 사용할 수 있습니다.
패킷 캡처 도구는 IPv6 패킷 캡처를 지원하지 않습니다.
J-Web 구성 편집기 또는 CLI 구성 편집기를 사용하여 패킷 캡처를 구성할 수 있습니다.
네트워크 관리자와 보안 엔지니어는 패킷 캡처를 사용하여 다음 작업을 수행할 수 있습니다.
네트워크 트래픽을 모니터링하고 트래픽 패턴을 분석합니다.
네트워크 문제를 식별하고 해결합니다.
네트워크에서 무단 침입, 스파이웨어 활동, Ping 스캔과 같은 보안 위반을 감지합니다.
패킷 캡처는 레이어 2 헤더를 포함한 전체 패킷을 캡처하고 해당 콘텐츠를 libpcap 형식의 파일에 저장한다는 점을 제외하고, 디바이스에서 트래픽 샘플링과 같이 작동합니다. 또한 패킷 캡처는 IP 조각을 캡처합니다.
디바이스에서 패킷 캡처와 트래픽 샘플링을 동시에 활성화할 수 없습니다. 트래픽 샘플링과 달리 패킷 캡처를 위한 tracing 연산이 없습니다.
디바이스에서 패킷 캡처와 포트 미러링을 동시에 수행할 수 있습니다.
이 섹션에서는 다음과 같은 주제를 다룹니다.
디바이스 인터페이스에서 패킷 캡처
패킷 캡처는 T1, T3, E1, E3, 직렬, 기가비트 이더넷, ADSL, G.SHDSL, PPPoE 및 ISDN 인터페이스에서 지원됩니다.
ISDN 인터페이스에서 패킷을 캡처하려면 dialer 인터페이스에서 패킷 캡처를 구성합니다. PPPoE 인터페이스에서 패킷을 캡처하려면 PPPoE 논리적 인터페이스에서 패킷 캡처를 구성합니다.
패킷 캡처는 PPP, Cisco HDLC, Frame Relay 및 기타 ATM 캡슐화를 지원합니다. 또한 패킷 캡처는 Multilink PPP(MLPPP), 종단간 Multilink Frame Relay(MLFR) 및 Multilink Frame Relay(MFR) UNI/NNI 캡슐화를 지원합니다.
인터페이스에서 인바운드 또는 아웃바운드 방향으로 흐르는 모든 IPv4 패킷을 캡처할 수 있습니다. 그러나 플로우 소프트웨어 모듈(ARP, OSPF, PIM와 같은 프로토콜 패킷)을 우회하는 트래픽에서, 아웃바운드 방향으로 인터페이스에 방화벽 필터를 구성 및 적용하지 않는 한 라우팅 엔진에서 생성된 패킷은 캡처되지 않습니다.
터널 인터페이스는 아웃바운드 방향으로만 패킷 캡처를 지원합니다.
J-Web 구성 편집기 또는 CLI 구성 편집기를 사용하여 최대 패킷 크기, 캡처한 패킷 저장에 사용할 파일명, 최대 파일 크기, 최대 패킷 캡처 파일 수, 파일 권한을 지정할 수 있습니다.
아웃바운드(송신) 방향의 T1, T3, E1, E3, serial, ISDN 인터페이스에서 캡처한 패킷의 경우, 캡처한 패킷의 크기는 PLP(Packet loss priority) 비트로 인해 구성된 최대 패킷 크기보다 1바이트 작을 수 있습니다.
패킷 캡처가 구성된 인터페이스에서 캡슐화를 수정하려면 패킷 캡처를 비활성화해야 합니다.
패킷 캡처를 위한 방화벽 필터
디바이스에서 패킷 캡처를 활성화하면 패킷 캡처 구성에서 지정된 방향(인바운드, 아웃바운드 또는 둘 모두)으로 흐르는 모든 패킷이 캡처되어 저장됩니다. 모든 패킷을 캡처하도록 인터페이스를 구성하면 디바이스의 성능이 저하될 수 있습니다. 방화벽 필터를 사용하여 인터페이스에서 캡처된 패킷 수를 제어하고 다양한 기준을 지정하여 특정 트래픽 흐름에 대한 패킷을 캡처할 수 있습니다.
또한 인터페이스 샘플링은 호스트 디바이스에서 발생하는 패킷을 캡처하지 않기 때문에 호스트 디바이스에서 생성된 패킷을 캡처해야 하는 경우 인터페이스에 적절한 방화벽 필터를 구성하고 적용해야 합니다.
패킷 캡처 파일
인터페이스에서 패킷 캡처가 활성화되면 레이어 2 헤더를 포함한 전체 패킷이 캡처되어 파일에 저장됩니다. 캡처할 패킷 최대 크기를 최대 1500바이트까지 지정할 수 있습니다. 패킷 캡처는 물리적 인터페이스 각각에 대해 하나의 파일을 생성합니다.
파일 생성 및 저장 방법은 다음과 같습니다. 패킷 캡처 파일 이름을 pcap-file이라고 가정해 봅시다. 패킷 캡처는 물리적 인터페이스당 하나씩 여러 개의 파일을 생성하며 이때 각 파일에 해당 물리적 인터페이스의 이름을 접미사로 붙입니다(예: 기가비트 이더넷 인터페이스 의 pcap-file.fe-0.0.1경우 )fe-0.0.1. pcap-file.fe-0.0.1라는 이름의 파일이 최대 크기에 도달하면 파일명은 pcap-file.fe-0.0.1.0으로 변경됩니다. pcap-file.fe-0.0.1라는 이름의 파일이 다시 최대 크기에 도달하면 pcap-file.fe-0.0.1.0라는 파일명은 pcap-file.fe-0.0.1.1으로 변경되고 pcap-file.fe-0.0.1라는 파일명은 pcap-file.fe-0.0.1.0으로 변경됩니다. 이 프로세스는 최대 파일 수를 초과하고 가장 오래된 파일을 덮어쓸 때까지 계속됩니다. pcap-file.fe-0.0.1 파일은 항상 최신 파일입니다.
인터페이스에서 패킷 캡처를 비활성화한 뒤에도 패킷 캡처 파일은 제거되지 않습니다.
패킷 캡처 파일 분석
패킷 캡처 파일은 /var/tmp
디렉터리에 libpcap 형식으로 저장됩니다. 파일에 대한 사용자 또는 관리자 권한을 지정할 수 있습니다.
패킷 캡처 파일은 tcpdump 또는 libpcap 형식을 인식하는 모든 패킷 분석기를 사용하여 오프라인에서 열고 분석할 수 있습니다. 또한 FTP 또는 SCP(Session Control Protocol)를 사용하여 패킷 캡처 파일을 외부 디바이스로 전송할 수 있습니다.
분석을 위해 파일을 열거나 FTP 또는 SCP를 사용하여 파일을 외부 디바이스로 전송하기 전에 패킷 캡처를 비활성화합니다. 패킷 캡처를 비활성화하면 내부 파일 버퍼가 플러시되고 캡처한 모든 패킷이 파일에 작성됩니다.
운영 모드에서 패킷 캡처
데이터 경로 디버깅 또는 종단 간 디버깅은 패킷 처리 경로를 따라 여러 처리 장치에서 추적 및 디버깅을 제공합니다. 패킷 캡처는 데이터 경로 디버그 기능 중 하나입니다. 구성을 커밋하지 않고도 운영 시스템에 미치는 영향을 최소화하면서 운영 모드에서 패킷 캡처를 실행할 수 있습니다.
필터를 사용하여 패킷을 캡처하여 캡처할 패킷을 정의할 수 있습니다. 패킷 필터는 논리적 인터페이스, 프로토콜, 원본 IP 주소 접두사, 원본 포트, 대상 IP 주소 접두사 및 대상 포트를 기반으로 패킷을 필터링할 수 있습니다. 패킷 캡처 출력의 파일 이름, 파일 유형, 파일 크기 및 캡처 크기를 수정할 수 있습니다. 필터를 두 개의 필터로 확장하고 필터 값을 바꿀 수도 있습니다.
운영 모드에서의 패킷 캡처는 SRX4600, SRX5400, SRX5600 및 SRX5800에서 지원됩니다.
운영 모드에서 패킷을 캡처하려면 다음 단계를 수행해야 합니다.
-
운영 모드에서 CLI 명령을 사용하여 요구 사항에 따라 트래픽 유형을 추적하도록 패킷 필터를
request packet-capture start
정의합니다. 사용 가능한 패킷 캡처 필터 옵션은 패킷 캡처 시작 요청을 참조하십시오. - 필요한 패킷을 캡처합니다.
- CLI 명령을 사용하여
request packet-capture stop
패킷 캡처를 중지하거나 요청된 수의 패킷을 수집한 후 패킷 캡처가 자동으로 중지될 수 있습니다. - 캡처된 패킷 데이터 보고서를 보거나 분석합니다.
운영 모드에서 패킷을 캡처하는 데 대한 제한 사항은 다음과 같습니다.
구성 모드 패킷 캡처와 운영 모드 패킷 캡처는 공존할 수 없습니다.
운영 모드 패킷 캡처는 일회성 작업이며 시스템은 이 명령의 기록을 저장하지 않습니다.
낮은 속도의 트래픽 플로우에서 운영 모드 패킷 캡처를 사용해야 합니다.
참조
예: 디바이스에서 패킷 캡처 활성화 및 방화벽 필터 구성
이 예제에는 패킷 캡처를 활성화하고 패킷 캡처를 위한 방화벽 필터를 구성하고 디바이스의 논리 인터페이스에 적용하는 방법이 제시되어 있습니다. 캡처할 트래픽 양을 제한하거나 필터링하고 네트워크 트래픽을 분석하며 네트워크 문제를 해결하도록 방화벽 필터를 구성할 수 있습니다.
요구 사항
시작하기 전에:
-
기본 연결을 구축합니다.
-
네트워크 인터페이스를 구성합니다. 보안 디바이스에 대한 인터페이스 사용자 가이드를 참조하십시오.
개요
이 예에서는 각 파일의 최대 패킷 캡처 크기를 500바이트로 설정합니다. 범위는 68~1500이며, 기본값은 68바이트입니다. 패킷 캡처의 대상 파일명을 pcap-file로 지정합니다. 그런 다음 캡처할 최대 파일 수를 100으로 지정합니다. 범위는 2~10,000이며, 기본값은 파일 10개입니다. 각 파일의 최대 크기를 1024바이트로 설정합니다. 범위는 1,024~104,857,600이며, 기본값은 512,000바이트입니다.
dest-all이라는 방화벽 필터와 dest-term이라는 조건 이름을 설정하여 특정 대상 주소(192.168.1.1/32)에서 패킷을 캡처합니다. 샘플링된 패킷을 수락하는 일치 조건을 정의합니다. 마지막으로 인터페이스 fe-0/0/1의 모든 송신 패킷에 dest-all 필터를 적용합니다.
루프백 인터페이스에 방화벽 필터를 적용하면 라우팅 엔진에서 송수신하는 모든 트래픽에 영향을 줍니다. 방화벽 필터에 sample
작업이 있는 경우 라우팅 엔진에서 송수신하는 패킷이 샘플링됩니다. 패킷 캡처가 활성화된 경우, 라우팅 엔진에서 송수신되는 패킷은 입력 및 출력 인터페이스용으로 생성된 파일에 캡처됩니다.
모든 사용자가 패킷 캡처 파일을 읽을 수 있는 권한을 갖도록 지정합니다.
구성
절차
CLI 빠른 구성
이 예를 빠르게 구성하려면, 아래 명령을 복사하여 텍스트 파일로 붙여 넣은 다음 모든 라인브레이크를 제거하고, 네트워크 구성을 일치하는 데 필요한 세부 사항을 바꾸고 [edit]
계층 수준에서 명령을 CLI로 복사해 붙여 넣은 다음, 구성 모드에서 commit
을 입력합니다.
set forwarding-options packet-capture maximum-capture-size 500 set forwarding-options packet-capture file filename pcap-file files 100 size 1024 world-readable set firewall filter dest-all term dest-term from destination-address 192.168.1.1/32 set firewall filter dest-all term dest-term then sample accept set firewall filter dest-all term allow-all-else then accept set interfaces fe-0/0/1 unit 0 family inet filter output dest-all set interfaces fe-0/0/1 unit 0 family inet filter input dest-all
단계별 절차
다음 예는 구성 계층에서 다양한 수준의 탐색이 필요합니다. 자세한 내용은 구성 모드에서 CLI 편집기 사용을 참조하십시오.
디바이스에서 패킷 캡처 활성화:
최대 패킷 캡처 크기를 설정합니다.
[edit] user@host# edit forwarding-options user@host# set packet-capture maximum-capture-size 500
대상 파일명을 지정합니다.
[edit forwarding-options] user@host# set packet-capture file filename pcap-file
캡처할 최대 파일 수를 지정합니다.
[edit forwarding-options] user@host# set packet-capture file files 100
각 파일의 최대 크기를 지정합니다.
[edit forwarding-options] user@host# set packet-capture file size 1024
모든 사용자가 파일을 읽을 수 있는 권한을 갖도록 지정합니다.
[edit forwarding-options] user@host# set packet-capture file world-readable
패킷 캡처를 위해 방화벽 필터를 구성합니다.
[edit] user@host# edit firewall user@host# set filter dest-all term dest-term from destination-address 192.168.1.1/32
일치 조건과 해당 작업을 정의합니다.
allow-all-else
조건 이름은 SRX가 다른 트래픽을 삭제하지 않도록 하는 데 사용됩니다.[edit firewall] user@host# set filter dest-all term dest-term then sample accept user@host# set filter dest-all term allow-all-else then accept
인터페이스에 방화벽 필터를 적용하여 수신 및 발신 패킷을 캡처합니다.
[edit interfaces] user@host# set fe-0/0/1 unit 0 family inet filter output dest-all user@host# set fe-0/0/1 unit 0 family inet filter input dest-all
패킷 캡처를 활성화하도록 커밋합니다.
user@host# commit
패킷 캡처를 비활성화하여 객체 수집을 중지합니다.
user@host# rollback 1 user@host# commit
결과
구성 모드에서 run show forwarding-options
및 run show firewall filter dest-all
명령을 입력하여 구성을 확인합니다. 출력이 의도된 구성을 표시하지 않으면, 이 예의 구성 지침을 반복하여 수정합니다.
[edit] user@host# run show forwarding-options packet-capture { file filename pcap-file files 100 size 1k world-readable; maximum-capture-size 500; }
[edit] user@host# run show firewall filter dest-all term dest-term { from { destination-address 192.168.1.1/32; } then { sample; accept; } } term allow-all-else { then accept; }
디바이스 구성을 마쳤으면 구성 모드에서 commit
을 입력합니다.
검증
구성이 올바르게 작동하고 있는지 확인합니다.
패킷 캡처 구성을 위한 방화벽 필터 확인
목적
디바이스에 패킷 캡처를 위한 방화벽 필터가 구성되어 있는지 확인합니다.
작업
구성 모드에서 run show forwarding-options
및 run show firewall filter dest-all
명령을 입력합니다. 출력에 대상 주소로 전송된 패킷을 캡처하기 위한 파일 구성이 표시되는지 확인합니다.
목적
캡처된 패킷이 디바이스의 /var/tmp
디렉토리 아래에 저장되는지 확인합니다.
작업
운영 모드에서 file list /var/tmp/
명령을 입력합니다.
user@host> file list /var/tmp/ | match pcap-file* pcap-file fe-0.0.1
캡처된 패킷 확인
목적
패킷 캡처 파일이 /var/tmp
디렉터리 아래에 저장되어 있고, 패킷을 오프라인으로 분석할 수 있는지 확인합니다.
작업
패킷 캡처를 사용하지 않습니다.
FTP를 사용하여 패킷 캡처 파일(예:
126b.fe-0.0.1
)을 패킷 분석기 도구를 설치한 서버(예:tools-server
)로 전송합니다.구성 모드에서 FTP를 사용하여
tools-server
에 연결합니다.[edit] user@host# run ftp tools-server Connected to tools-server.mydomain.net 220 tools-server.mydomain.net FTP server (Version 6.00LS) ready Name (tools-server:user):remoteuser 331 Password required for
remoteuser
. Password: 230 User remoteuser logged in. Remote system type is UNIX. Using binary mode to transfer files. ftp>디바이스에서 패킷 캡처 파일이 저장되는 디렉터리로 이동합니다.
ftp> lcd /var/tmp Local directory now /cf/var/tmp
예를 들어
126b.fe-0.0.1
같은, 서버로 분석하려는 패킷 캡처 파일을 복사합니다.ftp> put 126b.fe-0.0.1 local: 126b.fe-0.0.1 remote: 126b.fe-0.0.1 200 PORT command successful. 150 Opening BINARY mode data connection for '126b.fe-0.0.1'. 100% 1476 00:00 ETA 226 Transfer complete. 1476 bytes sent in 0.01 seconds (142.42 KB/s)
구성 모드로 돌아갑니다.
ftp> bye 221 Goodbye. [edit] user@host#
tcpdump 또는 libpcap 형식을 지원하는 패킷 분석기로 서버의 패킷 캡처 파일을 열고 출력을 검토합니다.
root@server% tcpdump -r 126b.fe-0.0.1 -xevvvv
01:12:36.279769 Out 0:5:85:c4:e3:d1 > 0:5:85:c8:f6:d1, ethertype IPv4 (0x0800), length 98: (tos 0x0, ttl 64, id 33133, offset 0, flags [none], proto: ICMP (1), length: 84) 14.1.1.1 > 15.1.1.1: ICMP echo request seq 0, length 64 0005 85c8 f6d1 0005 85c4 e3d1 0800 4500 0054 816d 0000 4001 da38 0e01 0101 0f01 0101 0800 3c5a 981e 0000 8b5d 4543 51e6 0100 aaaa aaaa aaaa aaaa aaaa aaaa aaaa aaaa aaaa 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 01:12:36.279793 Out 0:5:85:c8:f6:d1 > 0:5:85:c4:e3:d1, ethertype IPv4 (0x0800), length 98: (tos 0x0, ttl 63, id 41227, offset 0, flags [none], proto: ICMP (1), length: 84) 15.1.1.1 > 14.1.1.1: ICMP echo reply seq 0, length 64 0005 85c4 e3d1 0005 85c8 f6d1 0800 4500 0054 a10b 0000 3f01 bb9a 0f01 0101 0e01 0101 0000 445a 981e 0000 8b5d 4543 51e6 0100 aaaa aaaa aaaa aaaa aaaa aaaa aaaa aaaa aaaa 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 root@server%
예: 인터페이스에서 패킷 캡처 구성
이 예는 트래픽 분석을 위해 인터페이스에 대한 패킷 캡처를 구성하는 방법을 보여줍니다.
요구 사항
시작하기 전에:
기본 연결을 구축합니다.
네트워크 인터페이스를 구성합니다. 보안 디바이스에 대한 인터페이스 사용자 가이드를 참조하십시오.
개요
이 예제에서는 fe-0/0/1라고 하는 인터페이스를 생성한 다음, 인바운드 및 아웃바운드로 논리 인터페이스에 대한 패킷 캡처를 구현하는 트래픽 방향을 구성합니다.
플로우 소프트웨어 모듈(ARP, OSPF, PIM와 같은 프로토콜 패킷)을 우회하는 트래픽에서, 출력 방향으로 인터페이스에 방화벽 필터를 구성 및 적용하지 않는 한 라우팅 엔진에서 생성된 패킷은 캡처되지 않습니다.
구성
절차
CLI 빠른 구성
이 예를 빠르게 구성하려면, 아래 명령을 복사하여 텍스트 파일로 붙여 넣은 다음 모든 라인브레이크를 제거하고, 네트워크 구성을 일치하는 데 필요한 세부 사항을 바꾸고 [edit]
계층 수준에서 명령을 CLI로 복사해 붙여 넣은 다음, 구성 모드에서 commit
을 입력합니다.
edit interfaces fe-0/0/1 set unit 0 family inet sampling input output
단계별 절차
다음 예는 구성 계층에서 다양한 수준의 탐색이 필요합니다. 자세한 내용은 구성 모드에서 CLI 편집기 사용을 참조하십시오.
인터페이스에 대한 패킷 캡처를 구성하는 방법:
인터페이스를 생성합니다.
[edit] user@host# edit interfaces fe-0/0/1
트래픽 방향을 구성합니다.
[edit interfaces fe-0/0/1] user@host# set unit 0 family inet sampling input output
디바이스 구성을 완료하면 해당 구성을 커밋합니다.
[edit] user@host# commit
패킷 캡처 비활성화
분석을 위해 패킷 캡처 파일을 열거나 파일을 외부 디바이스로 전송하기 전에 패킷 캡처를 비활성화해야 합니다. 패킷 캡처를 비활성화하면 내부 파일 버퍼가 플러시되고 캡처한 모든 패킷이 파일에 작성됩니다.
패킷 캡처를 비활성화하려면 구성 모드에서 다음을 입력합니다.
[edit forwarding-options] user@host# set packet-capture disable
디바이스 구성을 마쳤으면 구성 모드에서 commit
을 입력합니다.
패킷 캡쳐가 구성된 인터페이스에서 캡슐화 수정
패킷 캡처를 위해 구성된 디바이스 인터페이스에 대한 캡슐화를 수정하기 전에 반드시 패킷 캡처를 비활성화하고 최신 패킷 캡처 파일의 이름을 변경해야 합니다. 그렇지 않으면 동일한 패킷 캡쳐 파일에서 다양한 캡슐화를 가진 패킷을 패킷 캡쳐가 저장합니다. 다양한 캡슐화를 가진 패킷을 포함하는 패킷 파일은 유용하지 않습니다. 왜냐하면 tcpdump와 같은 패킷 분석기 도구는 이러한 파일을 분석할 수 없기 때문입니다.
캡슐화를 수정한 후 디바이스 상에서 패킷 캡처를 다시 안전하게 활성화할 수 있습니다.
패킷 캡쳐가 구성된 인터페이스에서 캡슐화를 변경하기 위해 다음을 따릅니다.
- 패킷 캡처를 비활성화합니다(패킷 캡처 비활성화하기 참조).
- 구성 모드에서
commit
을(를) 입력합니다. .chdsl
확장자로 캡슐화를 바꾸고 있는 최신 패킷 캡처 파일의 이름을 대체합니다.- J-Web 사용자 인터페이스 또는 CLI 구성 편집기를 사용하여 인터페이스에 캡슐화를 변경합니다.
- 디바이스 구성을 마쳤으면 구성 모드에서
commit
을 입력합니다. - 패킷 캡처 재활성화( 참조, 예: 디바이스에서 패킷 캡처 활성화).
- 디바이스 구성을 마쳤으면 구성 모드에서
commit
을 입력합니다.
패킷 캡처 파일 삭제
/var/tmp 디렉터리에서 패킷 캡처 파일을 삭제하는 것은 패킷 캡처 파일을 일시적으로만 제거합니다. 인터페이스의 패킷 캡처 파일은 다음에 패킷 캡처 구성 변경이 커밋되거나 패킷 캡처 파일 로테이션의 일환으로 자동으로 다시 생성됩니다.
패킷 캡처 파일 삭제:
- 패킷 캡처를 비활성화합니다(패킷 캡처 비활성화하기 참조).
- 인터페이스의 패킷 캡처 파일을 삭제합니다.
- 패킷 캡처 재활성화( 참조, 예: 디바이스에서 패킷 캡처 활성화).
- 디바이스 구성을 마쳤으면 구성 모드에서
commit
을 입력합니다.
패킷 헤더 표시
네트워크 인터페이스를 통해 전송된 패킷 헤더를 표시하려면 다음 구문을 사용하여 monitor traffic
명령을 입력합니다.
monitor traffic
명령을 사용하면 시스템 성능이 저하될 수 있습니다. count
및 matching
과 같은 필터링 옵션을 사용하여 시스템의 패킷 처리량에 미치는 영향을 최소화하는 것이 좋습니다.
user@host> monitor traffic <absolute-sequence> <count number> <interface interface-name> <layer2-headers> <matching "expression"> <no-domain-names> <no-promiscuous> <no-resolve> <no-timestamp> <print-ascii> <print-hex> <size bytes> <brief | detail | extensive>
표 1에는 monitor traffic
명령 옵션에 대한 설명이 나와 있습니다.
옵션 |
설명 |
---|---|
|
(옵션) 절대 TCP 시퀀스 번호를 표시합니다. |
|
(옵션) 지정된 수의 패킷 헤더를 표시합니다. |
|
(옵션) 지정된 인터페이스의 트래픽에 대한 패킷 헤더를 표시합니다. 인터페이스를 지정하지 않으면 번호가 가장 낮은 인터페이스가 모니터링됩니다. |
|
(옵션) 각 라인에 링크 레이어 패킷 헤더를 표시합니다. |
|
(옵션) 따옴표(" ")로 묶인 표현식과 일치하는 패킷 헤더를 표시합니다. 표 2 ~ 표 4에는 표현식에서 사용할 수 있는 일치 조건, 논리 연산자, 산술 연산자, 이진 연산자, 및 관계 연산자가 나열되어 있습니다. |
|
(옵션) 호스트 이름의 도메인 이름 부분을 표시하지 않습니다. |
|
(옵션) 모니터링되는 인터페이스를 무차별 모드에 두도록 not 지정합니다. 무차별 모드에서는 인터페이스가 도달하는 모든 패킷을 읽습니다. 비무차별 무드에서는 인터페이스가 해당 인터페이스로 지정된 패킷만을 읽습니다. |
|
(옵션) 호스트 이름이 표시되지 않게 합니다. |
|
(옵션) 패킷 헤더 타임스탬프가 표시되지 않게 합니다. |
|
(옵션) 각 패킷 헤더를 ASCII 형식으로 표시합니다. |
|
(옵션) 링크 레이어 헤더를 제외한 각 패킷 헤더를 16진수 형식으로 표시합니다. |
|
(옵션) 지정한 각 패킷의 바이트 수를 표시합니다. 패킷 헤더가 이 크기를 초과하면 표시된 패킷 헤더가 잘립니다. 기본값은 |
|
(옵션) 최소한의 패킷 헤더 정보를 표시합니다. 이는 기본 설정입니다. |
|
(옵션) 패킷 헤더 정보를 중간 정도로 상세하게 표시합니다. 일부 프로토콜의 경우 세부 정보를 보려면 |
|
(옵션) 패킷 헤더 정보를 가장 광범위한 수준으로 표시합니다. 일부 프로토콜의 경우 광범위한 정보를 보려면 |
monitor traffic
명령을 종료하고 명령 프롬프트로 돌아가려면 Ctrl-C를 누릅니다.
monitor traffic
명령에 의해 표시되는 패킷 헤더 정보를 제한하려면 matching "expression"
옵션을 포함합니다. 표현식은 표 2에 나열된 하나 이상의 일치 조건으로 구성되며 따옴표(" ")로 묶여 있습니다. 표 3에 나열된 논리 연산자(우선 순위가 높은 순으로 표시)를 사용하여 일치 조건을 결합할 수 있습니다.
예를 들어 TCP 또는 UDP 패킷 헤더를 표시하려면 다음과 같이 입력합니다.
user@host> monitor traffic matching “tcp || udp”
다음과 같은 유형의 표현식을 비교하려면 표 4에 나열된 관계 연산자(우선 순위가 높은 순으로 나열)를 사용합니다.
산술 - 표 4에 나열된 산술 연산자를 사용하는 표현식
이진 - 표 4에 나열된 이진 연산자를 사용하는 표현식
패킷 데이터 접근자 - 다음 구문을 사용하는 표현식:
protocol [byte-offset <size>]
protocol
을 표 2에 있는 임의의 프로토콜로 대체합니다. 비교에 사용하기 위해byte-offset
을 패킷 헤더의 시작 부분의 바이트 오프셋으로 바꿉니다. 선택적size
매개변수는 패킷 헤더에서 검사되는 바이트 수(1, 2, 또는 4바이트)를 나타냅니다.예를 들어 다음 명령은 모든 멀티캐스트 트래픽을 표시합니다.
user@host> monitor traffic matching “ether[0] & 1 !=0”
일치 조건 |
설명 |
---|---|
엔티티 형식 | |
|
지정된 주소 또는 호스트 이름을 포함하는 패킷 헤더와 일치합니다. 한 칸의 공백을 두고 |
|
지정된 네트워크 주소를 포함하는 소스 또는 대상 주소를 가진 패킷 헤더와 일치합니다. |
|
지정된 네트워크 주소와 서브넷 마스크가 포함된 패킷 헤더와 일치합니다. |
|
지정된 소스 또는 대상 TCP 또는 UDP 포트 번호나 포트 이름을 포함하는 패킷 헤더와 일치합니다. |
방향 | |
|
지정된 대상을 포함하는 패킷 헤더와 일치합니다. 방향 일치 조건은 한 칸의 공백을 두고 임의의 엔티티 유형 일치 조건 앞에 추가할 수 있습니다. |
|
지정된 소스를 포함하는 패킷 헤더와 일치합니다. |
|
지정된 소스 또는(and) 대상을 포함하는 패킷 헤더와 일치합니다. |
|
지정된 소스 또는(or) 대상을 포함하는 패킷 헤더와 일치합니다. |
패킷 길이 | |
|
길이가 지정된 값(바이트)보다 작거나 같은 패킷과 일치합니다. |
|
길이가 지정된 값(바이트)보다 크거나 같은 패킷과 일치합니다. |
프로토콜 | |
|
모든 ARP 패킷을 일치시킵니다. |
|
모든 이더넷 프레임이 일치합니다. |
|
브로드캐스트 또는 멀티캐스트 이더넷 프레임을 일치시킵니다. 이 일치 조건 앞에 |
|
지정된 주소 또는 프로토콜 유형을 가진 이더넷 프레임과 일치합니다. 인수 |
|
모든 ICMP 패킷을 일치시킵니다. |
|
모든 IP 패킷을 일치시킵니다. |
|
브로드캐스트 또는 멀티캐스트 IP 패킷을 일치시킵니다. |
|
지정된 주소 또는 프로토콜 유형을 가진 IP 패킷과 일치합니다. 인수 |
|
모든 IS-IS 라우팅 메시지를 일치시킵니다. |
|
모든 RARP 패킷을 일치시킵니다. |
|
모든 TCP 패킷이 일치합니다. |
|
모든 UDP 패킷이 일치합니다. |
논리 연산자 |
설명 |
---|---|
|
논리적 NOT. 첫 번째 조건이 일치하지 않으면 다음 조건을 평가합니다. |
|
논리적 AND. 첫 번째 조건이 일치하는 경우 다음 조건을 평가합니다. 첫 번째 조건이 일치하지 않으면 다음 조건을 건너뜁니다. |
|
논리적 OR. 첫 번째 조건이 일치하는 경우 다음 조건을 건너뜁니다. 첫 번째 조건이 일치하지 않으면 다음 조건을 평가합니다. |
|
기본 우선 순위를 덮어쓰기 위한 그룹 연산자입니다. 괄호는 특수 문자이며, 각 괄호에는 백슬래시(\)가 선행되어야 합니다. |
연산자 |
설명 |
---|---|
산술 연산자 | |
|
더하기 연산자 |
|
빼기 연산자 |
|
나누기 연산자 |
이진 연산자 | |
|
비트 AND |
|
비트 XOR |
|
포괄적 비트 OR |
관계 연산자 | |
|
첫 번째 표현식이 두 번째 표현식과 같지 않으면 일치가 발생합니다. |
|
첫 번째 표현식이 두 번째 표현식보다 크거나 같으면 일치가 발행합니다. |
|
첫 번째 표현식이 두 번째 표현식보다 작으면 일치가 발생합니다. |
|
첫 번째 표현식이 두 번째 표현식보다 크면 일치가 발생합니다. |
|
첫 번째 표현식이 두 번째 표현식과 같으면 일치가 발생합니다. |
|
첫 번째 표현식이 두 번째 표현식과 같지 않으면 일치가 발생합니다. |
다음은 monitor traffic
명령의 샘플 출력입니다.
user@host> monitor traffic count 4 matching “arp” detail
Listening on fe-0/0/0, capture size 96 bytes 15:04:16.276780 In arp who-has 193.1.1.1 tell host1.site2.net 15:04:16.376848 In arp who-has host2.site2.net tell host1.site2.net 15:04:16.376887 In arp who-has 193.1.1.2 tell host1.site2.net 15:04:16.601923 In arp who-has 193.1.1.3 tell host1.site2.net