[질문] 802.1q packet 을 pcap 이용 tcp_ip header 와 MAC 찾기

duperyo의 이미지

tcp/ip 헤더를 뽑아내고
SRC/DST MAC 을 뽑아내야 하는데요.

그냥 DLT_10MB 에서는 간단하게
+14 해서 헤더를 뽑아냈고 MAC 도 간단하게 맨 앞에서 6 바이트씩 뽑아냈는데..

802.1q 에서는 그렇게 못 하는것 같아요..
정확한 위치를 찾지 못 하겠는데요..
고수님의 코멘트 부탁드립니다.

oasis의 이미지

ethernet에서는
dst mac - 6 bytes
src mac - 6 bytes
type - 2 bytes 입니다.
802.1q 일 경우 type은 0x8100입니다.

다음이 802.1q (virtual lan)단이 오죠
priority - 3 bits
CFI - 1 bit (default value: 0)
VLAN ID - 12 bits (값: 0 ~ 4094)

다음은 type - 2bytes 가 옵니다. (ARP: 0x0806또는 IP: 0x0800또는 기타 등등)
그 담에 IP Header가 옵니다.

즉 +14가 아니라 +18을 해야 IP header를 가져 올수 있겠네요.