Wednesday, May 20, 2009

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 trm DHCP: là mt thiết b ni vào mng và s dng giao thc DHCP đ ly các thông tin cu hình như là đa ch mng, đa ch máy ch DNS.
DHCP server - Máy ch DHCP: là mt thiết b ni vào mng có chc năng tr v các thông tin cn thiết cho máy trm DHCP khi có yêu cu.
BOOTP relay agents - Thiết b chuyn tiếp BOOTP: là mt máy trm hoc mt router có kh năng chuyn các thông đip DHCP gia 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 mt máy khách đã được cu hình DHCP kết ni vào mt mng, client s gi các truy vn broadcast ra toàn mng đ truy vn các thông tin cn thiết v máy ch DHCP. Máy ch DHCP qun lý bng các đa ch IP và thông tin v các thông s cu hình ca máy khách như gateway mc đnh, domain name,... Sau khi nhn được yêu cu t máy khách, máy ch DHCP s gán cho máy khách mt đa ch IP cùng các thông s cu hình IP cn 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.

No comments:

Install Xposed Inspector and Frida on Genymotion

Today i had some work with android. So i need trace application. I found 2 nice tool can help me: Xposed Inspector and Frida. To setup ther...