tcpdump : 여러 VLAN 중 하나를 캡처


11

tcpdump가 VLAN 1000 또는 VLAN 501을 캡처하고 싶습니다 man pcap-filter.

VLAN 계층을 필터링하기 위해 vlan [vlan_id] 표현식을 두 번 이상 사용할 수 있습니다. 해당 표현식을 사용할 때마다 필터 오프셋이 4 씩 증가합니다.

내가 할 때 :

tcpdump -vv -i eth1 \( vlan 1000 \) and \( ip host 10.1.1.98 or ip host 10.1.1.99 \)

패킷이 캡처됩니다.

그러나 내가 할 때 :

tcpdump -vv -i eth1 \( vlan 1000 or vlan 501 \) and \( ip host 10.1.1.98 or ip host 10.1.1.99 \)

패킷을 얻지 못했습니다. 매뉴얼 페이지에 설명 된 "4 씩 증가"동작으로 추정됩니다.

한 번에 둘 이상의 VLAN에서 트래픽을 캡처하려면 어떻게해야합니까?

답변:


15

패킷 바이트를 직접 검사 할 수 있다는 것을 기억했습니다. 따라서 이더넷 헤더를 직접 살펴보면 다음과 같습니다.

tcpdump -vv -i eth1 '( vlan and ( ether[14:2] & 0xfff == 1000 or ether[14:2] & 0xfff == 501 ) ) and ( ip host 10.1.1.98 or ip host 10.1.1.99 )'

잊지 마세요 :2, 이것은 2 바이트 필드입니다-나는 이것에 잠시 붙어 있습니다.


6

심층 패킷 검사를 사용하는 것보다 grep을 사용하는 것보다 더 간단한 방법으로 수행 할 수 있습니다.

tcpdump -n -i eth1 -e | grep "vlan 1000" 

-e : 각 덤프 라인에 링크 레벨 헤더를 인쇄하십시오.

그것은 같은 줄을 인쇄합니다

ethertype 802.1Q (0x8100), length 60: vlan 1000, p 0, ethertype ARP

grep으로 쉽게 잡을 수있는

둘 이상의 VLAN ID를 포착하려면 다음과 같은 명령을 사용할 수 있습니다.

tcpdump -n -i eth1 -e | grep "vlan 1000\|vlan 501"

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.