DHCP (Dynamic Host Configuration Protocol) Lý thuyết và thực hành - Theory and Lab

DHCP (Dynamic Host Configuration Protocol) Lý thuyết và thực hành - Theory and Lab

Định nghĩa: (DHCP - giao thức cấu hình động máy chủ) là giao thức cung cấp phương pháp thiết lập các thông số cần thiết cho hoạt động của mạng TCP/IP giúp giảm khối lượng công việc cho quản trị hệ thống (wikipedia)

Các thuật ngữ:

DHCP client - Máy trạm DHCP: là một thiết bị nối vào mạng và sử dụng giao thức DHCP để lấy các thông tin cấu hình như là địa chỉ mạng, địa chỉ máy chủ DNS.

DHCP server - Máy chủ DHCP: là một thiết bị nối vào mạng có chức năng trả về các thông tin cần thiết cho máy trạm DHCP khi có yêu cầu.

BOOTP relay agents - Thiết bị chuyển tiếp BOOTP: là một máy trạm hoặc một router có khả năng chuyển các thông điệp DHCP giữa DHCP server và DHCP client.

Binding - Nối kết : là một tập hợp các thông tin cấu hình trong đó có ít nhất một địa chỉ IP, được sử dụng bởi một DHCP client. Các nối kết được quản lý bởi máy chủ DHCP.

Cơ chế hoạt động:

Khi một máy khách đã được cấu hình DHCP kết nối vào một mạng, client sẽ gởi các truy vấn broadcast ra toàn mạng để truy vấn các thông tin cần thiết về máy chủ DHCP. Máy chủ DHCP quản lý bảng các địa chỉ IP và thông tin về các thông số cấu hình của máy khách như gateway mặc định, domain name,... Sau khi nhận được yêu cầu từ máy khách, máy chủ DHCP sẽ gán cho máy khách một địa chỉ IP cùng các thông số cấu hình IP cần thiết.

Giao thức DHCP cung cấp 3 chế độ thiết lập địa chỉ IP: dynamic, automatic, manual.

Thông dụng nhất là chế độ động (dynamic mode'), trong đó máy khách chỉ được sử dụng địa chỉ IP được cấp trong một khoảng thời gian nhất định. Sau khoảng thời gian đó, máy khách sẽ yêu cầu cấp địa chỉ mới trứớc khi kết nối bị ngắt quãng..

Hai chế độ còn lại là chế độ tự động (automatic) và bằng tay (manual). Trong chế độ tự động, địa chỉ sẽ được gán thường xuyên cho máy. Còn trong chế độ bằng tay, địa chỉ sẽ được lựa chọn bởi máy khách, sau đó máy khách sẽ gởi thông điệp đến máy chủ thông báo địa chỉ đã được thiết lập.

Các trạng thái khi lấy địa chỉ:

Khi một máy tính bắt đầu vào trạng thái khởi động, nó bắt đầu đi vào trạng thái INITTALIZE. Bắt đầu trạng thái này, PC gửi một bản tin broadcast DHCPDISCOVER trong mạng cục bộ nhằm tìm được DHCP server. PC bắt đầu chuyển sang trạng thái SELECT. Khi DHCP server nhận được thông điệp yêu cầu của client (trong trường hợp đáp ứng được yêu cầu của server), sẻ trả một lời đáp DHCPOFFER. Có nghĩa là client sẽ có thể nhận được nhiều lời đáp từ server.

Trong trạng thái SELECT, client tập hợp tất cả những lời đáp từ server, tiến hành lựa chọn lời đáp phù hợp nhât với mình. Tất nhiên là client sẽ chỉ nhận một lời đáp duy nhất. Trường hợp không có lời đáp nào từ server, client sẽ tạm thời sử dụng automaticIP. Hết một khoảng thời gian, client tiếp tục gửi DHCPDISCOVER.

Khi đã chọn được lời mời thích hợp, client sẽ gửi DHCPREQUEST chấp nhận đề nghị của DHCP Server, client chuyển sang trạng thái REQUEST. Nhận được thông điệp từ client, Server bắt đầu cho mượn IP và gửi thông điệp DHCPACK cho client. Nhận được thông điệp, client chuyển sang trạng thái BOUND. Client chính thức sử dụng IP.

Client sẽ giữ trạng thái BOUND trong khi hoạt động ( khi còn trong thời gian cho phép của server). Khi không cần mượn nữa (khi chưa hết thời gian), client gửi thông điệp DHCPRELEASE cho server. IP được giải phóng. Client kết thúc trạng thái BOUND chuyển về INITIALIZE.

Đó là trường hợp Client chủ động kết thúc trước. Còn trường hợp Client muốn sử dụng tiếp IP khi sắp hết thời gian thuê mượn thì sao? Client thiểt lập 3 bộ đếm. Khi được một nửa thời gian thuê mượn do server thiết lập, client gửi DHCPREQUEST tới DHCP Server. Client chuyển sang trạng thái RENEW để đợi lời đáp từ Server. Thông điệp này khác với thông điệp DHCPREQUEST ban đầu là nó chứa IP đang sử dụng và yêu cầu server gia hạn IP này. Lúc này, DHCP Server nhận được lời yêu cầu từ client. Nếu tiếp tục cho client chấp nhận cho dùng tiếp IP, server sẽ gửi DHCPACK, nhận được client lại chuyển về trạng thái BOUND, bộ đếm được khởi động lại. Trường hợp không chấp nhận cho client sử dụng IP, Server gửi DHCPACK yêu cầu ngừng sử dụng IP này. Client nhận được sẽ chuyển về trạng thái INITIALIZE.

Đó là trường hợp Client nhận được DHCPACK từ server. Trường hợp không nhận được lời đề nghị lại từ server thì sao. Client có bộ đếm thứ 2, bằng 87.5% thời gian thuê mượn mà không nhận được lời đáp từ server, client sẽ chuyển từ trạng thái RENEW sang trạng thái REBIND. Lúc này server sẽ broadcast thông điệp DHCPREQUEST tới tất cả server trong mạng. Quá trình lại quay lại như trước, chọn lựa, sử dụng..... Tất nhiên là nếu không nhận được lời đáp nào, client sẽ chuyển sang INITIALIZE, bắt đầu yêu cầu địa chỉ mới.

Đó là những gì cơ bản nhất về DHCP, phần advance sẽ cập nhật sau.

--------------------------------------------------------------------------

All my Lab:
Linux Lab -- window and Cisco Lab
to be continued - I will update more.

Nam Habach