tcp/ip 헤더를 뽑아내고 SRC/DST MAC 을 뽑아내야 하는데요.
그냥 DLT_10MB 에서는 간단하게 +14 해서 헤더를 뽑아냈고 MAC 도 간단하게 맨 앞에서 6 바이트씩 뽑아냈는데..
802.1q 에서는 그렇게 못 하는것 같아요.. 정확한 위치를 찾지 못 하겠는데요.. 고수님의 코멘트 부탁드립니다.
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를 가져 올수 있겠네요.
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
ethernet에서는 dst mac - 6 bytessrc mac
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를 가져 올수 있겠네요.
댓글 달기