Loading...

Bài 39b: Thực hành DHCP — Router làm DHCP server, DHCP relay và DHCP client

⏱️ Thời lượng: 60 phút · 📶 Độ khó: Trung bình · 🧰 Công cụ: Cisco Packet Tracer 8.x · 📌 Cần học trước: Bài 26, Bài 39

Sơ đồ lab Bài 39b

Sơ đồ lab Bài 39b · ⬇️ Tải sơ đồ (SVG) · 🔍 Mở cỡ lớn

💡 Liên hệ thực tế

Công ty ABC có hơn trăm máy, không ai muốn ngồi gõ IP tay cho từng máy. Anh Nam (VNExperts) dùng cả ba vai trò DHCP mà một kỹ sư mạng phải biết:

  • DHCP server trên router — cấp IP cho phòng Kinh doanh, nhanh gọn, không cần thêm máy chủ.
  • DHCP relay — phòng Kế toán xin IP từ máy chủ DHCP tập trung SRV1 nằm ở VLAN khác.
  • DHCP client — cổng WAN của router nhận IP từ nhà mạng.

Quy tắc ghi nhớ: gói DHCP Discover là broadcast nên không qua được router — muốn xin IP từ server ở mạng khác, phải đặt ip helper-address trên gateway của mạng có client.

🎯 Mục tiêu bài lab

  • Cấu hình router Cisco làm DHCP server: excluded-address, pool, network, default-router, dns-server.
  • Cấu hình máy chủ DHCP tập trung và DHCP relay bằng ip helper-address.
  • Cấu hình interface router nhận IP bằng DHCP (ip address dhcp).
  • Kiểm tra bằng show ip dhcp binding, show ip dhcp pool, ipconfig /all; giải thích được vì sao binding của PC2 không nằm trên R1.

📋 Bảng VLAN, địa chỉ IP và đấu nối

VLANTênDải địa chỉAi cấp IP?
10 KinhDoanh 192.168.10.0/24 R1 (DHCP server trên router)
20 KeToan 192.168.20.0/24 SRV1, qua relay trên R1
100 Server 192.168.100.0/24 IP tĩnh
— WAN 203.0.113.0/24 R-ISP cấp cho R1 G0/1
Thiết bịInterfaceĐịa chỉ IP / PrefixGateway
R1 G0/0.10 192.168.10.1/24 —
G0/0.20 192.168.20.1/24 —
G0/0.100 192.168.100.1/24 —
G0/1 Nhận qua DHCP từ R-ISP —
R-ISP G0/0 203.0.113.1/24 —
SRV1 NIC 192.168.100.10/24 192.168.100.1
PC1 NIC (VLAN 10) DHCP DHCP
PC2 NIC (VLAN 20) DHCP DHCP
TừCổngĐếnCổngGhi chú
R1 G0/1 R-ISP G0/0 Copper Cross-Over
R1 G0/0 SW1 Gi0/1 Trunk VLAN 10, 20, 100
SW1 Fa0/1 PC1 FastEthernet0 Access VLAN 10
SW1 Fa0/2 PC2 FastEthernet0 Access VLAN 20
SW1 Fa0/10 SRV1 FastEthernet0 Access VLAN 100

⚙️ Các bước thực hiện

⚙️ Bước 1 — Dựng sơ đồ và dán cấu hình nền

Kéo ra 2 router 2911 (R1, R-ISP), 1 switch 2960-24TT, 2 PC và 1 Server-PT (SRV1). Nối cáp theo bảng. Phần VLAN và Router-on-a-Stick đã luyện ở Bài 24b, 27b nên cho sẵn:

SW1

hostname SW1
vlan 10
 name KinhDoanh
vlan 20
 name KeToan
vlan 100
 name Server
interface gigabitEthernet 0/1
 switchport mode trunk
 switchport trunk allowed vlan 10,20,100
interface fastEthernet 0/1
 switchport mode access
 switchport access vlan 10
 spanning-tree portfast
interface fastEthernet 0/2
 switchport mode access
 switchport access vlan 20
 spanning-tree portfast
interface fastEthernet 0/10
 switchport mode access
 switchport access vlan 100
 spanning-tree portfast
end

R1

hostname R1
interface gigabitEthernet 0/0
 no shutdown
interface gigabitEthernet 0/0.10
 encapsulation dot1Q 10
 ip address 192.168.10.1 255.255.255.0
interface gigabitEthernet 0/0.20
 encapsulation dot1Q 20
 ip address 192.168.20.1 255.255.255.0
interface gigabitEthernet 0/0.100
 encapsulation dot1Q 100
 ip address 192.168.100.1 255.255.255.0
end

SRV1: Desktop → IP Configuration → Static: 192.168.100.10 / 255.255.255.0, gateway 192.168.100.1, DNS 192.168.100.10.

⚙️ Bước 2 — R1 làm DHCP server cho VLAN 10

R1(config)# ip dhcp excluded-address 192.168.10.1 192.168.10.10
R1(config)# ip dhcp pool KINHDOANH
R1(dhcp-config)# network 192.168.10.0 255.255.255.0
R1(dhcp-config)# default-router 192.168.10.1
R1(dhcp-config)# dns-server 192.168.100.10
R1(dhcp-config)# exit
📎 Giải thích:
• excluded-address: giữ lại .1–.10 cho gateway, máy in, thiết bị cần IP cố định. Nên gõ trước khi tạo pool, để router không kịp cấp nhầm các địa chỉ này.
• network: dải địa chỉ của pool — phải khớp với mạng trên interface gateway (192.168.10.1/24).
• default-router và dns-server: gateway và DNS mà PC sẽ nhận.

Trên PC1: Desktop → IP Configuration → chọn DHCP. Sau vài giây phải hiện DHCP request successful với IP 192.168.10.11.

⚙️ Bước 3 — Máy chủ DHCP tập trung SRV1 cho VLAN 20

  1. Bấm SRV1 → tab Services → DHCP → chọn On.
  2. Giữ nguyên serverPool có sẵn. Điền pool mới:
    • Pool Name: KETOAN
    • Default Gateway: 192.168.20.1
    • DNS Server: 192.168.100.10
    • Start IP Address: 192.168.20.11
    • Subnet Mask: 255.255.255.0
    • Maximum Number of Users: 50
  3. Bấm Add — pool KETOAN xuất hiện trong bảng bên dưới.

⚙️ Bước 4 — Bật DHCP relay trên gateway VLAN 20

R1(config)# interface gigabitEthernet 0/0.20
R1(config-subif)# ip helper-address 192.168.100.10
R1(config-subif)# end

Trên PC2: chọn DHCP → phải nhận IP 192.168.20.11, gateway 192.168.20.1.

📎 Relay hoạt động thế nào? PC2 gửi Discover dạng broadcast. G0/0.20 nhận được, đổi thành gói unicast gửi tới 192.168.100.10, và ghi địa chỉ của chính nó (192.168.20.1, gọi là giaddr) vào gói. SRV1 nhìn giaddr để chọn đúng pool KETOAN, rồi gửi trả lời về 192.168.20.1 để R1 chuyển lại cho PC2.
⚠️ Lỗi kinh điển: đặt ip helper-address trên interface nối tới server (G0/0.100). Phải đặt trên interface nhận broadcast của client — tức gateway của VLAN 20.

⚙️ Bước 5 — R1 nhận IP WAN từ nhà mạng (DHCP client)

Dán cấu hình cho R-ISP (đóng vai nhà mạng):

hostname R-ISP
ip dhcp excluded-address 203.0.113.1 203.0.113.9
ip dhcp pool ISP
 network 203.0.113.0 255.255.255.0
 default-router 203.0.113.1
 dns-server 8.8.8.8
interface gigabitEthernet 0/0
 ip address 203.0.113.1 255.255.255.0
 no shutdown
end

Trên R1:

R1(config)# interface gigabitEthernet 0/1
R1(config-if)# ip address dhcp
R1(config-if)# no shutdown

Sau vài giây, console có thể hiện thông báo dạng %DHCP-6-ADDRESS_ASSIGN: Interface GigabitEthernet0/1 assigned DHCP address 203.0.113.10 …

💾 Bước 6 — Lưu cấu hình

R1# copy running-config startup-config

Làm trên R1, R-ISP, SW1.

🔍 Kiểm tra kết quả

#Kiểm traLệnh / thao tácKết quả mong đợi
1 PC1 nhận IP PC1 ipconfig /all 192.168.10.11, gateway .10.1, DHCP Server 192.168.10.1
2 PC2 nhận IP qua relay PC2 ipconfig /all 192.168.20.11, gateway .20.1, DHCP Server 192.168.100.10
3 Binding trên R1 show ip dhcp binding Chỉ có địa chỉ của PC1 (VLAN 10)
4 Thống kê pool show ip dhcp pool Pool KINHDOANH, 1 địa chỉ đã cấp
5 R1 nhận IP WAN show ip interface brief G0/1 = 203.0.113.10, cột Method = DHCP
6 Liên VLAN PC1 ping 192.168.20.11 ✅ Thành công

🔍 Output mẫu trên R1 (địa chỉ MAC của bạn sẽ khác)

R1# show ip dhcp binding
IP address       Client-ID/              Lease expiration        Type
                 Hardware address
192.168.10.11    0001.6402.A1B2          --                      Automatic
R1# show ip interface brief
Interface              IP-Address      OK? Method Status                Protocol
GigabitEthernet0/0     unassigned      YES unset  up                    up
GigabitEthernet0/0.10  192.168.10.1    YES manual up                    up
GigabitEthernet0/0.20  192.168.20.1    YES manual up                    up
GigabitEthernet0/0.100 192.168.100.1   YES manual up                    up
GigabitEthernet0/1     203.0.113.10    YES DHCP   up                    up
GigabitEthernet0/2     unassigned      YES unset  administratively down down

🔍 Output mẫu trên PC2 (đã rút gọn)

C:\>ipconfig /all
(… rút gọn …)
   IPv4 Address....................: 192.168.20.11
   Subnet Mask.....................: 255.255.255.0
   Default Gateway.................: 192.168.20.1
   DHCP Servers....................: 192.168.100.10
📎 Câu hỏi tự kiểm tra: vì sao show ip dhcp binding trên R1 không có địa chỉ của PC2? Vì R1 chỉ chuyển tiếp yêu cầu của PC2; người cấp phát và lưu bảng thuê là SRV1.

🛠️ Lỗi thường gặp & cách xử lý

Triệu chứngNguyên nhân thường gặpCách kiểm tra & sửa
PC nhận địa chỉ 169.254.x.x Không tới được DHCP server: thiếu helper, VLAN không có trên trunk, dịch vụ DHCP trên SRV1 đang Off show running-config interface g0/0.20; show interfaces trunk trên SW1; tab Services của SRV1
PC1 nhận IP trùng gateway hoặc thiết bị khác Thiếu excluded-address, hoặc gõ sau khi đã cấp Thêm excluded-address, rồi clear ip dhcp binding * và xin lại IP
PC2 vẫn không nhận IP dù helper đúng SRV1 không có default gateway nên không gửi được trả lời về 192.168.20.1 (khác mạng) Đặt gateway 192.168.100.1 cho SRV1
PC2 nhận IP sai dải Start IP của pool KETOAN không thuộc 192.168.20.0/24 Sửa pool trên SRV1
PC1 không xin được IP Lệnh network trong pool sai mạng/mask, không khớp với G0/0.10 show running-config | section dhcp
R1 G0/1 không có IP R-ISP chưa có pool hoặc interface đang tắt show ip interface brief trên cả hai router

🏆 Thử thách mở rộng

  1. Thêm phòng Kỹ thuật (VLAN 30, 192.168.30.0/24) nhận IP từ SRV1 qua relay. Liệt kê đủ mọi chỗ phải sửa.
  2. Chuyển luôn VLAN 10 sang lấy IP từ SRV1 để quản lý tập trung. Cần bỏ gì trên R1, thêm gì trên R1 và SRV1?
  3. Trên R-ISP chạy show ip dhcp binding. Quan sát cột Client-ID của R1 — nó khác gì so với PC?

👉 Gợi ý đáp án
! Thử thách 1
SW1(config)# vlan 30
SW1(config-vlan)# name KyThuat
SW1(config-vlan)# exit
SW1(config)# interface gigabitEthernet 0/1
SW1(config-if)# switchport trunk allowed vlan add 30
R1(config)# interface gigabitEthernet 0/0.30
R1(config-subif)# encapsulation dot1Q 30
R1(config-subif)# ip address 192.168.30.1 255.255.255.0
R1(config-subif)# ip helper-address 192.168.100.10
! SRV1: thêm pool KYTHUAT, gateway 192.168.30.1, start 192.168.30.11

! Thử thách 2
R1(config)# no ip dhcp pool KINHDOANH
R1(config)# interface gigabitEthernet 0/0.10
R1(config-subif)# ip helper-address 192.168.100.10
! SRV1: thêm pool KINHDOANH, gateway 192.168.10.1, start 192.168.10.11

Thử thách 3: router gửi kèm client-identifier là một chuỗi dài, khác với PC thường chỉ hiện địa chỉ MAC. Hãy so sánh hai dòng trong output.

💬 Hỏi & Đáp nhanh

❓ Một interface có thể đặt nhiều ip helper-address không?

✅ Được. Router gửi bản sao yêu cầu tới tất cả các địa chỉ — thường dùng để có hai DHCP server dự phòng cho nhau.

❓ ip helper-address chỉ chuyển tiếp DHCP thôi sao?

⚠️ Không. Mặc định nó chuyển tiếp nhiều loại broadcast UDP, trong đó có DHCP/BOOTP (67, 68), TFTP (69), DNS (53), TACACS (49), Time (37), NetBIOS (137, 138). Có thể tắt từng loại bằng no ip forward-protocol udp. Trong đề CCNA, bạn chủ yếu gặp nó với DHCP.

❓ Muốn đổi thời gian cho thuê IP thì làm sao?

✅ Trong pool dùng lệnh lease, ví dụ lease 7 là 7 ngày. Mặc định trên router Cisco là 1 ngày.

📝 Bài tập đánh giá

Câu 1: DHCP server nằm ở VLAN 100, client nằm ở VLAN 20. Lệnh ip helper-address phải đặt ở đâu?

  • A. Trên interface của router nối tới DHCP server
  • B. Trên interface của router làm gateway cho VLAN 20
  • C. Trên cổng access của switch nối với client
  • D. Trên chính DHCP server

Câu 2: PC ở VLAN 20 nhận địa chỉ 169.254.10.5. Router đã có helper-address đúng, SRV1 có pool đúng dải và dịch vụ đang On, nhưng SRV1 chưa khai báo default gateway. Giải thích nào đúng nhất?

  • A. Đây là hành vi bình thường khi dùng relay
  • B. SRV1 không gửi được gói trả lời về relay agent 192.168.20.1 vì địa chỉ đó nằm ở mạng khác
  • C. Pool trên SRV1 sai
  • D. VLAN 20 không có trên trunk

👉 Đáp án

  • Câu 1: B — Helper đặt trên interface nhận broadcast từ client, trỏ tới IP của DHCP server.
  • Câu 2: B — Gói trả lời được gửi unicast tới giaddr 192.168.20.1. Không có gateway, SRV1 không biết đường đi tới mạng 192.168.20.0/24.

💡 Output trong bài là output mẫu trên Packet Tracer, trên máy bạn có thể khác một chút (ví dụ địa chỉ MAC).

📚 Bài thực hành thuộc Khóa học CCNA Online của VNExperts.

🧭 Điều hướng

⬅️ Bài trước🏠 Mục lục khóa họcBài kế tiếp ➡️
Bài 39: DHCP — cơ chế DORA, cấu hình DHCP server/relay Mục lục khóa học CCNA Bài 40: So sánh Layer 2 switching và Layer 3 switching