DHCP概念提出
為了實(shí)現(xiàn)網(wǎng)絡(luò)可以動(dòng)態(tài)合理地分配IP地址給主機(jī)使用拗胜,提出了DHCP協(xié)議。
DHCP(Dynamic Host Configuration Protocol,動(dòng)態(tài)主機(jī)配置協(xié)議)是一個(gè)局域網(wǎng)的網(wǎng)絡(luò)協(xié)議柑潦,使用UDP協(xié)議工作享言。
DHCP相對(duì)于靜態(tài)手工配置的優(yōu)點(diǎn):
(1)效率高
(2)靈活性強(qiáng)
(3)易于管理
把一個(gè)主機(jī)接入到tcp/ip網(wǎng)絡(luò),要為其配置網(wǎng)絡(luò)參數(shù):
- IP/mask:僅有此項(xiàng)時(shí)渗鬼,只能進(jìn)行本地通信览露,不能跨網(wǎng)段通信
- Gateway:非本地通信時(shí)配置
- DNS Server:可實(shí)現(xiàn)基于主機(jī)名通信
參數(shù)配置方式:
- 靜態(tài)指定
- 動(dòng)態(tài)分配
(1)BOOTP:BOOTP用于無(wú)盤工作站的局域網(wǎng)中,可以讓無(wú)盤工作站從一個(gè)中心服務(wù)器上獲得IP地址譬胎。通過(guò)BOOTP協(xié)議可以為局域網(wǎng)中的無(wú)盤工作站分配動(dòng)態(tài)IP地址差牛,這樣就不需要管理員去為每個(gè)用戶去設(shè)置靜態(tài)IP地址。
(2)DHCP:引入了“租約”的BOOTP堰乔;也可實(shí)現(xiàn)為特定主機(jī)保留某固定地址偏化;
DHCP:動(dòng)態(tài)主機(jī)配置協(xié)議
- DHCP服務(wù)器能夠?yàn)榇罅恐鳈C(jī)分配IP地址,并能夠集中管理
- DHCP采用C/S模式
監(jiān)聽(tīng)的端口:
服務(wù)端:udp/67 (源端口:接收客戶端請(qǐng)求的)
客戶端:udp/68(目的端口:向客戶端發(fā)送請(qǐng)求成功或失敗的回應(yīng))
DHCP基礎(chǔ)工作過(guò)程
免費(fèi)ARP用于檢測(cè)沖突的IP地址镐侯,如果發(fā)現(xiàn)沖突IP地址侦讨,客戶端會(huì)回Decline報(bào)文,重新發(fā)Discover報(bào)文苟翻,請(qǐng)求新的IP地址服務(wù)器端收到Decline報(bào)文后韵卤,會(huì)把剛才的IP地址列為沖突地址,當(dāng)服務(wù)器沒(méi)有空閑地址可用的時(shí)候崇猫,才會(huì)從沖突地址中選擇進(jìn)行分配怜俐。
DHCP租期更新
一般租約到達(dá)一半時(shí)50%,就開(kāi)始續(xù)租邓尤;如果找不到dhcp,就續(xù)租到75%贴谎,再找不到就續(xù)租87.5%汞扎,再找不到dhcp就重新發(fā)起dchp請(qǐng)求;
IP地址釋放
若IP租約到期前沒(méi)有收到DHCP服務(wù)器響應(yīng)擅这,客戶端會(huì)停止使用此IP地址澈魄。
若DHCP客戶端不再使用分配的IP地址,也可以主動(dòng)向DHCP服務(wù)器發(fā)送DHCP Release報(bào)文仲翎,釋放該地址痹扇。
注意:dhcp服務(wù)器必須先提供本地dhcp服務(wù),才能可以給另一網(wǎng)絡(luò)提供服務(wù)溯香,否則不允許直接向另一網(wǎng)絡(luò)提供dhcp服務(wù)鲫构;每一個(gè)地址分配的范圍叫一個(gè)作用域;
dhcp服務(wù)器可提供的服務(wù)不止是分配網(wǎng)絡(luò)地址玫坛,還可提供文件路徑结笨;
DHCP服務(wù)
Linux DHCP協(xié)議的實(shí)現(xiàn)程序:
- dhcp:(ISC,named):只提供能提供dhcp服務(wù);
- dnsmasq:dhcp & dns :輕量化炕吸,沒(méi)有配置文件伐憾,通過(guò)命令行+選項(xiàng)參數(shù)進(jìn)行指定;
dhcp程序包:提供兩個(gè)程序赫模,二者不同同時(shí)啟用树肃;
dhcpd:提供dhcp服務(wù);
dhcrelay:提供中繼服務(wù)瀑罗;
部署dhcp服務(wù)
[root@promote ~]# yum info dhcp
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.cn99.com
* epel: mirrors.tuna.tsinghua.edu.cn
* extras: mirrors.cn99.com
* updates: mirrors.cn99.com
Installed Packages
Name : dhcp
Arch : x86_64
Epoch : 12
Version : 4.2.5
Release : 77.el7.centos
Size : 1.4 M
Repo : installed
From repo : base
Summary : Dynamic host configuration protocol software
URL : http://isc.org/products/DHCP/
License : ISC
Description : DHCP (Dynamic Host Configuration Protocol) is a protocol which allows
: individual devices on an IP network to get their own network
: configuration information (IP address, subnetmask, broadcast address,
: etc.) from a DHCP server. The overall purpose of DHCP is to make it
: easier to administer a large network.
:
: To use DHCP on your network, install a DHCP service (or relay agent),
: and on clients run a DHCP client daemon. The dhcp package provides
: the ISC DHCP service and relay agent.
[root@promote ~]# yum -y install dhcp 安裝dhcp
...
[root@promote ~]# rpm -ql dhcp 查看安裝dhcp生成的文件
其中:
/etc/dhcp/dhcpd.conf 提供dhcp服務(wù)的配置文件
/etc/dhcp/dhcpd.conf 為ipv4的配置文件
/etc/dhcp/dhcpd6.conf 為ipv6的配置文件
/usr/lib/systemd/system/dhcpd.service 啟動(dòng)dhcp服務(wù)(ipv4)
/usr/lib/systemd/system/dhcpd6.service
/usr/lib/systemd/system/dhcrelay.service 啟動(dòng)中繼服務(wù)器
/usr/sbin/dhcpd 主程序(啟動(dòng)包括了ipv4和ipv6)
/usr/sbin/dhcrelay 中繼程序
/var/lib/dhcpd/dhcpd.leases DHCP的租約記錄
編輯配置文件:
[root@promote ~]# vim /etc/dhcp/dhcpd.conf 顯示復(fù)制文件即可胸嘴;
[root@promote ~]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
[root@promote ~]# cat /etc/dhcp/dhcpd.conf
顯示部分內(nèi)容:
default-lease-time 600; 默認(rèn)租約期限,單位是秒鐘
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; 可有3個(gè)dhcp服務(wù)器
option domain-name "internal.example.org"; 搜索后綴
option routers 10.5.5.1; 指明默認(rèn)網(wǎng)關(guān)
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";
}
host fantasia {
hardware ethernet 08:00:07:26:c0:a5;
fixed-address fantasia.fugue.com; 固定的分配一個(gè)地址廓脆,可直接指明IP地址筛谚;
}
其中:
option
定義選項(xiàng),可定義在全局中也可定義在subnet中停忿;
subnet
定義子網(wǎng)
host
表示在dhcp中主機(jī)名驾讲,并不代表真正的主機(jī)名,只是個(gè)標(biāo)識(shí)席赂;
[root@promote ~]# vim /etc/dhcp/dhcpd.conf
把沒(méi)用的行注釋:輸入:.,$s/^[^#]/#/g
option domain-name "magedu.com";
option routers 172.18.100.1;
option domain-name-servers 172.18.0.1, 192.168.255.1; 設(shè)定DNS服務(wù)器
default-lease-time 43200;
max-lease-time 86400;
log-facility local7;
subnet 172.18.0.0 netmask 255.255.0.0 {
range 172.18.11.100 172.18.11.120;
option routers 172.18.0.1;
option domain-name-servers 1.1.1.1;
}
host passacaglia { 這種某主機(jī)使用固定ip地址
hardware ethernet 0:0:c0:5d:bd:95; 為要設(shè)定ip地址主機(jī)的mac地址
option routers 172.18.11.254; 指定網(wǎng)關(guān)
fixed-address 172.18.11.1; 注意不能使用地址池中的地址
}
[root@promote ~]# systemctl start dhcp.service
[root@promote ~]# ss -tnl
服務(wù)端監(jiān)聽(tīng)在udp/67
dhcp已經(jīng)分配的結(jié)果記錄存放在:/var/lib/dhcpd/dhcpd.leases
[root@promote ~]# less /var/lib/dhcpd/dhcpd.leases
dhcp客戶端
前提要網(wǎng)卡地址設(shè)為動(dòng)態(tài)分配吮铭;
但不用把網(wǎng)卡改為dhcp,使用dhclient命令測(cè)試颅停;
[root@promote ~]# dhclient -h 查看使用幫助
[root@promote ~]# dhclient -d 運(yùn)行dhcp在前端谓晌,可觀察工作過(guò)程
[root@promote ~]# ss -tunl 可查看客戶端udp的68端口監(jiān)聽(tīng)
[root@promote ~]# route -n 查看客戶端的網(wǎng)關(guān)
[root@promote ~]# cat /etc/resolv.conf 查看客戶端DNS服務(wù)器
如果不期望使用dhcp分配的DNS服務(wù)器地址,就想用自己指定的癞揉,可修改過(guò)客戶端網(wǎng)卡配置文件:
[root@promote ~]# vim /etc/resolv.conf
nameserver 2.1.1.1 用自己指定的DNS服務(wù)器
[root@promote ~]# vim /etc/sysconfig/network-scripts/ifcfg-eno16777736
PEERDNS=no
此時(shí)dhcp服務(wù)器搭建完畢
dhcpd程序
配置文件:/etc/dhcp/dhcpd.conf
主要配置ipv4的網(wǎng)絡(luò)服務(wù)
注:?jiǎn)?dòng)對(duì)于Centos 6和7是不同的
option routers GW;
option domain-name-servers IP,IP,IP;
default-lease-time ...;
max-lease-time ...;
subnet NET netmask MASK {
range ;
...
}
host HOST_ID {
hardware ethernet MAC;
fixed-address IP; 不能是在地址池中的地址
}
分配信息庫(kù):/var/lib/dhcp/dhcpd.leases~
[root@promote ~ ]# man dhcpd.conf
其它配置選項(xiàng):
filename:指明引導(dǎo)文件名稱纸肉;可認(rèn)為是基于網(wǎng)絡(luò)引導(dǎo)的Bootloader文件;
next-server:指明引導(dǎo)文件所在的服務(wù)器主機(jī)的ip地址喊熟;
例如:
filename "pxelinux.0";
next-server 172.18.0.1;
通常next-server所指向的服務(wù)器為tftp服務(wù)器柏肪;
tftp:trivial ftp 簡(jiǎn)單文件傳輸協(xié)議,通過(guò)udp/69