Name resolution tries to resolve some of the numerical
address values into a human readable format. There are two
possible ways to do these conversations, depending on the
resolution to be done: calling system/network services (like
the gethostname function) and/or evaluate from Wireshark
specific configuration files. For details about the
configuration files Wireshark uses for name resolution and
alike, see
Appendix A, Files and Folders
.
The name resolution feature can be en-/disabled
separately for the protocol layers of the following
sections.
7.7.1. Name Resolution drawbacks
Name resolution can be invaluable while working with
Wireshark and may even save you hours of work. Unfortunately,
it also has its drawbacks.
-
Name resolution will often fail.
The
name to be resolved might simply be unknown by the name
servers asked or the servers are just not available and
the name is also not found in Wireshark's configuration
files.
-
The resolved names are not stored in the capture
file or somewhere else.
So the resolved names
might not be available if you open the capture file later
or on a different machine. Each time you open a capture
file it may look "slightly different", maybe simply
because you can't connect to a name server (which you
could connect before).
-
DNS may add additional packets to your capture
file.
You may see packets to/from your machine
in your capture file, which are caused by name resolution
network services of the machine Wireshark captures from.
XXX - are there any other such packets than DNS
ones?
-
Resolved DNS names are cached by
Wireshark.
This is required for acceptable
performance. However, if the name resolution information
should change while Wireshark is running, Wireshark won't
notice a change to the name resolution information once
it gets cached. If this information changes while
Wireshark is running, e.g. a new DHCP lease takes effect,
Wireshark won't notice it. XXX - is this true for all or
only for DNS info?
|
Tip! |
The name resolution in the packet list is done while
the list is filled. If a name could be resolved after a
packet was added to the list, that former entry won't be
changed. As the name resolution results are cached, you can
use "View/Reload" to rebuild the packet list, this time
with the correctly resolved names. However, this isn't
possible while a capture is in progress.
|
7.7.2. Ethernet name resolution (MAC layer)
Try to resolve an Ethernet MAC address (e.g.
00:09:5b:01:02:03) to something more "human readable".
ARP name resolution (system
service)
: Wireshark will ask the operating system to
convert an Ethernet address to the corresponding IP address
(e.g. 00:09:5b:01:02:03 -> 192.168.0.1).
Ethernet codes (ethers file)
: If the ARP
name resolution failed, Wireshark tries to convert the
Ethernet address to a known device name, which has been
assigned by the user using an ethers file (e.g.
00:09:5b:01:02:03 -> homerouter).
Ethernet manufacturer codes (manuf file)
: If
neither ARP or ethers returns a result, Wireshark tries
to convert the first 3 bytes of an ethernet address to an
abbreviated manufacturer name, which has been assigned by the
IEEE (e.g. 00:09:5b:01:02:03 -> Netgear_01:02:03).
7.7.3. IP name resolution (network layer)
Try to resolve an IP address (e.g. 216.239.37.99) to
something more "human readable".
DNS/ADNS name resolution (system/library
service)
: Wireshark will ask the operating system (or
the ADNS library), to convert an IP address to the hostname
associated with it (e.g. 216.239.37.99 ->
www.1.google.com). The DNS service is using synchronous calls
to the DNS server. So Wireshark will stop responding until a
response to a DNS request is returned. If possible, you might
consider using the ADNS library (which won't wait for a
network response).
|
Warning! |
Enabling network name resolution when your name
server is unavailable may significantly slow down Wireshark
while it waits for all of the name server requests to time
out. Use ADNS in that case.
|
DNS vs. ADNS
: here's a short comparison:
Both mechanisms are used to convert an IP address to some
human readable (domain) name. The usual DNS call
gethostname() will try to convert the address to a name. To
do this, it will first ask the systems hosts file (e.g.
/etc/hosts) if it finds a matching entry. If that fails, it
will ask the configured DNS server(s) about the name.
So the real difference between DNS and ADNS comes when
the system has to wait for the DNS server about a name
resolution. The system call gethostname() will wait until a
name is resolved or an error occurs. If the DNS server is
unavailable, this might take quite a while (several seconds).
The ADNS service will work a bit differently. It will also
ask the DNS server, but it won't wait for the answer. It will
just return to Wireshark in a very short amount of time. The
actual (and the following) address fields won't show the
resolved name until the ADNS call returned. As mentioned
above, the values get cached, so you can use View/Reload to
"update" these fields to show the resolved values.
hosts name resolution (hosts file)
: If DNS
name resolution failed, Wireshark will try to convert an IP
address to the hostname associated with it, using a hosts
file provided by the user (e.g. 216.239.37.99 ->
www.google.com).
7.7.4. IPX name resolution (network layer)
ipxnet name resolution (ipxnets file)
: XXX -
add ipxnets name resolution explanation.
7.7.5. TCP/UDP port name resolution (transport layer)
Try to resolve a TCP/UDP port (e.g. 80) to something
more "human readable".
TCP/UDP port conversion (system
service)
: Wireshark will ask the operating system to
convert a TCP or UDP port to its well known name (e.g. 80
-> http).
XXX - mention the role of the /etc/services file (but
don't forget the files and folders section)!