2015-08-22 7:55 GMT+02:00 Yang Luo <hslu...@gmail.com>:

> Hi list,
>
> Npcap 0.04 r5 has added the DLT_NULL protocol support, you need to check
> the *"Use DLT_NULL protocol as loopback packets' link layer instead of
> Ethernet II"* option when installing (default is not checked). The
> problem is Wireshark didn't recognize these loopback packets correctly, I
> think Windows is little-endian system, so "02 00 00 00" protocol header
> should be right. Hope any helpful answers.
>
> Latest install is at:
> https://svn.nmap.org/nmap-exp/yang/NPcap-LWF/npcap-nmap-0.04-r5.exe
>

Hi Yang,

DLT_NULL does not work as expected because Npcap is still providing a
linktype of type Ethernet instead of Null. I was able to fix the
encapsulation of a captue by running editcap -T null dlt_null.pcapng
dlt_null_fixed.pcapng.
Another issue is that value 23 is not interpreted as IPv6 for Windows, but
as Netware IPX/SPX. Should we "steal" the value of another system? For now
the NULL dissector supports IPv6 codes for BSD (24), FreeBSD (28) and OS X
(30). Guy, what do you think?

Cheers,
Pascal.


> On Thu, Aug 20, 2015 at 2:17 PM, Yang Luo <hslu...@gmail.com> wrote:
>
>> Hi,
>>
>> This issue has been added to list at:
>> https://github.com/nmap/nmap/issues/200. Windows is slightly different
>> for this thing, because Npcap Loopback Adapter is actually based on
>> "Microsoft KM-TEST Loopback Adapter" and Windows makes "Microsoft KM-TEST
>> Loopback Adapter" an Ethernet adapter, it has a MAC address and MTU is 1500
>> (can be seen in Wireshark and Nmap). Before the DLT_NULL/DLT_LOOP
>> change, the MAC address should be removed first, the MTU should be modified
>> to an apropriate value, like 65535. It's weird to have a pure loopback
>> interface with MAC address.
>>
>> It seems that most softwares can handle DLT_NULL/DLT_LOOP for the
>> captured data. So I think "02 00 00 00" for IPv4 and "23 00 00 00" for IPv6
>> are enough, right? This can be handled by Npcap. Then how about the
>> sending side? I think Nmap just constructs a packet from Ethernet header
>> before sending it. How to make Nmap construct a DLT_NULL/DLT_LOOP header
>> instead of an Ethernet header?
>>
>> Cheers,
>> Yang
>>
>>
>> On Wed, Aug 19, 2015 at 2:33 PM, Guy Harris <g...@alum.mit.edu> wrote:
>>
>>>
>>> On Aug 18, 2015, at 9:50 PM, Yang Luo <hslu...@gmail.com> wrote:
>>>
>>> > Current fake Ethernet encapsulation of Npcap refers to the Linux
>>> implementation (actually is Ubuntu, as I am only familiar with it for a
>>> Linux system). I don't own a OS X computer now so I can't test or use it.
>>> One question is is NULL/Loopback encapsulation a widespread protocol
>>> standard like Ethernet?
>>>
>>> DLT_NULL is not a published standard, but it's used for loopback devices
>>> on
>>>
>>>         1) the most common desktop UNIX (no, it's not anything
>>> Linux-based, it's BSD-flavored)
>>>
>>> and
>>>
>>>         2) the second most common smartphone/tablet UN*X
>>>
>>> as well as on FreeBSD, NetBSD, and DragonFly BSD.  DLT_LOOP is used on
>>> OpenBSD.
>>>
>>> A program that can't handle DLT_NULL or DLT_LOOP *cannot* handle
>>> loopback device captures from any of those OSes.
>>>
>>> > Also What I am worried about is that is NULL/Loopback encapsulation
>>> type compatible with other softwares? Like Nmap, NetScanTools, etc. I don't
>>> know if they have a smart dissector like packet-null.c in Wireshark to tell
>>> it's a loopback packet coming.
>>>
>>> There's nothing "smart" needed - Wireshark's just working around some
>>> screwups in some OSes that mistakenly use DLT_NULL for things that didn't
>>> have a DLT_NULL link-layer header.  All a program needs to do is catch
>>> DLT_NULL and DLT_LOOP, fetch the 4-byte header, and compare it against 2
>>> for IPv4 and against various values for IPv6.
>>>
>>> Tcpdump had support for it before Wireshark even *existed*, even under
>>> the name Ethereal.  Look at null_if_print() in print-null.c in the tcpdump
>>> source - it doesn't bother with the "smart" stuff.
>>>
>>> Nmap handles it, except for libnetutil/netutil.cc, which doesn't handle
>>> *anything* other than DLT_EN10MB and DLT_LINUX_SLL - that code can't handle
>>> PPP on anything other than Linux (and that only because Linux doesn't, or
>>> at least didn't, bother to supply a useful link-layer header for PPP, so
>>> libpcap falls back on cooked mode so it can get *some* packet information).
>>>
>>> NetScanTools - unknown, but, as they're Windows-only and use WinPcap,
>>> they might not bother handling DLT_NULL/DLT_LOOP, as WinPcap hasn't
>>> supplied them.  The "Packet Capture Tool" can save a pcap file and
>>> presumably can read a saved file:
>>>
>>>         http://www.netscantools.com/nstpro_packet_capture.html
>>>
>>> "Saving the capture or a specific packet is fully supported and you can
>>> reload a capture later for future analysis."
>>>
>>> but if all they support is reading files saved from the "Packet Capture
>>> Tool", they might not support any DLT_/LINKTYPE_ values that you don't get
>>> from WinPcap.
>>>
>>> > Moreover, I found a link:
>>> https://ask.wireshark.org/questions/7849/null-loopback-link-encapsulation-conversion.
>>> It seems that some softwares did have problem with NULL/Loopback
>>> encapsulation,
>>>
>>> Yeah, another tool that didn't bother with DLT_NULL/DLT_LOOP.  Perhaps
>>> Riverbed fixed that after buying OpNet.
>>>
>>> > so could you tell me the advantages of this method except saving 10
>>> bytes (Ethernet is 14 bytes without the checksum)?
>>>
>>> Not confusing people into thinking that they have an Ethernet capture
>>> with meaningful source and destination addresses in the capture?
>>>
>>> ___________________________________________________________________________
>>> Sent via:    Wireshark-dev mailing list <wireshark-dev@wireshark.org>
>>> Archives:    https://www.wireshark.org/lists/wireshark-dev
>>> Unsubscribe: https://wireshark.org/mailman/options/wireshark-dev
>>>              mailto:wireshark-dev-requ...@wireshark.org
>>> ?subject=unsubscribe
>>>
>>
>>
>
> ___________________________________________________________________________
> Sent via:    Wireshark-dev mailing list <wireshark-dev@wireshark.org>
> Archives:    https://www.wireshark.org/lists/wireshark-dev
> Unsubscribe: https://wireshark.org/mailman/options/wireshark-dev
>              mailto:wireshark-dev-requ...@wireshark.org
> ?subject=unsubscribe
>
___________________________________________________________________________
Sent via:    Wireshark-dev mailing list <wireshark-dev@wireshark.org>
Archives:    https://www.wireshark.org/lists/wireshark-dev
Unsubscribe: https://wireshark.org/mailman/options/wireshark-dev
             mailto:wireshark-dev-requ...@wireshark.org?subject=unsubscribe

Reply via email to