DHCP

DHCP

DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)通常被应用在大型的局域网络环境中,主要作用是集中的管理、分配IP地址,使网络环境中的主机动态的获得IP地址、Gateway地址、DNS服务器地址等信息,并能够提升地址的使用率。
DHCP协议采用客户端/服务器模型,主机地址的动态分配任务由网络主机驱动。当DHCP服务器接收到来自网络主机申请地址的信息时(基于rarp协议广播,rarp协议即由mac地址到ip地址的地址解析),才会根据实现定义的地址池向网络主机发送相关的地址配置等信息,以实现网络主机地址信息的动态配置。

工作流程:基于广播的方式,dhcp不可以跨网段工作

1、Client:dhcp discover
    客户端发送请求报文
2、Server: dhcp offer
    服务端响应报文,向客户端提供IP/Netmask,GW, DNS Server,还可以有 NTP Server, Wins Server。。。
3、Client:dhcp request
    客户端发送确认报文,确认使用dhcp服务器提供的哪个地址。
4、Server:dhcp ack
    服务器端确认客户端可使用此地址

lease time:租约期限;

客户端从服务端获取地址以后,此地址的可使用时长,客户端在使用期限到达一半的时候向服务器端发送续租请求,如果第一次请求为得到响应,则继续使用此地址待剩余租期的一半时间时再次向服务端发送续租请求,依次类推,直到获得续租响应为止,得到续租响应以后租期会重新从最初租约期限开始,再次到达租约期限一般的时候重新发起续租请求。如果直到租约到期还为得到续租响应的话,客户端则会在租约期限的93.75时再次向服务端发送申请新的地址请求。

dhcp relay:dhcp中继

由代理服务路由器隔开的两个局域网,且两个局域网之间可以相互通信,其中局域网1启动一个dhcp服务器,局域网2的地址请求统统发往中间代理,这个中间代理接收到局域网2广播地址的请求之后,由单播形式将请求转发至局域网1中的dhcp服务器,然后得到dhcp服务器的单播形式的响应。继而中间代理再通过广播形式向局域网2中响应请求。整个工作流程中中间代理和局域网1中的dhcp服务器通信都是单播形式的,和局域网2的通信都是广播形式的。就就叫做dhcp relay server

dhcp协议的实现

dhcp:(isc.org) – The dhcp package provides the ISC DHCP service and relay agent.
dnsmasq:(dns, dhcp) – Dnsmasq is lightweight, easy to configure DNS forwarder and DHCP server. It is designed to provide DNS and, optionally, DHCP, to a small network.

程序环境

dhcp server:dhcp服务
    /usr/sbin/dhcpd
    IPV4网络:
        /etc/dhcp/dhcpd.conf
        /usr/lib/systemd/system/dhcpd.service
    IPV6网络:
        /etc/dhcp/dhcpd6.conf
        /usr/lib/systemd/system/dhcpd6.service
dhcrelay:dhcp代理
    /usr/sbin/dhcrelay
    /usr/lib/systemd/system/dhcrelay.service

监听的地址和端口:

Server: 67/udp
Client: 68/udp

配置文件:/etc/dhcp/dhcpd.conf

配置指令:
    option选项:配置给客户端的相信息
    指令:定义dhcp server的工作特性
配置级别:
    全局配置
    子网配置
    主机配置
常用的配置:
    default-lease-time 600; 默认租约期限
    max-lease-time 7200; 最大租约期限
    option domain-name "search_domain.tld"; 指定搜索域
    option domain-name-servers DNS_SERVER1, DNS_SERVER2, DNS_SERVER3; 指明配置给客户端的dns服务地址
    option routers GW1, GW2, ...; 配置给客户端的默认网关
    option broadcast-address BROADCAST_ADDRESS; 配置给客户端的广播地址

定义网络作用域,即一个子网,主要用于指明地址池;
    subnet NETWORK  netmask MASK {  IP和掩码
        range START_IP END_IP; 起始地址IP和结束地址IP
    }  

为某一个地址固定分配一个地址,固定ip的优先级比subnet优先级高,切subnet的网关配置对固定ip不生效
    host passacaglia { 
        hardware ethernet 0:0:c0:5d:bd:95; 主机的mac地址
        fixed-address IP_ADDR; 要分配给主机的固定IP地址
    }

其他配置指令
    filename:指明引导文件名称;
    next-server:指明引导文件所在的服务器的主机IP;

        filename “pxelinux.0";
        next-server 10.1.0.6;
            tftp server
配置示例:
]# yum install dhcp -y 安装服务程序
]# cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf 复制配置文件样本到配置文件目录
]# vim /etc/dhcp/dhcpd.conf
    option domain-name "ali.com"; 搜索域
    option domain-name-servers 192.168.25.138,8.8.8.8,114.114.114.114; 指明配置给客户端的dns服务地址
    option routers 192.168.25.138; 指明配置给客户端的网关


    default-lease-time 3600; 默认租约期限
    max-lease-time 7200;最大租约期限

    log-facility local7; 日志发送位置

    subnet 192.168.25.0 netmask 255.255.255.0 { 定义一个子网网段和网关
    range 192.168.25.143 192.168.25.150; 指定起始ip和结束ip
    option routers 192.168.25.200; 在子网中指明的网关优先级高
    }

    :.,$s/^[[:space:]]*[#&]/#/g 在配置文件中使用vim命令注释掉其他行

]# service dhcpd start 启动服务
]# ss -unl 查看udp67号端口是否已经打开
]# 手动设置虚拟机服务器端和客户端的网络接口为vmnet1 然后启动客户端主机
]# dhclient -d 客户端执行命令进行测试 查看是否获得地址池中的地址,注意测试时需要关闭虚拟机的dhcp服务
]# route -n 客户端执行命令进行测试 查看是否获得指定的网关,注意测试时需要关闭虚拟机的dhcp服务
配置示例,给一个地址固定的ip地址
]# ifconfig  先查看一个主机的mac地址
    ether 00:0c:29:5f:86:eb
]# vim /etc/dhcp/dhcpd.conf 编辑配置文件
    host fantasia {
        hardware ethernet 00:0c:29:5f:86:eb; 主机的mac地址
        fixed-address 192.168.25.155; 需要给其配置的固定ip可以是地址池之外的ip
        option routers 192.168.25.100;指明配置给客户端的网关
    }
]# service dhcpd restart 重启dhcp服务   
]# dhclient -d 响应的mac地址的客户端进行测试
]# route -n 客户端执行命令进行测试 查看是否获得指定的网关

原创文章,作者:M20-1马星,如若转载,请注明出处:http://www.178linux.com/58173

(1)
M20-1马星M20-1马星
上一篇 2016-11-07 10:51
下一篇 2016-11-07 10:57

相关推荐

  • 配置LAMP实现WordPress

    配置LAMP实现WordPress 在同一台主机上实现LAMP(Linux + Apache + MariaDB + PHP) CentOS 7.3、Apache 2.4.6、MariaDB 5.5.52、PHP 5.4.16 1 安装LAMP 采用yum方式进行安装httpd、MariaDB、php、php-mysql,php-mysql用来进行php和M…

    2017-06-06
  • find总结及练习

    文件查找: 在文件系统上查找符合条件的文件; 文件查找:locate, find非实时查找(数据库查找):locate 实时查找:find locate: 依赖于事先构建的索引;索引的构建是在系统较为空闲时自动进行(周期性任务);手动更新数据库(updatedb); 索引构建过程需要遍历整个根文件系统,极消耗资源; 工作特点: 查找速度快; 模糊查…

    Linux干货 2016-07-22
  • N26_第一周

    计算机组成     CPU:核心部件:                 运算器: 对数据进行算术运算和逻辑运算     …

    Linux干货 2017-01-11
  • 一个PHP程序员学习运维的转型

         我是一位PHP开发工程师,平时负责前端、后端以及服务器端的工作,但是称不上是个牛逼的程序员。网上热烈讨论一则传闻,“全栈工程师”(Full Stack Engineer),要求应征者对开发堆栈的每个方面都有所掌握。那究竟何为 “全栈工程师”呢?从字面上来理解,全栈工程师必须熟悉开发堆栈的每一个层次,或者至少熟悉绝大多数…

    Linux干货 2017-04-02
  • LVS –负载均衡基础

    一 负载均衡的五种解决方案 1 http重定向 HTTP重定向就是应用层的请求转发。用户的请求其实已经到了http重定向负载均衡服务器,服务器根据算法要求用户重定向,用户收到重定向请求后,再次请求真正的集群。 优点:简单 缺点:性能较差 2 DNS域名解析负载均衡 DNS域名解析负载均衡就是在用户请求DNS服务器,获取域名对应的IP地址时,DNS根据服务器直…

    Linux干货 2017-06-22
  •   在服务器托管的过程中出现故障是不能完全避免的问题,可能是服务器硬盘出现硬件故障或者是防火墙遭到攻击。那么服务器托管出现故障怎么办?

      在服务器托管的过程中出现故障是不能完全避免的问题,可能是服务器硬盘出现硬件故障或者是防火墙遭到攻击。那么服务器托管出现故障怎么办?   服务器硬盘出现硬件故障时,大家应注意以下几点:   1、硬盘出现异声,此时磁头已不正常寻址,为防止打伤盘体,需立即断电不可拆解硬盘,需交有超净间的专业公司拆开检查。   2、BIOS不认盘,找不到硬盘,先请计算机工程师仔…

    Linux干货 2016-04-05