知識儲備
bootp (boot protocol)
早前用於無盤工作站,dhcp的前身
IP初次分配完成,以后固定mac和IP綁定關系
dhcp基礎
獲取IP步驟
step1: Client dhcp discover 發現DHCP服務器 step2: Server dhcp offer 發送給客戶端,攜帶IP/MASK GATEWAY step3: Client 響應最先收到的dhcp offer (因為局域網中可能存在多台DHCP服務器) Client dhcp request 如果地址合法沒有沖突則發送廣播請求DHCP服務器資源 Client 地址沖突則拒絕 step4: Server dhcp ack 回復客戶端
租約:一般獲取到的IP地址的使用時間為2個小時,如果不滿足2個小時的使用時間,那么過1個小時后就必須要再次續約
step1:
Client dhcp request 單播
step2:
地址池中有該可用地址
Server dhcp ack 單播
否則 Server dhcp nack 單播
跨路由器請求DHCP服務器
中間路由器開啟中繼功能,能接收dhcp discaover請求,並單播發送給另一個網絡的DHCP服務器
step1:
Client dhcp discover
step2:
Router 單播發送給DHCP服務器
step3:
Server 單播回應路由器
step4:
Router 回應Client
DHCP軟件包
安裝
重量級軟件包 yum install dhcp
輕量級軟件包 yum install dnsmasq
文件詳解
/etc/dhcp/dhcpd.conf IPV4 DHCP Configuration /etc/dhcp/dhcpd6.conf IPV6 DHCP Configuration /usr/sbin/dhcpd DHCP 服務器 守護進程 不能同時提供IPV4和IPV6服務,需要做特別配置 服務配置文件 CentOS7 /usr/lib/systemd/system/dhcpd.service /usr/lib/systemd/system/dhcpd6.service 服務配置文件 CentOS5.6 /etc/rc.d/init.d/dhcpd /etc/rc.d/init.d/dhcpd6 /usr/sbin/dhcrelay DHCP 中繼服務器 守護進程 不能喝dhcpd同時啟動 服務配置文件 CentOS7 /usr/lib/systemd/system/dhcrelay.service 服務配置文件 CentOS5.6 /etc/rc.d/init.d/dhcprelay
DHCP服務配置
查看主配置文件
[root@localhost ~]# cat /etc/dhcp/dhcpd.conf
#
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp*/dhcpd.conf.example
# see dhcpd.conf(5) man page
#
負責模板文件到/etc/dhcp目錄下
1 cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
配置文件詳解
全局分配配置 指明除地址外的其它分配屬性,它可以定義在全局也能定義在子網、主機中 option domain-name "example.org"; # 默認搜索域,當域名沒有給全時,自動補充搜索域 option domain-name-servers ns1.example.org, ns2.example.org; # 指定DNS服務器 # 不想使用DHCP服務器給定的DNS可以在網卡配置中指定PEERDNS=no 租約時長配置 default-lease-time 600; max-lease-time 7200; 子網分配配置 必須先配置本網絡的DHCP服務 subnet 10.5.5.0 netmask 255.255.255.224 { range 10.5.5.26 10.5.5.30; option domain-name-servers ns1.internal.example.org; option domain-name "internal.example.org"; option routers 10.5.5.1; option broadcast-address 10.5.5.31; default-lease-time 600; max-lease-time 7200; } 主機分配配置 host passacaglia { hardware ethernet 0:0:c0:5d:bd:95; filename "vmunix.passacaglia"; server-name "toccata.fugue.com"; } 其它配置選項 group { filename "Xncd19r"; # 通常是一個TFTPserver next-server ncd-booter; } filename 指明引導文件路徑 next-server IP_ADDR 指定加載引導文件的服務器IP
啟動服務
1 systemctl start dhcp
查看狀態和監聽端口
systemctl status dhcp ss -unlp netstat -unlp 監聽端口 67/udp
DHCP Client 守護進程獲取地址
單台主機上只能啟動一次 dhcpclient -d netstat -unlp 監聽端口 68/udp
查看dhcp分配情況
1 cat /var/lib/dhcpd/dhcpd.leases
