This is the repository of Network Lab in University of Tehran. The lab based on TCP/IP Essentials book. All chapter updated to use with modern tools on GNS3
simulator.
You can download all needed resource from latest release and install all tools in Installation section.
- Introduction to Network Peripheral
- Linux and TCP-IP networking
- Single Segment Network
- Bridges, LANs and the Cisco IOS
- Static and dynamic routing
- UDP and its applications
- TCP study
- Multicast and realtime service
- The Web, DHCP, NTP and NAT
- Network management and security
- IPv6
- VLan
- AS Routing (BGP, EBGP, ...)
- Security
- Firewall
- SDN and Routing Rules
- Network Performance
- Load balancing
- MPLS
- Segment Routing
- SDN
- VPN
- SRV6
To setup environment, you need to install linux os like Ubuntu, Debian or other platform that support GNS3
+ Docker
. To install GNS3
you can follow this link.
You can use native installed ubuntu (or other linux), Virtual Machine platform or use new Microsoft WSL2 to install linux toolbox.
- Linux
- GNS3
- Docker
- Cisco router image
- Mininet
You can install all needed tools with bellow commands on Ubuntu x64 based linux:
# sudo add-apt-repository ppa:gns3/ppa
echo "deb http://ppa.launchpad.net/gns3/ppa/ubuntu $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/gns3-ubuntu.list
sudo apt update
sudo apt install gns3-gui gns3-server wireshark
DockerType="Free"
if [ $DockerType == "Free" ]; then
sudo apt install docker.io
else
sudo apt remove docker docker-engine docker.io
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt update
sudo apt install docker-ce
fi
sudo usermod -aG ubridge $USER
sudo usermod -aG libvirt $USER
sudo usermod -aG kvm $USER
sudo usermod -aG wireshark $USER
sudo usermod -aG docker $USER
# loading new user group config
sudo su $USER
After install docker, you need to get utnetlab images and add into GNS3
.
docker pull utnetlab/term
docker pull utnetlab/gui
Also you can download and load docker images from archive file as below:
# archive in (.tar, .tar.gz, .tgz, .bzip, .tar.xz, or .txz) format
docker load -i utnetlab_term.tar.xz
docker load -i utnetlab_gui.tar.xz
To load template Figures
you need to add Cisco 3725 firmware and utnetlab docker images into GNS3
.
To add Docker images, you need to open Preferences
menu (under Edit
in Linux/Windows and GNS3
in Mac OS). Under Docker > Docker containers
you can add new images to GNS3
. In the New
dialog, you can select existing image (load local images) or new image (use docker pull) with image name. Set configuration as below for two docker.
GUI:
{
image: "utnetlab/gui",
name: "ut-netlab-gui",
adaptor: 1,
startCommand: null, // or empty
ConsoleType: "https",
env: null // or empty
}
Terminal:
{
image: "utnetlab/term",
name: "ut-netlab-term",
adaptor: 1, // number of eth adaptor
startCommand: null, // or empty
ConsoleType: "telnet",
env: null // or empty
}
Edit the ut-netlab-gui
item and set HTTP port in the container from 80 into 443.
To load Cisco images into GNS3
, you need got into Preferences > Dynamips > IOS routers
and add new images. Select file in Browse dialog and click on next. Set c3725 for new router. Under Memory section, set Default RAM to 160 MB at minimum. Skip slots step until get Idle-PC step. Click on Idle-PC finder to find local idle-PC number and then press Finish.
To use available Figures, you need use customized Docker images.
sudo apt install build-essential automake autoconf autoreconf auto-tools bin-utils
cd ./docker-tools
make
cd ..
For Cisco based lab, you need download c3725-adventerprisek9-mz.124-25d.image
firmware and add to GNS3
.
You can build LaTeX
files with below command or download all as Documents.zip
from release page.
latexmk -pdf -interaction=nonstopmode -cd **/*.tex
You can build Figures
files with below command or download all as Figures.zip
from release page.
cd Figures
./build-gns3p.sh
Open GPLv3 LICENSE file.
- add farsi Chapter
- add figure and template for
Cisco IOS HTTP REST API
section - add quiz sample
- add network equipment and device overview
- add api to transfer file to host
- Can use
docker cp
- Can use
- update network tools
- upgrade base docker image
- base linux
-
socket
withnetcat
- linux routing service
- router discovery
- ...
- build custom figure with enabled multicast ping reply
- add route table for right subnet in exercise
8 Multicast Message
ifconfig
vsip
screen
Quick Reference- How To Use Linux
screen
- Quagga => frrouting
- NIST Net: is no longer actively maintained. Much of its functionality has been incorporated into NetEm and the
iproute2
toolkit. These are almost certainly already included in your Linux distribution - DBS: is no longer available. (v1.1.5, v1.2.0beta1, and manual)
ipbench
iputils
- new lab from intronetworks