Thursday, November 21, 2024

[Cisco] DHCP

-

Trong bài viết tuần này, chúng ta cùng trao đổi về một giao thức cơ bản được sử dụng  thường xuyên trong các mạng doanh nghiệp: DHCP. 

DHCP – Dynamic Host Configuration Protocol là một giao thức cho phép cấp phát tự  động cấu hình IP cho các host trên một mạng Ethernet LAN. DHCP hoạt động theo mô  hình client – server: các host xin cấp phát IP đóng vai trò là các DHCP client và thiết bị  thực hiện cấp phát IP cho các host đóng vai trò là DHCP server. DHCP server có thể là  một server chuyên dụng trên nền Linux hoặc Window hoặc một thiết bị mạng router,  switch hay firewall. 

Chúng ta cùng điểm qua hoạt động cơ bản của DHCP theo sơ đồ trên hình

Hình 1 – Hoạt động cơ bản của DHCP.

1. Đầ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 bọc trong một gói UDP với source port là 68 và  destination port là 67. Gói UDP đến lượt nó đượ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. 

2. 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 bọc trong một gói UDP với source port là 67 và  destination port là 68. Gói UDP đến lượt nó đượ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.

3. Đế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 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. 

4. 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 cấp phát 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. 

Như thông lệ, chúng ta sẽ cùng thực hiện một bài lab ví dụ để nắm rõ vấn đề.

Sơ đồ 

Hình 2 – Sơ đồ bài lab ví dụ.

Mô tả 

  • Sơ đồ gồm hai router và một PC. PC đấu nối vào một mạng LAN và sẽ được cấp  phát IP một cách tự động từ một DHCP server. 
  • Ta sẽ khảo sát hai trường hợp: DHCP server là router R1 – kết nối trực tiếp với  PC và DHCP server là router R2 – không kết nối trực tiếp với PC. 
  • Trong bài lab này, ta thực hiện cấu hình router Cisco thành một DHCP server  hoặc một DHCP Relay Agent.

Thực hiện 

Bước 1: Cấu hình cơ bản trên các router 

  • Thực hiện đặt địa chỉ IP trên các cổng đấu nối của các router theo quy hoạch IP  được chỉ ra trên hình 2. 
  • Đảm bảo rằng các subnet trên hình 2 có thể đi đến được nhau. 

Cấu hình 

Trong bước này, chúng ta sẽ thực hiện đặt các IP cố định trên các cổng giao tiếp của các  router trên sơ đồ hình 2. 

Trên R1: 

R1(config)#interface f0/0 
R1(config-if)#no shutdown 
R1(config-if)#ip address 192.168.1.1 255.255.255.0 
R1(config-if)#exit 

R1(config)#interface f0/1 
R1(config-if)#no shutdown 
R1(config-if)#ip address 192.168.12.1 255.255.255.252 
R1(config-if)#exit

Trên R2:

R2(config)#interface f0/0 
R2(config-if)#no shutdown 
R2(config-if)#ip address 192.168.12.2 255.255.255.252 
R2(config-if)#exit 

R2(config)#ip route 192.168.1.0 255.255.255.0 192.168.12.1

Kiểm tra 

Ta kiểm tra rằng các địa chỉ đã đi đến được nhau:

Bước 2: Cấu hình R1 làm DHCP server 

  • Thực hiện cấu hình R1 thành DHCP server cấp phát địa chỉ IP cho các host thuộc  mạng 192.168.1.0/24. 
  • Các host trên mạng này sẽ chỉ nhận IP trong dải từ 192.168.1.11 trở đi, 10 địa chỉ  đầu không cấp phát mà sẽ được sử dụng cho gateway và các server sau này của  subnet 192.168.1.0/24. 
  • DHCP server cũng cấp phát cho các host của mạng 192.168.1.0/24 các địa chỉ  default – gateway và DNS – server lần lượt là 192.168.1.1 và 8.8.8.8. 

Cấu hình 

Trên R1:

R1(config)#service dhcp 
R1(config)#ip dhcp excluded-address 192.168.1.1 192.168.1.10 
R1(config)#ip dhcp pool NET1 
R1(dhcp-config)#network 192.168.1.0 255.255.255.0 
R1(dhcp-config)#default-router 192.168.1.1 
R1(dhcp-config)#dns-server 8.8.8.8 
R1(dhcp-config)#exit

Ghi chú 

Để cấu hình một router Cisco thành một DHCP server, trước hết ta thực hiện bật dịch vụ  DHCP trên router bằng lệnh:

R1(config)#service dhcp

Thông thường, dịch vụ này được bật lên một cách mặc định trên các router Cisco nên ta  có thể không cần phải cấu hình. 

Tiếp theo, để router đóng vai trò một DHCP server cấp xuống cho các host cấu hình IP  theo yêu cầu, chúng ta cấu hình một pool DHCP mô tả những yêu cầu đã đặt ra:

R1(config)#ip dhcp pool NET1 
R1(dhcp-config)#network 192.168.1.0 255.255.255.0 
R1(dhcp-config)#default-router 192.168.1.1 
R1(dhcp-config)#dns-server 8.8.8.8 
R1(dhcp-config)#exit

Khi chúng ta sử dụng lệnh “network” trong pool, toàn bộ subnet được khai báo trong câu  lệnh sẽ được lần lượt cấp xuống cho các host. Để loại trừ ra các địa chỉ không cấp phát,  chúng ta sử dụng lệnh:

Vì việc cấp phát các địa chỉ trong pool sẽ được tiến hành từ địa chỉ đầu tiên nên ngay sau  khi khai báo pool nên để tránh hiện tượng cấp phát xong rồi ta mới loại trừ dải địa chỉ để  dành, ta nên cấu hình lệnh loại trừ trước khi khai báo pool cấp phát. 

Sau khi cấu hình xong, chúng ta thực hiện kiểm tra.

Kiểm tra 

Ta có thể để PC tự động thực hiện quá trình xin IP rồi kiểm tra thông số trên card mạng  của PC. Tuy nhiên, trong bước này, ta sẽ cấu hình để PC xóa bỏ cấu hình IP cũ hiện có và  thực hiện xin lại IP mới. Ta thực hiện điều này bằng cách truy nhập vào cửa sổ CMD của  PC và thực hiện các lệnh:

C:\>ipconfig /release 
C:\>ipconfig /renew

Kết quả cấp phát IP trên card mạng của PC (hình 3):

Hình 3 – IP nhận được trên PC.

Ta thấy PC đã nhận được cấu hình IP từ hoạt động DHCP đúng như yêu cầu. 

Ta kiểm tra trên DHCP server R1 để thấy rằng một địa chỉ IP trong pool đã được cấp  phát:

Kết quả show chỉ rõ: địa chỉ 192.168.1.11 đã được cấp phát cho host có Client – ID là  “0130.F9ED.AE0E.A0”. Client – ID là một giá trị dùng để định danh cho Client được  cấp phát IP từ hoạt động DHCP và có thể có nhiều định dạng khác nhau tùy thuộc vào hệ  điều hành được chạy trên client. Với hệ điều hành Microsoft, Client – ID sẽ được xây  dựng từ địa chỉ MAC của card mạng PC bằng cách thêm vào prefix “01”. Trong ví dụ ở  trên, địa chỉ MAC trên card mạng của PC là 30F9.EDAE.0EA0. 

Bước 3: Cấu hình DHCP Relay Agent 

  • Gỡ bỏ cấu hình DHCP đã thực hiện trên R1.
  • Thực hiện cấu hình DHCP theo yêu cầu đã đặt ra ở bước 2 nhưng lần này R2 sẽ  đóng vai trò là DHCP server. 

Cấu hình 

Gỡ bỏ cấu hình DHCP đã thực hiện trên R1:

R1(config)#no ip dhcp excluded-address 192.168.1.1 192.168.1.10
R1(config)#no ip dhcp pool NET1

Cấu hình DHCP server trên R2:

R2(config)#ip dhcp excluded-address 192.168.1.1 192.168.1.10 
R2(config)#ip dhcp pool NET1 
R2(dhcp-config)#network 192.168.1.0 255.255.255.0 
R2(dhcp-config)#default-router 192.168.1.1 
R2(dhcp-config)#dns-server 8.8.8.8 
R2(dhcp-config)#exit

Cấu hình DHCP Relay Agent trên R1:

R1(config)#interface f0/0 
R1(config-if)#ip helper-address 192.168.12.2 
R1(config-if)#exit

Ghi chú 

Bước này xem xét đến tình huống DHCP server không nằm cùng subnet với các host xin  cấp phát IP mà nằm ở một vị trí khác trong hệ thống mạng. Như đã trình bày ở trên, vì  hoạt động DHCP là một hoạt động broadcast nội bộ (sử dụng local broadcast  255.255.255.255) và router mặc định chặn broadcast nên nếu DHCP server đặt ở một vị  trí khác bên ngoài, các host sẽ không thể xin được IP. Giải pháp cho tình huống này là  chúng ta sẽ cấu hình router R1 thành DHCP Relay Agent. Khi R1 nhận được gói tin  DHCP broadcast xin cấp phát IP từ các host, R1 sẽ chuyển gói này thành dạng unicast và  gửi đến DHCP server R2 để xin cấu hình IP. DHCP server R2 đến lượt nó sẽ gửi unicast  cấu hình IP định cấp phát về cho Agent R1 và R1 sẽ chuyển lại thành dạng broadcast rồi  rót xuống cho host trong mạng cần cấp phát IP. 

Để cấu hình R1 thành DHCP Relay Agent, chúng ta vào cổng giao tiếp của R1 với mạng  đang đi xin IP và sử dụng lệnh:

R1(config-if)#ip helper-address 192.168.12.2

Điều kiện đặt ra cho giải pháp này là subnet 192.168.1.0/24 cần cấp phát cấu hình IP và  DHCP server R2 phải đi đến được nhau. Điều này đã được giải quyết trong bước đầu tiên  của bài lab. 

Kiểm tra 

Tương tự như bước 2, chúng ta xóa cấu hình IP hiện có trên PC và thực hiện xin lại IP:

C:\>ipconfig /release 
C:\>ipconfig /renew

Ta kiểm tra rằng IP đã được rót lại xuống cho PC (hình 4):

Hình 4 – PC đã nhận được IP từ R2.

Kết quả hoàn toàn tương tự như ở bước 2, tuy nhiên địa chỉ IP của DHCP server đã được  đổi thành địa chỉ của R2 (192.168.12.2). 

Ta kiểm tra bảng binding DHCP trên R2:

Ta thấy R2 đã thực hiện vai trò DHCP server của mình. 

Trên đây, chúng ta đã cùng nhau trao đổi về hoạt động cơ bản của giao thức DHCP – một  giao thức nền tảng được sử dụng rất phổ biến trong các hệ thống mạng. Trong các bài  viết tới, chúng ta sẽ cùng tiếp tục trao đổi về chủ đề này. 

Cảm ơn các bạn! 

Hẹn gặp lại các bạn trong các bài viết tiếp theo!

Previous article
Next article

LEAVE A REPLY

Please enter your comment!
Please enter your name here

4,956FansLike
256FollowersFollow
223SubscribersSubscribe
spot_img

Related Stories