一.DHCP服务(基于UDP)
网络配置
- 静态指定
- 动态获取: bootp:boot protocol MAC与IP一一静态对应
dhcp:增强的bootp,动态
DHCP: (Dynamic Host Configuration Protocol)
dhcp动态主机配置协议
67服务器端口号
68客户端
局域网协议,UDP协议
主要用途:
用于内部网络和网络服务供应商自动分配IP地址给用户
用于内部网络管理员作为对所有电脑作集中管理的手段
使用场景
自动化安装系统
解决IPV4资源不足问题
DHCP共有八种报文
DHCP DISCOVER:客户端到服务器
DHCP OFFER :服务器到客户端
DHCP REQUEST:客户端到服务器
DHCP ACK :服务器到客户端
DHCP NAK:服务器到客户端,通知用户无法分配合适的IP地址
DHCP DECLINE :客户端到服务器,指示地址已被使用
DHCP RELEASE:客户端到服务器,放弃网络地址和取消剩余的租约时间
DHCP INFORM:客户端到服务器, 客户端如果需要从
DHCP服务器端获取更为详细的配置信息,则发送
Inform报文向服务器进行请求,极少用到
dhclient
当网卡被设置为dhcp时才能用(获取ip地址)(客户端)
dhclient
向网络中发起请求(自动获取ip地址)
-d 前台运行显示详细过程
从这个文件中可以查到自己的ip是从哪个服务器里面获取的
格林尼治时间用date -u查看
renew续租
续租时间
50% :租赁时间达到50%时来续租,刚向DHCP服务器发向新的DHCPREQUEST请求。如果dhcp服务没有拒绝的理由,则回应DHCPACK信息。当DHCP客户端收到该应答信息后,就重新开始新的租用周期
87.5%:如果之前DHCP Server没有回应续租请求,等到租约期的7/8时,主机会再发送一次广播请求
同网段多DHCP服务
DHCP服务必须基于本地
先到先得的原则
跨网段
RFC 1542 Compliant Routers 让路由器支持广播通过(兼容器–要买)
dhcrelay: 中继 (设置)
相关协议
Arp
rarp
二. DHCP实现
Linux DHCP协议的实现程序:dhcp, dnsmasq(dhcp,dns)
Dhcp Server
/usr/sbin/dhcpd
/etc/dhcp/dhcpd.conf --> /etc/rc.d/init.d/dhcpd
/etc/dhcp/dhcpd6.conf--> /etc/rc.d/init.d/dhcpd6
/usr/sbin/dhcrelay
/etc/rc.d/init.d/dhcrelay
dhcp server:67/udp
dhcp client: 68/udp
dhcpv6 client:546/udp
Dhcp client
dhclient
自动获取的IP信息:/var/lib/dhclient
dhcp配置文件
dhcpd.conf:
帮助参考:man 5 dhcpd.conf
全局配置
subnet {
...
}
host {
}
地址分配记录
/var/lib/dhcpd/dhcpd.leases
其它配置选项:
filename: 指明引导文件名称
next-server:提供引导文件的服务器IP地址
示例:
filename "pxelinux.0"; #启动网卡
next-server 192.168.1.100; #tftp服务器地址
检查语法
service dhcpd configtest
dhcpd.conf示例
option domain-name "magedu.com";
option domain-name-servers 192.168.0.1,8.8.8.8;
default-lease-time 86400;
max-lease-time 86400;
subnet 192.168.100.0 netmask 255.255.255.0 {
range 192.168.100.1 192.168.100.200;
option routers 192.168.100.1;
}
三. 搭建dhcp服务
搭建服务器
首先服务器本身为静态地址static
1.关闭系统中的dhcp服务
2.不要在桥接模式下搭建服务(别人会从从你的机器上获取地址)
3.安装软件包yum install dhcp
服务是带d的,包名不带d
4.启动该服务(发现起不来)systemctl start dhcpd
查看/etc/dhcp/dhcpd.conf
用这个/usr/share/doc/dhcp*/dhcpd.conf.example将/etc/dhcp/dhcpd.conf`覆盖,修改一些内容
修改网段
67服务器端口号
68客户端
添加服务器指定范围range
分配网关option routers
分配dns:option domain-name-servers
也可以设置域后缀option domain-name
租期:default-lease-time 时间
;秒
最大租期max-lease-time
之后重启服务
客户端使用
这样在另一台客户端主机里面就可以领用dhclient获取ip,网关,dns,租期等
租期
客户端在/var/lib/dhclient/
文件中就可以查看到
服务器在/var/lib/dhcpd/dhcpd.
通过dhcp获取指定地址
根据mac地址 指定ip
服务器—启动dhcpd服务
指定mac
指定ip (前提不能超过前面设定subbet的范围)
重新启动服务systemctl restart dhcpd
客户端指定dhcp自动获取
重新获取地址service network restart
如果跨网段
设一个中继代理(当dhcp客户端配置好dhcp服务器的地址—以单播方式—穿过路由器)
在路由器上—接口启用中继代理(得配硬件)
两个中继代理----两个dhcp服务器(为了防止有一个宕机)