Thực hành buổi 1
📝 ĐỀ BÀI
I.Chuẩn bị
Cài đặt Máy Ảo Ubuntu
💡 Tài nguyên
Bộ cài Ubuntu

Cứ chọn bản LTS
Phần mềm cài máy ảo VirtualBox

Tải bản đúng với hệ điều hành bạn đang xài
Tham khảo video sau :
💡 MẸO
Sau khi cài Ubuntu thành công bạn mở app Terminal và gõ lệnh sau :
sudo apt-get update
sudo apt-get upgrade
⇨ Giúp bạn cập nhật các package mới nhất.
Cài đặt Docker
Cài theo guide dưới đây của trang chủ Docker
Bước 1: Gỡ cài đặt bản cũ (Cài lần đầu thì không cần)
sudo apt-get remove docker docker-engine docker.io containerd runcBước 2: Cập nhật kho
aptvà cho phép sử dụng thông quaHTTPSsudo apt-get update sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-releaseBước 3: Thêm
GPGkey củaDocker:curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpgBước 4: Thiết lập kho
Dockervào máy:echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/nullBước 5: Cài đặt
Docker Enginesudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.ioBước 6: Kiểm tra
Dockerđã cài đặt chưadocker --versionNếu hiện thế này thì thành công (có hiện là được, đừng quan tâm
versionmấy)
Cài đặt Kathara
Cài đặt theo guide của Kathara
Xác định Ubuntu thuộc nhánh Debian-based nên ta chỉ đọc phần đó :
Bước 1: Thêm public key của
Katharasudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 21805A48E6CBBA6B991ABE76646193862B759810
Bước 2: Thêm
ppacủaKatharavào Ubuntusudo add-apt-repository ppa:katharaframework/katharaTiếp tục nhấn
ENTERkhi tới đây:
🚨 CHÚ Ý
Phát hiện ra
ppacủaKatharakhông bắt được, hiện lỗiError 404
Tức là phiên bản
Ubuntucủa bạn không đượcKatharahỗ trợ🤔 GIẢI QUYẾT
Cài lại
UbuntubảnLTSđểKatharahỗ trợ, hoặc bạn có thể đợi đến khiKatharara bản hỗ trợ phiên bảnHiện tại 2021:
Katharachỉ hỗ trợ Ubuntu 20.04 trở xuốngBước 3: Cài đặt
Katharasudo apt install katharaKiểm tra bằng lệnh
kathara --version
Sử dụng Kathara cơ bản
Trước hết bạn phải đảm bảm mình đã cài python, docker, xterm, gcc
💡 MẸO
Sử dụng lệnh <package> --version hoặc <package> -v để kiểm tra, nếu không tìm thấy hãy gõ :
sudo apt-get install <package>

Sau đó, bạn hãy thực hiện các bước sau :
Bước 1: Cài đặc image của
KatharatrênDocker# tìm kiếm image kathara trên docker $ sudo docker search kathara
# pull image kathara về docker $ sudo docker pull kathara/baseBước 2: Kiểm tra môi trường hệ thống
Kathara
Bước 3: Tạo thiết bị Kathara đầu tiên
kathara vstart -n <name>
Guide Kathara
Được lấy từ nguồn chính thức của Guide Kathara
Kathara là công cụ mô phỏng mạng
Nó triển khai từ dự án Netkit sử dụng Python nhưng nhanh hơn gấp 10 lần và nhẹ hơn 100 lần
Trong môi trường Kathara, mỗi thiết bị mạng được thực hiện bởi một container và mỗi liên kết được mô phỏng bằng cách sử dụng mạng ảo
Mỗi thiết bị đều có thể cấu hình tuỳ ý
💡 FACT
Kathara cung cấp 2 giao diện để khởi chạy và cấu hình thiết bị.
Tập lệnh có tiền tố
v(vstart,vclean,vconfig) : cho phép khởi động và quản lí các thiết bị đơn lẻ và kiểm soát chúngTập lệnh có tiền tố
l(lstart,lclean,linfo,lrestart,ltest) : thiết lập một phòng lab được cấu hình một số thiết bị
| vstart | Tạo một thiết bị Kathara mới |
| vclean | Dừng thiết bị đơn Kathara |
| vconfig | Gắn giao diện mạng vào thiết bị Kathara đang chạy |
| lstart | Khởi động Kathara Lab |
| lclean | Dừng Kathara Lab |
| lrestart | Khởi động lại Kathara Lab |
| ltest | Kiểm thử Kathara Lab |
| lconfig | Gắn giao diện mạng vào thiết bị Kathara đang chạy trong Kathara Lab |
| connect | Kết nối thiết bị Kathara |
| exec | Thực thi lệnh trên thiết bị Kathara |
| wipe | Xoá tất cả thiết bị Kathara và tên miền xung đột, xoá luôn thiết lập |
| list | Hiển thị tất cả thiết bị Kathara đang chạy |
| setting | Hiển thị và chỉnh sửa thiết lập |
| check | Kiểm tra môi trường hệ thống |
💡 MẸO
Khi thực hiện lệnh gì gõ thêm hậu tố --help hoặc -h để đọc cách dùng của nó

II. Bài tập 1
MÔ HÌNH
Cho mô hình như sau :

Mô hình mạng cần xây và nhận diện casc1 thiết bị, giao diện với các địa chỉ
IPđược gán, được thực hiện bởi công cụ Netkit Lab Gen
Xây dựng một mạng LAN đơn giản theo các bài tập dưới đây:
1. Tạo thư mục và thao tác BaiTap1
Sử dụng lần lượt các lệnh sau để tạo thư mục cho bài tập
$ mkdir ~/Desktop/BaiTap1
$ cd ~/Desktop/BaiTap1
2. Tạo thiết bị mạng ảo pc1 và pc2
Sử dụng lệnh sau đây để tạo thiết bị mạng ảo bằng Kathara :
$ kathara vstart -n <name> --eth <N:CD>
💡 TRONG ĐÓ
Trong đó thì :
vstartđể tạo thiết mạngkatharamới-n(name) là tên của thiết bị--eth <N:CD>xác định giao diện mạng,Nlà một số nguyên bắt đầu từ0, giao diện mạng sẽ được gắn với tên miền xung đột ảo làCD
⚠️ LƯU Ý
Hãy đảm bảo bạn đã cài Xterm để có thể thực hiện tạo thiết bị ảo Kathara
3. Kiểm tra cấu hình mạng
Sử dụng lệnh ifconfig để kiểm tra lần lượt cấu hình mạng của máy ảo, pc1, pc2
⚠️ LƯU Ý
Nếu không sử dụng được lệnh ifconfig hãy cài gói công cụ mạng như sau :
$ sudo apt-get install net-tools


THÔNG TIN
Hiện tại máy ảo đang xài network
enp0s3với địa chỉ :10.0.2.15Máy ảo
pc1vàpc2tạo ra 2 giao diệneth0vàloHiện chưa có địa chỉ
IPtrong giao diện mạngeth0củapc1vàpc2
4. Đặt đỉa chỉ IP cho eth0 của thiết bị ảo
Sử dụng lệnh sau :
# Sử dụng trên máy pc1
$ ifconfig eth0 10.0.0.1/24 up
# Sử dụng trên máy pc2
$ ifconfig eth0 10.0.0.2/24 up
Sau đó sử dụng lệnh ifconfig để kiểm tra mạng lại lần nữa :
==> Thông tin mạng của
pc1vàpc2đã thay đổi
5. Gửi gói tin từ pc1 sang pc2
Như ta đã biết pc2 đang sử dụng địa chỉ mạng là 10.0.0.2, từ pc1 ta gõ lệnh sau đây:
$ ping 10.0.0.2 -c 5
💡 MẸO
Sử dụng thêm tuỳ chọn -c 5 để ta ping tối đa 5 lần thay vì vô hạn lần
6. Kiểm tra đường đi từ pc1 sang pc2
Sử dụng lệnh traceroute để kiểm tra thông tin đường đi từ pc1 sang pc2
💡 GIẢI THÍCH
64 hops maxlà số bước nhảy tối đa1có nghĩa là để đi tới10.0.0.2chỉ cần 1 quá trình0.003ms 0.001ms 0.001mslà thời gian khứ hồi từpc1tớipc2
7. Kiểm tra bảng vạch đường của pc1 hoặc pc2
💡 GIẢI THÍCH
Destination -
10.0.0.0: là địa chỉ đích mà các packets gửi đếnGateway -
0.0.0.0: là thành phần kết nối 2 mạng lại với nhau, thông thường nó làrouterGenmask -
255.255.255.0: hay còn gọi làSubnet Maskgiúp chia vùng không gianIPFlags -
U: Có nghĩa là route đang upMetric -
0: Khoảng cách đếnrouteRef -
0: số mạng tham chiếu tớiroutenàyUse -
0: số lookup choroutenàyIface -
eth0: là giao diện mạng mà các packets gửi đến
8. Huỷ 2 máy ảo pc1 và pc2
Sử dụng lệnh như sau :
$ kathara vclean -n <name>
III.Bài tập 2
Sử dụng lại mô hình cuả Bài tập 1
1.Tạo thư mục và thao tác BaiTap2
Sử dụng lệnh mkdir để tạo thư mục và cd để di chuyển vào thư mục đó.
2.Tạo file cấu hình cho Kathara
Tiến hành tạo các file như sau:
💡 GIẢI THÍCH
File
lab.confchứa miêu tả về hình thái của mạng ảoThư mục
pc1vàpc2đại diện cho 2 máy ảo của mạng muốn đưa và hoạt động (tên thư mục sẽ đại diện cho tên máy ảo)File
pc1.startupvàpc2.startuplà nơi chứa cấu hình muốn áp dụng khi vừa khởi tạo máy ảo
🤔 LƯU Ý
Sử dụng lệnh mkdir để tạo thư mục và touch để tạo file như sau:

3.Thiết lập file cấu hình
Sử dụng gedit, nano hoặc vim để gõ file :
Trên file
lab.confhãy soạn thảo nội dung như sau:pc1[0]=A pc2[0]=A
Trên file
pc1.startupvàpc2.startupnội dung như sau:
ifconfig eth0 10.0.0.1/24 up
ifconfig eth0 10.0.0.2/24 up
⚠️ LƯU Ý
Startup Command Log là những dòng lệnh bạn chạy khi vừa khởi tạo máy ảo
4. Khởi tạo mô hình máy ảo
Sử dụn lệnh sau để khởi tạo máy ảo đã cấu hình :
$ kathara lstart <name>
5. Lệnh ping, traceroute, route
Sử dụng như trên bài tập trên để kiểm tra tính liên thông giờ pc1 tới pc2
6. Huỷ 2 máy ảo
Sử dụng lệnh sau để huỷ máy ảo :
$ kathara wipe
IV.Bài tập 3
⊧ MÔ HÌNH
Cho mô hình như sau :

Xây dựng 2 nhánh mạng thuộc cùng một mạng LAN được kết nối bởi 1 router. Các bước thực hiện như sau :
1.Tạo thư mục và thao tác BaiTap3
Tiến hành tạo các thư mục và file như sau:
Dựa trên hướng dẫn Bài tập 2
2. Thiết lập cấu hình các file
Trên file
lab.confcấu hình như sau :pc1[0]=A pc2[0]=B router[0]=A router[1]=BTrên file
pc1.startupvàpc2.startupcấu hình như sau:ifconfig eth0 10.0.0.101/24 up route add default gw 10.0.0.1ifconfig eth0 10.0.1.101/24 up route add default gw 10.0.1.1💡 GIẢI THÍCH
Tham số
gwlàGatewayhướng mà thiết bị sẽ gửi gói tin đến để các gói tin có thể đi ra bên ngoài mạngThông tin vạch đường mặc định sẽ được sử dụng khi thiết bị không tìm thấy bất kỳ thông tin vạch đường cụ thể nào đến đích trong bảng vạch đường

3. Khởi tạo mô hình máy ảo
Sử dụng lệnh sau để khởi pc1, pc2, router
$ kathara lstart pc1 pc2 router
4.Lệnh ping, traceroute, route
Trên pc1 sử dụng lần lượt các lệnh ping, traceroute và routeđể kiểm tra tính liên thông tới pc2 và router
Dùng lệnh
pingđể kiểm đường đi:
Dùng lệnh
tracerouteđể kiểm tra vạch đường đi
Dùng
routeđể kiểm tra bảng định tuyếnIP


5.Huỷ 3 mảng ảo
Sử dụng lệnh sau để huỷ máy ảo :
$ kathara wipe
V. Bài tập 4
MÔ HÌNH
Cho mô hình như sau :

1. Tạo thư mục và thao tác BaiTap4
Tạo các thư mục và file như sau :


2. Cấu hình file mạng máy ảo
Trên file
lab.confcấu hình như sau :pc1[0]=A pc2[0]=B pc3[0]=A pc4[0]=B router[0]=A router[1]=BTrên file
pc1.startup,pc2.startup,pc3.startupvàpc4.startupcấu hình lần lượt như sau:ifconfig eth0 10.0.0.101/24 up route add default gw 10.0.0.1ifconfig eth0 10.0.1.101/24 up route add default gw 10.0.1.1ifconfig eth0 10.0.0.102/24 up route add default gw 10.0.0.1ifconfig eth0 10.0.1.102/24 up route add default gw 10.0.1.1Trên file
router.startupcấu hình như sau:ifconfig eth0 10.0.0.1/24 up ifconfig eth1 10.0.1.1/24 up
3. Chạy các thiết bị máy ảo
Sử dụng lệnh kathara sau đây để khởi tạo mô hình trên:
$ kathara lvstart pc1 pc2 pc3 pc4 router
4. Lệnh ping, traceroute, route
Từ pc1 sử dụng các lệnh ping và traceroute để kiểm tra đường truyền tới pc2, pc3, pc4, router
Lệnh
ping:
Lệnh
traceroute:
Lệnh
route:
5. Huỷ hệ thống máy ảo
Sử dụng lệnh sau để huỷ máy ảo :
$ kathara wipe



















