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;

  }

  }

时间: 2024-09-20 00:18:37

DHCP服务介绍及Linux下DHCP服务的管理配置的相关文章

简单介绍一下Linux下的FTP命令

&http://www.aliyun.com/zixun/aggregation/37954.html">nbsp;   我是用虚拟机装了Linux,真实系统是Windows XP,在Windows XP下用Serv-u软件架设了FTP服务器,然后我们就可以在虚拟机的Linux下登录该FTP服务器下载或上传文件了,不同的仅是在Linux下是在命令行里输入相关FTP命令来完成的,应该也有像FlashFXP.CuteFTP这一类的Linux专用软件,不过我孤陋寡闻,不了解,也就不误人子

Linux下Nagios的安装与配置

Nagios是企业普遍使用的最具影响力的网络信息监视系统之一,它可以动态监视指定的网络状态,并在状态异常时发出警告音或邮件报警通知运维人员.监控的类型和警报定时器是完全可定制的. Nagios的另一强大功能是它能同时监测主机和服务.例如,它可以同时监测到IP地址和TCP/UDP端口号.为进一步阐述此功能,我们假定有台需要监测的web服务器,Nagios可运用在服务器上基于IP/服务器名运行ping命令的方法检测服务器是否在线,同时当服务器的RTT(往返时延)增加时,Nagios会随时告警.另外,

Linux下vsftp的重新安装和配置虚拟用户

Linux下vsftp的重新安装和配置虚拟用户 重新安装和配置虚拟用户 以下都是在root用户下进行的 #tar zxvf vsftpd-2.0.5.tar.gz --解压 #cd vsftpd-2.0.5.tar.gz --解压后进入vsftpd-2.0.5.tar.gz目录 # mkdir /usr/share/empty/ --VSFTPD默认设置需要一个空目录:/usr/share/empty # mkdir /var/ftp/ --如果容许匿名用户(anonymous),那么你将需要一

Linux下源码编译安装配置SVN服务器的步骤分享_Linux

说明: SVN(subversion)的运行方式有两种: 一种是基于Apache的http.https网页访问形式: 还有一种是基于svnserve的独立服务器模式. SVN的数据存储方式也有两种:一种是在Berkeley DB数据库中存储数据:另一种是使用普通的文件FSFS存储数据. 由于Berkeley DB方式在使用中有可能锁住数据,一般建议使用FSFS方式更安全. 实现目的: 以svnserve的独立服务器模式,使用FSFS数据存储方式源码编译安装配置SVN服务器. 具体操作: 操作系统

linux下mysql允许外部远程访问配置

  mysql远程访问我们在网上看到最多的就是直接给mysql数据库授权了,但有一些朋友发现按此教程还是无法连接mysql了,下文小编为各位详细介绍一篇在linux下mysql允许外部远程访问配置 设置mysql 的配置文件 /etc/mysql/my.cnf 找到 bind-address =127.0.0.1 将其注释掉;//作用是使得不再只允许本地访问; 重启mysql:/etc/init.d/mysql restart; 进入mysql 数据库 mysql -u root -p mysq

win7系统,求介绍该系统下适用的软件测试管理工具!!急用!!

问题描述 win7系统,求介绍该系统下适用的软件测试管理工具!!急用!! 跪求介绍,万谢!!!!!!!!!!!!!!!!!!!!!!!!!!! 解决方案 Dev.cpp 解决方案二: 我们一般用这个 TestDirector, (以下简称TD)它是Mercury Interactive 公司推出的基于WEB浏览器环境下的测试管理工具.通过TD的流程控制可以规范软件企业的测试流程.改善测试质量.减轻测试人员的负担.提高工作效率. 解决方案三: TestDirector 解决方案四: Visual

Linux下ffmpeg安装与开发配置

Linux下ffmpeg安装与开发配置   1. ffmpeg安装 安装环境: ubuntu 12.04 (1)删除已安装的文件,避免冲突 sudo apt-get remove ffmpeg x264 sudo apt-get autoremove (2)安装需要的支持 sudo apt-get install make automake g++ bzip2 python unzip patch subversion ruby build-essential git-core checkins

linux下mysql服务无法启动

具体解决方法流程如下 1.删除mysql的所有pid进程 2.启动mysql .如果启动正常了就ok,如果不正常就看mysql的日志文件 3.查看日志文件,看看报错信息  根据报错信息来对应处理mysql无法启动的问题 状况1 1 ^G/usr/sbin/mysqld: Disk is full writing './mysql-bin.~rec~' (Errcode: 28). Waiting for someone to free space... (Expect up to 60 secs

Linux下MySQL的安装与配置

  在Linux下MySQL的安装,我一直觉得挺麻烦的,因为之前安装时就是由于复杂的配置导致有点晕.今天,需要在Linux下用Qt连接MySQL.遂安装配置了一把. 1)首先检查系统中是否已经安装了MySQL 在终端里面输入 sudo netstat -tap | grep mysql 若没有反映,没有显示已安装结果,则没有安装.若如下显示,则表示已经安装 2)如果没有安装,则安装MySQL. 在终端输入 sudo apt-get install mysql-server mysql-clien