Dynamic Host Configuration Protocol:动态主机配置协议;是一个局域网的网络协议,使用UDP协议工作, 主要有两个用途:给内部网络或网络服务供应商自动分配IP地址,给用户或者内部网络管理员作为对所有计算机作中央管理的手段。
DHCP有3个端口,其中UDP67和UDP68为正常的DHCP服务端口,分别作为DHCP Server和DHCP Client的服务端口;546号端口用于DHCPv6 Client,而不用于DHCPv4,是为DHCP failover服务,这是需要特别开启的服务,DHCP failover是用来做“双机热备”的。
DHCP前身叫bootp:Boot Protocol;相比bootp,DHCP引进了租约机制,实现真正意义上的
有个无盘工作栈概念(很早以前,硬盘由一个服务器维护),从而引入bootp机制
配置DHCP需要(*表示必须有):
*IPADDR
*NETMASK
GATEWAY
DNS
NIS
DHCP分配IP流程():
DHCPDISCOVER:Client通过MAC广播,寻找DHCP服务器,请求分配IP。
DHCPOFFER:DHCP服务器得到请求消息,通过广播回应,(有可能有多个DHCP同时响应,原则上谁响应的快,Client得到谁的)。
DHCPREQUEST:Client得到IP后,通过广播通知所有端口已经得到IP。
DHCPACK:分配IP的DHCP服务器广播回应确认。
续租IP(单播方式):
DHCPREQUEST:Client申请续租
DHCPACK:DHCP服务器响应
配置DHCP
dhcp Server下载
dhcp相关的安装包(yum源):
[root@localhost named]# yum list all |grep dhcpdhcp-common.x86_64 12:4.2.5-27.el7 @anaconda/7.0dhcp-libs.x86_64 12:4.2.5-27.el7 @anaconda/7.0dhcp.x86_64 12:4.2.5-27.el7 fsx //服务器端包dhcp-libs.i686 12:4.2.5-27.el7 fsx //dhcp依赖库
yum install -y dhcp
可以使用rpm -ql dhcp
查看生成了哪些文件
/var/lib/dhcpd/dhcpd.leases //租约,记录IP对应给哪个客户端
/etc/sysconfig/dhcpd
/etc/dhcp
/usr/sbin/dhcrelay //dhcp中继
/usr/sbin/dhcpd //dhcp交互命令
/etc/dhcp/dhcpd.conf //配置文件
DHCP服务器端 | UPD/67 |
---|---|
DHCP客户端 | UPD/68 |
netstat -anuple |grep dhcpd |
主配置文件
dpch主配置文件在/etc/dhcp/dhcpd.conf里,主要内容有:
subnet 172.25.254.0 netmask 255.255.255.0 { range 172.25.254.122 172.25.254.188; option domain-name-servers 172.25.254.111; option domain-name "qpy.com"; option routers 172.25.254.111;
option broadcast-address 172.25.254.111;
default-lease-time 600; max-lease-time 7200;}
dubnet:子网,地支池列表
range:表示可分配的IP范围
domain-name:域名
domain-name-servers:DNS服务器地址
routers:网关
重器服务
测试
在一个客户端(同一物理地址段内),更改ip获取方式(改为dhcp),重器网络,即得到dhcp服务器动态分配的IP地址。
DHCP服务段vim /var/lib/dhcpd/dhcpd.leases~
可以查看dhcp分配记录
dhclient
客户端手动获取dhcpIP的命令,当要给一个网卡添加一个IP,可以使用。
ifcofig eth0 down
//手动关掉eth0的网卡
[root@fsx slaves]# ifconfig eth0 down[root@fsx slaves]# ifconfig eth1 Link encap:Ethernet HWaddr 52:54:00:BD:95:5A
inet addr:172.25.254.2 Bcast:172.25.254.255 Mask:255.255.255.0 inet6 addr: fe80::5054:ff:febd:955a/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:72 errors:0 dropped:0 overruns:0 frame:0 TX packets:37 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:6912 (6.7 KiB) TX bytes:5282 (5.1 KiB) Interrupt:11lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:882 errors:0 dropped:0 overruns:0 frame:0 TX packets:882 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:86418 (84.3 KiB) TX bytes:86418 (84.3 KiB)
执行命令: dhclient -d eth0`
[root@fsx slaves]# dhclient -d eth0Internet Systems Consortium DHCP Client 4.1.1-P1Copyright 2004-2010 Internet Systems Consortium.All rights reserved.For info, please visit https://www.isc.org/software/dhcp/
Listening on LPF/eth0/52:54:00:c5:63:58Sending on LPF/eth0/52:54:00:c5:63:58Sending on Socket/fallbackDHCPREQUEST on eth0 to 255.255.255.255 port 67 (xid=0x434e21f7)DHCPACK from 172.25.254.111 (xid=0x434e21f7)DHCPDECLINE on eth0 to 255.255.255.255 port 67 (xid=0x434e21f7)DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 4 (xid=0x5d49fd0f)DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 6 (xid=0x5d49fd0f)DHCPOFFER from 172.25.254.111DHCPREQUEST on eth0 to 255.255.255.255 port 67 (xid=0x5d49fd0f)DHCPACK from 172.25.254.111 (xid=0x5d49fd0f)bound to 172.25.254.125 -- renewal in 276 seconds.
eth0获得IP,ifconfig eth0
[root@fsx slaves]# ifconfig eth0eth0 Link encap:Ethernet HWaddr 52:54:00:C5:63:58
inet addr:172.25.254.125 Bcast:172.25.254.255 Mask:255.255.255.0 //125是dhcp服务器分配的一个IP inet6 addr: fe80::5054:ff:fec5:6358/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:61650 errors:0 dropped:0 overruns:0 frame:0 TX packets:30073 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:12483229 (11.9 MiB) TX bytes:5467654 (5.2 MiB) Interrupt:11 Base address:0xc000