51学通信论坛2017新版

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2706|回复: 0
打印 上一主题 下一主题

如何在CentOS、RHEL和Fedora上安装DHCP服务

[复制链接]

 成长值: 15655

  • TA的每日心情
    开心
    2022-7-17 17:50
  • 2444

    主题

    2544

    帖子

    7万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    74104
    跳转到指定楼层
    楼主
    发表于 2017-11-15 15:59:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式


    DHCP(Dynamic Host Configuration Protocol)是一个网络协议,它使得服务器能从预定义的 IP 池中为网络中的客户端节点自动分配 IP 地址并提供其它相关的网络配置参数。 -- Aaron Kili
    本文导航

      -设置测试环境 …… 08%
      -DHCP 如何工作? …… 11%
      -第一步:在 CentOS 上安装 DHCP 服务 …… 20%
      -第二步:在 CentOS 上配置 DHCP 服务 …… 28%
      -第三步:为 DHCP 客户端分配静态 IP …… 52%
      -第四步:配置 DHCP 客户端 …… 69%
    编译自: http://www.tecmint.com/install-dhcp-server-in-centos-rhel-fedora/
    作者: Aaron Kili
    译者: ictlyh

    DHCP(Dynamic Host Configuration Protocol)是一个网络协议,它使得服务器能从预定义的 IP 池中为网络中的客户端节点自动分配 IP 地址并提供其它相关的网络配置参数。
    这意味着每次客户端节点启动(连接到网络)的时候,它都会获得一个和从不改变的“静态” IP 地址相反的“动态” IP 地址。DHCP 服务器给 DHCP 客户端分配 IP 地址称为“租约”,租约时间随客户端需要的连接时间或 DHCP 的配置而异。
    在这篇指南中,我们会介绍如何在 CentOS/RHEL 和 Fedora 发行版中安装和配置 DHCP 服务。
    设置测试环境

    本次安装中我们使用如下的测试环境:

      DHCP 服务器 - CentOS 7
      DHCP 客户端 - Fedora 25 和 Ubuntu 16.04

    DHCP 如何工作?

    在进入下一步之前,让我们首先了解一下 DHCP 的工作流程:

      当已连接到网络的客户端计算机(配置为使用 DHCP)启动时,它会发送一个 DHCPDISCOVER 消息到 DHCP 服务器。
      当 DHCP 服务器接收到 DHCPDISCOVER 请求消息时,它会回复一个 DHCPOFFER 消息。
      客户端收到 DHCPOFFER 消息后,它再发送给服务器一个 DHCPREQUEST 消息,表示客户端已准备好获取 DHCPOFFER 消息中提供的网络配置。
      最后,DHCP 服务器收到客户端的 DHCPREQUEST 消息,并回复 DHCPACK 消息,表示允许客户端使用分配给它的 IP 地址。

    第一步:在 CentOS 上安装 DHCP 服务

    1、安装 DHCP 服务非常简单,只需要运行下面的命令即可。
    $ yum -y install dhcp

    重要:假如系统中有多个网卡,但你想只在其中一个网卡上启用 DHCP 服务,可以按照下面的步骤在该网卡上启用 DHCP 服务。
    2、 打开文件 /etc/sysconfig/dhcpd,将指定网卡的名称添加到 DHCPDARGS 列表,假如网卡名称为 eth0,则添加:
    DHCPDARGS=eth0

    保存文件并退出 。
    第二步:在 CentOS 上配置 DHCP 服务

    3、 对于初学者来说,配置 DHCP 服务的第一步是创建 dhcpd.conf 配置文件,DHCP 主要配置文件一般是 /etc/dhcp/dhcpd.conf(默认情况下该文件为空),该文件保存了发送给客户端的所有网络信息。
    但是,有一个样例配置文件 /usr/share/doc/dhcp*/dhcpd.conf.sample,这是配置 DHCP 服务的良好开始。
    DHCP 配置文件中定义了两种类型的语句:

      参数 - 说明如何执行任务、是否执行任务、或者给 DHCP 客户端发送什么网络配置选项。
      声明 - 指定网络拓扑、定义客户端、提供客户端地址、或将一组参数应用于一组声明。

    因此,首先复制示例配置文件为主配置文件:
    $ cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf

    4、 然后,打开主配置文件并定义你的 DHCP 服务选项:
    $ vi /etc/dhcp/dhcpd.conf

    首先在文件开头设置以下应用于全部子网的全局参数(注意要使用你实际场景中的值):
    option domain-name "tecmint.lan";
    option domain-name-servers ns1.tecmint.lan, ns2.tecmint.lan;
    default-lease-time 3600;
    max-lease-time 7200;
    authoritative;

    5、 然后,定义一个子网;在这个事例中,我们会为 192.168.56.0/24 局域网配置 DHCP(注意使用你实际场景中的值):
    subnet 192.168.56.0 netmask 255.255.255.0 {
    option routers 192.168.56.1;
    option subnet-mask 255.255.255.0;
    option domain-search "tecmint.lan";
    option domain-name-servers 192.168.56.1;
    range 192.168.56.10 192.168.56.100;
    range 192.168.56.120 192.168.56.200;
    }

    第三步:为 DHCP 客户端分配静态 IP

    只需要在 /etc/dhcp/dhcpd.conf 文件中定义下面的部分,其中你必须显式指定它的 MAC 地址和打算分配的 IP,你就可以为网络中指定的客户端计算机分配一个静态 IP 地址:
    host ubuntu-node {
    hardware ethernet 00:f0:m4:6y:89:0g;
    fixed-address 192.168.56.105;
    }
    host fedora-node {
    hardware ethernet 00:4g:8h:13:8h:3a;
    fixed-address 192.168.56.110;
    }

    保存文件并关闭。
    注意:你可以使用下面的命令找到 Linux 的 MAC 地址。
    $ ifconfig -a eth0 | grep HWaddr

    6、 现在,使用下面的命令启动 DHCP 服务,并使在下次系统启动时自动启动:
    ---------- On CentOS/RHEL 7 ----------
    $ systemctl start dhcpd
    $ systemctl enable dhcpd
    ---------- On CentOS/RHEL 6 ----------
    $ service dhcpd start
    $ chkconfig dhcpd on

    7、 另外,别忘了使用下面的命令允许 DHCP 服务通过防火墙(DHCPD 守护进程通过 UDP 监听67号端口):
    ---------- On CentOS/RHEL 7 ----------
    $ firewall-cmd --add-service=dhcp --permanent
    $ firewall-cmd --reload
    ---------- On CentOS/RHEL 6 ----------
    $ iptables -A INPUT -p tcp -m state --state NEW --dport 67 -j ACCEPT
    $ service iptables save

    第四步:配置 DHCP 客户端

    8、 现在,你可以为网络中的客户端配置自动从 DHCP 服务器中获取 IP 地址。登录到客户端机器并按照下面的方式修改以太网接口的配置文件(注意网卡的名称和编号):
    # vi /etc/sysconfig/network-scripts/ifcfg-eth0

    添加下面的选项:
    DEVICE=eth0
    BOOTPROTO=dhcp
    TYPE=Ethernet
    ONBOOT=yes

    保存文件并退出。
    9、 你也可以在桌面服务器中按照下面的截图(Ubuntu 16.04桌面版)通过 GUI 设置 Method 为 Automatic (DHCP)。

    在客户端网络中设置 DHCP


    10、 按照下面的命令重启网络服务(你也可以通过重启系统):
    ---------- On CentOS/RHEL 7 ----------
    $ systemctl restart network
    ---------- On CentOS/RHEL 6 ----------
    $ service network restart

    到了这里,如果所有设置都是正确的,你的客户端就应该能自动从 DHCP 服务器中获取 IP 地址。
    你也可以阅读:

      如何在 Debian Linux 中安装和配置 Multihomed ISC DHCP 服务[1]
      配置网络的 10 个有用的 “IP” 命令[2]

    在这篇文章中我们为你展示了如何在 RHEL/CentOS 中安装 DHCP 服务。在下面的评论框中给我们反馈吧。在接下来的文章中,我们还会为你展示如何在 Debian/Ubuntu 中安装 DHCP 服务。和 TecMint 保持联系。
    作者简介:
    Aaron Kili 是一个 Linux 和 F.O.S.S 的爱好者,即将推出的 Linux SysAdmin 网络开发人员,目前也是 TecMint 的内容创作者,他喜欢和电脑一起工作,并且坚信共享知识。
    via: http://www.tecmint.com/install-dhcp-server-in-centos-rhel-fedora/
    作者:Aaron Kili[3] 译者:ictlyh 校对:wxy
    本文由 LCTT 原创编译,Linux中国 荣誉推出

      [1]: 如何在 Debian Linux 中安装和配置 Multihomed ISC DHCP 服务 - http://www.tecmint.com/install-and-configure-multihomed-isc-dhcp-server-on-debian-linux/
      [2]: 配置网络的 10 个有用的 “IP” 命令 - http://www.tecmint.com/ip-command-examples/
      [3]: Aaron Kili - http://www.tecmint.com/author/aaronkili/


    声明:本文转载自网络。版权归原作者所有,如有侵权请联系删除。
    扫描并关注51学通信微信公众号,获取更多精彩通信课程分享。

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?立即注册

    x
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    Archiver|手机版|小黑屋|51学通信技术论坛

    GMT+8, 2025-2-7 18:14 , Processed in 0.235734 second(s), 33 queries .

    Powered by Discuz! X3

    © 2001-2013 Comsenz Inc.

    快速回复 返回顶部 返回列表