目录
2.dhcp服多器如何知道哪些地址分配出去了,哪些没有分配出去?
3.dhcp服多器如何知道分配出去的ip地址不和别人手工配的冲突呢?
一:DHCP是什么?
动态主机配置协议 Dynamic Host Configuration Protocol 该协议允许服务器向客户端动态分配 IP 地址和配置信息。
1.动态怎么理解?
动态Dynamic :理解为有一台专门给其他电脑分配ip地址等信息的服务器--》靠其他服务器给你分配ip地址,这个ip地址是不固定(与静态相反,静态是固定的)
2.为什么是udp协议
DHCP是应用层的协议,DHCP使用传输层中的UDP协议进行通信,而TCP则使用TCP协议,马上分配ip地址
Tcp的三次握手需要ip地址来握手,连ip地址都没有需要分配所以采用udp协议进行通信
二:DHCP的好处
使用dhcp服务器的好处:
减小管理员的工作量(非专业人员不会配IP地址,直接DHCP自动配)
减小输入错误的可能(配错了就上不了网)
避免IP冲突
提高了IP地址的利用率
三:DHCP服务的原理:(重要)
客户机请求IP地址 -->DHCPdiscover -->广播包 发现
服务器响应请求 -->DHCPoffer --》单播包 服务器响应
客户机选择IP地址 ---》DHCPrequest ---》广播包 网络请求
服务器确认租约 ---》DHCPack -->单播包 确认
这里:
BROADCAST 广播
MULTICAST 组播(多播)
unicast 单播
例如:
arping 发的广播包 回来的单播Unicast,然后【】里面就是mac地址
ARP(地址解析协议,Address Resolution Protocol)是一种用于将IP地址映射到物理硬件地址(如MAC地址)的协议
四:DHCP的具体例子
1.无线路由器
无线路由器/有线路由器/vpn服务器,具体dhcp功能这里的dhcp相当于租客和房主的关系
2.虚拟机
vmware 里也有dhcp功能,vmnet1和vmnet8网卡模式,会自带一个dhcp服务器
把none改成dhcp就会动态获得ip地址了
注意:仅主机模式是上不了网的,分配了ip但是没有分配网关而NAT模式分配了网关和IP地址,所以可以上网
3.k8s和docker
k8s和docker里面也有dhcp服务器,给容器分配ip地址也有dhcp服务器,给容器分配ip地址
后续会学习到
五:配置dhcp服务器(实操)
1.配置环境
linux环境,要求服务器能够上网
[root@lb-1 ~]# cat /etc/centos-release ###查看当前centos版本
CentOS Linux release 7.9.2009 (Core)
[root@lb-1 ~]#
[root@lb-1 ~]# ping www.baidu.com -c 2 ###ping得通
PING www.baidu.com (14.215.177.38) 56(84) bytes of data.
64 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=1 ttl=128 time=16.0 ms
64 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=2 ttl=128 time=15.5 ms
--- www.baidu.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 15.512/15.757/16.003/0.275 ms
2.正式步骤
1.安装dhcp服务
1.安装dhcp相关的软件包
[root@lb-1 ~]# yum install dhcp -y
2.修改配置文件,配置dhcp服务器
[root@lb-1 ~]# cd /etc/dhcp/
[root@lb-1 dhcp]# ls
dhclient.d dhclient-exit-hooks.d dhcpd6.conf dhcpd.conf scripts
[root@lb-1 dhcp]#
dhcpd.conf 是我们的主要的配置文件--》ipv4
dhcpd6.conf 是ipv6的配置文件
2.编辑配置文件
拷贝样例文件到/etc/dhcp目录
[root@lb-1 dhcp]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
cp:是否覆盖"/etc/dhcp/dhcpd.conf"? y
[root@lb-1 dhcp]# vim /etc/dhcp/dhcpd.conf 编辑配置文件
# have to hack syslog.conf to complete the redirection).
log-facility local7; #指定日志类型
# A slightly different configuration for an internal subnet.
subnet 192.168.88.0 netmask 255.255.255.0 { #指定分配ip地址的网段号和子网掩码
range 192.168.88.10 192.168.88.254; #指定地址池的范围,必须是Xshell上面的网段里的ip
option domain-name-servers 114.114.114.114; #指定dns服务器地址
option routers 192.168.88.1; #指定网关
default-lease-time 600; #最短租约时间600秒
max-lease-time 7200; #最长租约时间7200秒
}
dhcp服务器里的网关或者dns服务器配置错误,就会误导客户机上不了网
#指定动态获得ip地址 dhcp表示动态获得 none表示静态配置
调完以后记得关闭防火墙
service firewalld stop
或者防火墙中也可以有专门添加dhcp的命令
3.启动服务,调试
[root@lb-1 network-scripts]# service dhcpd start
Redirecting to /bin/systemctl start dhcpd.service
4.测试
1.简单查看
1.看进程 dhcpd
2.看端口 67 udp
[root@lb-1 network-scripts]# ps aux|grep dhcpd 看进程
dhcpd 3890 0.0 0.2 105996 11964 ? Ss 11:37 0:00 /usr/sbin/dhcpd -f -cf /etc/dhcp/dhcpd.conf -user dhcpd -group dhcpd --no-pid
root 3893 0.0 0.0 112832 2292 pts/3 S+ 11:37 0:00 grep --color=auto dhcpd
[root@lb-1 network-scripts]# netstat -anplut|grep dhcp 看端口
udp 0 0 0.0.0.0:67 0.0.0.0:* 3890/dhcpd
2.客户机测试
在配置了DHCP服务器后,只需将客户端的网络配置设置为自动获取IP地址(也称为DHCP模式),客户端就应该能够通过DHCP服务器动态获取IP地址了。
客户机里的设置为NAT模式: 记得一定要关闭linux里的dhcp服务器,不要两个dhcp服务器运行,否则测试失败(不勾选)
客户机里这样设置
[root@web3 ~]# cd /etc/sysconfig/network-scripts/
[root@web3 network-scripts]# ls
ifcfg-ens33 ifdown-eth ifdown-post ifdown-Team ifup-aliases ifup-ipv6 ifup-post ifup-Team init.ipv6-global
ifcfg-lo ifdown-ippp ifdown-ppp ifdown-TeamPort ifup-bnep ifup-isdn ifup-ppp ifup-TeamPort network-functions
ifdown ifdown-ipv6 ifdown-routes ifdown-tunnel ifup-eth ifup-plip ifup-routes ifup-tunnel network-functions-ipv6
ifdown-bnep ifdown-isdn ifdown-sit ifup ifup-ippp ifup-plusb ifup-sit ifup-wireless
[root@web3 network-scripts]# cat ifcfg-ens33
BOOTPROTO="dhcp" #指定动态获得ip地址 dhcp表示动态获得 none表示静态配置
NAME="ens33"
DEVICE="ens33" #网卡的名字
ONBOOT="yes" #开机激活网卡
[root@web3 network-scripts]# service network restart 刷新网卡服务,重新去获得ip地址
[root@web3 network-scripts]# ifdown ens33;ifup ens33 刷新网卡服务,重新去获得ip地址
这个时候再ip add 重新查看到的ip地址是dhcp服务器中地址池的最小位:因为dhcp默认动态配置是从最小位增大依次配置ip的
六:注意事项
1.建设给dhcp服务器设置固定的ip地址
自己配置的这台dhcp服务器本身也是一台虚拟机,需要ip地址
2.dhcp服多器如何知道哪些地址分配出去了,哪些没有分配出去?
账本,记录哪些地址已经分配了,哪些没有分区,放置在var/lib,dhcpd'dhcpd.leases文件中
3.dhcp服多器如何知道分配出去的ip地址不和别人手工配的冲突呢?
首先arping 符要分配出去的ip地址,如果没有回复,说明ip地址没有使用、可以分配紛客户机。如果有回复。说明ip地址已经在使用了,不分配。