Tìm hiểu DHCP và Lease Time

Xem thêm: https://technet.microsoft.com/en-us/library/cc958935.aspx

So sánh việc cấu hình TCP/IP "thủ công"(manual) và bằng DHCP (tự động)

Cấu hình TCP/IP cho "thủ công":

Khi bạn cấu hình TCP/IP cho các client, bạn phải gán cho nó một địa chỉ IP, điều này sẽ hay dẫn đến việc bạn nhập vào sai IP, và việc này dẫn đến việc tìm ra lỗi sẽ khó khăn hơn. Và vấn đề thường xuyên nảy sinh là sẽ bị duplicate IP (trùng địa chỉ). Hơn nữa, công việc của người Admin sẽ nhiều hơn (admin còn nhiều việc khó hơn phải làm... ví dụ khi bạn cấp IP cho 200 máy thì bạn phải đến từng máy một mà cấp cho nó IP, subnet mask, defaut gateway..., và khi dời đoạn mạng này sang đoạn mạng khác thì bạn phải cấu hình TCP/IP lại).

dhcp_process_explained.jpg (415×260)

Khi dùng DHCP:

DHCP server tự động cấp tấc cả thông tin cấu hình cần thiết cho DHCP client. Điều đó có nghĩa là các client sử dụng cấu hình thông tin chính xác, tránh được các lỗi thường gặp khi cấu hình bằng tay như trên. Và nó cũng tự động cập nhật thông tin để cập nhật sự thay đổi cấu trúc mạng mà không cần phải cấu hình lại địa chỉ IP của client.

* Cách cài đặt DHCP server:
Tấc cả các dòng Windows 2000 Server đều có thể làm một DHCP server. Một máy đóng vai trò là một DHCP server cần phải có các yêu cầu sau:
+ Có DHCP service (được cài như bên dưới).
+ Một static(tĩnh) IP, subnet mask và defaut gateway.
+ Một range (dãy) các địa chỉ IP hợp lệ để cho client thuê (lease).
Cài đặt:
Control Panel --> Add/Remove Programs --> Add/Remove Windows Components --> Networking Services --> chọn Dynamic Host
Configuration Protocol (DHCP) --> Next... (quá trình cài đặt sẽ yêu cầu chèn đĩa Win2000 vào)
* Cài đặt DHCP client:
Các dòng Windows mới (Win2000 trở lên), Win9x, WinNT Server version 3.51, WinNT workstation 3.51, Windows for Workgroups vesion 3.11 với TCP/IP-32, Microsoft Lan Manager version 2.2c và nhiều hệ điều hành không phải là của Microsoft khác (non-Microsoft OS)
Để cấu hình Windows 2000 client để lấy được IP address tự động:
Mở Properties của Network connection --> Properties của Internet Protocol (TCP/IP) --> trong hộp thoại của Internet Protocol (TCP/IP), trên General tab, click chọn Obtain an IP address automatically. Nếu bạn muốn cấp một địa chỉ DNS server bằng DHCP thì click chọn Obtain DNS server address automatically.

Phần 2 (cơ chế cấp và thuê bên trong của DHCP)

Bên trên là so sánh về việc cấp địa chỉ IP tự động và việc cấp IP cho từng máy "bằng tay" (manual); và việc cài đặt một DHCP server và một DHCP client. Vậy quá trình xin và cấp IP sẽ diễn ra như thế nào?, việc hiểu rõ vấn đề này sẽ giúp ích cho các bạn rất nhiều trong việc xác định một lỗi của một mạng máy tính có sử dụng DHCP server, cũng như cho các bạn muốn thi 70-216 (MCSA) tham khảo thêm.
DHCP qua 4 bước để cấp thông tin của IP address cho DHCP client
1. IP lease request
2. IP lease offer
3. IP lease selection
4. IP lease acknowledgement
Có thể tóm tắt quá trình này như sau:
IP Lease Request
Đầu tiên, client sẽ broadcast một message tên là DHCPDISCOVER, vì client lúc này chưa có địa chỉ IP cho nên nó sẽ dùng một địa chỉ source(nguồn) là 0.0.0.0 và cũng vì client không biết địa chỉ của DHCP server nên nó sẽ gửi đến một địa chỉ broadcast là 255.255.255.255. Lúc này gói tin DHCPDISCOVER này sẽ broadcast lên toàn mạng. Gói tin này cũng chứa một địa chỉ MAC (Media Access Control) (là địa chỉ mà mỗi một network adapter (card mạng) sẽ được nhà sản xuất cấp cho và là mã số để phân biệt các card mạng với nhau ví dụ để biết card mạng của mình có MAC address là gì, bạn vào run --> đánh command --> ipconfig /all --> sẽ hiện ra một đoạn text gồm các thông tin khác nhau về IP, DNS, default gateway... và trên máy của tôi có Physical Address (MAC address) là: 00-C0-26-57-39-A8) và đồng thời nó cũng chứa computer name của máy client để DHCP server có thể biết được client nào đã gởi yêu cầu đến.
IP Lease Offer
Nếu có một DHCP hợp lệ (nghĩa là nó có thể cấp địa chỉ IP cho một client) nhận được gói tin DHCPDISCOVER của client thì nó sẽ trả lời lại bằng một gói tin DHCPOFFER, gói tin này đi kèm theo những thông tin sau:
+ MAC address của client
+ Một IP address cấp cho (offer IP address)
+ Một subnet mask
+ Thời gian thuê (mặc định là 8 ngày)
+ Địa chỉ IP của DHCP cấp IP cho client này
Lúc này DHCP server sẽ được giữ lại một IP đã offer (cấp) cho client để nó không cấp cho DHCP client nào khác.
DHCP client chờ một vài giây cho một offer, nếu nó không nhận một offer nó sẽ rebroadcast (broadcast gói DHCPDISCOVER) trong khoảng thời gian là 2-, 4-, 8- và 16- giây, bao gồm một khoảng thời gian ngẫu nhiên từ 0 - 1000 mili giây.
Nếu DHCP client không nhận một offer sau 4 lần yêu cầu, nó sử dụng một địa chỉ IP trong khoảng 169.254.0.1 đến 169.254.255.254 với subnet mask là 255.255.0.0. Nó sẽ sử dụng trong một số trong khoảng IP đó và việc đó sẽ giúp các DHCP client trong một mạng không có DHCP server thấy nhau. DHCP client tiếp tục cố gắng tìm kiếm một DHCP server sau mỗi 5 phút.
IP Lease Selection
DHCP client đã nhận được gói tin DHCPOFFER thì nó sẽ phản hồi broadcast lại một gói DHCPREQUEST để chấp nhận cái offer đó. DHCPREQUEST bao gồm thông tin về DHCP server cấp địa chỉ cho nó. Sau đó, tấc cả DHCP server khác sẽ rút lại các offer (trường hợp này là trong mạng có nhiều hơn 1 DHCP server) và sẽ giữ lại IP address cho các yêu cầu xin IP address khác.
IP Lease Acknowledgement
DHCP server nhận được DHCPREQUEST sẽ gởi trả lại DHCP client một DHCPACK để cho biết là đã chấp nhận cho DHCP client đó thuê IP address đó. Gói tin này bao gồm địa chỉ IP và các thông tin cấu hình khác (DNS server, WINS server... ). Khi DHCP client nhận được DHCPACK thì cũng có nghĩa là kết thúc quá trình "tìm kiếm và xin sỏ" của mình.
(Tấc cả việc trao đổi thông tin giữa một DHCP server và DHCP client sẽ sử dụng UDP port là 67 và 68 (User Datagram Protocol). Một vài switch sẽ không cho phép các gói tin trao đổi theo kiểu broadcast đi qua, cho nên bạn cần phải config những switch này để được broadcast qua những port này)


Phần 3 (cơ chế tự động refresh lại lease time)

Bây giờ ta coi như là DHCP client đã lease được một IP address rồi. Theo mặc định của DHCP server thì mỗi IP lease chỉ được có 8 ngày. Nếu theo như mặc định (8 ngày) thì một DHCP client sau một khoảng thời gian là 50% (tức là 4 ngày) nó sẽ tự động xin lại IP address với DHCP mà nó đã xin ban đầu. Nó DHCP client lúc này sẽ gởi một sẽ gởi một DHCPREQUEST trực tiếp (unicast) đến DHCP server mà nó đã xin ban đầu.
Nếu mà DHCP server đó "còn sống", nó sẽ trả lời bằng một gói DHCPACK để renew (cho thuê mới lại) tới DHCP client, gói này bao gồm thông các thông số cấu hình mới cập nhật nhất trên DHCP server. Nếu DHCP server "đã chết", thì DHCP client này sẽ tiếp tục sử dụng cấu hình hiện thời của nó. Và nếu sau 87.5%(7 ngày) của thời gian thuê hiện thời của nó, nó sẽ broadcast một DHCPDISCOVER để update địa chỉ IP của nó. Vào lúc này, nó không kiếm tới DHCP server ban đầu cho nó thuê nữa mà nó là sẽ chấp nhận bất cứ một DHCP server nào khác.
Nếu thời gian lease đã hết, thì client sẽ ngay lập tức dừng lại việc sử dụng IP address lease đó. Và DHCP client sau đó sẽ bắt đầu tiến trình thuê một địa chỉ như ban đầu.
Chú ý: khi bạn khởi động (restart) lại DHCP client thì nó sẽ tự động renew lại IP address mà trước khi nó shut down.
Vậy nếu khi ta có một sự thay đổi về cấu hình trên DHCP server mà ta muốn nó có tác dụng đến các client ngay lập tức thì phải làm sao?, chẳng lẽ phải đợi nó hết 50% à? (như vậy thì hơi bị... mỏi cổ). Ta có thể renew một IP lease "bằng tay" đối với DHCP client như sau: vào run, đánh command --> đánh lệnh là ipconfig /renew. Khi đó nó sẽ gởi một DHCPREQUEST đến DHCP server để update thông tin về cấu hình, và thời gian lease mới. Và ngược lại, nếu ta không muốn lease cái IP address này nữa ta có thể đánh lệnh ipconfig /release. Lúc này, nó sẽ gởi đến DHCP server một DHCPRELEASE. Sau lệnh này, client sẽ không còn liên lạc với network bằng TCP/IP nữa.


Phần 4 (Ủy quyền (authorize) một DHCP service)

Tại sao phải authozie một DHCP???
Bạn phải ủy quyền một DHCP server trước khi nó có thể thực hiện được việc cho DHCP client thuê. Việc yêu cầu ủy quyền cho các DHCP server sẽ ngăn chặn việc các DHCP server có khả năng cung cấp các địa chỉ IP không hợp lệ cho các client. Để thực hiện được việc này bạn phải logon bằng user mà nó có quyền thực hiện, cụ thể là user đó phải nằm trong group Enterprise Admins.
(chú ý: chỉ có DHCP server chạy trên Windows 2000 Server là kiểm tra việc cấp quyền. Các DHCP server khác (không chạy trên nền Windows 2000 server) vẫn có thể thực hiện được mặc dù chúng là không được ủy quyền)
Việc kiểm tra của các DHCP server không được xác thực:
Để việc authorize DHCP hoạt động chính xác, bạn phải cấu hình network để mà khi một dich vụ (service) DHCP bắt đầu (start), nó gửi ra ngoài một gói DHCP information (DHCPINFORM) đến địa chỉ local broadcast (hay nói cách khác là nó sẽ gởi đi hết các máy trong cùng một network). Sau đó, các DHCP server khác sẽ phản hồi lại một gói DHCP acknowledgement (DHCPACK) cái chứa thông tin về một Active Directory directory service root domain (dịch theo nguyên văn là: miền dich vụ thư mục gốc Active Directory) được nhận biết bởi mỗi DHCP server. DHCP server này tiếp tục khởi tạo DHCP service sau đó liên hệ với domain controller trong mỗi domain mà nó nhận ra. Nó truy vấn Active Directory cho một danh sách các DHCP server mà hiện tại đã được authorize. Nếu DHCP server đã được authorize, DHCP service trên máy đó mới bắt đầu hoạt động. Nếu DHCP server là không được authorize thì DHCP service sẽ log (ghi lại) một error trong system log (các bạn có thể tìm thấy trong Administrative Tools/Event log) và nó sẽ bỏ qua tấc cả các yêu cầu của client.
Để authorize một DHCP server:
Mở DHCP từ Administrative Tools, trong console tree, right click vào DHCP, sau đó click Manage authorized servers. Trong Manage authorized servers chọn Authorize. Trong Authorize DHCP Server, nhập vào tên hoặc địa chỉ IP của DHCP muốn authorize cho nó, và OK --> Click Yes để finish.

hihiiii dài quá nhỉ!?, nhưng vẫn còn nhiều ở phía trước đó, đã bảo là full rồi mà lại 09.gif


Phần 5(cấu hình một DHCP server)
Bên trên tôi đã nêu ra khá đầy đủ (nếu không muốn nói là full) về cách hoạt động bên trong giữa một DHCP server và một DHCP client. Bây giờ ta nói tiếp đến việc cấu hình cho một DHCP server.

Tạo và cấu hình một Scope:
Scope là một khoảng IP hợp lệ mà ta đã xác định trên DHCP server và khoảng này dùng để cung cấp cho các client có yêu cầu thuê địa chỉ. (xin nói thêm một chút là bạn có thể sủ dụng netsh command để mà config cho DHCP, tuy hay nhưng mà hơi phức tạp, nếu bạn muốn tìm hiểu nó thì vào màn hình command (DOS) để tìm hiểu thêm).
Scope Options: bạn cũng có thể cấu hình một scope với các sự lựa chọn để mà một DHCP server có thể bổ sung thêm vào thông tin đi cng với địa chỉ IP cho thuê. Như là, bạn có thể cấu hình một scope để cung cấp default gateway. Thông tin có thể thay đổi này được gọi là một scope option.
Client Reservations: bạn cũng có thể cấu hình một scope để mà DHCP server thường xuyên cung cấp cho cùng một địa chỉ IP đến một máy cụ thể nào đó. Ví dụ như, bạn có thể giữ lại một IP address cho một máy và máy này cần có một địa chỉ IP cố định (như là DNS server hoặc là print server chẳng hạn), bởi vì các máy khác sẽ là cấu hình để connect tới DNS server bằng địa chỉ IP của DNS server này. Sự cung cấp địa chỉ IP lâu dài này được gọi là client reservations.
Cấu hình:
Để bắt đầu cấu hình một New Scope wizard, mở DHCP từ Administrative Tools, right click vào tên của DHCP server mà bạn muốn tạo ra New Scope và click New Scope. Ta sẽ có mô tả bảng thông số khi bạn tạo một new scope bằng New Scope Wizard như sau:
+ Name: Tên của scope.
+ Description: sự mô tả hay là nói rõ về cái scope bạn định tạo.
+ Start IP address và End IP address: xác định một range của các địa chỉ mà DHCP server có thể cấp cho từ scope này. Để ngăn chặn các vấn đề duplicate (trùng) địa chỉ IP, không nên dùng cùng một địa chỉ IP trong hơn một scope. (ví dụ: Start IP address: 192.168.1.1, End IP address: 192.168.1.254)
+ Length hoặc Subnet mask: subnet mask để cấp cho DHCP client. Để cấu hình thông số này, nhập vào số bít mà nó làm subnet mask, hoặc là IP address của subnet mask (ví dụ: ứng với Start IP address bên trên thì Length là 24, hoặc subnet mask là: 255.255.255.0)
+ Exclussion address range (optional): bạn có thể xác định một hoặc nhiều hơn các range để loại ra từ scope. Những địa chỉ IP loại trừ này là không được cấp cho các DHCP client và dùng để tránh việc trùng IP address của các máy đóng vai trò như là một print server.
+ Lease duration: như đã đề cập ở trước đó là khoảng thời gian mà DHCP client được thuê trong khoảng thời gian là ngày, giờ, phút. Giá trị mặc định của nó là 8 ngày. Để có thể sửa lại được khoảng thời gian cho thuê là unlimited (vô thời hạn), bạn phải cấu hình scope properties sau khi đã tạo ra new scope bởi vì wizard không cung cấp option để cấu hình một unlimited scope.
(chú ý: sau khi tạo scope, bạn không thể thay đổi subnet mask mà bạn đã định. Để thay đổi thông tin scope, bạn phải delete scope và tạo lại scope mới với thông tin chính xác)
Các thuận lợi và trở ngại của việc thay đổi một khoảng thời gian thuê mặc định (8 ngày)
+ Giảm bớt thời gian thuê (< 8 ngày chẳng hạn): việc làm giảm thời gian thuê này cũng có cái hay là bạn sẽ cập nhật được thông tin cấu hình một khi có sự thay đổi một cách thường xuyên. Nhưng bên cạnh đó, nó cũng phát sinh ra vấn đề như sau, đó là sẽ dễ dẫn tới sự network traffic, và nếu DHCP server này "chết tạm thời" rồi thì sẽ ra sao, không được cấp IP khác cho nó chứ sao nữa.
+ Tăng thời gian thuê(>8 ngày chẳng hạn): nó sẽ ngược lại với việc giảm thời gian thuê, có nghĩa là nó sẽ làm giảm network traffic, sẽ tiếp tục hoạt động nếu DHCP server "chết" trong khoảng thời gian dài (down xuống để sửa chữa chẳng hạn). Nhưng việc này sẽ làm cho việc cập nhật sự thay đổi các thông tin sẽ không thường xuyên.
+ Không giới hạn thời gian thuê (unlimited): việc unlimited sẽ giúp cho mạng của ta chỉ bị network traffic ngay khi máy khởi động và cũng có nghĩa là nó chỉ cập nhật thông tin cấu hình lại mỗi khi nó được khởi động lại mà thôi.
Kích hoạt một scope (Activating):
Sau khi bạn tạo một scope, nó vẫn chưa hoạt động (chưa thể cấp IP address) bạn phải kích hoạt nó. Để kích hoạt một scope, trong DHCP, right click vào cái scope mà bạn vừa mới tạo và click Activate.
(chú ý: để chắc rằng tấc cả các máy client nhận đúng thông tin cấu hình, bạn phải thiết lập các scope option cho đúng trước khi kích hoạt nó)



Phần 6 (cấu hình DHCP server (tiếp theo) )

Cấu hình một scope với các option:
Bạn có thể cấu hình một scope để cung cấp các dạng thông tin cho DHCP lease. Ví dụ như là cấu hình một DHCP server và cung cấp cho nó địa chỉ của router để cho phép các client liên lạc được với nhau thông qua một subnet. Như bên trên, khi tạo một New Scope Wizard sẽ có các option để chọn như là router (Default Gateway), Domain name, DNS và WINS server.
(*)Các option được hỗ trợ bởi DHCP:
+ Địa chỉ IP của router: để cung cấp thông tin này, ta chỉnh 003 Router với IP address của một router mặc định. Router này thông thường được coi là một default gateway.
+ Địa chỉ IP của một hoặc nhiều tên DNS của các server có hiệu lực tới các client. Để cung cấp thông tin này, ta cấu hình 006 DNS Servers với IP address của một hoặc nhiều DNS server.
+ Tên miền của DNS: một tên miền DNS định nghĩa miền mà máy đó thuộc về. Các máy client có thể sử dụng thông tin này để update một DNS server. Để cung cấp thông tin này, cấu hình 015 DNS Domain Name với tên miền DNS đó.
+ Địa chỉ IP của một hay nhiều WINS server có hiệu lực tới các client: các client sử dụng một WINS server cho việc giải tên NETBIOS (Network Báic Input/Ouput System). Để cung cấp thông số này, cấu hình 044 WINS/NBNS Servers với một địa chỉ IP của một hay nhiều WINS server.
+ Sự giải tên từ NetBIOS qua TCP/IP: để đưa ra thông tin này, cấu hình 046 WINS/NBT node type với kiểu NetBIOS thích hợp. Kiểu giải tên xác định yêu cầu của các client sử dụng các server tên NetBIOS và sẽ broadcast đẻ giải tên từ tên NetBIOS sang IP address.
(*) Cấu hình việc thêm vào một scope option:
+ Mở DHCP từ Administrative Tools. Trong console tree, click vào tên của DHCP server mà bạn muốn thêm vào scope options.
+ Trong phần mở rộng của console tree, click vào Scope Options, và click Configure Options.
+ Trong hộp thoại Scope Options, trên General tab, trong hộp Available Options, chọn check box đến bên trái option mà bạn muốn.
+ Trong hộp Data entry, xác định thông tin cấu hình thích hợp cho option.
(*) Cố định một địa chỉ IP cho các client:
Tại sao cần phải cố định một IP address cho một client? Điều này là cần thiết?
Bạn cấu hình một địa chỉ cố định cho các client để giữ lại một địa chỉ xác định cho một máy DHCP client để mà các máy clien thường xuyên có cùng một địa chỉ. Ví dụ, bạn muốn cố định một IP address cho một máy làm Printer server hay là web server chẳng hạn.
(chú ý: nếu mà trong mộ hình mạng của mình có nhiều hơn một DHCP server thì bạn phải cấu hình địa chỉ cố định đó cho DHCP client đó ở mỗi DHCP server. Điều này ngăn chặn việc client nhận được địa chỉ IP khác từ một DHCP server khác.)
Để cấu hình một địa chỉ cố định cho một client:
+ Mở DHCP từ Administrative Tools menu. Trong nhánh console, mở rộng server mà bạn muốn config, mở rộng scope mà bạn muốn thêm vào đó một địa chỉ cố định và sau đó click và Reservations
+ Right click vào Reservation và click vào New Reservation. Trong hộp thoại New Reservation, trong Reservatopm name, nhập tên để xác nhận client đó (tên gì cũng được, nhatrangriver chẳng hạn).
+ Trong hộp IP address. đánh vào địa chỉ IP mà bạn muốn giữ lại cho một client. (ví dụ: 192.168.1.111 chẳng hạn)
+ Trong hộp MAC address, đánh vào địa chỉ MAC (Media Access Control) của card mạng của client mà mình muốn giữ lại IP cho client đó. (cái này mình đã đề cập trong phần 2 rồi, nhưng nhớ là bỏ mấy đấu "-" đi, ví dụ địa chỉ MAC là: 00a024e2b01a, và nhớ đánh chính xác MAC address nếu muốn giữ lại IP address cho đúng client)
+ Trong hộp Comment, đánh một lời chú thích cho client đó (ví dụ: This is Web server)
+ Trong hộp Supported types, click chọn phương pháp mà client sử dụng, và sau đó click vào Add. (ở đây BOOTP được dùng khi các client không thuộc về dòng hệ điều hành của Microsoft, ví dụ như khi bạn muốn Remote Installation Services (RIS) (cài đặt các dịch vụ từ xa) thì bạn sẽ phải sử dụng BOOTP thay vì DHCP.)