DHCP原理与LINUX下的配置
DHCP原理与LINUX下的配置
一、DHCP工作原理
1、DHCP概述
DHCP(Dynamic Host Configuration Protocol)动态主机配置协议,是由Internet工作任务小组设计开发的专门用于为TCP/IP网络中的计算机自动分配TCP/IP参数的协议
2、DHCP的优势
减少管理员的工作量
避免输入错误的可能
避免IP地址冲突
当更改IP地址段时,不需要重新配置每个用户的IP地址
提高了IP地址的利用率
方便客户端的配置
3、DHCP的分配方式
(1)自动分配
分配到一个IP地址后永久使用
(2)手动分配
由DHCP服务器管理员专门指定IP地址
(3)动态分配
使用完后释放该IP,供其他客户机使用
4、DHCP的租约过程
客户机从DHCP服务器获得IP地址的过程称为DHCP的租约过程
分为四个步骤
1.客户端在网络中搜索服务器
2.服务器向客户端响应服务
3.客户端向目标服务器发出服务请求
4.服务器向客户端提供服务
(1)客户机请求IP地址
当一个DHCP客户机启动时,客户机还没有IP地址,所以客户机要通过DHCP获取一个合法的地址
此时DHCP客户机以广播方式发送DHCP Discover发现信息来寻找DHCP服务器
(2)服务器响应
DHCP服务器接收到来自客户机请求IP地址的信息时,在自己的IP地址池中查找是否有合法的IP地址提供给客户机
如果有,DHCP服务器将此IP地址做上标记,加入到DHCP Offer的消息中,然后广播一则DHCP Offer的消息中,然后广播一则DHCP Offer消息
(3)客户机选择IP地址
DHCP客户机从接收到的第一个DHCP Offer消息中提取IP地址,发出IP地址的DHCP服务器将该地址保留,这样该地址就不能再分配给另一个DHCP客户机
(4)服务器确定租约
DHCP服务器接收到DHCP Request消息后,以DHCP ACK消息的形式向客户机广播成功确认,该消息包含有IP地址的有效租约和其他可配置的信息
当客户机收到DHCP ACK消息时,配置IP地址,完成TCP/IP的初始化
(5)重新登录
DHCP客户机每次重新登录网络时,不需要再发送DHCP Discover信息,而是直接发送包含前一次所分配的IP地址的DHCP Request请求信息
(6)更新租约
当DHCP服务器向客户机出租的IP地址租期达到50%时,就需要更新租约
客户机直接向提供租约的服务器发送DHCP Request包,要求更新现有的地址租约
二、DHCP服务器的配置
1、DHCP动态配置
(1)DHCP服务
为大量客户机自动分配地址,提供集中管理
减轻管理和维护成本、提供网络配置效率
(2)分配的信息类型
网卡的IP地址、子网掩码
对应的网络地址、广播地址
默认网关地址
DNS服务器地址
(3)DHCP配置
1.安装软件包
yum install -y dhcp
2.复制配置模板
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
3.修改配置文件
设置全局配置参数
vim /etc/dhcp/dhcp.conf
default-lease-time 21600; #设置默认租约时间,单位为秒
max-lease-time 43200; #设置最大租约时间,单位为秒
option domain-name "abc.com"; #指定默认域名
option domain-name-servers 192.168.80.1; #指定DNS服务器地址
ddns-update-style none; #禁用DNS动态更新
4.subnet网段声明(作用于整个子网段,部分配置参数优先级高于全局配置参数)
subnet 192.168.80.0 mask 255.255.255.0 { #声明要分配的网段地址
range 192.168.80.10 192.168.80.20; #设置地址池
option routers 192.168.80.254; #指定默认网关地址
}
5.host主机声明(给单机分配固定的IP地址)
host hostname { #指定需要分配固定IP地址的客户机名称
hardware ethernet 00:c0:c3:22:46:81; #指定该主机的MAC地址
fixed-address 192.168.80.188 #指定保留给该主机的IP地址
}
注:后面内容可都删除
6.启动dhcp服务
systemctl start dhcpd #开启dhcp服务
systemctl stop firewalld #关闭防火墙
setenforce 0 #关闭selinux防火墙,可通过getenforce命令查看selinux状态
7.查看dhcp端口使用情况
netstat -anpu | grep ":67" #服务器端使用67端口,客户端为68端口
8.若启动服务失败,可查看日志文件定位故障
tail -f /var/log/messages
三、DHCP客户端的使用
1.客户端获取方法
方法一:
vi /etc/sysconfig/network-scripts/-ifcfg-ens33
DEVICE=ens33
ONBOOT=yes
BOOTPROTO=dhcp
ifdown ens33 ; ifup ens33
方法二:
dhclient -d ens33
2.查看租约文件
less /var/lib/dhcpd/dhcpd.lease
四、DHCP中继配置方法
在ensp中配置DHCP中继
dhcp enable #开启DHCP功能
interface Vlanif10
ip address 192.168.1.254 255.255.255.0
dhcp select relay #开启DHCP中继功能
dhcp relay server-ip 192.168.80.10 #指向DHCP服务器
DHCP原理与LINUX下的配置的更多相关文章
- (转)yi_meng linux 下 ifcfg-eth0 配置 以及ifconfig、ifup、ifdown区别
linux 下 ifcfg-eth0 配置 以及ifconfig.ifup.ifdown区别 原文:https://www.cnblogs.com/yi-meng/p/3214471.html这3个命 ...
- linux 下 ifcfg-eth0 配置 以及ifconfig、ifup、ifdown区别
这3个命令的用途都是启动网络接口,不过,ifup与ifdown仅就 /etc/sysconfig/network- scripts内的ifcfg-ethx(x为数字)进行启动或关闭的操作,并不能直接修 ...
- Linux 下安装配置 JDK7
Linux 下安装配置 JDK7 配置环境(debian 7) 自从从Oracle收购Sun近三年来,已经有很多变化.早在8月,甲骨文将“Operating System Distributor Li ...
- 【转】Linux下nginx配置https协议访问的方法
一.配置nginx支持https协议访问,需要在编译安装nginx的时候添加相应的模块--with-http_ssl_module 查看nginx编译参数:/usr/local/nginx/sbin/ ...
- (转载)Linux下安装配置MySQL+Apache+PHP+WordPress的详细笔记
Linux下安装配置MySQL+Apache+PHP+WordPress的详细笔记 Linux下配LMAP环境,花了我好几天的时间.之前没有配置过,网上的安装资料比较混乱,加上我用的版本问题,安装过程 ...
- linux 下安装配置jboss as7以及部署应用
linux 下安装配置jboss as7以及部署应用 1.测试平台及软件 centos 5.4 jdk-7u5-linux-i586.rpm jboss-as-7.1.1.Final.zip jbos ...
- Linux下VNC配置多个桌面和修改密码 不会当系统重启vnc失效
1:vncserver 2:iptables -I INPUT -p tcp --dport 5901 -j ACCEPT 客户端方式 3:iptables -I INPUT -p tcp --d ...
- linux下iptables配置模板
linux下iptables配置模板 # Flush all policy iptables -F iptables -X iptables -Z iptables -t nat -F iptable ...
- Linux下安装配置与使用MySQL数据库
Linux下安装配置与使用MySQL数据库 在Linux下安装做开发时往往少不了要使用到MySQL数据库,下面就Linux系统为例讲解一下,如何安装MySQL数据库,如何启用/停.止MySQL服务,如 ...
随机推荐
- BOM 点击触发 倒计时发送验证码案例
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- STC8H开发(二): 在Linux VSCode中配置和使用FwLib_STC8封装库(图文详解)
目录 STC8H开发(一): 在Keil5中配置和使用FwLib_STC8封装库(图文详解) STC8H开发(二): 在Linux VSCode中配置和使用FwLib_STC8封装库(图文详解) 前面 ...
- TypeScript中文教程基础部分上----翻译自TS官方
为什么使用TS? js中每一个值在不同的操作运行中表现出一系列不同的行为,比如说下面这个例子: message.toLowerCase();message(); 逐行看下,第一行调用了message的 ...
- vuex 中使用Element-ui的message
首先引入Message 其次,在mutations中调用Message 注意:缓存的问题,如果没有弹出框架出现,多重启几次服务 参考资料: https://blog.csdn.net/weixin_4 ...
- 编写程序向HBase添加日志信息
关注公众号:分享电脑学习回复"百度云盘" 可以免费获取所有学习文档的代码(不定期更新) 承接上一篇文档<日志信息和浏览器信息获取及数据过滤> 上一个文档最好做个本地测试 ...
- Java的JDBC
第一个JDBC程序 创建测试数据库 CREATE DATABASE jdbcStudy CHARACTER SET utf8 COLLATE utf8_general_ci; USE jdbcStud ...
- 刨根问底: Kafka 到底会不会丢数据?
大家好,我是 华仔, 又跟大家见面了. 上一篇作为专题系列的第二篇,从演进的角度带你深度剖析了关于 Kafka 请求处理全流程以及超高并发的网络架构设计的实现细节,今天开启第三篇,我们来聊聊 Kafk ...
- day 12 default后面是否还可以跟case
(1).有以下程序: #include<stdio.h> void main(){ int case,float printF; printf("输入2个数\n"): ...
- 《剑指offer》面试题57. 和为s的两个数字
问题描述 输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s.如果有多对数字的和等于s,则输出任意一对即可. 示例 1: 输入:nums = [2,7,11,15], tar ...
- 【算法】Manacher算法
最长回文串问题 manacher算法是用来求解最长回文串的问题.最长回文串的解法一般有暴力法.动态规划.中心扩展法和manacher算法. 暴力法的时间复杂度为\(O(n^3)\),一般都会超时: 动 ...