tcpdump : 여러 VLAN 중 하나를 캡처 and \( ip host 10.1.1.98 or ip

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에서 트래픽을 캡처하려면 어떻게해야합니까?



답변

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

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 바이트 필드입니다-나는 이것에 잠시 붙어 있습니다.


답변

심층 패킷 검사를 사용하는 것보다 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"


답변

vlan 필터가 패킷 내용을 이동시키는 것 같습니다 ….

http://www.christian-rossow.de/articles/tcpdump_filter_mixed_tagged_and_untagged_VLAN_traffic.php


답변