Sunday, September 29, 2024

Triển khai DHCP Server trên Ubuntu

-

1. Tổng quan.

DHCP (Dynamic Host Configuration Protocol) là một giao thức mạng được sử dụng để cấu hình tự động địa chỉ IP và các thông số mạng khác cho các thiết bị trong mạng. DHCP server là một máy chủ mạng có nhiệm vụ phân phát các địa chỉ IP động cho các máy khách (DHCP clients) và cung cấp các thông số mạng như subnet mask, default gateway, DNS server, v.v.

DHCP relay agent (còn được gọi là DHCP helper) là một thiết bị hoặc phần mềm trung gian được sử dụng để chuyển tiếp các yêu cầu DHCP từ các máy khách trong mạng con tới một DHCP server nằm trên mạng khác. Điều này rất hữu ích khi mạng của bạn được chia thành nhiều phân đoạn (subnet) và bạn chỉ muốn duy nhất một DHCP server phục vụ tất cả các subnet.

Quy trình xin IP của một DHCP client tới DHCP server thông thường bao gồm các bước sau:

  • DHCP client gửi một yêu cầu DHCP (DHCP Discover) trong mạng nội bộ bằng cách broadcast một gói tin DHCP Discover.
  • Bất kỳ DHCP server nào nhận được gói tin DHCP Discover sẽ gửi lại một gói tin DHCP Offer, chứa một địa chỉ IP động và các thông số mạng khác mà DHCP server đó sẵn sàng cấp cho DHCP client.
  • DHCP client nhận gói tin DHCP Offer và chọn một trong các đề xuất được cung cấp bởi DHCP server.
  • DHCP client gửi một yêu cầu xác nhận DHCP (DHCP Request) cho DHCP server đã chọn. Yêu cầu này cho biết rằng DHCP client muốn sử dụng địa chỉ IP và các thông số mạng đã đề xuất.
  • DHCP server nhận yêu cầu DHCP Request và gửi một gói tin DHCP Acknowledge (DHCP ACK) để xác nhận rằng địa chỉ IP đã được cấp và các thông số mạng khác cũng được chấp nhận.
  • DHCP client nhận gói tin DHCP ACK và cấu hình địa chỉ IP và thông số mạng được cung cấp.

Quy trình trên sẽ giúp DHCP client và DHCP server trao đổi thông tin để cấu hình địa chỉ IP và các thông số mạng khác cho các thiết bị trong mạng một cách tự động và hiệu quả.

2. Thực hành.

Để triển khai một DHCP server bằng ISC DHCP Server trên hệ điều hành Linux, bạn có thể làm theo các bước sau:

Bước 1: Cài đặt ISC DHCP Server

  • Mở terminal trên máy chủ Linux của bạn.
  • Cài đặt gói ISC DHCP Server bằng lệnh sau
sudo apt-get update
sudo apt-get install isc-dhcp-server

Bước 2: Cấu hình ISC DHCP Server

  • Mở file cấu hình của ISC DHCP Server bằng trình soạn thảo văn bản, ví dụ: sudo nano /etc/dhcp/dhcpd.conf.
  • Cấu hình các thông số như địa chỉ IP dải DHCP, subnet mask, default gateway, DNS server, vv. Bạn có thể tùy chỉnh các giá trị sau ví dụ:
subnet 192.168.1.0 netmask 255.255.255.0 {
  range 192.168.1.100 192.168.1.200;
  option routers 192.168.1.1;
  option domain-name-servers 8.8.8.8, 8.8.4.4;
}

Trong ví dụ trên, dải IP của DHCP là từ 192.168.1.100 đến 192.168.1.200, địa chỉ IP của gateway là 192.168.1.1, và DNS server sử dụng các địa chỉ 8.8.8.8 và 8.8.4.4.

Đây là ví dụ để cấp DHCP cho các client sử dụng 2 card mạng, do card chính sẽ sử dụng đi internet nên mình sẽ bỏ default route và trỏ static route cho card phụ.

# ddns-update-style none;
# option domain-name "matbao.io";
# option domain-name-servers 8.8.8.8, 1.1.1.1;

default-lease-time 600;
max-lease-time 7200;
log-facility local7;

# These options are used to add static routes
option rfc3442-classless-static-routes code 121 = array of integer 8;
option ms-classless-static-routes code 249 = array of integer 8;

# Publish static a route to 192.168.0.59/32 via 192.168.153.254
subnet 192.168.152.0 netmask 255.255.254.0 {
  range 192.168.152.100 192.168.153.100;
  # option routers 192.168.153.254;
  option rfc3442-classless-static-routes 32, 192, 168, 0, 59, 192, 168, 153, 254;
  option ms-classless-static-routes 32, 192, 168, 0, 59, 192, 168, 153, 254;
}

  host my_client {
    hardware ethernet 00:11:22:33:44:55;
    fixed-address 172.16.1.50;
  }

Nếu bạn muốn thêm nhiều route thì có thể làm theo mẫu này.

subnet 192.168.152.0 netmask 255.255.254.0 {
  range 192.168.152.100 192.168.153.100;
  option rfc3442-classless-static-routes 32, 192, 168, 0, 59, 192, 168, 153, 254, 32, 192, 168, 102, 93, 192, 168, 153, 254;
  option ms-classless-static-routes 32, 192, 168, 0, 59, 192, 168, 153, 254, 32, 192, 168, 102, 93, 192, 168, 153, 254;
}

Trong cấu hình trên, đã được thêm cả hai route tĩnh vào tùy chọn “option rfc3442-classless-static-routes” và “option ms-classless-static-routes” để cấu hình đúng hai route cho mạng con 192.168.152.0/23.

Nếu bạn muốn cấu hình các thông số khác cho route tĩnh, hãy chỉnh sửa các giá trị trong tùy chọn “option rfc3442-classless-static-routes” và “option ms-classless-static-routes” theo yêu cầu của bạn.

  • Lưu và đóng file cấu hình.

Bước 3: Cấu hình các giao diện mạng

  • Mở file cấu hình của giao diện mạng bằng trình soạn thảo văn bản, ví dụ: sudo nano /etc/default/isc-dhcp-server.
  • Đặt giao diện mạng mà bạn muốn DHCP server lắng nghe trên. Ví dụ, nếu giao diện mạng là eth0, hãy đặt giá trị sau:
INTERFACESv4="eth0"
  • Lưu và đóng file cấu hình.

Bước 4: Khởi động và kích hoạt ISC DHCP Server

  • Khởi động ISC DHCP Server bằng lệnh sau:
sudo service isc-dhcp-server start

Để đảm bảo ISC DHCP Server khởi động cùng hệ thống, bạn có thể kích hoạt nó bằng lệnh:

sudo systemctl enable isc-dhcp-server

Bước 5: Kiểm tra và xác nhận

  • Kiểm tra trạng thái của ISC DHCP Server bằng lệnh:
sudo service isc-dhcp-server status
  • Xác nhận rằng DHCP server đã hoạt động và phân phát địa chỉ IP và các thông số mạng khác cho các máy khách trong mạng.

Lưu ý: Quá trình cấu hình DHCP server có thể thay đổi tùy thuộc vào hệ điều hành Linux và phiên bản của ISC DHCP Server mà bạn đang sử dụng. Vui lòng tham khảo tài liệu hướng dẫn cụ thể cho hệ điều hành và phiên bản bạn đang sử dụng để biết thêm chi tiết và tuỳ chỉnh cấu hình theo nhu cầu của bạn.

LEAVE A REPLY

Please enter your comment!
Please enter your name here

4,956FansLike
256FollowersFollow
223SubscribersSubscribe
spot_img

Related Stories