目录
DHCP工作原理
DHCP服务器的配置
DHCP客户端的使用
DHCP中继原理与配置
DHCP在应用层
使用DHCP的好处
减少管理员的工作量
避免输入错误的可能
避免IP地址冲突
当更改IP地址段时,不需要重新配置每个用户的IP地址
提高了IP地址的利用率
方便客户端的配置
DHCP的分配方式
自动分配:分配到一个IP地址后永久使用
手动分配:由DHCP服务管理员专门指定IP地址
动态分配:使用完后释放该IP,供其它客户机使用
DHCP是 C/S模式 DHCP服务端和客户端需要保持通信,DHCP基于UDP协议,双方都有可能会主动向对方发起通信,因此双方都需要监听端口。
Sever端:DHCP Sever(运行dhcp服务)
UDP服务:监听端口67(bootps)
Client端:DHCP Client(运行dhcp程序)
UDP服务:监听端口68(bootpc)
典型的C/S模式
在网络中假设一台专用的DHCP服务器,负责集中分配各种网络地址参数(主要包括 IP地址、子网掩码、默认网关地址、DNS服务器地址、广播地址),其他主机作为DHCP客户机,将网卡配置为自动获取地址,即可与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服务器地址
systemctl enable dhcpd #开启DHCP
systemctl disable dhcpd #关闭DHCP
systemctl is-enabled dhcpd #查看状态
cd /etc/dhcp
ls
cd /usr/share/doc/dhcp-4.2.5/
ls
less dhcpd.conf.example
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
vim /etc/dhcp/dhcpd.conf
设置全局配置参数
default-lease-time 21600; #默认租约为6小时,单位为秒
max-lease-time 7200; #最大租约为12小时,单位为秒
option domain-name "benet.com"; #指定默认域名
option domain-name-servers 202.106.0.20,202.106.148.1; #指定DNS服务器地址
ddns-update-style none; #禁用DNS动态更新
#subnet网段声明(作用于整个子网段,部分配置参数优先级高于全局配置参数)
subnet 192.168.80.0 netmask 255.255.255.0 { #声明要分配的网段地址
range 192.168.80.10 192.168.80.20; #设置地址池
option routers 192.168.80.254; #指定默认网关地址
}
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.200;
option routers 192.168.1.254;
}
subnet 192.168.2.0 netmask 255.255.255.0 {
range 192.168.2.20 192.168.1.30;
option routers 192.168.2.254;
}
#host主机声明(给单机分配固定的IP地址)
host hostname { #指定需要分配固定IP地址的客户名称
hardware ethernet 08:00:07:26:c0:a5; #指定该主机的MAC地址
fixed-address 192.168.4.100; #指定保留给该主机的IP地址
#后面内容可都删除
systemctl start dhcpd
systemctl stop firewall
setenforce 0
netstat -anpu|grep ":67"
#如果DHCP服务启动失败,可以查看日志文件
tail -f /var/log/messages
实验:
vi /etc/sysconfig/network-scripts/ifcfg-ens33 #修改内容
IPADDR=192.168.100.10 #改成DHCP服务器地址
GATEWAY=192.168.100.254 #改成DHCP服务器网关
#DNS1=8.8.8.8 #注释DNS
systemctl restart network #重新启动
ifconfig #查看一下已经修改好了
journalctl -xe
tail -f /var/log/messages
vim /var/log/messages
<Huawei>un
<Huawei>undo te
<Huawei>undo terminal m
<Huawei>undo terminal monitor
Info: Current terminal monitor is off.
<Huawei>sys
<Huawei>system-view
Enter system view, return user view with Ctrl+Z.
[Huawei]sys
[Huawei]sysname SW1
[SW1]vlan batch 10 20 100
[SW1]in
[SW1]int e
[SW1]int Eth0/0/3
[SW1-Ethernet0/0/3]port link-type trunk
[SW1-Ethernet0/0/3]port trunk allow-pass vlan all
[SW1]int e
[SW1]int Eth0/0/1
[SW1-Ethernet0/0/1]port link-type access
[SW1-Ethernet0/0/1]port default vlan 10
[SW1-Ethernet0/0/2]int eth0/0/2
[SW1-Ethernet0/0/2]port link-type access
[SW1-Ethernet0/0/2]port default vlan 20
[SW1-Ethernet0/0/2]int eth0/0/5
[SW1-Ethernet0/0/5]port link-type access
[SW1-Ethernet0/0/5]port default vlan 100
[SW1-Ethernet0/0/1]int eth0/0/4
[SW1-Ethernet0/0/4]port link-type access
[SW1-Ethernet0/0/4]port default vlan 100
三层交换
[Huawei]sy
[Huawei]sysname SW2
[SW2]vla
[SW2]vlan ba
[SW2]vlan batch 10 20 100
[SW2]int Vlanif 10
[SW2-Vlanif10]ip add 192.168.1.254 24
[SW2-Vlanif10]q
[SW2]int v
[SW2]int Vlanif 20
[SW2-Vlanif20]ip add 192.168.2.254 24
[SW2-Vlanif20]q
[SW2]int Vlanif 100
[SW2-Vlanif100]ip add 192.168.100.254 24
[SW2-Vlanif100]q
[SW2]interface GigabitEthernet0/0/3
[SW2-GigabitEthernet0/0/3]port link-type trunk
[SW2-GigabitEthernet0/0/3]port trunk allow-pass vlan all
[SW2-GigabitEthernet0/0/3]q
[SW2]dhcp enable
[SW2]int Vlanif 10
[SW2-Vlanif10]dhcp select relay
[SW2-Vlanif10]dhcp relay server-ip 192.168.100.10
[SW2-Vlanif10]q
[SW2]int Vlanif 20
[SW2-Vlanif20]dhcp select relay
[SW2-Vlanif20]dhcp relay server-ip 192.168.100.10
[SW2-Vlanif20]q
[SW2]int v
[SW2]int Vlanif 20
[SW2-Vlanif20]dhcp select relay
[SW2-Vlanif20]dhcp relay server-ip 192.168.100.10
刷新
ipconfig /reslese
ipconfig /renew
假设我们需要将日志记录在/var/log/目录下,我们先touch一个dhcp.log文件
(1)创建dhcp.log文件
#touch /var/log/dhcp.log
#chmod 640 /var/log/dhcp.log
(2)修改/etc/dhcp.conf配置文件,然后保存并退出删除。(注意不同Linux发行版配置文件路径有所不同)
log-facility local4;
(3)在/etc/rsyslog.conf文件中添加
Local4.* /var/log/dhcp.log
总结
DHCP工作原理
DHCP服务器配置方法
DHCP客户端获取IP地址
DHCP中继原理与配置