Cuongquach.com – Hướng dẫn cài đặt và cấu hình DHCP Server trên CentOS 7. Như các bạn biết thì trong một hệ thống mạng doanh nghiệp hay dịch vụ, các thiết bị client như laptop, server, điện thoại,… đều cần có địa chỉ IP để hoạt động kết nối Internet. Nhưng chẳng lẽ chúng ta lại phải đi cấu hình IP cho từng thiết bị sao ?! Ôi thôi thật kinh khủng. Show
Chính vì lẽ đó mà dịch vụ/giao thức DHCP được ra đời với nhiệm vụ cấp phát IP động cho các thiết bị, giảm tải khối lượng công việc cho quản trị viên,… Vậy DHCP là gì ? DHCP Server là chi ? Rồi làm sao để cài đặt một DHCP Server trên CentOS 7 đây ?! Qua bài viết này, chúng ta sẽ cùng tìm hiểu các nội dung cơ bản trên (không tìm hiểu nâng cao). Contents DHCP là gì – DHCP Server là gì ?DHCP (viết tắt của Dynamic Host Configuration Protocol) là một giao thức mạng đã được định nghĩa tiêu chuẩn trong IETF-RFC 2131 . Mục đích chính của giao thức này chính là cung cấp các thông tin như địa chỉ IP, subnet mask, gateway, dns server,… cho các máy tính thiết bị đang kết nối qua thiết bị mạng (có dây và không dây – wifi). Máy chủ dịch vụ đảm nhiệm hoạt động kiểm tra thông tin IP,… và thực hiện trao đổi cấp phát IP động thông qua giao thức DHCP chính là máy chủ dịch vụ DHCP Server. Một DHCP server bao gồm bốn mục chính sau:
Giao thức DHCP hoạt động ra sao ?Quá trình của DHCP sẽ diễn ra với bốn bước cơ bản (hình minh hoạ dưới) như sau:
Đây là mô hình bài lab DHCP Server mà mình hỗ trợ bạn thực hiện với các thông tin như hình dưới. – Vậy ta cần thực hiện cấu hình IP tĩnh cho DHCP Server CentOS 7 trước. Theo như hình cung cấp thì DHCP Server sẽ có giá trị IP là “192.168.100.250” và Subnet Mask là “255.255.255.0” cùng Gateway “192.168.100.1“. Xem thêm: – Cấu hình IP tĩnh trên CentOS 7 1. Cài đặt chương trình dịch vụ DHCP Server trên CentOS 7– Chúng ta sẽ cài đặt gói chương trình DHCP với lệnh “yum“. yum install -y dhcp– Kiểm tra xem gói chương trình “dhcp” đã được cài đặt hay chưa ? Nếu ra các gói “dhcp-*” như dưới đây, tức là đã cài đặt rồi. rpm -qa | grep dhcpdhcp-4.2.5-58.el7.centos.x86_64 dhcp-libs-4.2.5-58.el7.centos.x86_64 dhcp-common-4.2.5-58.el7.centos.x86_64 – Chúng ta sẽ cấu hình cho dịch vụ DHCP khởi động cùng hệ thống (startup service). Tên chương dịch vụ DHCP trên CentOS lúc này sẽ là “dhcpd” (dhcp daemon – dịch vụ DHCP). systemctl enable dhcpdCreated symlink from /etc/systemd/system/multi-user.target.wants/dhcpd.service to /usr/lib/systemd/system/dhcpd.service – Cấu trúc các file/thư mục của dịch vụ DHCP Server mà bạn cần biết:
2. Cấu hình dịch vụ DHCP– Đầu tiên bạn có thể copy file cấu hình config mẫu sẵn có để sử dụng cho cấu hình dịch vụ DHCP. cp -f /usr/share/doc/dhcp-*/dhcpd.conf.example /etc/dhcp/dhcpd.conf– Bạn lưu ý là file cấu hình DHCP Server trên CentOS nằm ở đường dẫn : vi /etc/dhcp/dhcpd.conf– Giờ thì chúng ta cùng tiến hành cấu hình DHCP nào. File cấu hình dịch vụ DHCP sẽ gồm 2 phần cơ bản (không tìm hiểu nâng cao):
Nội dung cấu hình mẫu của DHCP Server (trước khi vào phân tích sâu hơn) cat /etc/dhcp/dhcpd.confoption domain-name "cuongquach.com"; option domain-name-servers ns1.cuongquach.com, ns2.cuongquach.com; default-lease-time 600; max-lease-time 7200; lease-file-name "/var/lib/dhcpd/dhcpd.leases"; authoritative; log-facility local7; subnet 192.168.100.0 netmask 255.255.255.0 { }2.1 Cấu hình toàn cục (global) DHCP Serveroption domain-name "cuongquach.com"; option domain-name-servers ns1.cuongquach.com, ns2.cuongquach.com; default-lease-time 600; max-lease-time 7200; lease-file-name "/var/lib/dhcpd/dhcpd.leases"; authoritative; Chú thích 1 :
Một số config khác dành cho khai báo cấu hình toàn cục DHCP Server. allow bootp; ignore client-updates; deny leasequery; Chú thích 2:
Các cấu hình khác : https://linux.die.net/man/5/dhcpd.conf 2.2 Cấu hình DHCP – Khai báo mạng cấp phát DHCP– Cấu hình lớp mạng và dãi IP được sử dụng để cấp phát IP DHCP. Giả sử mình cho phép sử dụng mạng nội bộ là 192.168.100/24 và dải IP mình sử dụng để cấp phát là từ 192.168.100.10 đến 192.168.100.100 . subnet 192.168.100.0 netmask 255.255.255.0 { }Chú thích 3:
– Bạn hoàn toàn có thể cấu hình nhiều “subnet” trong file cấu hình DHCP. 2.3 Cấp IP DHCP cho 1 host cụ thể– Trường hợp này là bạn đang muốn dành riêng 1 địa chỉ IP trong range IP DHCP cho một máy tính cụ thể trong hệ thống mạng. Máy tính đó có thể là của sếp, của trưởng phòng,.. – Vậy để làm được điều đó, thì DHCP Server trên CentOS cần có được thông tin địa chỉ MAC Address của máy tính của sếp hoặc trưởng phòng. Để khi mà máy tính client đi xin DHCP IP thì DHCP Server sẽ dựa vào địa chỉ MAC trong file cấu hình mẫu như dưới và cấp địa chỉ IP nằm trong giá trị khai báo “fixed-address“. – Phần khai báo cấu hình này nằm trong nội dung cấu hình “subnet” của DHCP Server nhé. subnet 192.168.100.0 netmask 255.255.255.0 { }2.4 Cơ Sở Dữ Liệu IP đã cấp bởi DHCP ServerTrên máy chủ dịch vụ DHCP Server trên CentOS, thì file ‘/var/lib/dhcpd/dhcpd.leases‘ sẽ lưu trữ toàn bộ thông tin về IP đang được cấp phát cho máy tính client. Nếu không có file này thì DHCP Server sẽ không hoạt động. Vì vậy hãy kiểm tra xem có file này trên máy chủ DHCP chưa ?! Nếu chưa thì hãy tạo nó như sau : rpm -qa | grep dhcpdhcp-4.2.5-58.el7.centos.x86_64 dhcp-libs-4.2.5-58.el7.centos.x86_64 dhcp-common-4.2.5-58.el7.centos.x86_64 0 3. Khởi động DHCP Server và set rule firewall– Giờ chúng ta sẽ khởi động dịch vụ DHCP trên CentOS. rpm -qa | grep dhcpdhcp-4.2.5-58.el7.centos.x86_64 dhcp-libs-4.2.5-58.el7.centos.x86_64 dhcp-common-4.2.5-58.el7.centos.x86_64 1 – Tiếp đến chúng ta cần lưu ý firewall rule mở cho port 67 của dịch vụ DHCP. Nếu bạn sử dụng các dịch vụ tường lửa khác thì cần linh động tìm cách mở rule firewall cho port 67 UDP nhé. Ở bài này mình sử dụng iptables firewall làm mẫu. Xem thêm: – Danh sách lệnh IPTABLES quản lý firewall iptables trên Linux rpm -qa | grep dhcpdhcp-4.2.5-58.el7.centos.x86_64 dhcp-libs-4.2.5-58.el7.centos.x86_64 dhcp-common-4.2.5-58.el7.centos.x86_64 2 hoặc dịch vụ tường lửa “firewalld” . rpm -qa | grep dhcpdhcp-4.2.5-58.el7.centos.x86_64 dhcp-libs-4.2.5-58.el7.centos.x86_64 dhcp-common-4.2.5-58.el7.centos.x86_64 3 – Kiểm tra xem có dịch vụ DHCPd đã được listen socket port 67 udp chưa nhé. rpm -qa | grep dhcpdhcp-4.2.5-58.el7.centos.x86_64 dhcp-libs-4.2.5-58.el7.centos.x86_64 dhcp-common-4.2.5-58.el7.centos.x86_64 4 – Kiểm tra xem có tiến trình dịch vụ DHCPd đang được chạy trên hệ thống hay không với lệnh “ps“. rpm -qa | grep dhcpdhcp-4.2.5-58.el7.centos.x86_64 dhcp-libs-4.2.5-58.el7.centos.x86_64 dhcp-common-4.2.5-58.el7.centos.x86_64 5 4. Cấu hình DHCP phía Client4.1 DHCP Client trên CentOS/RHEL/Fedora– Bây giờ bạn chỉ cần cấu hình card mạng trên CentOS sử dụng chức năng DHCP để xin cấp địa chỉ IP sử dụng. Trước tiên bạn cần xác định chính xác card mạng interface nào đang nằm cùng lớp mạng thiết bị hoặc VLAN với server DHCP nhé. Giả sử mình xác định là card mạng “eth0“. rpm -qa | grep dhcpdhcp-4.2.5-58.el7.centos.x86_64 dhcp-libs-4.2.5-58.el7.centos.x86_64 dhcp-common-4.2.5-58.el7.centos.x86_64 6 Chú thích: + BOOTPROTO : đặt giá trị là “dhcp” thì khi khởi động card mạng sẽ quy ước cho card mạng sử dụng giao thức DHCP broadcast đi xin cấp địa chỉ DHCP mới. – Giờ thì bạn khởi động lại dịch vụ mạng và chờ kết quả nào. rpm -qa | grep dhcpdhcp-4.2.5-58.el7.centos.x86_64 dhcp-libs-4.2.5-58.el7.centos.x86_64 dhcp-common-4.2.5-58.el7.centos.x86_64 7 – Kiểm tra địa chỉ IP đã được cấp chưa. rpm -qa | grep dhcpdhcp-4.2.5-58.el7.centos.x86_64 dhcp-libs-4.2.5-58.el7.centos.x86_64 dhcp-common-4.2.5-58.el7.centos.x86_64 8 4.2 DHCP Client trên Ubuntu/Debian– Kế tiếp chúng ta sẽ cấu hình card mạng trên Ubuntu/Debian xin cấp địa chỉ IP từ DHCP Server nhé. Giống như trên, thì bạn cần xác định đúng card mạng mà bạn muốn chạy DHCP. rpm -qa | grep dhcpdhcp-4.2.5-58.el7.centos.x86_64 dhcp-libs-4.2.5-58.el7.centos.x86_64 dhcp-common-4.2.5-58.el7.centos.x86_64 9 – Khởi động lại card mạng eth0 trên Ubuntu/Debian nào. systemctl enable dhcpdCreated symlink from /etc/systemd/system/multi-user.target.wants/dhcpd.service to /usr/lib/systemd/system/dhcpd.service 0 – Kiểm tra địa chỉ IP đã được cấp chưa. rpm -qa | grep dhcpdhcp-4.2.5-58.el7.centos.x86_64 dhcp-libs-4.2.5-58.el7.centos.x86_64 dhcp-common-4.2.5-58.el7.centos.x86_64 8 4.3 DHCP Client trên Windows– Vào “Control Panel > Network and Ethernet > Network and Sharing Center > Change Adapter Settings“. – Chuột phải vào biểu tượng card mạng bạn muốn cấp DHCP IP, chọn “Properties“. Chọn “Internet Protocol Version 4 (TCP/IP) > Properties“. – Chọn “Obtain an IP Address automatically“. Lúc này máy tính Windows sẽ tự động DHCP Broadcast để xin cấp địa chỉ IP. hoặc gõ các lệnh sau trên Terminal Command Prompt – Windows. systemctl enable dhcpdCreated symlink from /etc/systemd/system/multi-user.target.wants/dhcpd.service to /usr/lib/systemd/system/dhcpd.service 2 5. Troubleshooting dịch vụ DHCP – Xử lý sự cố dịch vụ DHCP– Để xem những địa chỉ IP đã được cấp phát bởi DHCP Server trên CentOS ta sẽ xem ở file ‘dhcpd.leases‘. systemctl enable dhcpdCreated symlink from /etc/systemd/system/multi-user.target.wants/dhcpd.service to /usr/lib/systemd/system/dhcpd.service 3 – Xem log quá trình cấp phát của dịch vụ DHCP (DHCP Discovery, DHCP ACK,…) thì xem lại file log “messages“. systemctl enable dhcpdCreated symlink from /etc/systemd/system/multi-user.target.wants/dhcpd.service to /usr/lib/systemd/system/dhcpd.service 4 – Kiểm tra xem DHCP Discovery từ máy tính client có chạy vào được DHCP Server CentOS hay không ?! Ta sử dụng chương trình bắt gói tin “tcpdump” và capture port udp 67 trên interface mà DHCP Server Listen nhé. systemctl enable dhcpdCreated symlink from /etc/systemd/system/multi-user.target.wants/dhcpd.service to /usr/lib/systemd/system/dhcpd.service 5 Vậy là thông qua bài viết này, bạn hoàn toàn có thể làm chủ dịch vụ DHCP Server trên CentOS rồi. Còn chờ gì nữa mà không thực hành cài đặt và cấu hình DHCP Server trên CentOS 7 nào. Nếu có bất kì thắc mắc gì, đừng ngại comment ngay bên dưới cùng “Cuongquach.com” nhé. |