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

Cisco Switch Configuration:

The goal of this exercise is to set up the kvm servers for usage in the following semester and labs so that they can talk to each other. In order to do that we need to connect the servers to an ethernet switch. In this lab we will use the Cisco switch to create some virtual lans that will carry the traffic between the servers on isolated, segmented VLANs. You should review VLAN basics before continuing if you are not sure what a VLAN is.

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

08/26/2021 09:32 AM

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

Background Info:

Key Benefits of virtualization:

Virtualization is used for a variety of reasons.

1. Most physical servers are underutilized; virtualization allows physical servers to be stacked full of applications to make better use of available RAM and CPU. A single 24 core server can run 30 or more vms (virtual machines) for example.

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

Updated Instructions - thanks to Gary Boyce at Telpage for this recipe:

The Raspberry Pi OS (Debian Buster) now uses dhcpcd for controlling the network now instead of the interfaces file. These are current functional instructions:

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....

DHCP Bonus Real-World Scenario: Dueling DHCP servers

07/15/2019 10:13 AM

For this lab, you should have the DHCP server VM created in the KVM lab and a Cisco router on the same network, as well as a way of testing DHCP (i.e. a VM on the same vlan or a laptop plugged into a switchport with access to the same vlan.

This lab is still being developed and tested. Expect changes and additions, including pictures, in the near future

Introduction to IPv6

08/08/2019 11:57 AM

IPv6 Background

For the entirety of this course so far, you have been using IPv4. As you learned in the introduction to IPs, an IP is a 32-bit number represented as X.X.X.X. Since the adoption of IPv4, it has become apparent that the over 4 billion IPv4 addresses simply isn't enough for a widespread digital world. The primary goal of IPv6 is to increase the size of a single address from 32 bits all the way up to 128 bits long. This means that IPv6 has more than 3 x 10 ^ 38 addresses, effectively removing any concept of scarcity in IP addresses.

Dual-Stack BGP Lab

08/14/2019 11:39 AM

Before you begin this lab, make sure you have read the Introduction to IPv6 document for background on basic changes from IPv4 to IPv6
This lab is also considered to be more advanced because of the scale and range of topics covered. Due to this, previously covered information, such as specific commands and configuration files, are not all going to be explicitly spelled out. Feel free to reference previous labs and documents if you need a reminder about how to configure something we previously introduced.


Firewall Lab with OpenBSD

08/09/2021 03:31 PM


In this lab, you will be working with OpenBSD. OpenBSD is a Unix based operating system. This means that it has many similarities and differences to other Unix based systems like Debian. Most base commands in OpenBSD are the same in Debian, and the file systems and other features related to IPs and routing are somewhat different. Additionally, OpenBSD has its own way of routing protocols, and packages and ports are sent to /usr/local. Although OpenBSD doesn't use the same exact services that Linux services use, it has the same functionality. OpenBSD is also security-oriented; so, it can be used for implementing firewalls, securing network packets, etc. On OpenBSD, you will not be creating bird or ISC-DHCP servers.

VOIP Lab Updated

07/23/2020 09:45 AM

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.

Mount NFS Server

08/12/2020 11:26 AM

NFS (Network File System) is a protocol that allows users to access different files and directories in a network. Typically, the directory shared with the users is created on the NFS server itself, and files can later be added to that directory. In order for users to have access to the files in the directory on the NFS server, the users need to mount the directory on their system.

Firewall Lab with Tunneling

06/08/2021 03:26 PM


In the previous Firewall Lab, you set up a firewall that separated the Internet from the network you created. Besides firewalling, the OpenBSD virtual machine you created also used OSPF and translated the network addresses (using NAT) so that the packets could actually route out to the Internet.

Virtual Hard Disk Expansion

07/16/2021 01:45 PM

Introduction to RAID

RAID (Redundant Array of Independent Disks) is a data storage virtualization technology where multiple disks are logically put together and function as a single array. Some reasons why RAID arrays are used are to prevent data loss if a disk fails (redundancy), quicken data transfers, and increase storage space.

Setting up Vlan in Juniper Switch (JunOS)

08/06/2021 11:52 AM

Another popular brand of switches is Juniper. These switches offer the same functionality of Cisco ones just with different syntax.

Commands to create Vlan:

Edit vlan
Edit <vlan name>
Set vlan-id <#>

Commands to allow the vlan on a port:

Useful Commands & Info

08/11/2021 02:20 PM

By convention for this document, text in <angle brackets> should be replaced and text in (parenthesis) is optional.

ping (-I <source IP>) <destination IP>

You might use to write:
ping -I


Setting Up NeatRack Server

01/03/2022 03:23 PM

Setting Up

Before we get started on setting up our server, we need to get some equipment together. You'll need to get the following items and connect them to the server:

-A monitor

-A keyboard

-A power cable

-A network cable

Extending Disk Space

01/06/2022 03:36 PM

NOTE - this example extends a disk that has a single partition. When extending a disk you ONLY create space at the end of a partition table. If you have a virtual disk carved up into multiple partitions you can only extend the last one.

DO NOT Use this RPS for lvm backed (device or volume based) storage). This is for kvm disk (file-backed storage).