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

相关推荐

  • 用户和组管理类命令详解

    用户和组管理类命令详解 组管理 groupadd 功能描述:创建一个新组 命令格式: groupadd [选项] GROUP 选项: -g GID 表示指定GID,默认情况下使用的是最小的未使用过的GID -r 表示创建一个系统组 groupmod 功能描述:修改组属性 命令格式:groupmod [选项] GROUP 选项: -g GID 表示修改GID …

    Linux干货 2017-07-16
  • 【26期】Linux第一周学习小总结

        知识不在长短,而在于其中的精炼程度,字典每个字没有一页的篇幅,却被大面积推广,之所以没有再把学到的全部搬运到博客上来,就是为了给大家一点可看的东西,也许我自己认为的精炼是有点简短了,那我就再更新一下,再复习一下,学到的whatis 和 man命令。     第一周匆匆而过,学过的知识,过遍脑…

    2017-07-14
  • tcp socket文件句柄泄漏

    今天发现有台redis机器上出现socket个数告警,这是很奇怪的现象。因为一台redis服务器上就部署了几个redis实例,打开的端口应该是有限。 1、netstat显示的tcp连接数正常 netstat -n | awk '/^tcp/ {++state[$NF]} END …

    Linux干货 2016-04-13
  • 流式传输的两大主流种类及流式传输特点

     流式传输定义很广泛,现在主要指通过网络传送媒体(如视频、音频)的技术总称。其特定含义为通过Internet 将影视节目传送到PC机。实现流式传输有两种方法:实时流式传输(Realtime streaming)和顺序流式传输(progressive streaming)。(百度百科)     在网络上传输音/视频(英文…

    Linux干货 2015-04-10
  • shell编程数组及源码安装作业

    写一个脚本,定一个数组,数组中的元素是/var/log目录下所有以.log结尾的文件,要统计其下标为偶数的文件中的行数之和 [root@localhost sh.log]# cat declaresum.sh  #!/bin/bash #author:DYW #写一个脚本,定一个数组,数组中的元素是/var/log目录…

    Linux干货 2016-08-29