一、概念
明确:IP是谁给的,怎么给的,获取IP的前的设置!
DHCP: Dynamic Host Configuration Protocol,动态主机配置协议,局域网的网络协议,使用UDP协议工作。DHCP服务器一旦开机就会给同一物理网段有需求的客户端自动分配IP,并有一定的租期,租期到了则收回,IP可以续租,续租失败则收回并重新分配,如果服务器关闭则收回IP,遵从先到先得的原则,哪台主机先申请就优先分配,并且基于广播机制。
注意:服务器和给客户端分配的IP必须在同一个网段!
主要用途:用于内部网络和网络服务供应商自动分配ip地址给用户
########################
二、部署dhcpd服务程序
客户端的说明:得有动态获取IP的需求,就跟要饭的似的,有人给就要!
客户端设置IP的方式:动态获取
#演示:命令行的方式,也可以通过配置文件、 nm-connection-editor 图形界面、nmtui命令的文本界面
nmcli connection add type ethernet con-name wzj ifname br0 autoconnect yes
服务器端的核心:提供自动分配服务!
server端的操作
(1)下载
1)如果是mount将7.0镜像挂载在指定目录上,可以通过 yum -y install dhcp
2)如果是单独下载的,可以通过 rpm -ivh dhcp-4.2.5-27.el7.x86_64 (7.0版本对应的dhcp软件)
(2)rpm -q dhcp -->查看软件是否安装
(3)cd /etc/dhcp/ ;ls -->此目录是相应的配置文件(默认:安装后dhcpd.conf 是没有做任何配置的)
(4)cp /usr/share/doc/dhcp/dhcpd.conf.example /etc/dhcp/dhcpd.conf -->复制配置文件的模版文件
(5)vim /etc/dhcp/dhcpd.conf -->根据需要修改配置文件
补充:rpm -qa dhcp -->看到安装软件对应的文件的安装位置!
注意:是dhcpd.conf配置文件,不是dhcp.conf配置文件,一个字符之差
此配置文件默认的内容
所作的操作和说明
7行 ##是域名设置
8行 ##是DNS地址,在路由器需要解析时会用到
10行 ##11行,是租赁时间长度,建议默认值
27行 ##27、28行,删除,不用。
32行 ##就是主机位,子网掩码的设置
33行 ##分配的ip池范围设置
34行 ##网关的设定
35行 ##后面的都删除了
达到的效果:服务器端配置文件
# dhcpd.conf
#
# Sample configuration file for ISC dhcpd
#
# option definitions common to all supported networks...
#
# (1)为客户端指明DNS名字
#
option domain-name "example.com";
#
# (2)为客户端指明DNS服务器IP地址(最好指定:114.114.114)
option domain-name-servers 172.25.2.254;
###上面这两个设定会"影响客户端"的/etc/resolv.conf
###作用:访问一些网站的域名时,此DNS服务器会给与域名的解析,目前不影响我们既定的实验效果!
# (3)默认的租赁时间长度,单位是秒
default-lease-time 600;
# (4)指定最大租赁时间长度,单位是秒
max-lease-time 7200;
##说明:上面两个是ip的有效期,过了就会被回收!
# Use this to enble / disable dynamic dns updates globally.
#ddns-update-style none;
# If this DHCP server is the official DHCP server for the local
# network, the authoritative directive should be uncommented.
#authoritative;
# Use this to send dhcp log messages to a different log file (you also
# have to hack syslog.conf to complete the redirection).
log-facility local7;
# No service will be given on this subnet, but declaring it helps the
# DHCP server to understand the network topology.
# This is a very basic subnet declaration.
#(5)为客户端设定子网掩码,(subnet)描述一个IP地址属于该子网的例子!
subnet 172.25.1.0 netmask 255.255.255.0 {
#(6)设定分配IP的地址池(空格分开),给客户端分配ip的区间
range 172.25.1.100 172.25.2.120;
#(7)给客户端路指定默认的网关,后续可以通过此网关来实现不同网段的通信!
option routers 172.25.1.215;
}
本质:dhcp服务器目的为了给客户端主机自动分配IP地址,子网掩码,还有网关,DNS用的!
服务器配置之后的设置
(1)开机启动方式
systemctl start dhcpd ##打开dhcp服务
systemctl enable dhcpd ##自启动开启
#####################
(2)防火墙配置(安全配置)
firewall-cmd --permanent --add-service=dhcp ##添加dhcp服务
firewall-cmd --reload ##重新载入
firewall-cmd --list-all ##查看dhcp是否通行
注:防火墙的配置也可以先关闭防火墙,即:systemctl stop firewall-cmd
说明:至此一个DHCP服务器的搭建过程就完成了!
###################
三、测试
注意:为了消除影响,应先关掉其他dhcp服务器,或断开与其他dhcp服务器的连接!
客户端的测试
/var/lib/dhclient/* 特点:该文件记录了客户端的根据dhcpd设置的租约信息
图片
服务器端验证
/var/log/message ##可以清晰的看到,服务器的IP给了哪个MAC地址
/var/lib/dhcpd/dhcpd.leases ##该文件专门记录了dhcp服务端与每个客户端的租约时间、客户端主机名等信息
小细节:多网卡的时候,我们用临时关闭其中一个网卡来测试
ifconfig eth0 down
多网卡:网上看的解决办法
/etc/sysconfig/dhcpd
文件特点:该文件用来定义dhcpd监听的网络卡接口,防止服务器多个网卡造成混乱
CentOS5之后的版本不需要配置该文件,而是系统自动做出判断!
四、分析原理
dhcp工作原理(前4种经常用到)
DHCP DISCOVER:客户端到服务端 客户端设置为自动获取后一开机就会向网络发广播
DHCP OFFER: 服务器到客户端 如果网络中有DHCP服务器就会分配一个IP并同时在网络中进行标记此IP已被占用
DHCP REQUEST: 客户端到服务器 网络中有多个DHCP同时分配IP这时就需要进行选择一个
DHCP ACK: 服务器到客户端 服务器最终确认
################分割线##################
DHCP NAK: 服务器到客户端,通知用户无法分配合适的ip地址
DHCP DECLINE: 客户端到服务器,只是地址已被使用
DHCP RELEASE: 客户端到服务器,放弃网络地址和取消剩余的租约时间
DHCP INFORM: 客户端到服务器,客户端如果需要从DHCP服务器端获取更为详细的配置信息 ,则发行inform报文向服务器进行请求,极少用到
相关连接
五、排错
错误1
原因:系统的配置文件错误或者dhcpd服务器本身IP地址没有被划入dhcp分配范围!
错误2:服务虽然开启了,但是有报错!
说明:由于没有声明哪个网卡启动dhcp功,RHEL5以后会自动尝试匹配,不影响实验结果!
解决思路:
/etc/sysconfig/dhcpd中添加一行
内容:DHCPDARGS=eth0
不建议:RHEL5之后就可以自己判断了!
错误3
说明:多网卡出现的问题,不知道原因!
######################
六、linux的DHCP服务启动失败原因
出现问题的可能有以下几个可能:
1. 配置文件有问题。
1.1) 内容不符合语法结构,例如:少个分号;
1.2) 声明的子网和子网掩码不符合;
2. 主机IP地址和声明的子网不在同一网段-->经常容易犯错的!
3. 主机没有配置IP地址
4. 配置文件路径出问题,RHEL6以下的版本中配置文件保存在了/etc/dhcpd.conf,rhel6及以上版本中,却保存在了/etc/dhcp/dhcpd.conf
细化
配置错误类型 错误原因
IP 地址设置错误 ##网络层无法到达;
掩码设置错误 ##导致主机误划入其他网段,引起路由无法访问;
网关设置错误 ##导致网络不通,或者路由不可达;
DNS设置错误 ##网络物理连通真传,但无法获得目的IP地址,无法组包进行通信;
注意: dhcpd服务配置的时候一定要将本身IP地址划入dhcp分配范围!
相关参考连接:手把手教你搭建DHCP服务器、服务多网卡多地址池链接
七、扩展需求
下边是实例
公司IP地址是192.168.1.0/24网段,可以容纳254台机器,使用DHCP服务器建立一个192.168.1.0网段的作用域,动态管理IP地址;但网络规模扩大到500台机器,一个C类网络就无法满足要求,这时可以再为DHCP服务器添加一个新的作用域,管理分配192.168.0.0网段的IP,为网络增加254个新地址,这样就需要DHCP服务器有双网卡
每个网卡连接一个子网,发布对应的作用域
1,配置双网卡IP
[root@mylab ~]# ifconfig eth0 192.168.0.1 netmask 255.255.255.0
[root@mylab ~]# ifconfig eth0 192.168.1.1 netmask 255.255.255.0
2,编辑配置文件/etc/dhcpd.conf
ddns-update-style interim;
ignore client-updates;
subnet 192.168.0.1 netmask 255.255.255.0; {
option routers 192.168.0.1;
default-lease-time 43200;
max-lease-time 86400;
range dynamic-bootp 192.168.0.10 192.168.0.250;
}
subnet 192.168.1.1 netmask 255.255.255.0; {
option routers 192.168.1.1;
default-lease-time 43200;
max-lease-time 86400;
range dynamic-bootp 192.168.1.10 192.168.1.250;
}
八、配置文件
连接、超级棒
九、中继dhcp服务搭建
链接1:如何搭建DHCP及DHCP中继服务器
链接2:拓扑结构
链接3:RHEL7系统管理之网络管理