WAN Emulation Toolkit
When I give WAAS demo’s to customers and partners alike, I typically use a standard network topology to keep my demo kit easy to administer but also the demo kit topology mimics most enterprises branch design connectivity options where there is a branch office connected back to the head end/data center. One of the major things that needs’ to be duplicated especially in a WAAS demo is the WAN connectivity. I could have simply connected the branch router and the head end/ data center router back to back via a WIC-1DSU-T1-V2 interface but what would that really have accomplished? Not much so I need a way to emulate a true “full pipe dirty WAN” connection & for this I use a very nice little tool called NIST Net.
NIST Net is a network emulation package that runs on Linux. The NIST Net network emulator is a general-purpose tool for emulating performance dynamics in IP networks. The tool is designed to allow controlled, reproducible experiments with network performance-sensitive/adaptive applications and control protocols in a simple laboratory setting. By operating at the IP level, NIST Net can emulate the critical end-to-end performance characteristics imposed by various wide area network situations (e.g., congestion loss) or by various underlying subnet technologies (e.g., asymmetric bandwidth situations of xDSL and cable modems).
NIST Net by default is used to add latency, bandwidth limitations, packet loss or duplication, and other WAN characteristics on all IP traffic moving between the Ethernet ports of the system, while exclusions to this directive can be added on a per system basis. For more information about NIST Net, visit the NIST Net website at:
http://w3.antd.nist.gov/tools/nistnet/index.html
Let’s look @ how you can get NIST Net up and running in your lab. We will not cover how to download it and install it as those directions are covered in pretty good detail on the NIST Net homepage (http://w3.antd.nist.gov/tools/nistnet/install.html). We will examine how to use it in your network. Once the system has reboot, log on using the root user and configure the system’s hostname, default gateway, and network interface cards. You do this by editing the files using vi, and then restarting the system as described in the following steps: Configure the hostname and default gateway. Enter the command:
vi /etc/sysconfig/network
Set these values:
NETWORKING=yes
HOSTNAME=emulator
GATEWAY=
Save the file and exit by pressing ESC, Shift-;, typing wq at the colon prompt(:), and pressing the Enter key. Next configure the properties of the ETH0 and ETH1 interfaces of the server using the following command: (set your values to reflect your lab setup)
vi /etc/sysconfig/network-scripts/ifcfg-eth0
Set these values:
DEVICE=eth0
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.1.1
NETMASK=255.255.255.0
BROADCAST=192.168.1.255
Save the file and exit by pressing ESC, Shift-;, typing wq at the colon prompt(:), and pressing the Enter key. Next edit the other interface:
vi /etc/sysconfig/network-scripts/ifcfg-eth1
Set these values:
DEVICE=eth1
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.2.1
NETMASK=255.255.255.0
BROADCAST=192.168.2.255
Save the file and exit by pressing ESC, Shift-;, typing wq at the colon prompt(:), and pressing the Enter key. Now restart network services using the following command:
service network restart
After you download, install & configure the basic properties of the software you can launch NIST Net, From the /root directory by entering the following command:
./nistnet
If this is the first time you launch NIST Net, the package will build itself based on the hardware configuration. Once NIST Net has completed starting up, you see a menu from which you can launch the emulation tool with different network settings:
Please select a preset from the following options:
————————————————–
1: 40ms round-trip delay, T1 bandwidth, 0.5% packet loss
2: 60ms round-trip delay, T1 bandwidth, 0.5% packet loss
3: 80ms round-trip delay, T1 bandwidth, 0.5% packet loss
4: 100ms round-trip delay, T1 bandwidth, 0.5% packet loss
5: 120ms round-trip delay, T1 bandwidth, 0.5% packet loss
6: 160ms round-trip delay, T1 bandwidth, 0.5% packet loss
7: Custom Settings
8: Stop WAN Emulation
9: Exit
Using the menu, you can set up the network environment with preconfigured values (1-6) or your own custom settings (7). To stop emulation altogether, use menu option 8. To set the network for 80ms round trip latency, with a T1 (1,544 Kbps) and 1/2%packet loss - select option 3 from the NIST Net menu. If the activation is successful, you see this screen.
3
********************************
* NISTnet Activation Script *
********************************
Clearing WAN table and loading NISTnet…
Configuring NISTnet…
Reading WAN table:
cnistnet -a 0.0.0.0 0.0.0.0 –delay 40.000 –drop 0.5005 –bandwidth 197632 –drd 79 80
Done.
********************************
Activation of the script clears the current WAN table, configures NIST Net to the desired settings, and lastly displays the current WAN table. The current table consists of one entry – any IP to any IP going through NIST Net will be subjected to a 40 ms latency (a total of 80 ms round trip), % packet loss and limited to a T1 bandwidth. In this example, the bandwidth value of 197632 bytes is derived from the following formula: T1 = (1,544 Kbits/sec) * 1024 = (1581056 bits/sec)/8 = 197632 bytes/sec.
If you want setup custom settings, select option 7 on the NIST Net menu. You are prompted to enter your settings, as shown in the example below.
7
Custom WAN Settings:
——————–
Enter bandwidth [bytes]:98816
Enter one-way delay [millisec]:25
Enter packet-loss [percent]:.25
*********************************
NISTnet Activation Script
*********************************
Clearing WAN table and loading NISTnet…
Configuring NISTnet…
Reading WAN table:
cnistnet -a 0.0.0.0 0.0.0.0 –delay 25.000 –drop 0.2502 –bandwidth 98816 –drd 79 80 0
Done.
********************************
You are prompted to specify the bandwidth in bytes, a one-way latency in milliseconds and the percent packet loss. Remember to press the Enter key after entering each value. In this example, NIST Net is set up to provide a 768 Kbps ( T1)line with a total of 50 ms round trip latency and % packet loss. In this example, the bandwidth value of 98816 bytes is derived from the following formula: T1 = (1,544 Kbits/sec) * 1024 = (1581056 bits/sec)/8 = (197632 bytes/sec)/2.


Comment by Matt Lenco
on 31 October 2007:
Joe
I can’t seem to find a best practices implementation guide (or a good diagram for that matter) for wiring up and ASA, used as a VPN, inline with a WAAS enterprise class box. Can you assist?
Thanks in advance,
Matt
Comment by Joe Harris
on 1 November 2007:
Matt,
I did some digging and come up empty myself
… I could create a few for you and post them later this week if I got the time?
-Joe
Comment by Joe Harris
on 5 December 2007:
BTW…if your wanting the NistNET .iso you can download it and other industry tools from CCO (login required) @ the following location:
http://www.cisco.com/cgi-bin/tablebuild.pl/fe_util
Comment by Mike M.
on 17 June 2008:
Joe, one question about http://www.cisco.com/cgi-bin/tablebuild.pl/fe_util
contents:
I see Cisco-NISTnet3-disc1-v4.iso there,
but what for are the other files ???
Comment by Joe Harris
on 17 June 2008:
Hi Mike, they are mainly just other tools which you can use to generate traffic in the NistNET demo like the TCP Replay tool which gives you the ability to use previously captured traffic to test a variety of network devices/services. There’s also a benchmark tool and a new BIOS for the WAE Appliances (don’t need unless you are using the appliance) and lastly there should be a WAN bridge image there for setting you brdging across the WAN.