- Bài 1 : Mạng và Mô hình tham chiếu
- Bài 2 : Chi tiết các lớp trong Mô hình tham chiếu – Application và Transport
- Bài 3 : Chi tiết các lớp trong Mô hình tham chiếu – Network
- Bài 4 : Chi tiết các lớp trong Mô hình tham chiếu – Data Link và Physical
- Bài 5 : Giới thiệu về Router
- Bài 6 : Nguyên lý hoạt động của Switch
- Bài 7 : Định tuyến tĩnh
- Bài 8 : Một số giao thức mạng – ARP
- Bài 9 : Một số giao thức mạng – DHCP
- Bài 10 : Một số giao thức mạng – ICMP
Một host khi kết nối vào mạng, cần phải được thiết lập một cấu hình IP để có thể thực hiện giao tiếp được với các host khác trên hệ thống và truy nhập được Internet. Một cấu hình IP cơ bản nhất cho một host thường bao gồm các thông số sau:
- Địa chỉ IP của host.
- Subnet – mask hoặc Prefix – length của địa chỉ này.
- Địa chỉ IP của default – gateway.
- Địa chỉ IP của DNS – server.
Ví dụ: Trên hình 1 là một giao diện để thiết lập cấu hình IP trên một host sử dụng hệ điều hành Windows.

Hình 1 – Giao diện thiết lập cấu hình IP trên card mạng của hệ điều hành Windows.
Việc thiết lập cấu hình IP cho host như vừa nêu có thể được tiến hành theo một trong hai cách: người dùng tự khai báo các thông số này một cách thủ công hoặc các host sẽ được cấp phát cấu hình IP một cách tự động nhờ giao thức DHCP – Dynamic Host Configuration Protocol. Trong mục này, chúng ta sẽ cùng khảo sát cách thứ hai.
1. Nguyên lý hoạt động của DHCP
DHCP là một giao thức của tầng Application cho phép một thiết bị cấp phát cấu hình IP cho một thiết bị khác. DHCP hoạt động theo mô hình client – server, trong đó, thiết bị “xin” IP đóng vai trò là DHCP client và thiết bị cấp phát IP đóng vai trò là DHCP server. Hoạt động cấp phát IP bằng DHCP được mô tả như trên hình 2:

Hình 2 – Hoạt động cơ bản của DHCP.
- Đầu tiên, khi client kết nối vào mạng và chưa có IP, nó sẽ gửi broadcast gói tin DHCP DISCOVER để tìm kiếm DHCP server trên mạng nội bộ.
Gói tin DHCP này được đóng gói vào một gói UDP với source port là 68 và destination port là 67. Gói UDP đến lượt nó lại được đóng gói vào một gói IP với source IP là 0.0.0.0 và destination IP là 255.255.255.255. - Tiếp theo, khi DHCP Server nhận được thông điệp DISCOVER từ client, nó hồi đáp broadcast về một gói DHCP OFFER. Gói OFFER sẽ đưa ra một cấu hình IP mà server muốn gán xuống cho client.
Gói tin OFFER này được đóng gói vào trong một gói UDP với source port là 67 và destination port là 68. Gói UDP đến lượt nó lại được đóng gói vào một gói IP với source IP là địa chỉ IP của server và destination IP là 255.255.255.255. - Đến lượt nó, client gửi lên cho DHCP server gói DHCP REQUEST. Thông điệp REQUEST của client sẽ cho biết yêu cầu của nó với những thông tin đã được server offer ở bước trước.
Gói REQUEST này sẽ được đóng vào một gói UDP với source port là 68 và destination port là 67. Gói UDP này sẽ được truyền tải trong một gói IP với source IP là 0.0.0.0 và destination IP là 255.255.255.255. - Cuối cùng, server hồi đáp lại cho client gói DHCP ACK để xác nhận cấu hình IP mà client đã request.
DHCP ACK được đóng vào gói UDP với source port là 67 và destination port là 68, được truyền tải trong gói IP có source IP là IP của server và destination IP là 255.255.255.255.Đến đây, client chính thức có cấu hình IP và có thể sử dụng địa chỉ IP được cấp phát để trao đổi dữ liệu. Mỗi cấu hình IP được cấp phát sẽ chỉ có thời hạn trong một khoảng thời gian nhất định, sau khoảng thời gian này, client phải yêu cầu server gia hạn lại cấu hình IP của mình. Trong những lần sau, các thông điệp DHCP được gửi unicast thay vì broadcast như lần cấp phát đầu tiên.
Ghi chú:
DHCP là một application chạy trên nền UDP sử dụng hai port là 67 (phía server) và 68 (phía client).
2. Triển khai DHCP server trên Cisco router
DHCP server có thể được triển khai trên nhiều platform khác nhau như: Windows server, Linux server, các thiết bị mạng, và thậm chí có thể chỉ là một phần mềm riêng lẻ chạy trên máy tính cá nhân của người dùng đầu cuối,… Trong mục này, chúng ta cùng xem xét cách triển khai vai trò DHCP server trên một router Cisco chạy Cisco IOS.
Ví dụ:

Hình 3 – Ví dụ về triển khai DHCP server trên router Cisco.
Trong ví dụ trên hình 3, chúng ta sẽ thực hiện cấu hình để router R1 trở thành DHCP server cấp phát cấu hình IP xuống cho các host thuộc mạng LAN 192.168.1.0/24.
Để cấu hình một router Cisco thành DHCP server, trước hết ta thực hiện bật dịch vụ DHCP trên router:
R1(config)#service dhcp |
Tiếp theo, ta khai báo một pool cho hoạt động DHCP (có thể hiểu pool như một dạng cơ sở dữ liệu mô tả những thông số của cấu hình IP mà ta định cấp phát cho các host thuộc mạng LAN):
R1(config)#ip dhcp pool NET1 R1(dhcp-config)#network 192.168.1.0 /24 R1(dhcp-config)#default-router 192.168.1.1 R1(dhcp-config)#dns-server 8.8.8.8 R1(dhcp-config)#exit |
Trong cấu hình ở trên, ta khai báo một pool tên là “NET1”, pool này bao gồm các thông số như sau:
- Dải địa chỉ IP sẽ cấp phát xuống cho các host là các IP thuộc mạng 192.168.1.0/24 (được chỉ ra trong lệnh “network”).
- Địa chỉ IP của default – gateway sẽ cấp xuống cho các host là 192.168.1.1 (được chỉ ra trong lệnh “default-router”).
- Địa chỉ IP của DNS – server sẽ cấp xuống cho các host là 8.8.8.8 (được chỉ ra trong lệnh “dns-server”).
Tóm lại, trên router thực hiện chức năng DHCP server, chúng ta muốn cấp phát thông số nào xuống cho các client, chúng ta chỉ việc liệt kê hết chúng trong một “cấu hình pool”.
Chúng ta cùng xem xét cách thức cấu hình để thực hiện “xin” IP động bằng DHCP từ một host trong mạng LAN 192.168.1.0/24 của ví dụ trên. Giả thiết rằng các host trong mạng LAN này chạy hệ điều hành Windows, người sử dụng host cần phải đi vào giao diện cấu hình IPv4 cho card mạng Ethernet và thực hiện click chọn như được chỉ ra trên hình 4:

Hình 4 – Thiết lập nhận cấu hình IP từ DHCP trên host chạy Windows.
Trong một số trường hợp, bên cạnh cấu hình trên giao diện đồ họa như trên hình 4, người dùng cũng có thể sử dụng các lệnh xin cấp phát IP động từ giao diện dòng lệnh CMD của Windows:
C:\>ipconfig /release C:\>ipconfig /renew |
Trong đó, lệnh đầu tiên có công dụng xóa bỏ cấu hình IP đã được DHCP server cấp phát trước đó đồng thời thông báo điều này lên cho server để server cập nhật thông tin; lệnh thứ hai có công dụng gửi yêu cầu lên xin server cấp phát lại cấu hình IP.
Sau khi thực hiện cấp phát thành công, host lúc này đã có được cấu hình IP cho hoạt động truy nhập mạng của mình (hình 5):

Hình 5 – Cấu hình IP nhận được từ DHCP server.
Ta có thể kiểm tra trên DHCP server (router R1) rằng nó đã thực hiện cấp phát địa chỉ 192.168.1.2 xuống cho host vừa nêu:
R1#show ip dhcp binding
Bindings from all pools not associated with VRF:
IP address Client-ID/ Lease expiration Type
Hardware address/
User name
192.168.1.2 0100.105a.0cfd.86 Jan 02 1970 12:28 AM Automatic
|
Kết quả show chỉ rõ địa chỉ IP “192.168.1.2” trong pool được cấp phát xuống cho host có Client – ID là “0100.105a.0cfd.86”. Với Cisco IOS, client – id của một host nhận IP từ DHCP được thiết lập bằng cách thêm “01” vào địa chỉ MAC trên card mạng Ethernet của host. Trong ví dụ này, host xin IP có địa chỉ MAC là “0010.5a0c.fd86” trên card mạng (xem hình 5), nên host có DHCP client – ID như vừa nêu.
Một cấu hình IP mà DHCP server cấp phát xuống cho host chỉ có thời hạn nhất định; hết thời hạn này, host phải gửi Request lên server xin gia hạn cấu hình IP này. Ta có thể hiệu chỉnh thời hạn này trên DHCP server tạo bởi Cisco IOS bằng lệnh trên cấu hình pool như sau:
R1(dhcp-config)#lease days hours minutes |
Trong đó:
- Days: số ngày trong thời hạn.
- hours: số giờ trong thời hạn.
- minutes: số phút trong thời hạn.
Mặc định, các tham số này nhận giá trị là “1 0 0”: cấu hình IP do router cấp xuống cho các host sẽ có thời hạn sử dụng trong một ngày; sau một ngày, các host phải xin gia hạn lại cấu hình IP này.
3. DHCP Relay Agent
Trong hoạt động của DHCP đã mô tả trong mục 1 ở trên, chúng ta thấy rằng các thông điệp DHCP đều được trao đổi theo phương thức broadcast qua một data link Ethernet giữa DHCP client và DHCP server. Vì các cổng Ethernet của các router gateway mặc định thực hiện chặn lưu lượng broadcast, nên nếu giữ đúng mô hình hoạt động ở trên, mỗi mạng LAN đều cần phải có một DHCP server riêng biệt để cấp phát IP cho các host của nó. Điều này là bất hợp lý vì các mạng doanh nghiệp ngày nay đều được cấu thành từ rất nhiều mạng Ethernet LAN và ta không thể cứ trên mỗi mạng LAN lại dựng một DHCP server riêng được (sẽ có quá nhiều server phải triển khai). Thay vào đó, các doanh nghiệp thường xây dựng một DHCP server tập trung để cấp phát cấu hình IP cho các host thuộc các mạng LAN khác nhau trong hệ thống mạng. Khi đó, các router gateway của các mạng LAN phải đóng vai trò DHCP Relay Agent để đảm bảo cho hoạt động cấp phát IP bằng DHCP được thông suốt từ DHCP Server đến tất cả các Client thuộc các mạng LAN khác nhau.
Hoạt động của DHCP Relay Agent trên một router gateway được mô tả như trên hình 6:

Hình 6 – Router gateway R1 hoạt động với vai trò DHCP Relay Agent.
Trên hình 6, các host thuộc mạng LAN 192.168.1.0/24 được cấu hình để xin cấp phát IP bằng DHCP. Như đã mô tả trong mục 1 (“Nguyên lý hoạt động của DHCP”), các host này sẽ phải trải qua một tiến trình DHCP gồm 4 bước để có được cấu hình IP:
- Gửi đi gói DHCP Discover để tìm kiếm DHCP server trên mạng LAN.
- Tiếp nhận gói DHCP Offer từ DHCP server.
- Gửi đi DHCP Request để nêu yêu cầu của mình đến Server.
- Cuối cùng, nhận gói DHCP ACK từ DHCP server.
Trong nội bộ mạng LAN, tất cả các gói vừa nêu đều được trao đổi dưới dạng broadcast. Vì công nghệ Ethernet LAN hỗ trợ phương thức truyền dữ liệu broadcast, các gói DHCP do các host gửi đi sẽ được lan truyền đến mọi vị trí trong mạng LAN và nếu DHCP server được cài đặt nội bộ trên LAN, server sẽ tiếp nhận được các gói DHCP này và sẽ phản hồi lại thông tin IP theo quy trình vừa nêu.
Tuy nhiên, trong ví dụ này, DHCP server không được đặt nội bộ trong mạng LAN 192.168.1.0/24 mà lại được đặt tại một vị trí khác trong mạng doanh nghiệp với địa chỉ là 192.168.10.1; các gói tin DHCP broadcast do các host phát ra sẽ bị chặn lại bởi router gateway R1 và không thể lan truyền đi tiếp được. Từ đó, các DHCP client không giao tiếp được với DHCP server nên không nhận được cấu hình IP cho hoạt động truy nhập mạng của mình.
Để giải quyết vấn đề này, router R1 cần được cấu hình bật chức năng DHCP Relay Agent như sau:
R1(config)#interface f0/0 R1(config-if)#ip helper-address 192.168.10.1 <- Địa chỉ IP của DHCP server R1(config-if)#exit |
Khi tính năng Relay Agent trên gateway R1 được bật lên, R1 sẽ tiến hành tiếp nhận tất cả các gói DHCP broadcast đến từ các host, thực hiện chuyển đổi chúng thành các gói unicast và dẫn đường chúng đến DHCP server ở xa. Tiếp đó, khi router R1 nhận được thông tin hồi đáp dạng unicast được trả về từ DHCP server ở xa, nó lại thực hiện chuyển đổi các gói này thành dạng broadcast và phát xuống cho các host trong mạng LAN. Toàn bộ hoạt động này được mô tả trên hình 6 và được diễn giải cụ thể như sau:
- Đầu tiên, host xin cấp phát IP thực hiện phát broadcast gói DHCP Discover, gói này có source IP là 0.0.0.0 và destination IP là 255.255.255.255. Khi R1 nhận được gói Discover dạng broadcast này, nó thực hiện chuyển đổi gói thành dạng unicast với source IP là 192.168.1.1 (địa chỉ IP trên cổng giao tiếp với mạng LAN của R1) và destination IP là 192.168.10.1 (địa chỉ IP của DHCP server được chỉ ra trong lệnh “ip helper-address”). Sau đó, R1 thực hiện tra cứu bảng định tuyến để dẫn đường gói Discover dạng unicast này đi tiếp đến DHCP server thông qua hệ thống mạng doanh nghiệp.
- Khi DHCP server nhận được gói Discover được gửi đến từ Relay Agent R1, nó xử lý gói này rồi phản hồi về một cấu hình IP trong gói DHCP Offer. Điểm khác biệt ở đây là server trả gói Offer về cho Agent dưới dạng gói tin unicast với source IP là 192.168.10.1 và destination IP là 192.168.1.1. Gói unicast này sẽ được hệ thống mạng ở giữa routing để đi về được đến gateway R1. Khi R1 nhận được gói này, nó thực hiện chuyển đổi lại thành dạng broadcast và phát xuống cho host trong LAN. Gói broadcast có source IP là 192.168.1.1 và destination IP là 255.255.255.255.
- Các gói DHCP Request và DHCP ACK được trao đổi trong các bước tiếp theo cũng được router R1 xử lý tương tự như hai loại gói trên.
Kết quả của hoạt động vừa nêu, các host trong mạng LAN nhận được IP bằng DHCP mà không hề biết rằng chúng đang giao tiếp với DHCP server thông qua một Agent mà vẫn chỉ thấy rằng chúng như đang tương tác trực tiếp với một DHCP server nào đó trong LAN.
Ghi chú:
- Từ phân tích ở trên, ta thấy, để lưu lượng DHCP unicast di chuyển được giữa gateway R1 và DHCP server, hệ thống mạng doanh nghiệp trước đó cần phải được cấu hình routing đầy đủ để các gói tin IP có thể đi được từ địa chỉ cổng LAN F0/0 của gateway (192.168.1.1) đến địa chỉ của DHCP server (192.168.10.1) và ngược lại. Do đó, có thể thấy rằng định tuyến đóng vai trò rất quan trọng trong triển khai các ứng dụng và dịch vụ trên hệ thống mạng.
- Chú ý: Với Cisco IOS, câu lệnh bật tính năng DHCP Relay Agent “ip helper-address địa_chỉ_DHCP_server” phải được cấu hình trên cổng router nối xuống mạng LAN chứa các host xin cấp phát IP, ví dụ, trong trường hợp này là cổng F0/0 của R1. Nếu cấu hình trên cổng khác, lệnh này sẽ không có tác dụng.