DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是由Internet工作任务小组设计开发的,专门用于TCP/IP网络中的计算机自动分配TCP/IP参数的协议
需要注意的是:如果安装的DHCP服务器,则DHCP服务器的IP地址必须是静态的。
option domain-name "yuming.yu";
#这里配置的是分配给客户端的 域名 这个域名体现在 /etc/resolv.conf 中:search
service dhcpd configtest
#检测配置文件语法是否配置正确
DHCP工作的简单流程: 使用的端口是 UDP 67 68.如果配置DHCP服务器,需要打开这2个端口。
1、首先客户机会发送一个 discover 来询问谁可以为我分配IP地址。
2、然后 DHCP 会发送一个广播 offer ,说我可以为你提供网络信息。如果有多个DHCP服务器的话,这些服务器都会向网络当中提供一个DHCP offer这个广播。但是客户端只会选择第一个收到的offer
3、客户机会向网络当中发送一个DHCP request 广播,作用:客户机已经找到DHCP服务器,告诉别的DHCP服务器不用再向客户机提供信息。
4、被选中的 DHCP服务器会再发送一个广播,ack(这里面包含的是具体的IP地址,子网掩码信息等提供给客户端。)
安装DHCP服务器:
yum -y install dhcp
rpm -ql dhcp
#查询安装包的目录、文件列表
在 /usr/share/doc/dhcp-****/dhcpd.conf.sample 这么一个配置模版。
##需要注意的是:在文件第一行开始到 subnet 之前都是全局选项。影响的是整个DHCP服务器。
文件其中:
1、 option domain-name "yuming.yu";
#这里配置的是分配给客户端的 域名 这个域名体现在 /etc/resolv.conf 中:search
2、option domain-name-servers 192.168.197.250;
#这个是分配给客户端使用的 DNS
3、default-lease-time 600;(秒)
#租约,分配给客户端的IP,可以使用多久。租期
4、max-lease-time 7200;
#最大租期 7200 秒
5、ddns-update-style none;
#这个是DNS的动态更新,默认是注释的。
6、log-facility local17
#日志的级别
后面有很多的 subnet ,subnet叫一个子网:为了给不同的网段分配IP地址。每一个subnet称作一个作用于。每一个subnet控制分配不同的网段IP地址。
配置好 重启 DHCP 服务器
service dhcpd restart
#重启DHCP服务器
service dhcpd configtest
#检测配置文件语法是否配置正确。
查看DHCP服务器分配出去的IP:
/var/lib/dhcpd/dhcpd.leases 文件中查看
#在客户机 上也可以查看到自己的 dhcp分配信息:
/var/lib/dhclient/dhclient.leases 文件:记录的是获取IP信息
MAC地址绑定固定IP:
可以使用命令:达到远程开机:
ether-wake -i eth0 11:0C:03:04:04:9C
如果有多个网卡的话,只允许某个网卡对外提供DHCP服务:
设置配置文件
/etc/sysconfig/dhcpd
#这个文件只有安装了DHCP服务后才会有。默认是没有的。
使用DHCP的好处
1、减少管理员的工作量
2、避免IP地址冲突
3、当网络更改IP地址段时,不需要再重新配置每个用户的IP地址。
4、提高了IP地址的利用率
5、方便客户端的配置。
可分配的地址信息主要包括:
1、网卡的IP地址、子网掩码
2、对应的网络地址、广播地址
3、默认网关地址
4、DNS服务器地址
DHCP的分配方式:
1、自动分配:分配到一个IP地址后永久使用
2、手动分配:由DHCP服务器管理员专门指定IP地址
3、动态分配:使用完后释放该IP,供其他客户机使用。
DHCP的租约过程:
1、客户机从DHCP服务器获得IP地址的过程为DHCP租约过程
2、租约过程分为四个步骤:
1、客户机请求IP(客户机发DHCP Discover 广播包)
2、服务器响应(服务器发 DHCP Offer 广播包)
3、客户机选择IP(客户机发 DHCP Request 广播包)
4、服务器确定租约(服务器发 DHCP ACK 广播包)
客户机请求IP地址:
当一个DHCP客户启动时,客户机还没有IP地址,所以客户机要通过DHCP获取一个合法的地址。
此时,DHCP 客户机以广播方式(因为DHCP服务器的IP地址对客户机来说未知的),发送 DHCP Discover 发现信息来寻找 DHCP 服务器
广播信息中含 DHCP 客户机的 MAC 地址和 计算机名,以便 DHCP 服务器确定是哪个客户机发送的请求。
服务器响应:
当 DHCP 服务器接收到来自客户机请求IP地址的信息时,它就在自己的IP地址池中查找是否有合法的IP地址供给客户机,如果有,DHCP 服务器就将此IP地址做上标记,加入到 DHCP Offer的消息中,然后 DHCP 服务器就广播一则包含了下列信息的 DHCP Offer消息: DHCP 客户机的MAC地址,DHCP 服务器提供的合法IP地址,子网掩码,默认网关,租约的期限,DHCP服务器的IP地址。
客户机选择IP地址:
DHCP 客户机从接收到的第一个 DHCP Offer 消息中获取IP地址,发出IP地址的 DHCP 服务器将该地址保留,这样该地址就不能再分配给另一个 DHCP 客户机。
当客户机从第一个 DHCP 服务器接收 DHCP Offer消息并提取到IP地址后,客户机将 DHCP Rquest 消息广播到所有的 DHCP 服务器,表明它接收提供的内容。
DHCP Request 消息包括为 客户机提供 IP 配置的服务器的服务标识符(服务器IP地址)。DHCP 服务器查看服务器标识符字段,以确定提供的IP地址是否被接收,如果 DHCP Offer 被拒绝,则 DHCP 服务器取消并保留其IP地址以供给下一个IP租约的请求。
服务器确定租约:
DHCP 服务器接收到 DHCP Request 消息后,以 DHCP ACK 消息的形式向客户机广播成功确认,该消息包含有IP地址的有效租约和其他可配置的信息。
当客户机收到 DHCP ACK 消息时,它就配置了IP地址,完成了 TCP/IP 的初始化。
重新登录:(重启网络)
DHCP 客户机每次重新登录网络时,不需要再发送 DHCP Discover 消息,而是直接发送包含前一次分配的IP地址的 DHCP Request 请求消息
当 DHCP 服务器接收到这个一消息后,它会尝试让 DHCP 客户机继续使用原来的IP地址,并回答一个 DHCP ACK 确认消息。
如果次IP地址已无法再分配给原来的 DHCP 客户机使用(如:IP地址已经分配给其他的 DHCP 客户机使用),DHCP 服务器给 DHCP 客户机回答一个 DHCP Nack 否认消息
当原来的 DHCP 客户机接收到 DHCP Nack否认消息后,它就必须重新发送 DHCP Discover 发现信息来请求新的IP地址。
当租约到期的时候,更新租约:
当 DHCP 服务器相爱呢个客户机出租的 IP 地址租期达到 50% 时,就需要更新租约
客户机直接向提供租约的服务器发送 DHCP Request 包,要求更新现有的地址租约。
对于大型网络,分配了不同VLAN(隔离广播的),如果需要 DHCP 服务器:
1、为每个网段安装一台 DHCP 服务器,但这种方式存在资源上的浪费,而不利于集中管理。
2、在连接不同网段的设备上开启 DHCP 中继功能,将 DHCP 这种特殊的广播信息再 VLAN之间转发,让其他 VLAN 的客户机也能从 DHCP 服务器那里获得 IP 地址。
DHCP 中继的配置:
DHCP 中继的配置命令:
ip helper-address DHCPsrv-IPAddress
其中 DHCPsrv-IPAddress 为 DHCP 服务器的 IP 地址。
在三层交换机上配置 DHCP 中继转发,是在不包含 DHCP 服务器的 VLAN 上配置实现的。
SW-3L(config)#interface vlan 2 // 配置虚拟的接口
SW-3L(config-if)# ip address 192.168.2.1 255.255.255.0 // 给虚拟接口配置绑定 IP 地址
SW-3L(config-if)# ip helper-address 192.168.100.100 // 针对vlan2 或则是 192.168.2.0 这个网段配置一个中继代理,将发过来的广播包转发到 192.168.100.100 (是vlan100的 DHCP 服务器IP地址)这台服务器下
SW-3L(config-if)#no shutdown // 代表将这个接口开启
以上都是针对vlan2的。 如果配置vlan3 步骤是一样的,网段是指向3网段 192.168.3.0
SW-3L(config)# interface vlan 100
SW-3L(config-if)# ip address 192.168.100.1 255.255.255.0
SW-3L(config-if)# no shutdown
安装 DHCP 服务器
DHCP 服务器软件
光盘中:dhcp-4.1.1-38.P1.el6.centos.x86_64.rpm
DHCP软件包的主要文件:
1、主配置文件: /etc/dhcp/dhcpd.conf
2、执行程序: /usr/sbin/dhcpd 、 /usr/sbin/dhcrelay(中继)
3、服务脚本: /etc/init.d/dhcpd 、 /etc/init.d/dhcrelay(中继)
4、执行参数配置: /etc/sysconfig/dhcpd(运行时默认读取的参数)
5、DHCP 中继配置: /etc/sysconfig/dhcrelay
主配置文件:
全局设置,作用于整个 DHCP 服务器
ddns-update-style none; // 动态DNS的更新模式,不需要none
default-lease-time 21600; // 默认租约时间秒
max-lase-time 43200; // 最大租约时间,秒
option domain-name "domain.org"; // 默认域名
option domain-name-servers 202.106.0.20; // DNS服务器地址
第一步挂载光盘安装 dhcp 服务器
第二部查看主配置文件:
第三部:将模版文件拷贝到主程序目录下
简单的修改全局配置;
Subnet网段声明,作用于整个自网段
range 参数:设置用于分配的IP地址池
option subnet-mask 参数:设置客户机的子网掩码
option routers 参数:设置客户机的默认网关地址
设置subnet 参数:
如果添加另一网段,格式都是一样的。
需要注意的是:本机中的至少需要有一个网段是与DHCP设置的 subnet 的网段在同一个,否则DHCP服务是不能启动成功的
设置默认路由,设置默认网关地址
host主机声明,作用于单个主机
hardware ethernet 参数:指定对应主机的 MAC 地址
fixed-address 参数:指定该主机保留的IP地址
为指定客户机保留IP地址:需要这个客户机的MAC地址
启动 DHCP 服务
[[email protected] ~]# service dhcpd start
#启动dhcp服务
[[email protected] ~]# netstat -anpu | grep ':67'
需要关闭、重启dhcpd服务时,只要stop,或 restart 即可
如果dhcpd服务启动失败,可以检查日志文件 /var/log/messages 末尾的错误提示信息,并根据提示进行排错。
配置的时候,我们设置的是 192.168.1.0 网段,而当我们查看本机的时候 ,网段是 192.168.197.0网段,所以第一次启动的时候直接失败了,因为:DHCP主配置文件中至少有一个网段是与本机是处于同一网段的。当修改主配置文件与本机 网段处与同一网段后,启动DHCP服务成功。
查看DHCP服务器的端口号
使用 DHCP 客户端---如果使用虚拟机中的 DHCP 服务,需要关闭VMware中的 dhcp 设置(编辑---虚拟网络编辑器 或是: 计算机管理---服务---VMware DHCP服务关闭)
俩种方式:
1、修改网卡配置文件(如:ifcfg-eth0) BOOTPROTO=dhcp
2、使用 dhclient 命令:
查看租约文件
可以通过查看租约文件 dhcpd.leases 来了解服务器的 IP 地址分配情况,该租约文件中记录了分配出去的每个IP地址信息(租约记录),包括IP地址、客户端的 MAC 地址、租用的起始时间和结束时间等。
less /var/ib/dhcpd/dhcpd.leases
需要通过 dhclient 命令释放获取的 IP 租约时,可以集合 “-r”选项。例如:执行“dhclient -r eth0”将会释放之前为网卡 eth0 获取的IP租约