工作原理:
        1、客户机寻找服务器:广播发送discover包,寻找dhcp服务器
        2、服务器响应请求:单播发送offer包,对客户机做出响应。提供客户端网络相关的租约以供选择
        其中服务器在收到客户端的请求后,会针对客户端的mac地址与本身的设定数据进行一下工作:
            a、到服务器的登录文件中寻找该用户之前曾经使用过的ip,若有且该ip目前没有人使用,这提供此ip为客户机
            b、若配置文件中有针对该mac提供额外的固定ip,且该ip没有被使用,则提供此ip给客户机
            c、如果没有符合以上两个条件,则随机取用目前没有被使用的ip参数给客户机并记录到leases文件中。
        3、客户机发送ip请求:广播request包,选择一个服务器提供的网络参数租约回报服务器。
            此外,客户机会发送一个广播封包给局域网内的所有主机,告知自己已经接受服务器的租约。
        4、服务器确认租约:单播Ack包,服务器与客户机确认租约关系并记录到服务器的leases文件中 。
        
        客户端打开68号端口,服务器打开67号端口。

五个步骤

1.固定IP

2.权限用户

3.软件包确认

4.修改配置文件

5.启动服务器测试

具体操作如下:

1.使用rpm –qa|grep dhcpd查看是否安装了dhcp服务,如图所示:由图可知,系统还未安装dhcp服务器。

2.挂载和安装dhcp软件包,如下图所示:

3.

DHCP的配置文件——/etc/dhcpd.conf

  RHEL5安装后的默认情况下,此文件是一个空白文件。

  该文件的模板是:/usr/share/doc/dhcp-3.0.5/dhcpd.conf .sample

  cp /usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample /etc/dhcpd.conf

  cat /etc/dhcpd.conf 如下图所示。

 ddns-update-style interim; //定义所支持的DNS动态更新类型, (必选),一般设置成关闭,interim和none都是关闭的意思(interim或ad-hoc或none )

  ignore client-updates; //忽略客户端更新,不允许动态更新dns

  subnet 172.16.210.0 netmask 255.255.255.0 { //声明一个网段

  # --- default gateway

  option routers 172.16.210.254; //分配给客户机的网关地址或路由IP地址

  option subnet-mask 255.255.255.0; //分配给客户机的子网掩码

  option nis-domain “domain.org”; //设置NIS域名

  option domain-name “domain.org”; //设置DNS域名,要与DNS的域名一致

  option domain-name-servers 172.16.210.1; //DNS服务器的IP地址

  option time-offset -18000; //为客户端设定和格林威治时间的偏移时间

  # option ntp-servers 172.16.210.1; //为客户端设定网络时间服务器IP地址

  # option netbios-name-servers 172.16.210.1; //设置默认的WINS服务器

  # ---Selects point-to-point node (default is hybrid). Don't change this nless

  # -- you understand Netbios very well

  # option netbios-node-type 2;

  range dynamic-bootp 172.16.210.210 172.16.210.240; //可分配的IP范围

  default-lease-time 21600; //默认的租约时间 6小时

  max-lease-time 43200; //最大的租约时间 12小时

  # we want the nameserver to appear at a fixed address

  host ns { //对主机名为ns的主机做host声明设定对特定网卡的IP分配

  next-server marvin.redhat.com; #设置由于定义服务器从引导文件中装入的主机名,用于无盘站。

  hardware ethernet 12:34:56:78:AB:CD; //主机的MAC地址

  fixed-address 172.16.210.222; //该地址始终分配给该主机

  }

  }

3.启动DHCP服务器

  启动

  # service dhcpd start

  重新启动

  service dhcpd restart

  查询服务的启动状态

  service dhcpd status

  停止服务

  service dhcpd stop

chkconfig    dhcpd    on     启动DHCP服务
    chkconfig    dhcpd    off     停止DHCP服务
注:chkconfig   ***    on/off      启动/停止***服务,只有重启计算机后才生效。

  4.测试DHCP服务器

  启动DHCP服务

  在物理机将IP地址设置为自动获得

  打开“运行”→输入“cmd”

  释放IP地址:ipconfig /release

  重新申请IP地址:ipconfig /renew

  执行:ipconfig /all

  此时若能看到所分配到的IP地址、默认网关和DNS服务器地址,则说明DHCP服务器工作正常,配置成功

服务器配置完了linux客户机怎么获得ip地址呢。其实很简单。这里我叫大家两个命令,其效果是一样的。命令为:dhclint 或者 down 一下接口再up一下接口就可以了。

查看 ip和client对应列表

/usr/lib/dhcpd/目录下的文件

查询端口号

netstat -natup|grep dhcpd

linux基础命令学习(六)DHCP服务器配置的更多相关文章

  1. linux基础命令学习笔记(二)

    linux基础命令学习笔记(二) 1.kill :终止进程  kill pid (唯一标示一个进程) kill -9  强制终止  kill -15 命令未结束不能终止 # ps aux 查看所有进程 ...

  2. linux基础命令学习(六)文件的特殊属性

    Linux chattr命令用于改变文件属性. 这项指令可改变存放在ext2文件系统上的文件或目录属性,这些属性共有以下8种模式: a:让文件或目录仅供附加用途.    b:不更新文件或目录的最后存取 ...

  3. linux基础命令学习(七)samba服务器配置

    samba有五种安全级别,它们分别是: share:不需要samba账户就可登陆samba服务器      user:需要添加samba账户才可以登陆samba服务器      server:由另外一 ...

  4. Linux基础命令学习记录(一)

    使用频繁的Linux命令 一.文件和目录 1.cd命令 cd / 进入根目录 cd .. 返回上一级目录 cd ../.. 返回上两级目录 cd 进入个人的主目录 cd ~ 进入个人的主目录 cd - ...

  5. linux基础命令学习五(软件包管理、下载管理)

    Linux 软件包管理   本文主要是记录下RedHat系列的软件包管理. 内容分为以下二个部分:二进制包的管理,源代码包的管理 一.二进制包的管理 1.1概念 主要有RPM和YUM这两种包管理. 两 ...

  6. linux基础命令学习(四)计划任务

    一.计划任务 crond服务简介 linux任务调度的工作主要分为以下两类: *系统执行的工作:系统周期性所要执行的工作,如备份系统数据.清理缓存 *个人执行的工作:某个用户定期要做的工作,例如每隔1 ...

  7. linux基础命令学习总结

    本附录([美]哈恩:<Unix&Linux大学教程>附录B,张杰良译,清华大学出版社,2010年)摘要描述了书中所涉及的143个Unix使命,并且按照命令的类别进行排列.在每个名称 ...

  8. linux基础命令学习笔记(一)

    2019年4月1日: “目录” = “文件夹” 常用命令(一): 1.ls: list 列表,默认当前文件夹的文件和目录 linux:命令+选项+参数 ls -l:长输出,列出文件的详细信息 - rw ...

  9. 从零开始学安全(七)●Linux基础命令学习笔记

    halt 关机reboot 现在重新启动su - 如果当前是普通用户,则输入这条命令切换到管理员用户(root),如果要切换到其他用户则敲入 su - 用户名 如: su - wangxin root ...

随机推荐

  1. IoC 之 2.3 IoC的配置使用(叁)

    2.3.1  XML配置的结构 一般配置文件结构如下: <beans> <import resource="resource1.xml"/> <bea ...

  2. 扩展Date的DateDiff方法--日期差

    Date.prototype.DateDiff = function(after){ var diffDay; var beforeDate = new Date(this).format(" ...

  3. C# Socket编程(1)基本的术语和概念

    计算机程序能够相互联网,相互通讯,这使一切都成为可能,这也是当今互联网存在的基础.那么程序是如何通过网络相互通信的呢?这就是我记录这系列的笔记的原因.C#语言从一开始就是为了互联网而设计的,它为实现程 ...

  4. 如何使用Retrofit获取服务器返回来的JSON字符串

    有关Retrofit的简单集成攻略,大家可以参考我此前的一篇文章有关更多API文档的查阅请大家到Retrofit官网查看. 在大家使用网络请求的时候,往往会出现一种情况:需要在拿到服务器返回来的JSO ...

  5. 《Java程序设计》第四周学习总结

    20145224-陈颢文 <Java程序设计>第四周学习总结 教材学习内容总结 第六章 继承与多态 ·继承就是面向对象中,子类继承父类,避免重复的行为定义.重复再程序设计上是非常不好的信号 ...

  6. Struts、JSTL标签库的基本使用方法

    一 使用Struts标签之前需要经过下面3个步骤的配置. 1.导入TLD文件. 2.在web.xml中注册标签库. 3.在页面中引入标签库. 下面详细介绍以上步骤. 1 导入TLD文件. TLD文件是 ...

  7. 9. shell环境

    • printenv –打印部分或所有的环境变量 • set –设置 shell 选项 • export —导出环境变量,让随后执行的程序知道. • alias –创建命令别名 1.shell环境:s ...

  8. 如何查看,关闭和开启selinux

    以下介绍一下SELinux相关的工具/usr/bin/setenforce 修改SELinux的实时运行模式setenforce 1 设置SELinux 成为enforcing模式setenforce ...

  9. 关于C#迭代器

    >1 IEnumerator与IEnumerable IEnumerator与IEnumerable两个接口是用于实现迭代器的接品只要实现了IEnumerable就可以用foreach,linq ...

  10. kafka技术要点

    转载:http://blog.csdn.net/caisini_vc/article/details/48007297 Kafka是分布式发布-订阅消息系统.它最初由LinkedIn公司开发,之后成为 ...