DHCP协议详解与在Linux上的配置

dhcp:在一个局域网中为计算机分配和IP地址、子网掩码、默认网关等的一种协议
    协议使用端口:

服务器端:监听在udp67端口

客户端:监听在udp68端口

dhcp地址租约过程

DHCP协议详解与在Linux上的配置

1、客户端发送dhcpdiscover广播报文,源地址为0.0.0.0,目的地址为255.255.255.255,目的端口为udp67

2、服务器相应并发送offer广播报文,源地址为0.0.0.0,目的地址为255.255.255.255,目的端口为udp68
    3、客户端发送dhcprequest广播报文
    4、服务段发送一个ack广播报文,告诉DHCP Client可以使用该IP地址
注意要点:
    1、一个局域网中有多个dhcp服务器时,当一个客户端发送discover报文时会收到多个offer报文,客户端将使用最先收到的offer报文的服务器提供的ip地址
    2、request报文使用广播的原因:为了通知所有DHCP服务器自己将选择哪一台服务器提供的IP地址

3、使用dhcp获取的ip地址有一个租约时长,租约过期后,DHCP 服务器将回收该IP地址,若客户端想继续使用必须续约,一般的续约方法是:租期过半时,客户端向服务端发送dhcp renew报文来续约。


dhcp服务器的安装和配置
实验环境:CentOS6.8
1、安装dhcp和dhcp-common软件包
yum install -y dhcp                          \\dhcp的主程序包

yum install -y dhcp-common            \\被服务器和客户端使用的共同文件

2、复制配置文件
cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf
3、修改配置文件
vim /etc/dhcp/dhcpd.conf

全局配置
option domain-name "lzs.org";          #定义DNS域名
option domain-name-servers ns1.lzs.org, ns2.lzs.org;    #定义DNS服务器地址
 
default-lease-time 600;        #定义默认客户端租约IP的时间长度,单位是秒
max-lease-time 7200;            #定义最大客户端租约IP的时间长度,单位是秒
 
局部配置
subnet 192.168.10.0 netmask 255.255.255.0 {
  range  192.168.10.10 192.168.10.250;
  option domain-name-servers ns11.lzs.org,ns12.lzs.org; #定义dns服务器(会覆盖全局配置中的dns服务器配置)
  option domain-name "internal.example.org";    #定义DNS域名(会覆盖全局配置中的域名配置)
  option routers 192.168.10.1;  #定义客户端的默认网关
  option broadcast-address 192.168.10.255;      #定义广播地址
  default-lease-time 600;      #定义默认客户端租约IP的时间(会覆盖全局配置的相关配置)
  max-lease-time 7200;          #定义最大客户端租约IP的时间(会覆盖全局配置中的相关配置)
}
#为某一主机分配固定IP
host lzs {
  hardware ethernet 08:00:07:26:c0:a5;
  fixed-address 192.168.10.2;
}
#为公司员工分配一个地址段,为来访人员分配另外地址段,且租约时长不同
class "Inside" {
        match if substring (option vendor-class-identifier,0,4)="SUNW";
}
subnet 192.168.2.0 netmask 255.255.255.0 {
        option routers 192.168.2.254;
 
#公司员工
        pool{
                option domain-name-servers ns1.lzs.org;
                max-lease-time 7200;
                default-lease-time 600;
                range 192.168.2.10 192.168.2.100;
                allow members of "Inside";
            }
#来访人员
        pool{
                option domain-name-servers ns2.lzs.org;
                max-lease-time 72000;
                default-lease-time 6000;
                range 192.168.2.150 192.168.2.250;
                allow unknown-clients;
            }
}

4、启动dhcpd服务
service dhcpd start

5、查看dhcpd监听的端口

netstat -ulnp |grep dhcpd

可以看到dhcpd已经监听在udp的67号端口上了

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/11465c762e2b3eac082ae7842736f546.html