User documentation

About NEAT

09/13/2017 07:32 PM

The NEAT (Network Engineering Apprenticeship Training) program is designed to introduce the fundamentals of network engineering, routing and switching, virtualization and storage to high school and college students. Students will gain considerable exposure to the Linux operating system, KVM hypervisor, essentials of IPv4 networking and basic Cisco routing and switching.

Teacher Lab Process to connect the server to the internet run OS and NEAT updates

12/19/2017 04:32 PM

This process is used to connect a neat rack server to the internet to download updates, or download a new VM guest image. You can also download a VM image to a laptop or thumb drive and copy an image down that way. But to update the host software you will need to connect it to the internet.

Student Lab Setup

09/13/2017 07:34 PM

The goal of this exercise is to set up the server for usage in the following semester and labs. The documentation found below will also serve as a tutorial for a user at the base level and requires no prior experience or knowledge. Links may be provided to learn required skills for this lab. The direct follow-up to this setup is the Cisco lab which will make use of the configuration done here.

Intro to Linux

09/13/2017 07:35 PM

The Linux Terminal

The Linux terminal (bash by default) is a command line-based tool used to control a Linux system. This is the most basic way of interacting with a Linux system. The terminal is command-based. Different commands perform different functions in the terminal. For instance, ls lists all the items in a directory, while cd changes the current working directory.

IP Addressing

09/13/2017 07:36 PM

IP Addresses

An IP Address is similar to what it sounds like: an address. It gives a location for your computer to be accessed at and is what other computers use to locate where your system is. You use your address whenever you request data from somewhere as a place to send that data. You also get that data from a server that has an ip address. Everything that has internet access has an ip address, making them crucial to the Internet's success.


09/13/2017 07:39 PM

Note: for this lab you will need the guest.img and guest.xml files. Make sure to install these files using the methods described on the wiki if they are not already located on the server:

Background Info:

Cisco Lab

07/10/2018 10:49 AM

Cisco Lab

By now the user should have completed the "Student Lab Setup" guide found here:

In this lab, you will learn the basics of Cisco routing and switching. The techniques you learn in this lab will show how a single inbound connection can be spread all across a myriad of machines efficiently. The command line interface for Cisco products can be intimidating to beginners, and as such the reader can expect this document to serve as instruction as well as a guide to basic commands.

Intro to Routing

09/13/2017 07:43 PM

Basic Concepts

At an abstract level, routing is building maps and giving directions to incoming packets. We do this by directing different packets to different locations based on 2 criteria: destination and netmask. These packets are then forwarded on to a "next hop" location. This is called classic or destination based forwarding and is supported by all routers and most hosts.

Static Routing Lab

07/03/2018 02:51 PM

Note: for this lab you will need the spoke1.img and spoke1.xml files. Make sure to install these files using the methods described on the wiki if they are not already located on the server:

Static Routing Lab

Intro to Firewalling

09/13/2017 07:52 PM

As you may have noticed in the static routing lab, a true router will accept any and all packets and forward them wherever it sees fit. This creates security problems because it allows an intruder to point a static route to your hub and access your entire network. We use firewalls to fix this problem.

Firewall Lab

09/13/2017 07:53 PM

Note: for this lab you will need the pfsense_guest.img, fios.img, fios.xml, google.img, and google.xml files. Make sure to install these files using the methods described on the wiki if they are not already located on the server:

Intro to VOIP

09/13/2017 07:54 PM


What is VoIP

Voice Over IP- VoIP for short- is a system of using phones to talk or communicate over the internet through ip addresses. VoIP is used by most businesses and call centers to have a myriad of phones easily managed by one system. You can also connect them all to one external number using extensions.


12/18/2017 02:41 PM

To learn about VoIP, we are going to create a real VoIP system using 3CX, an enterprise-grade PBX software. One new part of this lab is that you will be connecting your setup to the internet for the initial setup of 3CX.

IMPORTANT: Before connecting to the internet, ask a teacher/network administrator to get approval.

Using Minicom

07/10/2018 11:18 AM

The most common way to access a switch is through a serial port. This port, usually similar looking to a ethernet or phone port, is (normally) located on the rear of the switch. It should be labeled "Console" as well. Plug in a serial to USB adapter and connect that adapter to a machine. If the user is working on student lab set up or Cisco lab, the USB will need to be plugged into the server.

Backing Up Labs

09/13/2017 08:01 PM

Before and after each lab, you will have to back up the configuration of your VMs as well as your switch and router. Make sure to do this or else the next group might overwrite your changes!

Backing up and resetting switch and router

To backup the configuration, log into the switch or router and do a "show run" to see the current configuration. Press the spacebar to go through the whole thing. Copy down the entire configuration and paste it into a text file on your computer. Save that someplace you won't lose it.

Getting virtual machine images for each lab

11/30/2017 05:08 PM

Getting the proper virtual machine images for each lab

For each lab, you will need a set of images and files:
KVM Intro: guest.xml, guest.img
Static Routing: spoke1.img, spoke1.xml
Firewall: pfsense_guest.img, fios.img, fios.xml, google.img, google.xml

Proper Way to Shutdown a neat rack server

12/05/2017 04:01 PM

This cmd will shutdown a neat rack server safely:

/sbin/halt -p

You also may want to use virsh to shutdown each of your VMs first. The host system shutdown process should halt each guest first but sometimes its faster to shutdown each guest.

Using ethtool to troubleshoot your physical NIC/network connectivity issues

12/05/2017 05:03 PM

Use the ethtool command to check your physical connections. You may have plugged a cable into eth1 when intended to be in eth0 and vice versa.

ethtool eth0
ethtool eth1

If you are connected to a gigabit network you will see these relevant settings:

Using the SVN command to update the NEAT Repositories

12/05/2017 05:16 PM

Subversion (svn) is used to keep all of the extra programs supplied with NEAT updated.

In order to update your host server, you need to connect to a working internet connection and run these commands:

cd /opt/shared; svn update; svn status

Using puTTY

12/18/2017 11:25 AM

Using puTTY

What is puTTY

puTTY is a tool used in Windows that gives users the ability to easily connect to other devices. While these connections can be done in the command line of Windows, puTTY gives a single location with a basic UI for users to follow. In our labs, you will use puTTY for SSH and Console connections. However, puTTY has abilities beyond this, including (but not limited to) telnet connections.

KVM Commands Reference

12/20/2017 09:32 AM

Creating VMs

To define VM from xml configuration:

root@labsrv1 16:20:46 
 > ~ # virsh define <path_to_xml_file>

To edit a VM configuration:

root@labsrv1 16:20:46 
 > ~ # virsh edit <name of VM>

To clone a virtual machine (provided that the virtual machine is shutdown):

About Your NEAT Rack

08/17/2018 02:58 PM

Your NEAT Rack comes with three main components: the servers, the switches, and the routers.

Our Server Configuration

The Servers

Your NEAT Rack comes with two servers. These servers will likely be SuperMicro custom servers, Dell 1950s, Dell 2950s, or IBM x3550s.

Our Server Configuration

01/01/2018 11:06 PM

The NEAT servers run on Debian Linux, but you may have noticed that they are slightly different from a basic Debian installation. This article will go over how our servers are different from a basic Debian installation.

Our Bash Settings

The first thing you'll notice is that our Bash prompt is different from a standard Debian prompt. Our prompt is structured in this form:

Help Understanding how to edit/create VM network interfaces

04/23/2018 02:40 PM

You can copy the xml template of one of the other vms.

If you look in the lab text it gives you an example:

<interface type='bridge'>
      <source bridge='vmbr80'/>
      <model type='virtio'/>

But this example is incomplete as its expected that you will look at a working example and infer what other options need to be added.

Dynamic Routing Using OSPF Lab

07/13/2018 10:39 AM


At the end of the previous lab we discussed how static routing works adequately in smaller networks, but it is limited when expanding to larger networks. As you saw in the Static Routing Lab when we added spoke3, larger networks would place quite a burden on the admins, requiring multiple devices to be configured to support the new network. Additionally, static routing just won't do the job for multi-path networks. In this lab, we are going to replace the static routing we did in the previous lab with dynamic routing to establish an identical network.

Raspberry Pi WAP Configuration

07/18/2018 01:27 PM

Raspberry Pi WAP Configuration

Boot up a Raspberry Pi and go into the terminal. This setup works best in Raspbian Lite with no desktop environment installed. You can use nano as your editor. First, install a few programs:

root@lab-wap 15:51:59 

Copying Virtual Machines

07/19/2018 10:34 AM

Intro: Understanding Virtual Machines

Virtual machines are essentially machines simulated on a physical device. It's standard for a virtual machine to consist of two pieces, an image (.img) file and a configuration (.xml) file. The .img file is its storage - the VM sees it as a hard drive. The .xml file associated with the virtual machine is its configuration file, which defines aspects of the machine such as its storage capacity, allocated CPU cores and RAM, interfaces, and so on. Different programs handle the files differently but this base concept will hold true across many OSes and applications.

OSPF & BGP Bonus Lab

07/25/2018 10:01 AM

For this lab you will need your spoke2 image with OSPF configured from the Dynamic Routing lab.


In the Dynamic Routing Lab we configured OSPF on both Cisco and Linux devices. In this lab, we're going to eliminate the Cisco devices and create a more complex network using OSPF and Linux KVMs - all within the host machine. In the static and dynamic routing lab, our spokes had just one external interface and one internal. For this lab, each router on the network will have two external interfaces along with one LAN, as shown below.

Creating an Image from an ISO File

07/27/2018 09:46 AM

Note: This guide should only be followed by very advanced users. Most people should follow the "Getting Lab Images" guide in the wiki.

Preparing the images

First, grab the iso you want to use as the install medium:

root@richweb-host Fri Jul 27 09:28:01 EDT 2018

Mounting a USB Drive in Debian

07/30/2018 01:40 PM

Mounting a USB Drive in Debian

When you plug in a USB drive into your computer, most of the time behind the scene, the computer automatically "mounts" the drive to a folder on your computer. This allows you to go to that folder and access the data on the drive as an additional part of the file system. Linux, however, typically doesn't automatically mount a USB drive when it is plugged in. To use a USB drive, you need to manually mount the device to a folder on the computer.

NEATRack Setup

08/10/2018 10:48 AM

This document will explain the basic setup of the NEATRack and the equipment on it.

Each NEATRack comes with two Linux servers, one Cisco switch, one Cisco router, and one PoE (Power over Ethernet) switch. The PoE switch will likely not be used until near the end of the NEAT proram if at all. The Linux servers are running Debian Stretch 9....