This network is too good...

Hi all,

Any thoughts on products that screw up networks in deterministic (and
realistic found-in-the-wild) ways? I'm thinking of stuff like
PacketStorm, Dummynet, etc. Dial up jitter, latency, tail drop, RED,
whatever...

(I know someone's gonna say "Just buy a Brand Z FubarSwitch 3k, they
will screw up your whole network and you don't even have to configure
it to do so!")

I'm all-ears like Ross Perot.

Thanks,

-r

In a message written on Wed, Feb 01, 2012 at 08:51:13PM -0500, Robert E. Seastrom wrote:

Any thoughts on products that screw up networks in deterministic (and
realistic found-in-the-wild) ways? I'm thinking of stuff like
PacketStorm, Dummynet, etc. Dial up jitter, latency, tail drop, RED,
whatever...

(I know someone's gonna say "Just buy a Brand Z FubarSwitch 3k, they
will screw up your whole network and you don't even have to configure
it to do so!")

The only good L2 solutions I've ever seen are expensive commercial
testing. DummyNet, on a L3 aware FreeBSD box is extremely useful and
easy to configure to simulate varous loss or latency patterns.

What tool is right depends on if you want to test at L2 (simulate a
circuit/cable with a particular problem) or L3 (just a router in the
middle dropping packets), or testing an end user application. L2,
particularly if you want to simulate things like a duplex mismatch is
hard, and not often needed.

If your goal is to test applications against network conditions, OSX has
a nifty new tool, "Network Link Conditioner". It's basically just
dummynet with various throughput, delay, and packet loss settings but it
makes it dead simple to select from various pull downs.

http://www.thegeeksclub.com/simulate-internet-connectivity-speed-mac-os-lion-107-network-link-conditioner

I bring it up mainly because if you want to set your own DummyNet
settings for other testing it's a nice database of average case
performance for a number of link types!

IWL's "Maxwell" is probably what you want:

http://www.iwl.com/press-releases/new-capabilities-for-maxwell-the-network-impairment-system.html

Good luck breaking stuff!

In a message written on Wed, Feb 01, 2012 at 08:51:13PM -0500, Robert E.

Seastrom wrote:

Any thoughts on products that screw up networks in deterministic (and
realistic found-in-the-wild) ways? I'm thinking of stuff like
PacketStorm, Dummynet, etc. Dial up jitter, latency, tail drop, RED,
whatever...

(I know someone's gonna say "Just buy a Brand Z FubarSwitch 3k, they
will screw up your whole network and you don't even have to configure
it to do so!")

The only good L2 solutions I've ever seen are expensive commercial
testing. DummyNet, on a L3 aware FreeBSD box is extremely useful and
easy to configure to simulate varous loss or latency patterns.

What tool is right depends on if you want to test at L2 (simulate a
circuit/cable with a particular problem) or L3 (just a router in the
middle dropping packets), or testing an end user application. L2,
particularly if you want to simulate things like a duplex mismatch is
hard, and not often needed.

If your goal is to test applications against network conditions, OSX has
a nifty new tool, "Network Link Conditioner". It's basically just
dummynet with various throughput, delay, and packet loss settings but it
makes it dead simple to select from various pull downs.

http://www.thegeeksclub.com/simulate-internet-connectivity-speed-mac-os-lion-107-network-link-conditioner

I know people who have been very happy with Apposite. They have a couple
different lines that can simulate a lot of different conditions.

http://www.apposite-tech.com

I know they call them WAN simulators but I know a company that strictly
uses them for layer2 to simulate congestion between switches, etc.

You have pretty much two approaches:
-Special built hardware network emulators
-Network emulator software running on generic PC

Special built HW:
If you need extreme accuracy, i.e., delay generation to micro/nanosecond
accuracy, you need to go with special purpose boxes. Special built HW also
usually provides line rate throughput, regardless of impairments you are
applying.

I have experience using Anue Systems GEM/XGEM and Calnex Paragon-X network
emulators. Both tools are special built hardware platforms that allow
generating various network impairments (delay, jitter, packet reordering,
packet loss, CRC errors, etc.).

In my opinion Anue is easier to use. It provides Web GUI where you can
configure different impairment profiles. Calnex on the other hand requires
you to install a Client software on your Windows PC. In the end, both
products support pretty much the same features. There are some differences
if you are doing specific testing with network synchronization protocols,
like SyncE or 1588v2 (PTPv2).

Network emulator SW on generic PC:
I have very little experience on running SW based network emulators. I used
to play with one that was running on Linux box - unfortunately I cannot
remember the software name. The linux software was ok for introducing
packet loss, but way inaccurate when it comes to delay insertion. If
accuracy of tens of milliseconds is good enough for you, the software based
approach might be good for you.

netem - http://www.linuxfoundation.org/collaborate/workgroups/networking/netem

"netem provides Network Emulation functionality for testing protocols by emulating the properties of wide area networks. The current version emulates variable delay, loss, duplication and re-ordering."

I have used this in the lab, works OK. You can use it with the bridge util to stay layer 2.

Definite +1 for dummynet on freebsd; I've used in the lab at layer 2 in
bridge mode, and layer 3 both, for doing testing. latency introduction
is good down to a few ms, but isn't accurate below that--but for most
of what we do, in terms of simulating latency and loss/jitter, it works
like a charm.

Matt