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 runc
Bước 2: Cập nhật kho
apt
và cho phép sử dụng thông quaHTTPS
sudo apt-get update sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release
Bước 3: Thêm
GPG
key củaDocker
:curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
Bước 4: Thiết lập kho
Docker
và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/null
Bước 5: Cài đặt
Docker Engine
sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io
Bước 6: Kiểm tra
Docker
đã cài đặt chưadocker --version
Nếu hiện thế này thì thành công (có hiện là được, đừng quan tâm
version
mấ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
Kathara
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 21805A48E6CBBA6B991ABE76646193862B759810
Bước 2: Thêm
ppa
củaKathara
vào Ubuntusudo add-apt-repository ppa:katharaframework/kathara
Tiếp tục nhấn
ENTER
khi tới đây:🚨 CHÚ Ý
Phát hiện ra
ppa
củaKathara
không bắt được, hiện lỗiError 404
Tức là phiên bản
Ubuntu
của bạn không đượcKathara
hỗ trợ🤔 GIẢI QUYẾT
Cài lại
Ubuntu
bảnLTS
đểKathara
hỗ trợ, hoặc bạn có thể đợi đến khiKathara
ra bản hỗ trợ phiên bảnHiện tại 2021:
Kathara
chỉ hỗ trợ Ubuntu 20.04 trở xuốngBước 3: Cài đặt
Kathara
sudo apt install kathara
Kiể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
Kathara
trênDocker
# tìm kiếm image kathara trên docker $ sudo docker search kathara
# pull image kathara về docker $ sudo docker pull kathara/base
Bướ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ị
Lệnh : kathara.. | Mô tả |
---|---|
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:
BaiTap1
1. Tạo thư mục và thao tác 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
pc1
và pc2
2. Tạo thiết bị mạng ảo 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ạngkathara
mới-n
(name) là tên của thiết bị--eth <N:CD>
xác định giao diện mạng,N
là 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
enp0s3
với địa chỉ :10.0.2.15
Máy ảo
pc1
vàpc2
tạo ra 2 giao diệneth0
vàlo
Hiện chưa có địa chỉ
IP
trong giao diện mạngeth0
củapc1
vàpc2
IP
cho eth0
của thiết bị ảo
4. Đặt đỉa chỉ 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
pc1
vàpc2
đã thay đổi
pc1
sang pc2
5. Gửi gói tin từ 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
pc1
sang pc2
6. Kiểm tra đường đi từ Sử dụng lệnh traceroute
để kiểm tra thông tin đường đi từ pc1
sang pc2
💡 GIẢI THÍCH
64 hops max
là số bước nhảy tối đa1
có nghĩa là để đi tới10.0.0.2
chỉ cần 1 quá trình0.003ms 0.001ms 0.001ms
là thời gian khứ hồi từpc1
tớipc2
pc1
hoặc pc2
7. Kiểm tra bảng vạch đường của 💡 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àrouter
Genmask -
255.255.255.0
: hay còn gọi làSubnet Mask
giúp chia vùng không gianIP
Flags -
U
: Có nghĩa là route đang upMetric -
0
: Khoảng cách đếnroute
Ref -
0
: số mạng tham chiếu tớiroute
nàyUse -
0
: số lookup choroute
nàyIface -
eth0
: là giao diện mạng mà các packets gửi đến
pc1
và pc2
8. Huỷ 2 máy ảo 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
BaiTap2
1.Tạo thư mục và thao tác Sử dụng lệnh mkdir
để tạo thư mục và cd
để di chuyển vào thư mục đó.
Kathara
2.Tạo file cấu hình cho Tiến hành tạo các file như sau:
💡 GIẢI THÍCH
File
lab.conf
chứa miêu tả về hình thái của mạng ảoThư mục
pc1
và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.startup
vàpc2.startup
là 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.conf
hãy soạn thảo nội dung như sau:pc1[0]=A pc2[0]=A
Trên file
pc1.startup
vàpc2.startup
nộ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>
ping
, traceroute
, route
5. Lệnh 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 :
BaiTap3
1.Tạo thư mục và thao tác 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.conf
cấu hình như sau :pc1[0]=A pc2[0]=B router[0]=A router[1]=B
Trên file
pc1.startup
vàpc2.startup
cấu hình như sau:ifconfig eth0 10.0.0.101/24 up route add default gw 10.0.0.1
ifconfig eth0 10.0.1.101/24 up route add default gw 10.0.1.1
💡 GIẢI THÍCH
Tham số
gw
làGateway
hướ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
ping
, traceroute
, route
4.Lệnh 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 điDù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 :
BaiTap4
1. Tạo thư mục và thao tác 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.conf
cấu hình như sau :pc1[0]=A pc2[0]=B pc3[0]=A pc4[0]=B router[0]=A router[1]=B
Trên file
pc1.startup
,pc2.startup
,pc3.startup
vàpc4.startup
cấu hình lần lượt như sau:ifconfig eth0 10.0.0.101/24 up route add default gw 10.0.0.1
ifconfig eth0 10.0.1.101/24 up route add default gw 10.0.1.1
ifconfig eth0 10.0.0.102/24 up route add default gw 10.0.0.1
ifconfig eth0 10.0.1.102/24 up route add default gw 10.0.1.1
Trên file
router.startup
cấ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
ping
, traceroute
, route
4. Lệnh 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