HỌC BẰNG THỰC HÀNH
← Lộ trình học
02 — Networking

Địa chỉ, CIDR và đường đi của gói tin

Thực hiện trên server của bạn, rồi kiểm tra từng tiêu chí.

Cốt lõi

Địa chỉ, CIDR và đường đi của gói tin

Mục tiêu

Tính subnet và xác định interface, gateway, route được dùng cho một đích.

Hiểu trước khi làm

CIDR /24 để 24 bit cho phần mạng và 8 bit cho host; mạng IPv4 thông thường còn địa chỉ network/broadcast. Route cụ thể nhất thắng default route. ARP tìm MAC của next hop IPv4 trên cùng link, không tìm MAC của server xuyên Internet. SNAT thường đổi nguồn khi đi ra, DNAT đổi đích khi chuyển port vào; proxy tạo kết nối ứng dụng mới.

Chuẩn bị

VM Linux của Module 01 có iproute2; giữ nguyên route và kết nối SSH.

Tải ứng dụng mẫu KDC Notes · Cách tải và chuẩn bị workspace. Không cần mã nguồn nền tảng khóa học.

cd ~/kdc-labs/project
mkdir -p ../evidence
Giải thích lệnh và tham số

cd chuyển vào repo ứng dụng của bạn; .. là thư mục cha ~/kdc-labs. mkdir -p tạo thư mục bằng chứng nếu chưa có, không báo lỗi khi đã tồn tại. Mọi đường dẫn tương đối ở dưới tính từ đây, trừ khi bước ghi rõ máy/thư mục khác.

Thực hành

ip -brief address
ip route get 1.1.1.1
ip neigh
ss -lun
Giải thích lệnh và tham số

ip route get chỉ tính đường đi, không gửi traffic hay sửa route. ip neigh xem neighbor/ARP. ss -l -u -n xem socket UDP listen bằng số.

Ghi IP/prefix của VM, network address, broadcast (IPv4) và gateway. Với 192.168.56.10/24, mạng là 192.168.56.0/24, broadcast .255, dải host .1–.254; gateway không nhất thiết là .1, phải đọc route. Tính thêm 10.20.4.18/27 rồi kiểm tra bằng Python:

python3 -c "import ipaddress; n=ipaddress.ip_interface('10.20.4.18/27').network; print(n,n.broadcast_address,n.num_addresses)"
Giải thích lệnh và tham số

python3 -c thực thi đoạn Python truyền sau tham số. ip_interface giữ địa chỉ host cùng prefix; .network cho subnet. Kết quả 32 địa chỉ gồm network và broadcast.

Dùng traceroute 1.1.1.1 nếu công cụ đã cài. Hop không trả lời có thể do firewall/rate limit, không chứng minh mạng hỏng. So sánh route tới loopback, tới một VM cùng subnet và Internet. Không xóa default route của phiên SSH. Ghi một ví dụ reverse proxy và một ví dụ port forwarding, xác định địa chỉ nguồn mà backend sẽ thấy.

Tiêu chí tệp nộp bài

Các đường dẫn dưới đây tính từ lab root ~/kdc-labs, không từ thư mục project. Không viết sẵn kết quả giả để qua kiểm tra. Tệp có đúng tiêu đề chưa chứng minh đã thực hiện bài; giữ đầu ra thật và tự đối chiếu các phép thử.

  • evidence/network-cidr-routing.md — có nội dung ## Route.
  • evidence/network-cidr-routing.md — có nội dung ## Kết quả.

Tự kiểm tra

Giải thích chính xác subnet /27 là 10.20.4.0/27, broadcast .31. Báo cáo chứa interface/source/gateway thật từ route get và phân biệt ARP, route, NAT, proxy.

Kiểm tra trên web xác nhận tệp cấu hình hoặc hồ sơ bài làm dưới lab root; không xác nhận dịch vụ cloud, kết quả CI hay nội dung lập luận. Bạn phải thực hiện các phép thử bên trên và lưu đầu ra thật để tự đối chiếu.

Lưu bằng chứng

Tạo evidence/network-cidr-routing.md bằng trình soạn thảo, gồm các mục dưới đây. Điền số liệu và lệnh đã chạy, thời điểm, đầu ra trước/sau, cùng kết luận của bạn; không chỉ sao chép tiêu đề. Không lưu token, mật khẩu, kubeconfig hoặc dump dữ liệu vào báo cáo.

## Môi trường
Hệ điều hành, phiên bản công cụ, cluster/VM và thời điểm.

## Kết quả
Lệnh kiểm tra, đầu ra đã che thông tin nhạy cảm, kết quả mong đợi/thực tế.

## Giải thích
Vì sao cách làm đạt mục tiêu; giới hạn của phép kiểm tra.

## Khôi phục
Cách rollback/cleanup riêng các tài nguyên lab và cách xác nhận lại.

Tài liệu chính thức