前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >DHCP服务

DHCP服务

作者头像
咻一咻
发布2020-05-29 15:22:54
1.6K0
发布2020-05-29 15:22:54
举报
文章被收录于专栏:咻一咻咻一咻
    • DHCP服务
    • DHCP共有八种报文
    • DHCP服务简介
    • DHCP实现
      • DHCP配置文件
        • dhcpdconf示例
          • 搭建DHCP实验
        • DHCP配置文件

DHCP服务

代码语言:javascript
复制
网络配置 
    静态指定
    动态获取: bootp:boot protocol MAC与IP一一静态对应
            dhcp:增强的bootp,动态

DHCP: (Dynamic Host Configuration Protocol)
    动态主机配置协议
    局域网协议,UDP协议

主要用途:
    用于内部网络和网络服务供应商自动分配IP地址给用户
    用于内部网络管理员作为对所有电脑作集中管理的手段

使用场景
    自动化安装系统
    解决IPV4资源不足问题

DHCP共有八种报文

  1. DHCP DISCOVER:客户端到服务器
  2. DHCP OFFER :服务器到客户端
  3. DHCP REQUEST:客户端到服务器
  4. DHCP ACK :服务器到客户端
  5. DHCP NAK:服务器到客户端,通知用户无法分配合适的IP地址
  6. DHCP DECLINE :客户端到服务器,指示地址已被使用
  7. DHCP RELEASE:客户端到服务器,放弃网络地址和取消剩余的租约时间
  8. DHCP INFORM:客户端到服务器,客户端如果需要从DHCP服务器端获取更为详细的配置信息,则发送Inform报文向服务器进行请求,极少用到
DHCP服务
DHCP服务

续租

  • 50% :租赁时间达到50%时来续租,刚向DHCP服务器发向新的DHCPREQUEST请求。如果dhcp服务没有拒绝的理由,则回应DHCPACK信息。当DHCP客户端收到该应答信息后,就重新开始新的租用周期
  • 87.5%:如果之前DHCP Server没有回应续租请求,等到租约期的7/8时,主机会再发送一次广播请求

DHCP服务简介

代码语言:javascript
复制
同网段多DHCP服务(广播机制)
    DHCP服务必须基于本地
    先到先得的原则
相关协议
    Arp
    rarp
跨网段
    RFC 1542 Compliant Routers 
    dhcrelay: 中继代理

DHCP实现

代码语言:javascript
复制
Linux DHCP协议的实现程序:dhcp, dnsmasq(dhcp,dns)
Dhcp Server
    /usr/sbin/dhcpd
      /etc/dhcp/dhcpd.conf--> /etc/rc.d/init.d/dhcpd
      /etc/dhcp/dhcpd6.conf--> /etc/rc.d/init.d/dhcpd6
    /usr/sbin/dhcrelay
      /etc/rc.d/init.d/dhcrelay
    dhcp server:67/udp
    dhcp client: 68/udp
    dhcpv6 client:546/udp
Dhcp  client
    dhclient
    自动获取的IP信息:/var/lib/dhclient

DHCP配置文件

代码语言:javascript
复制
/etc/dhcp/dhcpd.conf: 
    帮助参考:man 5 dhcpd.conf
    全局配置
    subnet {
        ...
    }
    host {

    }
地址分配记录
    /var/lib/dhcpd/dhcpd.leases
dhcpd.conf示例
代码语言:javascript
复制
option domain-name "magedu.com";
option domain-name-servers 192.168.0.1,8.8.8.8;
default-lease-time 86400;
max-lease-time 86400;
subnet 192.168.100.0 netmask 255.255.255.0 {
    range 192.168.100.1  192.168.100.200;
    option routers 192.168.100.1;
} 
搭建DHCP实验
代码语言:javascript
复制
yum install dhcp
rpm -ql dhcp  //找到这两个
    /etc/dhcp/dhcpd.conf             
    /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf //因为/etc/dhcp/dhcpd.conf是空的

编写/etc/dhcp/dhcpd.conf文件
[root@centos7 ~]#cat /etc/dhcp/dhcpd.conf
option domain-name "zhangqifei.com";
option domain-name-servers 114.114.114.114,8.8.8.8; //DNS解析
option routers 192.168.109.1;//全局默认网关
default-lease-time 84600; //有效期
max-lease-time 84600; //特殊要求最大有效期
log-facility local7;
subnet 192.168.109.0 netmask 255.255.255.0 { //网段
        range 192.168.109.100 192.168.109.200; //分配ip范围 如果这里写网关,就是这些范围ip,外面的网关是全局的这里不设置网关会是全局网关
        filename "pxelinux.0";/文件名网络中启动程序的文件名
        next-server 192.168.100.100;(tftp)//程序的文件名地址
}
host fantasia { //绑定mac地址,分配默认ip
  hardware ethernet 08:00:07:26:c0:a5;
  fixed-address 192.168.109.101;
  这里网关和DNS都可以单独设置
}

启动服务 systemctl start dhcpd
查看端口 ss -ntlup   //服务器端udp67端口,客户端udp68端口
查看网关 route -n
查看DNS cat /etc/resolv.conf

dhcp数据库 /var/lib/dhcpd/dhcpd.leases
[root@centos7 ~]#cat /var/lib/dhcpd/dhcpd.leases //发放地址的
#lease 192.168.109.100 {
  starts 6 2018/01/13 06:41:45; 
  ends 0 2018/01/14 06:11:45;
  tstp 0 2018/01/14 06:11:45;
  cltt 6 2018/01/13 06:41:45;
  binding state active;
  next binding state free;
  rewind binding state free;
  hardware ethernet 00:0c:29:12:6c:bc;
}
[root@centos7 ~]#cat /var/lib/dhclient/dhclient-eth0.leases  //接受地址的数据库 可以看到从哪里获取的多有信息
DHCP配置文件

其它配置选项: filename: 指明引导文件名称 next-server:提供引导文件的服务器IP地址 示例: filename “pxelinux.0”; next-server 192.168.100.100;(tftp) 检查语法 service dhcpd configtest(centos6)

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-02-04 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • DHCP服务
  • DHCP共有八种报文
  • DHCP服务简介
  • DHCP实现
    • DHCP配置文件
      • dhcpd.conf示例
      • DHCP配置文件
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档