Chuyển đến nội dung chính (Skip to content)
CCNA

DHCP và relay: vì sao máy không nhận được địa chỉ IP?

DHCP và relay: vì sao máy không nhận được địa chỉ IP?

Theo dõi DORA từ client qua relay tới DHCP server. Đọc giaddr, scope, gateway, DNS và lease để phân biệt lỗi cấp mới, gia hạn và truy cập sau khi nhận IP.

Máy mới cắm vào VLAN 20 không nhận được địa chỉ, còn máy cũ vẫn truy cập bình thường. DHCP server ở mạng quản trị vẫn chạy và ping được từ gateway. Hai dữ kiện này chưa chứng minh yêu cầu của máy mới đã tới server hoặc phản hồi đã quay về client.

Bài viết theo dõi một lần cấp IPv4 mới qua relay, rồi dùng các mốc Discover, Offer, Request, ACK để khoanh vùng. DHCP cấp thông tin cấu hình theo lease; nhận được một địa chỉ chưa có nghĩa gateway, DNS và dịch vụ đều đúng.

1. Chốt VLAN, scope và đường tới server

Lab có client A trong VLAN 20, mạng 10.20.0.0/24. Gateway/relay là interface Vlan20 địa chỉ 10.20.0.1 trên switch Layer3. DHCP server 10.99.0.10 và DNS 10.99.0.53 nằm trong mạng 10.99.0.0/24, có gateway 10.99.0.1. Routing giữa relay và mạng server cùng đường về đã hoạt động.

Scope dành cho client là 10.20.0.100–10.20.0.199, gồm 100 địa chỉ; default gateway 10.20.0.1, DNS 10.99.0.53, lease 8 giờ. Các địa chỉ hạ tầng và vùng dự phòng ngoài pool phải được giữ riêng. Không có FHRP, VRF, Option82 policy đặc biệt hay nhiều relay trong mô hình tối thiểu này.

Client VLAN 20 gửi broadcast tới relay10.20.0.1, relay chuyển unicast tới DHCP10.99.0.10 và điền giaddr
Hình 1. Helper nằm tại interface nhận yêu cầu từ client; server cần đường về địa chỉ relay.

Cuộn ngang khi cần, hoặc chạm sơ đồ để mở ảnh gốc.

Cần hiểu VLAN/trunk và route hai chiều trước. Lệnh minh họa cho IOS/IOS XE có DHCP relay/server và Windows có công cụ tương ứng. Chưa chạy hardware hoặc capture thật; tên interface và hỗ trợ phải kiểm tra theo model/release.

2. Một lần cấp mới qua bốn mốc DORA

Ở lần khởi tạo chọn server, client chưa có địa chỉ dùng được thường phát DHCPDISCOVER từ 0.0.0.0 tới broadcast255.255.255.255, UDP nguồn 68 đích 67. Broadcast này không được router chuyển xuyên mạng như unicast thông thường. Relay tiếp nhận rồi tạo đường chuyển tiếp tới DHCP server đã cấu hình.

Server chọn scope theo thông tin như giaddr trong mô hình này, tìm địa chỉ khả dụng và đưa DHCPOFFER. Client chọn một lời mời, gửi DHCPREQUEST trong giai đoạn chọn để các server biết lựa chọn. Server được chọn xác nhận bằng DHCPACK; client kiểm tra và áp dụng cấu hình theo hành vi hệ điều hành.

Chuỗi DHCP Discover Offer Request ACK giữa client relay server, ghi vai trò từng mốc
Hình 2. DORA mô tả lần cấp mới ở trạng thái chọn server, không mô tả mọi lần renew hoặc khởi động lại client.

Cuộn ngang khi cần, hoặc chạm sơ đồ để mở ảnh gốc.

Cách phát Offer/ACK về đoạn client có thể là broadcast hoặc unicast tùy trạng thái, cờ broadcast và khả năng nhận của client. Không gán mọi gói DHCP đều broadcast. DHCPREQUEST cũng có vai trò ở các trạng thái khác; thấy tên gói Request chưa đủ biết client đang xin mới hay gia hạn.

RFC 2131 mô tả các trạng thái này. Client từng có lease có thể dùng quy trình xác nhận địa chỉ cũ, nên capture không nhất thiết bắt đầu bằng Discover. Khi ghép log/capture, dùng transaction ID, định danh client và thời gian; chỉ nhìn MAC hoặc địa chỉ dự kiến dễ ghép nhầm lần thử.

3. Relay đưa giaddr vào đâu và không làm thay việc gì?

Trong cấu hình cổ điển của lab, relay đặt giaddr bằng 10.20.0.1, là địa chỉ interface nhận yêu cầu client. Server dựa vào thông tin này để biết cần scope 10.20.0.0/24, thay vì cấp một địa chỉ mạng 10.99.0.0/24 nơi server đang đứng. giaddr và option default-router là hai trường có chức năng khác nhau, dù cùng mang .1 ở ví dụ này.

Relay gửi tới server bằng unicast; server phản hồi về relay, rồi relay chuyển tới client theo điều kiện gói. Trên chặng relay–server cổ điển, DHCP dùng cổng server 67; chặng server/relay tới client dùng đích 68. Firewall và DHCP snooping cần xử lý đúng chiều/trạng thái, không chỉ mở một chiều “từ máy tới server”.

Relay không tự tạo scope, tăng số IP trống hay sửa gateway mà server cấp sai. Đặt helper vào interface phía server không thay helper trên VLAN client. Mỗi VLAN cần cơ chế relay tại điểm Layer3 thích hợp nếu server không nằm trực tiếp trong broadcast domain đó.

Cisco mô tả giaddr và ip helper-address trong relay cổ điển. Các tính năng VRF, smart relay, Option82 hoặc thay source có thể đổi cách chọn địa chỉ và policy; không áp suy luận một giaddr cố định cho mọi triển khai nâng cao.

4. Cấu hình lab và đọc đầy đủ thông tin được cấp

Trước thay đổi, giữ cấu hình helper/scope, danh sách exclusion, reservation và lease. Thêm DHCP server nhầm vào VLAN đang chạy có thể cấp sai gateway/DNS cho nhiều máy. Chỉ triển khai mẫu trong lab cô lập hoặc cửa sổ thay đổi có kiểm soát.

! Trên gateway/relay, SVI đã có IP 10.20.0.1/24 và up
configure terminal
interface Vlan20
 ip helper-address 10.99.0.10
end
! Trên thiết bị IOS/IOS XE đóng vai DHCP server trong lab
configure terminal
ip dhcp excluded-address 10.20.0.1 10.20.0.99
ip dhcp excluded-address 10.20.0.200 10.20.0.254
ip dhcp pool VLAN20
 network 10.20.0.0 255.255.255.0
 default-router 10.20.0.1
 dns-server 10.99.0.53
 lease 0 8
end

Server lab có IP 10.99.0.10 đã cấu hình và đường về relay. Mẫu pool không phải cấu hình cho Windows DHCP hoặc Linux DHCP. Kiểm tra dịch vụ DHCP/relay chưa bị tắt toàn cục; không bật/tắt service dhcp như phép thử ngẫu nhiên vì tác động có thể vượt một VLAN.

Hướng dẫn DHCP server IOS XE17 là nguồn đối chiếu pool và kiểm tra. Helper truyền thống có thể chuyển tiếp thêm các UDP broadcast được hỗ trợ, nên cần rà phạm vi chuyển tiếp và chính sách thiết bị trước đưa vào production.

Option subnet mask, router và DNS không thay thế nhau. RFC 2132 phân biệt các option này. Client có IP đúng dải nhưng DNS sai vẫn có thể lỗi phân giải; gateway sai có thể làm mất truy cập ngoài subnet trong khi nội bộ vẫn hoạt động.

5. Lease, renew và vì sao máy cũ còn mạng chưa chứng minh DHCP tốt

Lease8 giờ nghĩa client chỉ được dùng địa chỉ trong thời hạn theo trạng thái giao thức. Nếu không được chỉ định khác, T1 thường bằng 50% lease, T2 bằng 87,5%: ví dụ T1 là 4 giờ, T2 là 7 giờ. Client thường thử renew với server ở T1; tới rebinding có thể tìm server khác theo quy trình. Không gọi T1 là lúc lease đã hết.

Lease8 giờ với T1 mặc định4 giờ, T2 mặc định7 giờ và hết hạn8 giờ khi không được gia hạn
Hình 3. Timer thực tế có thể do server chỉ định; timeline này dùng các tỷ lệ mặc định để tính ví dụ.

Cuộn ngang khi cần, hoặc chạm sơ đồ để mở ảnh gốc.

Khi server hoặc relay mới hỏng, máy cũ còn lease có thể tiếp tục chạy trong khi máy mới không nhận IP. Ngược lại, renewal unicast có thể bị chặn trong khi giai đoạn đầu qua relay vẫn hoạt động. Cần so thời điểm cấp/gia hạn và loại gói, không suy từ một máy đang dùng mạng rằng toàn quy trình tốt.

Địa chỉ169.254.x.x trên Windows có thể là IPv4 link-local khi chưa lấy được cấu hình phù hợp. Nó là dấu hiệu để điều tra, không tự chỉ ra lỗi nằm ở server. Kiểm tra adapter, VLAN, trạng thái DHCP và cấu hình tĩnh trước khi kết luận.

6. Thu bằng chứng ở client, relay và server theo từng mốc

! Client Windows: chỉ đọc cấu hình
ipconfig /all
! Trên relay: thay interface nếu dùng routed port khác
show ip interface Vlan20
show running-config interface Vlan20
show ip route 10.99.0.10
! Chỉ trên IOS/IOS XE DHCP server
show ip dhcp pool
show ip dhcp binding
show ip dhcp conflict

Trên relay thuần túy, bảng binding local trống chưa chứng minh không có client được cấp; bảng lease nằm ở server. Đối chiếu IP/mask/gateway/DNS, DHCP server identifier và thời gian lease của client. Nếu có hai Offer từ nguồn ngoài thiết kế, kiểm tra server lạ và policy, không tùy tiện chọn server trả nhanh hơn.

Không có Discover tại relay: xem link/VLAN/access/trunk và client có thực sự gửi không. Có Discover tới server nhưng không Offer: xem scope còn trống, active, exclusion/reservation, policy và log. Có Offer/ACK ở server nhưng client chưa nhận: lần theo đường về giaddr, relay, snooping và cờ/đích gói ở VLAN client.

Được ACK không chứng minh IP không xung đột sau đó. Giữ log conflict và kiểm tra thiết bị dùng IP tĩnh ngoài quản lý. Không xóa toàn bộ binding/conflict để “giải phóng cho sạch”. Không yêu cầu ipconfig /release qua phiên điều khiển từ xa: lệnh trả lease có thể làm mất ngay kết nối và không bảo đảm xin lại thành công.

Đừng đồng nhất một trăm địa chỉ trong pool với một trăm nhân viên. Một người có laptop, điện thoại và máy ảo có thể tiêu thụ nhiều lease; client identifier và cơ chế MAC riêng tư cũng ảnh hưởng cách server nhận diện thiết bị. Khi nghi cạn scope, so số lease đang dùng, reservation, exclusion và nhu cầu thực tế. Kéo dài lease giảm tần suất gia hạn nhưng giữ địa chỉ cho thiết bị vắng lâu hơn; rút ngắn lease tạo thêm giao dịch. Quyết định phải theo mức biến động và năng lực hệ thống.

Reservation là ánh xạ cấp có quản lý cho client phù hợp, không phải giấy chứng nhận rằng ngoài mạng không có thiết bị dùng tĩnh cùng địa chỉ. Exclusion ngăn pool cấp một vùng, còn việc theo dõi tài sản dùng vùng ấy vẫn cần quy trình riêng. Nếu cấp đúng IP nhưng option DNS/gateway sai, sửa scope theo nguồn cấu hình đã xác minh và lên phương án cập nhật lease có kiểm soát; sửa scope chưa bảo đảm mọi client đang giữ lease lập tức đổi thông số.

7. Nghiệm thu cấu hình và dịch vụ sau khi nhận IP

Trong lab, dùng client thử riêng, ghi DORA và cấu hình nhận được. Xác nhận đúng dải100–199, gateway .1, DNS .53 và lease 8 giờ, sau đó thử gateway, đích khác subnet và tên nội bộ. Nếu cần renew có kiểm soát, giữ đường truy cập dự phòng; không buộc toàn bộ người dùng cùng xin lại địa chỉ.

  • Client ở đúng VLAN, relay đặt đúng interface nhận broadcast.
  • Server có scope phù hợp giaddr, còn địa chỉ và có đường về.
  • Mask, gateway, DNS, lease và server identifier được đối chiếu.
  • Phân biệt lỗi cấp mới với renew/rebind và lỗi dịch vụ sau cấp.
  • Lưu log theo transaction/thời điểm, không xóa bằng chứng trước sửa.

PDF trang vật lý 507–523 là nền DHCP, pool và helper. Bài viết lại ví dụ, cập nhật cú pháp theo Cisco và phân biệt trạng thái theo RFC; không nhận ảnh hay output là capture thật. Phần DNS sau cấp được triển khai trong bài chẩn đoán phân giải tên.

DHCP và relay: đọc DORA, giaddr, scope và tìm lỗi cấp IP | thanhnh.id.vn