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
下一篇 2016-11-07

相关推荐

  • varnish浅述

    安装varnish,安装包需要到官网下载http://www.varnish-cache.org/releases/index.html varnish的程序环境: /etc/varnish/varnish.params:配置varnish服务进程的工作特性,例如监听的地址、端口及缓存机制等; /etc/varnish/default.vcl:配置各Chil…

    2016-11-15
  • N22+张zhangzhang+第6周博客作业

    请详细总结vim编辑器的使用并完成以下练习题   vim编辑器是vi编辑器的增强版,是全屏文本编辑器,用于完成文本的输出、删除、查找、替换、块操作等众多功能。一般分三种模式:编辑模式、输入模式、末行模式。 vim各种按键的功能 编辑模式: 1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以…

    Linux干货 2016-09-20
  • 第三周作业

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 2、取出最后登录到当前系统的用户的相关信息。 3、取出当前系统上被用户当作其默认shell的最多的那个shell。 4、将/etc/passwd中的第三个字段数值最大的后10个用户的信息全部改为大写后保存 至/tmp/maxusers.txt文件中。 5、取出当前主机…

    Linux干货 2016-11-21
  • 在Linux中使用计算器遇到的问题

    进制转换的时候出现了与理解不同的结果

    Linux干货 2017-11-14
  • linux文件系统(ext2\ext3\ext4,xfs,btrfs…)的介绍[转载]

    ext2\ext3\ext4,xfs,btrfs 都是针对服务器系统越来越高效实用的日志文件系统 日志文件系统:    日志文件系统是一种即使在断电或者是操作系统崩溃的情况下保证文件系统一致性的途径。XFS对文件系统元数据提供了日志支持。当文件系统更新时,元数据会在实际的磁盘块被更新之前顺序写入日志。XFS的日志被保存在磁盘块的…

    Linux干货 2017-01-31
  • 初学Linux

       已经学习了Linux一周了,从原来的设计网页、动画影视制作、3D模型到现在的黑白界面虚拟世界,从原来吃睡由我到现在重回高三生活,说实话,一开始还是不太能适应的,尤其是眼睛,酸胀痛。不过,越努力越幸运,也觉得linux其实很有意思。。以下是我第一篇微博的内容,也是我学习linux一周所总结的知识。 首先,学习一门知识就要先了解他的历史…

    Linux干货 2017-07-15