你好,游客 登录 注册 搜索
背景:
阅读新闻

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

[日期:2016-09-01] 来源:Linux社区  作者:lzs66 [字体: ]

dhcp理论部分

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

            服务器端:监听在udp67端口

            客户端:监听在udp68端口

    dhcp地址租约过程

    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号端口上了

注意要点:
    1、作为dhcp服务器,服务器本身的ip地址应该是静态配置的,而且在配置文件里定义的网段要与你的网卡IP所处网段一致,若要在一台服务器上为多个网段分配地址,必须要为服务器添加多张网卡。
    2、配置文件中每个语句要以;结尾。
    3、配置文件中的局部配置会覆盖全局配置中的相关配置

    4、保留地址可以是作用域地址范围内的任何一个IP地址,即使该IP地址处于排除范围之内

本文永久更新链接地址http://www.linuxidc.com/Linux/2016-09/134830.htm

linux
相关资讯       DHCP  DHCP协议  Linux上配置DHCP 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款