搭建dhcp服務
一、實現DHCP服務
1.主機獲取網路配置可以通過兩種方式:
1)靜態指定
2)動態獲取
- bootp:boot protocol, MAC與IP一一靜態對應
- dhcp:增強的bootp,支援靜態和動態
2.DHCP工作原理
DHCP: Dynamic Host Configuration Protocol,動態主機配置協議
UDP協議,C/S模式,dhcp server:67/udp,dhcpv4 client :68/udp,dhcpv6 client:546/udp
主要用途:
- 用於內部網路和網路服務供應商自動分配IP地址給使用者
- 用於內部網路管理員作為對所有電腦作集中管理的手段
- 自動化安裝系統
- 解決IPV4資源不足問題
3.DHCP實現
注意:實現DHCP服務前,先將網路已有DHCP服務,如:vmware中的DHCP關閉,訪止衝突
1)DHCP服務的實現軟體:
- dhcp(CentOS 7 之前版本) 或 dhcp-server(CentOS 8 中的包名)
- dnsmasq:小型服務軟體,可以提供dhcp和dns功能
2)DHCP相關檔案組成
dhcp或dhcp-server 包檔案組成
/usr/sbin/dhcpd dhcp服務主程式 /etc/dhcp/dhcpd.conf dhcp服務配置檔案 /usr/share/doc/dhcp-server/dhcpd.conf.example #dhcp服務配置範例檔案/usr/lib/systemd/system/dhcpd.service #dhcp服務service檔案 /var/lib/dhcpd/dhcpd.leases 地址分配記錄
dhcp-client客戶端包
/usr/sbin/dhclient #客戶端程式
/var/lib/dhclient #自動獲取的IP資訊
windows 工具
ipconfig /release #釋放DHCP獲取的IP,重新申請IP
ipconfig/renew #重新整理租約,續約
3)DHCP伺服器配置檔案
幫助參考:man 5 dhcpd.conf
注意:
- DHCP伺服器本身採用靜態IP
- 必須配置和DHCP網絡卡的靜態IP所在網段的subnet 段,否則DHCP服務無法啟動
/etc/dhcp/dhcpd.conf 格式
全域性配置
subnet {
...
}
host {
}
檢查語法命令:service dhcpd configtest (CentOS 6 之前版本支援)
4)DHCP配置檔案其它配置選項:
- next-server:提供引導檔案的伺服器IP地址
- filename: 指明引導檔名稱
範例:在linux搭建DHCP服務(centos8)
[root@centos8 ~]# yum -y install dhcp-server
檢視裡面包含的檔案
[root@centos8 ~]# rpm -ql dhcp-server
將服務啟動
[root@centos8 ~]# systemctl enable --now dhcpd
[root@centos8 ~]# systemctl status dhcpd
發現出事了,竟然失敗了,我們檢視日誌分析原因
[root@centos8 ~]# cat /var/log/messages
還是配置檔案出了問題,我們檢視其配置檔案
[root@centos8 ~]# vim /etc/dhcp/dhcpd.conf
果然,裡面什麼都沒有,只有幾行註釋,所以我們要自己配置,我們可以參考現成的檔案在註釋的第三行,將其拷過來並替代了
[root@centos8 ~]# cp /usr/share/doc/dhcp-server/dhcpd.conf.example /etc/dhcp/dhcpd.conf
當然,我們再次重啟服務
發現依舊起不來,所以我們還要對其進行修改,根據上面日誌分析得知是確實了子網定義,將其修改即可
[root@centos8 ~]# vim /etc/dhcp/dhcpd.conf
再次嘗試啟動,發現起來了
檢視其監聽埠
[root@centos8 ~]# ss -ntul
但是我們還需要再次修改配置檔案,分配地址
[root@centos8 dhcp]# vim /etc/dhcp/dhcpd.conf
重啟服務:
[root@centos8 ~]# systemctl restart dhcpd
[root@centos8 ~]# systemctl status dhcpd
我們可以開始獲取地址:
重啟網絡卡:
nmcli con reload nmcli con nmcli con up "System eth0"
拿到地址:
當然作為dhcp伺服器來講還需要知道誰從本服務端獲取地址
在/var/lib/dhcpd/目錄下有個dhcpd.leases的檔案就可以檢視
[root@centos8 ~]# cat /var/lib/dhcpd/dhcpd.leases
至此dhcp服務搞定!
擴充套件:當然我們在一個機器上既可以設定一個靜態ip,又就可以加一個dhcp的ip,只需開啟一個叫dhclient的程式
[root@centos7 ~]# man dhclient
-d 前臺方式執行
[root@centos7 ~]# dhclient -d
已經獲取到了193.168.93.162的地址
所以linux裡是可以一個網絡卡既有靜態地址同時又有自動獲取地址,但是一般不這麼幹。
範例:固定dhcp獲取的地址
修改配置檔案/etc/dhcp/dhcpd.conf,追加,將目標主機mac地址寫上,ip按需給,也可以不在範圍內
[root@centos8 ~]# vim /etc/dhcp/dhcpd.conf
重啟dhcpd服務
[root@centos8 ~]# systemctl restart dhcpd
在centos7上重新執行dhclient程式,重新申請
[root@centos7 ~]# dhclient -d
[root@centos7 ~]# ip a
完成。
記錄於2022-3-24-20:49 weilan