DHCP
(仅作为个人笔记,如有雷同,请联系删除。。)
https://baike.baidu.com/item/DHCP/218195?fr=aladdin
DHCP(动态主机配置协议)是一个局域网的网络协议。指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码。默认情况下,DHCP作为Windows Server的一个服务组件不会被系统自动安装,还需要管理员手动安装并进行必要的配置。
1、 DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)通常被应用在大型的局域网络环境中,主要作用是集中的管理、分配IP地址,使网络环境中的主机动态的获得IP地址、Gateway地址、DNS服务器地址等信息,并能够提升地址的使用率。
2、 DHCP协议采用客户端/服务器模型[ C/S模式 ],主机地址的动态分配任务由网络主机驱动。当DHCP服务器接收到来自网络主机申请地址的信息时,才会向网络主机发送相关的地址配置等信息,以实现网络主机地址信息的动态配置。DHCP具有以下功能:
- 保证任何IP地址在同一时刻只能由一台DHCP客户机所使用。
- DHCP应当可以给用户分配永久固定的IP地址。
- DHCP应当可以同用其他方法获得IP地址的主机共存(如手工配置IP地址的主机)。
- DHCP服务器应当向现有的BOOTP客户端提供服务。
3、DHCP有三种机制分配IP地址:只有动态分配可以重复使用客户端不再需要的地址
-
自动分配方式(Automatic Allocation):DHCP服务器为主机指定一个永久性的IP地址,一旦DHCP客户端第一次成功从DHCP服务器端租用到IP地址后,就可以永久性的使用该地址。
-
动态分配方式(Dynamic Allocation):DHCP服务器给主机指定一个具有时间限制的IP地址,时间到期或主机明确表示放弃该地址时,该地址可以被其他主机使用。
-
手工分配方式(Manual Allocation):客户端的IP地址是由网络管理员指定的,DHCP服务器只是将指定的IP地址告诉客户端主机。
DHCP消息的格式是基于BOOTP(Bootstrap Protocol)消息格式的,这就要求设备具有BOOTP中继代理的功能,并能够与BOOTP客户端和DHCP服务器实现交互。BOOTP中继代理的功能,使得没有必要在每个物理网络都部署一个DHCP服务器。RFC 951和RFC 1542对BOOTP协议进行了详细描述。
4、封包格式:DHCP封包在传输层是采用UDP协议,而当 Client传送封包给 Server时,采用的是UDP 68 Port,从 Server传送给 Client则是使用UDP 67 Port。
OP:若是 client 送给 server 的封包,设为 1 ,反向则为 2。
HTYPE:硬件类别,Ethernet 为 1。
HLEN:硬件地址长度, Ethernet 为 6。
HOPS:若封包需经过 router 传送,每站加 1 ,若在同一网内,为 0。
TRANSACTION ID:DHCP request 时产生的数值,以作 DHCP reply 时的依据。
SECONDS:Client 端启动时间(秒)。
FLAGS:从 0 到 15 共 16 bits ,当 bit 为 1 时表示 server 将以广播方式传送封包给 client ,其余尚未使用。
ciaddr:要是 client 端想继续使用之前取得的IP 地址,则列于这里。
yiaddr:从 server 送回 client 的 DHCP OFFER 与 DHCPACK封包中,此栏填写分配给 client 的 IP 地址。
siaddr:若 client 需要透过网络开机,从 server 送出的 DHCP OFFER、DHCPACK、DHCPNACK封包中,此栏填写开机程序代码所在 server 的地址。
giaddr:若需跨网域进行 DHCP 发放,此栏为 relay agent 的地址,否则为 0。
chaddr:Client 的硬件地址。
sname:Server 的名称字符串,以 0x00 结尾。
file:若 client 需要透过网络开机,此栏将指出开机程序名称,稍后以 TFTP 传送。
5、工作原理:DHCP协议采用UDP作为传输协议,主机发送请求消息到DHCP服务器的67号端口,DHCP服务器回应应答消息给主机的68号端口。
dhcp抓包分析:https://blog.csdn.net/u012359618/article/details/51872678
6、DHCP也可以用在不同的子网上,这时候需要使用称为DHCP中继代理( DHCP Relay, DHCPR,也叫DHCP中继 )的设备。当DHCP客户端与服务器不在同一个子网上,就必须有DHCP中继代理来转发DHCP请求和应答消息。DHCP中继代理的数据转发,与通常路由转发是不同的,通常的路由转发相对来说是透明传输的,设备一般不会修改IP包内容,而DHCP中继代理接收到DHCP消息后,重新生成一个DHCP消息,然后转发出去。DHCP中继主机必须自己具有路由能力,且能将双方的数据报互传对方。
7、Linux上配置dhcp服务器:[ dhcp服务器IP:172.25.254.91
]
https://blog.csdn.net/sinat_36888624/article/details/78647847
yum install -y dhcp #安装dhcp服务软件
systemctl start dhcpd
cp -p /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf #根据dhcp的示例配置文件制作dhcp的配置文件
vim /etc/dhcp/dhcpd.conf
/etc/dhcp/dhcpd.conf
文件修改为:
删除:
修改:
最后,删除‘33行‘以后的内容!
参数解释:
option domain-name ” test.com “; #设置DNS域
option domain-name-servers 172.25.254.91; #设置DNS服务器地址
default-lease-time 21600; #设置默认租期,单位为秒
max-lease-time 43200; #设置客户端最长租期,单位为秒
subnet #网段
netmask #子网掩码
range #地址池,即可以被分配的ip地址
option routers #分配给客户机的网关
配置完成dhcp服务器后,在同一局域网中的主机上测试,测试主机设置为dhcp自动获取ip,重启网络之后,可以看见测试机已经被分配了ip,子网掩码和网关等信息,而且是按照dhcp服务器中设置的所分配的。
注意:在测试的时候需要先关闭NetworkManager,然后在重启网络,才能获得ip,否则无法获取ip
8、交换机/路由器配置DHCP实战:https://www.cnblogs.com/yu15/p/11381850.html
- 基于全局地址池的DHCP服务器给客户端分配IP地址:
-
DHCP server配置:
[DHCP server]dhcp enable [DHCP server] ip pool huawei //设置一个名为 huawei 的全局地址池 [DHCP server-ip-pool-huawei] network 192.168.1.0 mask 24 //设置分配的地址网段 [DHCP server-ip-pool-huawei] gateway-list 192.168.1.1 //设置分配的网关IP [DHCP server-ip-pool-huawei] lease day 10 hour 12 minute 59 //设置地址池IP租用有效期 [DHCP server-ip-pool-huawei] excluded-ip-address 192.168.1.2 //不参与自动分配的地址,留给DNS使用 [DHCP server-ip-pool-huawei] dns-list 8.8.8.8 192.168.1.2 //主DNS和备用DNS [DHCP server]int g0/0/0 [DHCP server-GigabitEthernet0/0/0] ip address 192.168.1.1 24 [DHCP server-GigabitEthernet0/0/0] dhcp select global //接口下使能全局方式分配地址 [DHCP server-ip-pool-huawei] static-bind ip-address 192.168.1.3 mac-address 5489-98e1-76a8 //IP地址和MAC地址进行绑定-->为指定mac地址的客户端配置指定的IP:假如PC2的mac为5489-98e1-76a8,则将为PC2分配的IP为192.168.1.3 [DHCP server] dis ip pool name huawei all // 查看全局地址池的分配信息
-
在PC1、PC2上设置为DHCP自动获取方式。
-
- 基于接口的DCHP服务器给客户端分配IP地址:
-
DHCP server配置:
[DHCP server] int g0/0/0 [DHCP server-GigabitEthernet0/0/0] ip address 192.168.1.1 24 [DHCP server-GigabitEthernet0/0/0] dhcp select interface //使能接口分配地址方式且关联接口地址池 [DHCP server-GigabitEthernet0/0/0] dhcp server dns-list 192.168.1.3 8.8.8.8 [DHCP server-GigabitEthernet0/0/0] dhcp server lease day 10 hour 23 minute 59 [DHCP server-GigabitEthernet0/0/0] dhcp server excluded-ip-address 192.168.1.3
-
在PC1上设置为DHCP自动获取方式。
-
9、交换机/路由器配置DHCP Relay实战:https://www.cnblogs.com/yu15/p/11381850.html
-
DHCP server 配置:
[Huawei] dhcp enable [Huawei] ip pool csy //设置一个名为 csy 的全局地址池 [Huawei-ip-pool-csy] network 192.168.1.0 mask 24 //设置分配的地址网段 [Huawei-ip-pool-csy] gateway-list 192.168.1.1 //设置分配的网关IP [Huawei-ip-pool-csy] excluded-ip-address 192.168.1.3 //不参与自动分配的地址,留给DNS使用 [Huawei-ip-pool-csy] dns-list 192.168.1.3 //DNS [Huawei]ip pool huawei [Huawei-ip-pool-huawei] network 172.16.1.0 mask 24 [Huawei-ip-pool-huawei] gateway-list 172.16.1.1 [Huawei-ip-pool-huawei] excluded-ip-address 172.16.1.3 [Huawei-ip-pool-huawei] dns-list 172.16.1.3 [Huawei-GigabitEthernet0/0/0]ip address 10.1.12.2 24
-
DHCP 中继上配置DHCP服务器组:
[Huawei] dhcp enble [Huawei] dhcp server group csy //配置DHCP服务器组名 [Huawei-dhcp-server-group-csy] dhcp-server 10.1.12.2 设定DHCP服务器地址 [Huawei-GigabitEthernet0/0/0] dhcp select relay //启动DHCP Relay功能 [Huawei-GigabitEthernet0/0/0] dhcp relay server-select csy //设定DHCP Relay要使用的服务器组 [Huawei-GigabitEthernet0/0/0] ip address 192.168.1.1 24 [Huawei-GigabitEthernet0/0/2] dhcp select relay [Huawei-GigabitEthernet0/0/2] dhcp relay server-select csy [Huawei-GigabitEthernet0/0/2] ip address 172.16.1.1 24 [Huawei-GigabitEthernet0/0/1] ip address 10.1.12.1 24 //配置连接DHCP服务器的接口地址
-
DHCP 服务器上配置静态回程路由:
[Huawei] ip route-static 172.16.1.0 24 10.1.12.1 // 目的地址是要分配的网段,下一跳是dhcp中继 [Huawei] ip route-static 192.168.1.0 24 10.1.12.1
-
在PC1、PC4上设置为DHCP自动获取方式,
ipconfig
查看本机IP信息。 -
DHCP 中继上查看中继器配置信息:
dis dhcp relay all
-
DHCP服务器上查看地址池曾经分配过的地址:
dis ip pool name csy used