DHCP

DHCP(Dynamic Host Configuration Protocol,动态主机配置协议),其前身是BOOTP
Bootp:引导协议(地址动态分配机制(RARP)) :用于无盘主机连接的网络,在设置前需事先获得客户端的MAC地址,且与IP的对应是静态的,一旦ip分配出去后,就会与MAC绑定
     ARP:  IP --> MAC
     RARP: MAC --> IP   
   1. 避免IP冲突
   2. 当网络更改IP地址时,不需要重新配置每台计算机的IP
   3. 计算机移动不必重新配置TCP/IP信息
   4. 提高了IP地址的利用率
      
    DHCP统一使用两个IANA分配的端口作为BOOTP:服务器端使用67/udp,客户端使用68/udp
    DHCP运行分为四个基本过程,分别为请求IP租约提供IP租约选择IP租约确认IP租约

客户在获得了一个IP地址以后,就可以发送一个ARP请求来避免由于DHCP服务器地址池重叠而引发的IP冲突 
       
工作过程
        1.client:  dhcp discover (bradcast)客户端通过UDP/68号端口 向服务端的UDP/67号端口 发起请求 (请求是广播的)
        2.server: dhcp offer(broadcast)
        3.client:  dhcp request(broadcast)
        4.server:  dhcp ack (broadcast)
       
    Windows系统的DHCP服务器会从可用iP地址中第一个开始分配,类UNIX系统的DHCP服务器会从可用IP地址中最后一个开始分配。

      <*> 如果客户端在发出DHCPDicover包后无任何DHCP服务器回应,而客户端使用的是Windows系统时,它将从169.254.0.0/16的网段中选择一个IP地址使用,然后每隔5min再次发出DHCPiscover包。禁用可以修改注表:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\IPAutoconfigurationEnabled  设置为0
   
DHCP引入了租约的概念(lease) 
  租约更新: 使用期限(续租请求时间)      
     当租约达50%时,就需要更新租约,Client直接向提供DHCP Server 发送DHCPRequest包,请求更新现有租约,若Server收到请求,就会回应DHCPACK
 给Client,用于更新Client lease。若Server无回应,则到75%再次发送DHCPRequest包,lease 到87.5%时,Client会向网络上所有DHCP Server 广播以更新
现有lease,若lease终止或无法与其它DHCP Server 通信,Client将无法使用现有的地址lease.
      
中继代理(relay)    -->让DHCP 为不同的网络分配IP ,需要DHCP中继器(工作在UDP/67)
            1. DHCP Client 广播DHCPDiscover包
            2. DHCP relay 将 DHCPDiscover 以单播转发到 DHCP Server
            3. DHCP Server 以单播发送DHCPOffer包给DHCP relay
            4. DHCP relay 广播DHCPOffer包
            5. DHCP Client 广播DHCPRequest包
            6. DHCP relay 以单播发送DHCPRequest包给DHCP Server
            7. DHCP Server以单播发送DHCPACK包给DHCP relay
            8. DHCP realy 广播DHCPACK包
 
Package:
    dhcp        --> DHCP Server 软件
Configuration

 /etc/dhcpd.conf            --> /usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample  是一个DHCP服务配置文件的样例
     /var/lib/dhcpd/dhcpd.leases            -->所有已分配的ip的租约文件
                       
     配置文件语法检查:# service dhcpd configtest
       
Deamon  :    dhcpd        
Scripts :  /etc/rc.d/init.d/dhcpd
            /etc/rc.d/init.d/dhcrelay        --> 不需要配置文件
        客户端使用的是dhcpclient ,服务端使用的是dhcpd

配置文件结构
      1. 配置文件由参数、声明、选项组成
      2. 选项必须使用option关键字
      3. 除块标识(大括号) 以外每行必须以“分号” 结尾
      4. # 开头行是注释行
      5. 关键字对大小写不敏感
               
      多个选项的设置值发生冲突时,影响范围越小的优先级越高,在相同范围中越后出现的优先级越高
            
常用声明
1. share-network{.....}                --> 指定超级作用域
2. subnet<网络地址>network<子网掩码>{.....}        --> 指定作用域
3. range<起始IP地址><结束IP地址>                   -->指定可分配的IP地址范围
4. host<名称>                -->  指定保留
5. group{......}        --> 为特定范围指定参数

/etc/dhcpd.conf

               
常用参数
lease-file-name<文件名>                --> 存放租约的文件名,默认是/var/lib/dhcp/dhcpd.leases, 必须出现在配置文件的顶部,出现在其它位置无效。
ddns-update-style<none|interim|ad-doc>            --> 支持的DNS动态更新方式            最好不要使用,若使用最好是要基于安全的DNS与DHCP的事务签名
     none: 不支持
     interim: DNS互动更新模式
     ad-hoc: 特殊DNS更新模式
default-lease-time<时间>                --> 默认租约时间,单位秒
max-lease-time<时间>                    --> 最长租赁时间,单位秒
hardware<网卡类型><MAC地址>                --> 指定DHCP Client保留时指定网卡类型和MAC地址
fixed-address<IP地址>                    --> 指定DHCP Client 保留指定固定的地址
local-port port<端口>                    --> 指定DHCP 服务器UDP端口侦听DHCP请求
next-server<服务器地址>                    --> 指定初始启动文件存放的主机地址(通过filename参数指定的文件)
               
常用选项
option subnet-mask<子网掩码>            指定客户端子网掩码
option routers<IP地址>                    指定客户端默认网关   
option broadcast-address<IP地址>        指定客户端广播地址
option nis-domain<域名>                    指定客户端NIS域名           option domain-name<域名>                指定客户端DNS后缀
option domain-name-servers<IP地址>        指定DNS服务器IP地址
option ntp-server<IP>                    指定客户端设定网络时间服务器IP地址
option time-offset<>                    指定客户端和格林泥治时间的偏移时间量,单位秒
      
不管是单作用域还是多作用域在定义时应该注意以下几点DHCP 至少要有一个作用域(为本地提供分配) ,第一个作用域的ip地址必需与本地网卡在同一个网段内     
1. 必须在分配给客户机IP地址之前创建作用域
2.每个DHCP服务器中至少应有一个作用域,为一个网段分配IP地址
3. 一台DHCP服务器内,一个子网只能有个作用域
4. 定义作用域时不能只单独使用声明subnet, 至少需要使用option subnet-mask 定义子网掩码,range 定义可用的IP地址范围
5. 同一个作用域内可指定多个可用的IP地址范围,如: 192.168.0.20~192.168.0.56 及 192.168.0.100 ~192.168.0.180

   在客户端使用:
      # dhclient          -->工作在后台
      # dhclient  -d    -->工作在前台

1. 安装DHCP软件

 

  
  
  
  
  1. # yum -y install dhcp 
  2. # cp  /usr/share/doc/dhcp-3.0.5/dhcp.conf.sample   /etc/dhcpd.conf 
  3. # vi /etc/dhcpd.conf 
  
  
  
  
  1. ddns-update-style interim; 
  2. ignore client-updates; 
  3.  
  4. subnet 192.168.0.0 netmask 255.255.255.0 { 
  5.  
  6. --- default gateway 
  7.         option routers                  192.168.0.1; 
  8.         option subnet-mask              255.255.255.0; 
  9.  
  10.         option nis-domain               "domain.org"
  11.         option domain-name              "domain.org"
  12.         option domain-name-servers      192.168.1.1; 
  13.  
  14.         option time-offset              -18000; # Eastern Standard Time 
  15.  
  16.         range dynamic-bootp 192.168.0.128 192.168.0.254
  17.         default-lease-time 21600; 
  18.         max-lease-time 43200; 
  19.  
  20.  
  21.  
  22. subnet 192.168.1.0 netmask 255.255.255.0 { 
  23.  
  24.         option  subnet-mask 255.255.255.0; 
  25.         option  routers 192.168.1.1; 
  26.  
  27.         range dynamic-bootp 192.168.1.58 192.168.1.217
  28.         default-lease-time 21600; 
  29.         max-lease-time 43200; 
  
  
  
  
  1. # /etc/init.d/dhcpd start 
  2. Starting dhcpd:                                            [  OK  ] 
  3. # chkconfig dhcpd on 

 

2. 配置Clinet IP为DHCP方式获取

  # vi /etc/sysconfig/network-scripts/ifcfg-eth0

测试一下效果

 

你可能感兴趣的:(DHCP)