Thực hành buổi 1

📝 ĐỀ BÀI

I.Chuẩn bị

Cài đặt Máy Ảo Ubuntu

💡 Tài nguyên

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ủ Dockeropen in new window

  • 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 qua HTTPS

    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ủa Docker :

    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ưa

    docker --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 guideopen in new window 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ủa Kathara vào Ubuntu

    sudo 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ủa Kathara không bắt được, hiện lỗi Error 404

    Tức là phiên bản Ubuntu của bạn không được Kathara hỗ trợ

    🤔 GIẢI QUYẾT

    Cài lại Ubuntu bản LTS để Kathara hỗ trợ, hoặc bạn có thể đợi đến khi Kathara ra bản hỗ trợ phiên bản

    Hiện tại 2021: Kathara chỉ hỗ trợ Ubuntu 20.04 trở xuống

  • Bướ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ên Docker

    # 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 Katharaopen in new window

Kathara là công cụ mô phỏng mạng

Nó triển khai từ dự án Netkitopen in new window 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úng

  • Tậ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..icons8-handle_with_care.pngMô tả
vstartTạo một thiết bị Kathara mới
vcleanDừng thiết bị đơn Kathara
vconfigGắn giao diện mạng vào thiết bị Kathara đang chạy
lstartKhởi động Kathara Lab
lcleanDừng Kathara Lab
lrestartKhởi động lại Kathara Lab
ltestKiểm thử Kathara Lab
lconfigGắn giao diện mạng vào thiết bị Kathara đang chạy trong Kathara Lab
connectKết nối thiết bị Kathara
execThực thi lệnh trên thiết bị Kathara
wipeXoá tất cả thiết bị Kathara và tên miền xung đột, xoá luôn thiết lập
listHiển thị tất cả thiết bị Kathara đang chạy
settingHiển thị và chỉnh sửa thiết lập
checkKiể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 Genopen in new window

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 pc1pc2

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ạng kathara 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 pc1pc2 tạo ra 2 giao diện eth0lo

  • Hiện chưa có địa chỉ IP trong giao diện mạng eth0 của pc1pc2

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 pc1pc2 đã 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 max là số bước nhảy tối đa

  • 1 có nghĩa là để đi tới 10.0.0.2 chỉ cần 1 quá trình

  • 0.003ms 0.001ms 0.001ms là thời gian khứ hồi từ pc1 tới pc2

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 đến

  • Gateway - 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 gian IP

  • Flags - U: Có nghĩa là route đang up

  • Metric - 0: Khoảng cách đến route

  • Ref - 0: số mạng tham chiếu tới route này

  • Use - 0: số lookup cho route này

  • Iface - eth0 : là giao diện mạng mà các packets gửi đến

8. Huỷ 2 máy ảo pc1pc2

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.conf chứa miêu tả về hình thái của mạng ảo

  • Thư mục pc1pc2 đạ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.startuppc2.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.startuppc2.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>

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.conf cấu hình như sau :

    pc1[0]=A
    pc2[0]=B
    router[0]=A
    router[1]=B
    
  • Trên file pc1.startuppc2.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ố gwGateway 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ạng

    • Thô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, tracerouterouteđể kiểm tra tính liên thông tới pc2router

  • 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ến IP

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

4. Lệnh ping, traceroute, route

Từ pc1 sử dụng các lệnh pingtraceroute để 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
Cập nhật lúc :
Tác giả: Zenfection, Zenfection