玄子Share-DHCP原理与配置
DHCP 工作原理
了解 DHCP 服务
- DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)
- 由 Internet 工作任务小组设计开发
- 专门用于为 TCP/IP 网络中的计算机自动分配 TCP/IP 参数的协议
使用 DHCP 的好处
- 减少管理员的工作量
- 避免输入错误的可能
- 避免IP地址冲突
- 当更改IP地址段时,不需要重新配置每个用户的IP地址
- 提高了 IP 地址的利用率
- 方便客户端的配置
DHCP 的分配方式
- 自动分配:分配到一个 IP 地址后永久使用
- 手动分配:由 DHCP 服务器管理员专门指定 IP 地址
- 动态分配:使用完后释放该 IP,供其它客户机使用
DHCP 的租约过程
DHCP 的租约过程:客户机从 DHCP 服务器获得 IP 地址的过程称为 DHCP 的租约过程
客户机请求 IP 地址
- 当一个DHCP客户机启动时,客户机还没有IP地址,所以客户机要通过DHCP获取一个合法的地址
- 此时DHCP客户机以广播方式发送DHCP Discover发现信息来寻找DHCP服务器
服务器响应
-
DHCP服务器接收到来自客户机请求IP地址的信息时,在自己的IP地址池中查找是否有合法的IP地址提供给客户机
-
如果有,DHCP服务器将此IP地址做上标记,加入到DHCP Offer的消息中,然后广播一则DHCP Offer消息
客户机选择 IP 地址
DHCP客户机从接收到的第一个DHCP Offer消息中提取IP地址,发出IP地址的DHCP服务器将该地址保留,这样该地址就不能再分配给另一个DHCP客户机
服务器确定租约
-
DHCP服务器接收到DHCP Request消息后,以DHCP ACK消息的形式向客户机广播成功确认,该消息包含有IP地址的有效租约和其他可配置的信息
-
当客户机收到DHCP ACK消息时,配置IP地址,完成TCP/IP的初始化
重新登录
DHCP客户机每次重新登录网络时,不需要再发送DHCP Discover信息,而是直接发送包含前一次所分配的IP地址的DHCP Request请求信息
更新租约
当DHCP服务器向客户机出租的IP地址租期达到50%时,就需要更新租约
客户机直接向提供租约的服务器发送DHCP Request包,要求更新现有的地址租约
DHCP 动态配置主机地址
DHCP服务
- 为大量客户机自动分配地址,提供集中管理
- 减轻管理和维护成本、提高网络配置效率
可分配的地址信息主要包括
- 网卡的IP地址、子网掩码
- 对应的网络地址、广播地址
- 默认网关地址
- DNS服务器地址
安装 DHCP 服务器
DHCP服务器软件
- CentOS光盘中的 dhcp-4.2.5-47.el7.centos.x86_64.rpm
- DHCP软件包的主要文件
- 主配置文件:/etc/dhcpd.conf
- 执行程序:/usr/sbin/dhcpd、/usr/sbin/dhcrelay
dhcpd.conf 的内容构成
vim /etc/dhcp/dhcpd.conf
option domain-name "kgc.cn";
option domain-name-servers 192.168.254.2, 114.114.114.114;
default-lease-time 21600;
max-lease-time 43200;
subnet 192.168.254.0 netmask 255.255.255.0 {
range 192.168.254.12 192.168.254.254;
option routers 192.168.254.2;
option broadcast-address 192.168.254.255;
}
host printsvr {
hardware ethernet 00:0C:29:20:84:EC;
fixed-address 192.168.254.250;
}
-
option:全局设置,作用于整个 DHCP 服务器
- default-lease-time:设置默认租约时间为 21600 秒(6小时)
- max-lease-time:设置最大租约时间为 43200 秒(12小时)
-
Subnet:网段声明,作用于整个子网段
- range:设置用于分配的 IP 地址池
- option routers:设置客户机的默认网关地址
- option broadcast-address:设置客户机的广播地址
-
host:主机声明,作用于单个主机
-
hardware ethernet:指定对应主机的 MAC 地址
-
fixed-address:指定为该主机保留的 IP 地址
-
-
host 主机声明,作用于单个主机
- hardware ethernet 参数:指定对应主机的 MAC 地址
- fixed-address 参数:指定为该主机保留的 IP 地址
启动 DHCP 服务
[root@localhost ~]# systemctl start dhcpd
[root@localhost ~]# netstat -anpu | grep ":67"
udp 0 0 0.0.0.0:67 0.0.0.0:* 5684/dhcpd
查看租约文件 /var/lib/dhcpd/dhcpd.lease
[ root@localhost ~]# less /var/lib/dhcpd/dhcpd.leases
lease 192.168.4.131 {
starts 4 2017/05/11 17:27:15;
ends 4 2017/05/11 23:27:15;
cltt 4 2017/05/11 17:27:15;
binding state active;
hardware ethernet 00:0c:29:3b:ff:76;
}
DHCP 客户端的使用
使用 DHCP 客户端
修改网卡配置文件(如 ifcfg-ens33) BOOTPROTO=dhcp
[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33
DEVICE=ens33
ONBOOT=yes
BOOTPROTO=dhcp
[root@localhost ~]# ifdown ens33 ; ifup ens33
使用dhclient命令
dhclient [-d] [网络接口名]
[root@localhost ~]# dhclient -d ens33
……
Listening on LPF/ens33/00:0c:29:3b:ff:76
Sending on LPF/ens33/00:0c:29:3b:ff:76
Sending on Socket/fallback
DHCPDISCOVER on ens33 to 255.255.255.255 port 67 interval 5 (xid=0x608095ef)
DHCPREQUEST on ens33 to 255.255.255.255 port 67 (xid=0x608095ef)
DHCPOFFER from 192.168.4.11
DHCPACK from 192.168.4.11 (xid=0x608095ef)
bound to 192.168.4.131 -- renewal in 8669 seconds.
……
DHCP 中继原理与配置
当企业的内部网络规模较大时,通常被划分为多个不同的子网,网络内配置了VLAN,VLAN能隔离广播,而DHCP协议使用广播
DHCP服务器在VLAN 100中,就只有VLAN 100内的客户机能从在此获取IP地址
如果VLAN 2或VLAN 3的客户机 也需要通过这台DHCP服务器来 获取IP地址,应该怎么办?
两种解决办法
为每个网段安装一台DHCP服务器,但这种方式存在资源上的浪费,而且不利于集中管理
在连接不同网段的设备上开启DHCP中继功能,将DHCP这种特殊的广播信息在VLAN之间转发,让其他VLAN的客户机也能从DHCP服务器获得IP地址
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
SW-3L(config-if)#ip helper-address 192.168.100.100
SW-3L(config-if)#no shutdown
SW-3L(config)#interface vlan 3
SW-3L(config-if)#ip address 192.168.3.1 255.255.255.0
SW-3L(config-if)#ip helper-address 192.168.100.100
SW-3L(config-if)#no shutdown
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 服务部署实战
需要先在 VM 中关闭自带的 DHCP 服务,使用自己配置的 DHCP 服务
安装 DHCP 服务器
# 安装 dhcp 软件
[root@xuanzi ~]# mkdir /media/cdrom
[root@xuanzi ~]# mount /dev/cdrom /media/cdrom/
[root@xuanzi ~]# cd /media/cdrom/Packages/
[root@xuanzi Packages]# dhcp-4.2.5-47.el7.centos.x86_64.rpm
# 系统镜像不同,安装 dhcp 版本不同,使用 tab 补全
修改 DHCP 配置文件
vim /etc/dhcp/dhcpd.conf
# 从模板文件中导入 :r /usr/share/doc/dhcp*/dhcpd.conf.example
# 将 * 替换为安装的 DHCP 版本号 tab 补全
option domain-name "kgc.cn";
option domain-name-servers 192.168.254.2, 114.114.114.114;
default-lease-time 21600;
max-lease-time 43200;
subnet 192.168.254.0 netmask 255.255.255.0 {
range 192.168.254.12 192.168.254.254;
option routers 192.168.254.2;
option broadcast-address 192.168.254.255;
}
host printsvr {
hardware ethernet 00:0C:29:20:84:EC;
fixed-address 192.168.254.250;
}
-
option:全局设置,作用于整个 DHCP 服务器
- default-lease-time:设置默认租约时间为 21600 秒(6小时)
- max-lease-time:设置最大租约时间为 43200 秒(12小时)
-
Subnet:网段声明,作用于整个子网段
- range:设置用于分配的 IP 地址池
- option routers:设置客户机的默认网关地址
- option broadcast-address:设置客户机的广播地址
-
host:主机声明,作用于单个主机
-
hardware ethernet:指定对应主机的 MAC 地址
-
fixed-address:指定为该主机保留的 IP 地址
-
-
host 主机声明,作用于单个主机
- hardware ethernet 参数:指定对应主机的 MAC 地址
- fixed-address 参数:指定为该主机保留的 IP 地址
启动 DHCP 服务
[root@localhost ~]# systemctl stop dhcpd
[root@localhost ~]# systemctl start dhcpd
[ root@localhost ~]# less /var/lib/dhcpd/dhcpd.leases
# 查看DHCP服务器的租用日志
客户端 CentOS6
修改网卡配置文件:BOOTPROTO=dhcp
- 重启网卡服务:service network restart
- 查看网卡服务:ifconfig eth0
- 释放IP地址:dhclient -r eth0
- 获取IP地址:dhclient -d
或者先禁用再启用网卡
# 启用
ifconfig downee eth0
ifdown eth0
# 禁用
ifconfig up eth0
ifup eth0
客户端 WIndows Server 2003
- 重新获取 IP 地址:ipconfig/renew
- 重新获取 dhcp 服务请求
- 释放当前 IP 地址:ipconfig/release
- 查看 IP 地址详细信息:ipconfig/all
玄子Share-DHCP原理与配置 2024.03.30