设为首页 收藏本站
查看: 852|回复: 0

[经验分享] DHCP服务介绍及Linux下DHCP服务的管理配置

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-6-25 09:03:21 | 显示全部楼层 |阅读模式
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;
  }
}


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-80381-1-1.html 上篇帖子: 【CentOS 7.1】ping不通域名 下篇帖子: 在CentOS 6.6操作系统下安装配置phpMyAdmin 4.3.13.1 Linux
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表