In the course of setting up my own OpenStack cloud, I found myself working up and down through multiple layers of network virtualization. Needless to say, I ran into plenty of network issues. To solve them, I researched, gathering small bits of knowledge from many different websites (Stack Overflow, I’m looking at you), forums, and IRC channels. Once my cloud was up and running I lost track of a lot of this information. But, recently, I encountered a new issue and found myself digging through my old bookmarks. That’s why I’ve decided to write up a consolidated record of the knowledge and tools I’ve gathered for inspecting network traffic and answering that age old question: “Why can’t I ping that server?”
A lot of this applies for many Linux and Unix environments, but the specific commands I’m providing for reference are intended for Ubuntu Linux (tested on 12.04 and 16.04).