Ethernet capture setup

This page will explain which points to think about when capturing packets from ["Ethernet"] networks.

Table of contents

TableOfContents(4)

Packet Types

The Ethernet hardware on the network adapter filters all packets received, and delivers to the host

The driver for the adapter will also send copies of transmitted packets to the packet capture mechanism, so that they will be seen by a capture program as well.

In order to capture Ethernet traffic other than ["Unicast"] traffic to and from the host on which you're running Wireshark, ["Multicast"] traffic, and ["Broadcast"] traffic, the adapter will have to be put into promiscuous mode, so that the filter mentioned above is switched off and all packets received are delivered to the host.

Shared Ethernet

In the old days, Ethernet networks were shared networks, using shared media or hubs to connect the Ethernet nodes together, meaning all packets could be received by all nodes on that network. Therefore, if an Ethernet adapter on such a network is put into promiscuous mode, all packets on the network will be seen by that adapter and thus can be captured with that adapter.

attachment:Capture-shared-hub.png

Today, shared networks are becoming popular again, as WLAN's are using this technique. You might have a look at ["CaptureSetup/WLAN"] for details.

Switched Ethernet

Today, a typical Ethernet network will use switches to connect the Ethernet nodes together. This can increase network performance a lot, but makes life much harder when capturing packets.

An Ethernet switch will do a similar thing to the Ethernet adapter hardware mentioned above, but inside the switch. It can infer, from traffic seen on a switch port, what ["Unicast"] address or addresses are used by the adapter connected to that port, and will forward to that port only ["Unicast"] traffic sent to that address or addresses, as well as all ["Multicast"] and ["Broadcast"] packets on the network.

As ["Unicast"] packets not sent to that host will not be put on the switch port to which that host's adapter is connected, that adapter will not have those packets, so putting the adapter into promiscuous mode can't cause it to deliver packets to that host, and you won't see those packets even if you capture in promiscuous mode.

attachment:Capture-switch-problem.png

The following will describe some methods to circumvent this problem.

Capture on the machine you're interested in

If you only need the capture data from a specific host, try to capture on that machine.

attachment:Capture-switch-same-computer.png

Capture using an Ethernet hub

If you have an "old" Ethernet hub available, put it inside the Ethernet line you want to capture from. This could be the line between a switch and a node or between two switches.

attachment:Capture-switch-hub.png

Beware that this will interrupt network traffic while you plug the cables!

This method can/will affect network performance, if you are using EthernetFullDuplex mode. This is not optimal for network troubleshooting.

Note that some "hubs" are actually "switching hubs", which are switches rather than "old" hubs, and won't help in this case, and that "dual-speed" (10/100Mb) hubs don't forward unicast traffic between 10Mb/s and 100 Mb/s ports, requiring the capturing machine to run its Ethernet at the same speed as the machines whose traffic it's trying to capture.

See the HubReference for information on "real" hubs.

Capture using a monitor mode of the switch

Some Ethernet switches (usually called "managed switches") have a monitor mode. Managed switches have been expensive in the past, but some models can now be found for less than $100. This monitor mode can dedicate a port to connect your (Wireshark) capturing device. It's sometimes called 'port mirroring', 'port monitoring', 'Roving Analysis' (3Com), or 'Switched Port Analyzer' or 'SPAN' (Cisco). Using the switch management, you can select both the monitoring port and assign a specific port you wish to monitor. Actual procedures vary between switch models; you may need to use a terminal emulator, specialised SNMP client software or (more recently) a Web browser. Caution: the monitoring port must be at least as fast as the monitored port, or you will certainly lose packets.

Note that some switches might not support monitoring all traffic passing through the switch, only traffic on a particular port. On those switches, you might not be able to capture all traffic on the network, only traffic sent to or from some particular machine on the switch.

Rumour has it that some switches can monitor the whole throughput of the switch. As a switch can transfer more traffic than a single line can transmit, you will be unlikely to see all traffic.

attachment:Capture-switch-monitor-port.png

See the SwitchReference for details about specific switch models.

Capture using a machine-in-the-middle

A machine with two network interface cards (NICs) can be used as a transparent bridge, capturing all the traffic to and from a single machine or a network segment. Under Linux, brcfg is the appropriate configuration tool; under the BSD family, brconfig. Apparently, Windows XP and Server 2003 also allow bridging configurations to be built; it may well prove harder to make a Windows installation 'quiet' in network traffic terms than Unix.

Running Wireshark on just one of the NICs is enough to capture all the traffic.

Many laptops have one network adaptor built-in; a second can be added using a PC card. Desktop machines are easily fitted with additional NICs.

The bridge is 'transparent' at the level of IP and similar protocols, and 'almost' transparent at the Ethernet level - it creates a small delay in packet transmission, and the Ethernet addresses of the two NICs may respond to some broadcast messages.

attachment:Capture-switch-mitm-2NIC.png

Capture using a network tap

Several vendors offer network taps, which can be plugged into a line.

These taps will have four connectors: two for the existing line and two outputs for both directions of the EthernetFullDuplex traffic.

attachment:Capture-switch-tap.png

To use these taps, you have to capture both outputs. As Wireshark cannot capture from two interfaces at once, you have to start two Wireshark instances for capturing and merge the resulting capture files together.

On most Unix systems, including Red Hat, two Ethernet ports can be bonded, and Wireshark can use the bonded interface. This prevents having to run two instances of Wireshark and merging them together. For more information, check on "bonding", "trunking", or (less desirably) "bridging" for your OS type.

See [http://www.snort.org/docs/tap/ Construction and Use of a Passive Ethernet Tap] from the Snort webpage how to build a DIY tap. You can purchase network taps from simple passive ones at the size of a cigarette packet to 19" rack mounted multiple line taps which support SNMP monitoring and redundant power supply. [http://www.netoptics.com/ Net Optics] and other manufaturers provide a range of these taps.

Be sure to test the power up and power down of taps. Some taps are completely transparent when they power down, but can take up to (approx) two seconds for it to power up (so for two seconds, no packets make it through).

Capture using a MITM (Man-In-The-Middle) software

To capture packets going between two computers on a switched network, you can use a MITM attack (ARP Poisoning). This type of attack will fool the two computers into thinking that your MAC address is the MAC address of the other machine. This will in turn make the switch route all of their traffic to your computer where you can sniff it and then send the traffic along as if nothing ever happened. This type of attack can cause havoc on some switches and LANs so use it carefully.

attachment:Capture-switch-mitm.png

/!\ Please do not try this on any LAN other than your own!

See [http://ettercap.sourceforge.net/forum/viewtopic.php?t=2392&sid=c3bd051ccaac01d54f83223155793cd3 Ettercap - ARP Poisoning HowTo] for more info.

MAC Flooding

Switches keep a translation table that maps various MAC addresses to the physical ports on the switch. As a result of this, a switch can intelligently route packets from one host to another, but it has a limited memory for this work. MAC flooding makes use of this limitation to bombard the switch with fake MAC addresses until the switch can't keep up. The switch then enters into what is known as a `failopen mode', wherein it starts acting as a hub by broadcasting packets to all the machines on the network. Once that happens sniffing can be performed easily. MAC flooding can be performed by using macof, a utility which comes with the [http://www.monkey.org/~dugsong/dsniff/ dsniff] suite.

attachment:Capture-switch-mac-flooding.png

/!\ Please do not try this on any LAN other than your own!

See Also


CategoryHowTo