tcpdump will do it (though it may not be overly pretty).
# tcpdump -i eth0 -w filename.txt
Browse until you encounter the problem (this records a lot of data so it's best if you have an easily reproducible problem...otherwise you may be sifting through irrelevant packets for quite a while). Ctrl+C to stop recording. Then view the data with
# tcpdump -r filename.txt
Add the -X option to the second command to view the actual data in a readable format instead of just the headers...but with a lot of packets, it makes it difficult to go through it all.
wireshark (see SBo for that) is a much, much nicer way of viewing/visualizing network packets.