DHCP服务
全称(Dynamic    Host    Configuration    Protocol),即:动态主机配置协议。为局域网中的主机分配IP地址,管理局域网中主机IP。并且可以配置其他TCP/IP信息,如:网关、DNS等。

作用与优点:管理IP,合理、有效的分配IP,避免IP冲突;减小工作量、减少输入错误。

使用范围:局域网。

局域网:使用同一个交换机连接起来,并且处于同一个网络的主机称为一个局域网。

局域网通行方式:广播、组播、单播

交换机转发广播、路由器隔离广播。


DHCP服务常见的应用:Modem中的HDCP,家庭路由器DHCP功能、PXE无人值守安装服务器、企业内部专门DHCP服务器等。


DHCP原理:采用C/S结构,分为服务器端和客户端。linux服务器使用  “  67   ”号端口。

DHCP服务工作过程分为四大步:


(1)客户及以   广播  的方式向所有主机发起IP请求,称为:DHCP discover;
(2)所有收到请求包的DHCP服务器,以 单播的方式向请求客户机发送提供的相应数据包,称为:DHCP offer;
(3)DHCP客户端选择某台(默认为第一个Offer包服务器)提供DHCP服务器提供的IP,以 广播的形式回应数据包,称为:DHCP request;
(4)服务器确认租约,以 单播的方式回应给客户端,称为:DHCP ack。


DHCP服务器的配置
(1)安装软件包:
[root@station228 ~]# yum   install   dhcp   -y
(2)相关配置文件
/etc/dhcpd.conf                 主配置文件
/etc/sysconfig/dhcpd       指定开放dhcp服务的端口
/var/lib/dhcpd/dhcpd.lease        服务器租约文件

主配置说明,默认为空,需要拷贝 /usr/share/doc/dhcp*/dhcpd.conf.sample模版文件
主要文件/etc/dhcpd.conf选项说明:
======================================
ddns-update-style interim;            全局配置,定义所支持的DNS动态更新类型,默认临时
ignore client-updates;                    全局配置,是否忽略客户端DNS更新,使用默认
subnet 192.168.0.0 netmask 255.255.255.0 {        定义一个可提供IP的网端,该网段必须存在于本机的某块网卡上。
        option routers                  192.168.0.1;                    分配给客户端的默认路由,即网关。
        option subnet-mask              255.255.255.0;          网关掩码
        option nis-domain               "domain.org";               NIS域信息,一般不使用
        option domain-name              "domain.org";           域名信息
        option domain-name-servers      192.168.1.1;        分配给主机的DNS
        option time-offset              -18000; # Eastern Standard Time     同步时间,与格林威治的时间差
#       option ntp-servers              192.168.1.1;                
#       option netbios-name-servers     192.168.1.1;
        range dynamic-bootp 192.168.0.128 192.168.0.254;            定义可分配给客户的IP范围
        default-lease-time 21600;                                                            默认租约时间
        max-lease-time 43200;                                                                最大租约时间
        # we want the nameserver to appear at a fixed address
        host ns {                                                    保留地址的主机,该主机对应指定Ip
                next-server marvin.redhat.com;            用于指定tftp服务器,网络引导时才需使用
                hardware ethernet 12:34:56:78:AB:CD;        指定主机的mac地址
                fixed-address 207.175.42.254;                        指定分配的IP地址
        }
}
=========================================================
配置示例:
[root@station228 ~]# cat /etc/dhcpd.conf 
ddns-update-style interim;
ignore client-updates;
subnet 10.1.1.0 netmask 255.255.255.0 {
        option routers                  10.1.1.18;
        option subnet-mask              255.255.255.0;
        option domain-name              "sxke.com";
        option domain-name-servers      10.1.1.1;
        option time-offset              -18000; # Eastern Standard Time
#       option ntp-servers              192.168.1.1;
#       option netbios-name-servers     192.168.1.1;
        range dynamic-bootp 10.1.1.128 10.1.1.148;
        default-lease-time 21600;
        max-lease-time 43200;
        # we want the nameserver to appear at a fixed address
        host ns {
                next-server marvin.redhat.com;
                hardware ethernet 12:34:56:78:AB:CD;
                fixed-address 207.175.42.254;
        }
}
=========================================================
网络接口配置文件说明:/etc/sysconfig/dhcpd
# Command line options here
DHCPDARGS=
默认为空,代表所有的接口,如果需要指定,可指定eth0,eth1等。

===========================================================
租约日期文件:/var/lib/dhcpd/dhcpd.leases
lease 10.1.1.148 {
  starts 5 2012/11/30 17:33:32;
  ends 5 2012/11/30 23:33:32;
  binding state active;
  next binding state free;
  hardware ethernet 00:0c:29:8b:7c:7f;
}
向mac地址为 “00:0c:29:8b:7c:7f ”提供了一个10.1.1.148的IP。并记录了分配时间和到期时间。


DHCP客户端的使用:
配置网卡配置文件为DHCP获取IP方式:”BOOTPROTO=DHCP“即可
#cat     /etc/sysconfig/network-scripts/ifcfg-eth0 |grep   BOOTPROTO
BOOTPROTO=dhcp

重启客户端网络网络服务:
#service    network    restart
#/etc/init.d/network    restart

客户端记录的DHCP服务器分配信息:
cat /var/lib/dhclient/dhclient-eth0.leases 
lease {
  interface "eth0";                            接口
  fixed-address 10.1.1.148;           获取的IP
  filename "/tftpboot/pxelinux.0";
  option subnet-mask 255.255.255.0;        子网掩码
  option time-offset 8000;
  option routers 10.1.1.1;                        
  option dhcp-lease-time 21600;
  option dhcp-message-type 5;
  option domain-name-servers 10.1.1.1;
  option dhcp-server-identifier 10.1.1.228;        提供服务的DHCP服务器
  option ntp-servers 10.1.1.1;
  option domain-name "cluster.com";
  renew 5 2012/11/30 20:06:32;
  rebind 5 2012/11/30 22:51:49;
  expire 5 2012/11/30 23:36:49;
}


dhclint——客户端端手工获取DHCP服务器IP命令

dhclient   -r   eth0        释放获取的IP
dhclinet        eth0        重新获取IP