One of the problems with building and/or deploying applications that depend on intercommunication between distributed systems is that it’s almost impossible to test these systems properly without the right kit.
We’re spoilt by the sheer speed and reliability of modern LAN technology, and it’s not uncommon for an application that worked fine in the lab to run like a dog when deployed on the real network because it’s more reliant than we thought, on the relatively slow link between two sites involved in running that application.
This is the market that Itheon is aiming at with the INE. It’s a software product that comes pre-installed on either a portable PC or a rack-mounted server, and which pretends to be a network connection of a user-defined speed with user-defined characteristics.
Getting started with the system is easy – you just turn it on. The INE is based on a SuSE Linux installation, and when you fire it up it boots and automatically logs you in, presenting you with a clean desktop from which you can fire up the emulator.
There are three Ethernet ports in the unit; two represent the two ends of the link it’s emulating, while the third is used to connect to your LAN so you can remote-control the unit via VNC, download patches and so on.
Incidentally, you can define pseudo network interfaces on top of the physical interfaces, so you can connect devices into the same physical network but with different IP subnet settings, and have the INE controlling how traffic flows between them.
Emulating a connection
Once you’ve set the IP address of the control port, you can set up your emulation parameters. You can either choose a pre-defined parameter set (or one of your own that you set up earlier and saved) or create a new setup.
When you create a new parameter set (the system calls this an emulation) it starts off as a straight-through, unimpeded connection; you then impose constraints on this basic link to fit your requirements. To do so, you configure “virtual interfaces” or “VI”s.
In its most basic form, a VI is rather like a direction of travel, so in a simple link you’d be given a Client-to-Server VI and a Server-to-Client one, which lets you define different parameters for different flow directions.
You can, however, define a more complex network by configuring a number of VIs and daisy-chaining them together. So you might have a WLAN VI with an 11Mbit/s throughput and a bit of packet loss, then a 10Mbit/s Ethernet link with no loss, then a 256kbit/s ADSL uplink with a lousy latency, and so on.
There’s a raft of different characteristics you can apply to a traffic flow. There’s basic stuff like limiting the bits-per-second and defining the latency of a link – the two that are probably used the most.
You can delve down into much more complicated settings though, so you can make it drop or corrupt a given percentage of packets, vary the delay of packet propagation to introduce jitter, or even cause the device to deliver packets out of order so you can test how your endpoints deal with stuff arriving in a different order from that expected.
Added to this, you can define filters in order to apply different characteristics to different types of traffic (e.g. to drop all packets from a given MAC address, or to apply a longer delay to HTTPS packets, or to give priority to SQL Server packets because you know that’s how your load balancer is set up on your live network).
The final aspect of the system is reporting. Of course, the INE provides you with the ability to log to a file what the emulator is doing and/or draw graphical reports of what’s gone on.
This is important because although you’ll be monitoring the performance of the applications and systems you’re testing via some other means, you need to know about what packets the emulator was passing, dropping, corrupting and so on in order to make sense of how the applications behaved.
We only had one problem with our review unit, relating to VNC-based remote control, but Itheon got back to us within an hour to say it was a mismatch between our VNC client and the SuSE VNC server – ticking a box in the VNC Viewer config screen fixed it instantly.
INE 4.0 is a flexible, attractive product, and is nicer (and easier) to use than version 3. (We still have an INE 3 box in our lab which we’ve used for reviewing things like Peribit’s WAN optimisation kit.)
Given the choice, we’d probably buy the portable version because we like to be able to plonk things in random corners in the lab, though the rack-mount version is OK if your cabling infrastructure is sufficiently extensive for you to bolt it in and then patch systems to it as required.