Linux服务篇--DHCP服务

Linux高级篇–DHCP服务

一、 DHCP服务

  • 网络配置
      静态指定
      动态获取: bootp:boot protocol MAC与IP一一静态对应
        dhcp:增强的bootp,动态
  • DHCP: (Dynamic Host Configuration Protocol)
      动态主机配置协议
      局域网协议,UDP协议
  • 主要用途:
      用于内部网络和网络服务供应商自动分配IP地址给用户
      用于内部网络管理员作为对所有电脑作集中管理的手段
  • 使用场景
      自动化安装系统
      解决IPV4资源不足问题
  • DHCP共有八种报文
      DHCP DISCOVER:客户端到服务器
      DHCP OFFER :服务器到客户端
      DHCP REQUEST:客户端到服务器
      DHCP ACK :服务器到客户端
      DHCP NAK:服务器到客户端,通知用户无法分配合适的IP地址
      DHCP DECLINE :客户端到服务器,指示地址已被使用
      DHCP RELEASE:客户端到服务器,放弃网络地址和取消剩余的租约时间
      DHCP INFORM:客户端到服务器,客户端如果需要从DHCP服务器端获取更为详细的配置信息,则发送Inform报文向服务器进行请求,极少用到

DHCP工作原理

  • DHCP工作原理四步骤:
      discover:主机启动时,向网络中发送请求报文,寻找网络中是否存在DHCP服务器,如果存在,请求获取ip地址
      offer:dhcp服务器提供ip地址给客户端,同时把该地址打上标签:该地址已被占用
      request:客户端根据先到先得的规则,获取ip地址;并发送报文通知所有网络自己所获取的地址
      ack:确认客户端获取的ip地址,并把该ip地址的相关信息(掩码,网关,租期等)发送给客户端
  • 续租
      50% :租赁时间达到50%时来续租,刚向DHCP服务器发向新的DHCPREQUEST请求。如果dhcp服务没有拒绝的理由,则回应DHCPACK信息。当DHCP客户端收到该应答信息后,就重新开始新的租用周期
      87.5%:如果之前DHCP Server没有回应续租请求,等到租约期的7/8时,主机会再发送一次广播请求
      如果网络中没有DHCP服务器,获取不到地址时,windows系统将会给自己分配一个地址:169.254.x.x
      dhcp工作原理是基于广播实现的,如果client和server之间存在路由器(即跨网段),可以利用中继代理dhcrelay agent实现

DHCP服务简介

  • 同网段多DHCP服务
      DHCP服务必须基于本地
      先到先得的原则
  • 跨网段
      RFC 1542 Compliant Routers
      dhcrelay: 中继
  • 相关协议
      Arp
      rarp

DHCP实现

  • 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配置文件

  • dhcpd.conf:
      帮助参考:man 5 dhcpd.conf
      全局配置
      subnet {
        …
      }
      host {
      }
  • 地址分配记录
      /var/lib/dhcpd/dhcpd.leases

注意:该服务配置文件/etc/dhcp/dhcpd.conf默认为空,无法启动,需要根据范例文件/usr/share/doc/dhcp-4.2.5/dhcpd.conf.example手动创建配置文件,即复制该文件到/etc/dhcp/目录下重命名为dhcpd.conf
示例:

cp  /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example   /etc/dhcp/dhcpd.conf
vim /etc/dhcp/dhcpd.conf
option domain-name "magedu.com";                指定域名
option domain-name-servers 192.168.0.1,8.8.8.8;   指定dns地址
default-lease-time 86400;
max-lease-time 86400;
subnet 192.168.32.0 netmask 255.255.255.0 {    指定分配的子网网段
range 192.168.32.10  192.168.32.100;           指定dhcp地址池
option routers 192.168.32.100;                 制定网管
}
  • 其它配置选项:
      filename: 指明引导文件名称
      next-server:提供引导文件的服务器IP地址

示例:

filename "pxelinux.0";
next-server 192.168.32.128;
  • 检查语法
      service dhcpd configtest

知识扩展1:搭建dhcp服务

如何配置DHCP服务器
注意:实验时不要使用桥接模式,使用仅主机模式,停用vmware中DHCP服务器即可
dhcp服务器地址必须是静态地址
做实验时,配置一个网卡即可
/etc/dhcp/dhcpd.conf       dhcp主配置文件,默认为空,参考范例文件
/usr/share/doc/dhcp-4.2.5/dhcpd.conf.example  dhcp范例文件
/usr/sbin/dhcpd   dhcp主程序
/usr/sbin/dhcrelay   dhcp代理
/var/lib/dhcpd     dhcp数据库文件

搭建dhcp服务
必须要先给本网卡所在网络分配地址,再给远程网络分配地址
配置/etc/dhcp/dhcpd.conf文件
  7 option domain-name "magedu.org";  配置域名                                       
  8 option domain-name-servers 114.114.114.114,1.1.1.1;    dns地址,一般情况下为ip地址,而不是域名;配置该项使客户端获取ip地址的同时,能够获取dns地址
  9 
 10 default-lease-time 86400;    默认租期为600秒,根据使用场景更改租期时间
 11 max-lease-time 86400;   最大租期时间,默认要大于等于默认租期;一般情况下最大租期时间是无效的,只有在特殊情况下才会生效

 27 subnet 192.168.32.0 netmask 255.255.255.0 {
 28   range 192.168.32.10  192.168.32.100;
 29   option routers 192.168.32.100;                                                  
 30 }
如果这一项没有更改,dhcp服务无法启动;因为没有为主机网卡所在网段提供服务,系统认为这样是不合理的,因此要对该项进行更改。
只需添加本地网卡所在网段即可,无需添加任何定义。
另外要在该网段内添加分配的地址池范围,否则,仍然无法提供dhcp服务

配置完毕,重启dhcp服务
systemctl restart dhcpd
用同一网段的主机设置为dhcp获取地址进行测试

知识扩展2:可以把dns写入到subnet里,而且优先级高于option domain-name-servers设置的dns

vim /etc/dhcp/dhcpd.conf
 27 subnet 192.168.32.0 netmask 255.255.255.0 {
 28   range 192.168.32.10  192.168.32.100;
 29   option routers 192.168.32.100;
 30   option domain-name-servers 8.8.8.8;                                             
 31 }
 option domain-name-servers  114.114.114.114,1.1.1.1
 
 [root@centos6 ~]#cat /etc/resolv.conf   查看获取的dns地址; 
generated by /sbin/dhclient-script
search magedu.org
nameserver 8.8.8.8
如果其他主机不是从192.168.32.0网段获取ip地址,则option domain-name-servers  114.114.114.114,1.1.1.1会生效

知识扩展3:获取固定的ip地址:ip地址绑定mac地址

vim /etc/dhcp/dhcpd.conf
 78 host fantasia {
 79   hardware ethernet 00:0c:29:ca:4f:3d;       主机mac地址
 80   fixed-address 192.168.32.20;                   主机ip地址                                 
 81 }
测试:把拥有00:0c:29:ca:4f:3d该mac地址的主机设置为dhcp自动获取地址,查看是否获取的地址为绑定mac的ip地址

你可能感兴趣的:(Linux服务篇--DHCP服务)