linux
DHCP服务介绍及Linux下DHCP服务的管理配置?
一、DHCP服务介绍及Linux下DHCP服务的管理配置?
1. DHCP服务简介
DHCP是Dynamic Host Configuration Protocol,动态主机配置协议,是用来在物理网络给主机分配ip地址的一种方式,区别于bootp,一次分配终身使用的缺点。
DHCP提出的租约的概念,使得可以根据需要动态确定主机需要的IP地址,并且IP地址可以循环使用。
2. DHCP结构
DHCP是典型的C/S结构,需要服务端启动守护进程来保证来自client段的请求能被响应,DHCP的工作原理如下:
可以通过DORA来记忆:
Client: DHCP DISCOVER #客户端向相同网络发送广播包,企图寻找DHCP服务器
Server: DHCP OFFER#如果DHCP服务段收到DISCOVER包,则向客户端回复OFFER广播包
Client: DHCP REQUEST#客户端收到来自DHCP的OFFER广播包后,则确定DHCP服务器,继续向DHCP服务器发送REQUEST包,来申请ip信息
Server: DHCP ACK#DHCP服务端向客户端发送ACK包,携带ip和租约信息给客户端, DHCP发现过程结束
注意: dhcp在跨网段的路由器另一侧,则路由器需要开启dhcp relay来支持转发客户端DISCOVER的广播包给DHCP服务器,这些通过路由器的转发,都是单播
因为路由器和dhcp之间的连接是有ip信息的。
DHCP服务端端口 UDP 67
DHCP客户端端口 UDP 68
DHCP reservation: 地址保留:
专用于某特定客户端的地址,不应该使用地址池中的地址;优先于地址池中的地址;
3. Linux下DHCP服务安装配置
由于CentOS6/7的系统管理机制不同,所以开机自启动服务的方式有所不同,但是配置文件,帮助文档大同小异
3.1 CentOS 6下 DHCP安装:
#yum install dhcp
#通过rpm -ql dhcp 来查询hdcp包所创建安装的文件,我们可以分析他的使用方式:
这里列举几个比较重要的文件:
#DHCP服务配置文件:
/etc/dhcp/dhcpd.conf
/etc/dhcp/dhcpd6.conf
#服务脚本,控制dhcp服务的启动,关闭,状态查询,reload等
/etc/rc.d/init.d/dhcpd
/etc/rc.d/init.d/dhcpd6
/etc/rc.d/init.d/dhcrelay
/etc/rc.d/init.d/dhcrelay6
#dhcp命令参数配置文件: 此文件内容提供一些区段给dhcpd守护进程在系统引导时使用,dhcpd守护进程使用DHCP及BOOTP协议为主机自动分配IP地址
/etc/sysconfig/dhcpd
/etc/sysconfig/dhcpd6
/etc/sysconfig/dhcrelay
/etc/sysconfig/dhcrelay6
#dhcp二进制程序
/usr/sbin/dhcpd
/usr/sbin/dhcrelay
#dhcp的ip地址租约库,可以查到ip分配情况
/var/lib/dhcpd/dhcpd.leases
/var/lib/dhcpd/dhcpd6.leases
4.1 CentOS6下dhcp服务配置文件管理:
4.1.1 首先编辑dhcp主配置文件:
/etc/dhcp/dhcpd.conf
option domain-name "richie.com"; #dhcp主机名
option domain-name-servers 192.168.229.141; #名称服务器的地址
default-lease-time 600; #默认租约秒数
max-lease-time 7200;#最大租约秒数
log-facility local7; #log级别
subnet 192.168.229.0 netmask 255.255.255.0 {
range 192.168.229.201 192.168.229.220; #可供分配的ip段
option routers 192.168.229.1, 192.168.229.2; #如果在最近配置的option routers那就直接饮用,如果没有,那就会自动继承上一级的option
} #子网配置格式
当编辑完,保存退出,可以使用这个命令来检测语法错误:
service dhcpd configtest
4.1.2 配置ip地址预留:
需要在subnet {} 内部,配置host{}格式如下:
subnet 192.168.229.0 netmask 255.255.255.0 {
host windows1 {
hardware ethernet 00:0c:29:0:f3:44;
fixed-address 192.168.229.222;
option routers 192.168.0.1 #这里可以针对这台机器设置option routers的值,而不用继承上一级的网关信息
}
}
最后,保存退出
service dhcpd force-reload
测试效果:
linux client:
dhclient -d eth0
window client:
ipconfig /renew
4.1.3 配置开机自启动:
还是老命令chkconfig dhcpd on, 默认会将init级别2,3,4,5都设置为开机自启动, 也可以使用 chkconfig --level 2,3,4 来自己指定需要的运行级别自启
4.1.4 管理dhcp服务
service dhcpd {start|stop|restart|force-reload|condrestart|try-restart|configtest|status}
4.2 CentOS 7下的DHCP服务管理
4.2.1 配置文件:
同CentOS6上的配置,参见4.1.1
4.2.2 配置ip地址预留:
同CentOS6上的配置,参见4.1.2
4.2.3 配置开机自启动:
由于CentOS6/7的系统服务管理机制的不同,CentOS7引入了systemd来管理所有的服务,所以不能再使用chkconfig命令来设置,需要使用:
# systemctl is-enabled DAEMON.service 查看dhcp服务状态, 相当于C5的 chkconfig --list dhcpd
# systemctl enable DAEMON.service启用开机自启动dhcp服务, 相当于C5的 chkconfig dhcpd on
# systemctl disable DAEMON.service 禁用开机自启动dhcp服务, 相当于C5的 chkconfig dhcpd off
4.2.4 管理dhcp服务
# systemctl {start|stop|restart|status} DAEMON.service
5. DHCP配置命令总结
一个简单dhcp服务的配置文件至少需要包含如下的配置信息:
dhcpd.conf
option domain-name
option domain-name-servers
option routers
subnet NETWORK netmask MASK {
range START_IP END_IP;
host HOSTID {
hardware ethernet 00:11:22:33:44:55;
fixed-address IP;
}
}
========================================================
例子:
dhcpd.conf
option domain-name "richie.com";
option domain-name-servers 192.168.229.141;
default-lease-time 600;
max-lease-time 7200;
log-facility local7;
subnet 192.168.229.0 netmask 255.255.255.0 {
range 192.168.229.201 192.168.229.220;
option routers 192.168.229.1, 192.168.229.2;
host windows1 {
hardware ethernet 00:0c:29:30:f3:44;
fixed-address 192.168.229.211;
}
二、查看linux下dhcp服务器分配出去的ip地址及剩余ip地址脚本怎么写?
1。tail /var/log/message,可以清晰的看到,服务器的IP给了哪个MAC地址2. /var/lib/dhcpd/dhcpd.leases 这个文件专门记录了DHCP的分配情况
三、linux下如何开机自启动dhcp服务?
1,通过编辑/etc/rc.local文件来使dhcp服务开机自启动
使用命令 vi /etc/rc.local,
然后在文件最后一行添加 “sudo /etc/init.d/dhcp3-server start”就能使dhcp服务开机自启动。
2,使用crontab任务提交计划
先写一个简单的检查dhcp服务是否启动了的脚本a.sh:
#!/bin/bash ps -ef|grep dhcp|grep -v grep if [ "$?" -eq "0" ] then exit 0 else sudo /etc/init.d/dhcp3-server start >/dev/null 2>&1 fi
如果在用户目录下没有cron文件,使用vi新建一个my.cron的crontab文件,将以下内容写进去:
*/5 * * * * bash $HOME/a.sh
然后crontab my.corn 提交,这样系统就会在每5分钟运行一次a.sh脚本,检测dhcp服务已经启动了,如果没有启动或者停止了就会再启动一次。
3,注册系统服务
chkconfig --add 服务名称 (首先,添加为系统服务,注意add前面有两个横杠)
chkconfig -leve 启动级别 服务名 on
(说明,3级别代表在命令行模式启动,5级别代表在图形界面启动,on表示开启)
chkconfig -leve 启动级别 服务名 off
(说明,off表示关闭自启动)
例如注册dhcp为系统服务并在开机时自启动:
chkconfig --add dhcp chkconfig -level 3 dhcp on
总结一下:第一种方法其实是将指定服务设置为开机自启动,第三种方法是将服务升级为系统服务并且设置为开机时启动,而第二种方法对于那些最好或者必须开机启动的服务最好不要使用,但是可以使用crontab来实时监测服务是否在线。
四、linux怎么进入配置dhcp?
可以进入配置DHCP。原因是Linux操作系统提供了一种简单而灵活的方式来配置DHCP,使其适应不同的网络环境和需求。要进入配置DHCP,首先需要打开终端并以管理员身份登录。然后,可以使用文本编辑器(如vi或nano)打开DHCP服务器的配置文件(通常是/etc/dhcp/dhcpd.conf)。在配置文件中,可以定义DHCP服务器的各种参数,如IP地址池范围、租约时间、网关和DNS服务器等。配置完成后,保存文件并重启DHCP服务器即可使配置生效。通过这种方式,可以灵活地配置DHCP,满足不同网络环境和需求的要求。
五、linux如何查看dhcp是否配置成功?
ifconfig,就可以查看,或者ping目标ip
六、linux怎么安装dhcp服务器?
以下是在Linux中安装DHCP服务器的步骤:
创建文件夹:首先,在Linux系统中创建一个文件夹,用于存放DHCP服务的配置文件。例如,使用命令mkdir /etc/dhcp创建一个名为dhcp的文件夹。
移动文件:将/etc/yum.repo.d文件夹中的所有文件移动到新创建的dhcp文件夹中。命令为mv /etc/yum.repo.d/*.repo /etc/dhcp。
创建配置文件:创建一个新的配置文件,以安装DHCP软件。例如,使用命令vim /etc/dhcp/dhcpd.conf创建一个名为dhcpd.conf的配置文件。
在配置文件中写入内容:在创建的配置文件中,输入以下内容:
sql
复制代码
# dhcpd.conf - DHCP server configuration file
#
# This is a basicDHCPd configurationfile. It assumes that you have only one
# subnet, and that you want to assign dynamic addresses within that subnet.
#
# For informational purposes, comments are indicated with # marks. Lines beginning
# with # can be ignored when reading this file.
#
# Note: If you would like to use the 'next-server' keyword, please see the dhcpd.conf
# manpage for more information about how to configure that keyword's syntax and
# usage requirements.
# The ddns-update-style ad-hoc parameter tells the DHCP server to update DNS records
# in a 'ddns-update-style ad-hoc' fashion, which is a non-standard mode that is useful
# only when the DHCP server and DNS server are on the same box, and when the DHCP server
# has no other knowledge of the network topology. If you don't understand this, just
# leave this option commented out, and your DNS records will be updated correctly.
ddns-update-style ad-hoc;
# The ddns-updates parameter tells the DHCP server whether or not to update DNS records.
# If you don't want DNS records to be updated, leave this option commented out. Otherwise,
# you can either set this option to "no" if you don't want the DHCP server to update DNS
# records, or you can set this option to "yes" if you do want the DHCP server to update DNS
# records.
ddns-updates;
# The ddns-update-period parameter tells the DHCP server how often to update DNS records, in seconds.
ddns-update-period 7200;
# The ddns-domainname parameter tells the DHCP server which domain name to use when updating DNS records.
ddns-domainname "localdomain";
# The ddns-rev-domainnam
七、linux dhcp连接异常不能上网?
在Linux系统中,如果你的DHCP连接异常并且无法上网,可以尝试以下解决方法:
1. 确保网络设置正确:检查你的网络设置,确保你的网络连接类型设置为DHCP,并且已经正确获取到IP地址、网关和DNS服务器信息。你可以在Linux系统中使用以下命令来查看当前网络设置:
```
$ ifconfig
$ cat /etc/resolv.conf
```
2. 重启网络服务:尝试重启网络服务以重新建立连接。不同的Linux发行版可能使用不同的命令,以下是几个常见的命令:
```
$ sudo systemctl restart network
$ sudo systemctl restart NetworkManager
```
3. 检查DHCP服务器状态:确保DHCP服务器正常运行,并具有足够的IP地址分配。可以与网络管理员或ISP提供商联系来确认DHCP服务器的运行状态。
4. 检查防火墙设置:确认是否防火墙设置阻止了DHCP连接。可以暂时禁用防火墙,并重新测试连接。不同的Linux发行版可能使用不同的工具或命令来管理防火墙,例如:
```
$ sudo ufw disable
$ sudo systemctl stop firewalld
```
5. 重置网络配置:如果上述方法仍然无效,可以尝试重置网络配置并重新设置DHCP连接。你可以使用以下命令来重置网络配置:
```
$ sudo dhclient -r
$ sudo dhclient
```
这些是一些常见的解决方法,希望能帮助你解决DHCP连接异常无法上网的问题。如果问题仍然存在,建议详细检查网络配置,包括网卡驱动程序和硬件连接等,并确保电脑与路由器的物理连接正常。如有需要,也可联系Linux社区或网络供应商获取更多技术支持。
八、dhcp安装包linux怎么下载?
可以通过Linux系统自带的包管理器来下载dhcp安装包,其具体步骤如下:1.打开终端,以root权限登录系统;2.输入命令:yum install dhcp3.等待系统自动下载安装包并完成安装;4.安装完成后,输入命令:systemctl start dhcpd 就可以启动DHCP服务了。所以,如果你需要下载dhcp安装包,可以通过Linux系统自带的yum命令来下载。
九、linux的dhcp模式ping不通路由?
重新启动下路由器!
有可能是路由上没设置DNS 自己机器不设置DNS会出现下面的情况:
1,能上QQ,能玩游戏,不能打开网页;
2,打开部分网页,看网站服务器的端口设置;
3,不能收发邮件。
这主要的原因是因为不能正常解析DNS服务器地址造成的哈哈
十、vmware中linux无法动态获取dhcp解决方法?
vmware中linux无法动态获取dhcp,是因为系统版本不是最新版本造成的,你需要更新到最新版本即可正常使用
热点信息
-
在Python中,要查看函数的用法,可以使用以下方法: 1. 使用内置函数help():在Python交互式环境中,可以直接输入help(函数名)来获取函数的帮助文档。例如,...
-
一、java 连接数据库 在当今信息时代,Java 是一种广泛应用的编程语言,尤其在与数据库进行交互的过程中发挥着重要作用。无论是在企业级应用开发还是...
-
一、idea连接mysql数据库 php connect_error) { die("连接失败: " . $conn->connect_error);}echo "成功连接到MySQL数据库!";// 关闭连接$conn->close();?> 二、idea连接mysql数据库连...
-
要在Python中安装modbus-tk库,您可以按照以下步骤进行操作: 1. 确保您已经安装了Python解释器。您可以从Python官方网站(https://www.python.org)下载和安装最新版本...