Linux Netfilter discussions
 help / color / mirror / Atom feed
* Need tech explanation for NFLog TLV type 16 (0x10) - hardware link layer header
@ 2016-01-27 13:00 Peter Reckmann
  0 siblings, 0 replies; 2+ messages in thread
From: Peter Reckmann @ 2016-01-27 13:00 UTC (permalink / raw)
  To: netfilter

TLV type 16 (0x10) is "hardware link layer header".  Normally, the data for 
this field has a length of 14 bytes.  6 for the destination MAC, 6 for the 
source MAC, and 2 for the Ethernet type (08 00) which is IP.  This seems to 
be the Ethernet Header for the packet.  But, about 20% of the packets I am 
seeing have a length of 30 bytes.  So in addition to sMac, dMac, type, I am 
seeing an extra 12 bytes.  What is this?  Here is an example:

45:00:00:3C:2B:6A:00:00:80:11:8D:B9

I have seen this in a regular iptables log before.  Here is an example:

owblk_udp_drop IN=eth0 OUT=eth1 
MAC=b8:27:eb:c2:bd:37:00:1b:77:d2:88:62:08:00:45:00:00:3f:06:5a:00:00:7f:11:ab:c5 
SRC=192.168.0.61 DST=192.168.8.1 LEN=63 TOS=0x00 PREC=0x00 TTL=127 ID=1626 
PROTO=UDP SPT=1242 DPT=53 LEN=43.

So MAC= comes back with DesMac, SrcMac, and type again and then there are 
these additional bytes: 45:00:00:3f:06:5a:00:00:7f:11:ab:c5

Again 12 bytes.  They always start with 45:00:00 What are these?  What do 
they represent?

Thanks in advance! 


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: Need tech explanation for NFLog TLV type 16 (0x10) - hardware link layer header
@ 2016-02-12 16:39 Peter Reckmann
  0 siblings, 0 replies; 2+ messages in thread
From: Peter Reckmann @ 2016-02-12 16:39 UTC (permalink / raw)
  To: netfilter

I figured his out, finally. In case anyone is interested these additional 12 
bytes are the first 12 bytes of the IP header.  They also show up in a 
normal iptables j LOG.  Not sure this is feature or a bug but 100% sure its 
the first 12 bytes of the ip packet.

In case anyone is interested, I have a (linux) python threaded program that 
captures the NFLOG messages using the C library directly.  Follows the c 
test program exactly and uses the callback.  The threaded class only 
captures the packet and pushes it onto a thread safe queue.  Its fast!  The 
main thread then takes it off the queue and parses the packet. It parses the 
Netlink header, the NFLog header and then the TLV fields.  It's been running 
for 5 days 24x7 with no hiccups.  Works great if you want more information 
then the normal j LOG can deliver or you don't want to mess with logs.

Peter

----- Original Message ----- 
From: "Peter Reckmann" <preckmann@online.de>
To: <netfilter@vger.kernel.org>
Sent: Wednesday, January 27, 2016 2:00 PM
Subject: Need tech explanation for NFLog TLV type 16 (0x10) - hardware link 
layer header


> TLV type 16 (0x10) is "hardware link layer header".  Normally, the data 
> for this field has a length of 14 bytes.  6 for the destination MAC, 6 for 
> the source MAC, and 2 for the Ethernet type (08 00) which is IP.  This 
> seems to be the Ethernet Header for the packet.  But, about 20% of the 
> packets I am seeing have a length of 30 bytes.  So in addition to sMac, 
> dMac, type, I am seeing an extra 12 bytes.  What is this?  Here is an 
> example:
>
> 45:00:00:3C:2B:6A:00:00:80:11:8D:B9
>
> I have seen this in a regular iptables log before.  Here is an example:
>
> owblk_udp_drop IN=eth0 OUT=eth1 
> MAC=b8:27:eb:c2:bd:37:00:1b:77:d2:88:62:08:00:45:00:00:3f:06:5a:00:00:7f:11:ab:c5 
> SRC=192.168.0.61 DST=192.168.8.1 LEN=63 TOS=0x00 PREC=0x00 TTL=127 ID=1626 
> PROTO=UDP SPT=1242 DPT=53 LEN=43.
>
> So MAC= comes back with DesMac, SrcMac, and type again and then there are 
> these additional bytes: 45:00:00:3f:06:5a:00:00:7f:11:ab:c5
>
> Again 12 bytes.  They always start with 45:00:00 What are these?  What do 
> they represent?
>
> Thanks in advance! 


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2016-02-12 16:39 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-01-27 13:00 Need tech explanation for NFLog TLV type 16 (0x10) - hardware link layer header Peter Reckmann
  -- strict thread matches above, loose matches on Subject: below --
2016-02-12 16:39 Peter Reckmann

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox