Linux的DHCP服务器原理与配置

文章目录

  • DHCP原理与配置
    • DHCP工作原理
      • 了解DHCP服务
      • 使用DHCP的好处
      • DHCP的分配方式
      • DHCP的租约过程
      • 使用DHCP动态配置主机地址
    • DHCP服务器的配置
      • 安装DHCP服务器
    • DHCP客户端的使用
      • Windows客户端的验证
      • Linux客户端的验证
    • DHCP中继原理与配置
      • eNSP中的配置

DHCP原理与配置

DHCP工作原理

了解DHCP服务

  • DHCP (Dynamic Host Configuration Protocol,动态主机配置协议)
  • 由lnternet工作任务小组设计开发
  • 专门用于为TCP/IP网络中的计算机自动分配TCP/IP参数的协议

使用DHCP的好处

  • 减少管理员的工作量
  • 避免输入错误的可能
  • 避免IP地址冲突
  • 当更改lP地址段时,不需要重新配置每个用户的IP地址
  • 提高了IP地址的利用率
  • 方便客户端的配置

DHCP的分配方式

  • 自动分配:分配到一个IP地址后永久使用
  • 手动分配:由DHCP服务器管理员专门指定IP地址
  • 动态分配:使用完后释放该lP,供其它客户机使用

DHCP的租约过程

  • 客户机从DHCP服务器获得IP地址的过程称为DHCP的租约过程

  • 分为四个步骤

    1. 客户端在网络中搜索服务器
    2. 服务器向客户端响应服务
    3. 客户端向目标服务器发出服务请求
    4. 服务器向客户端提供服务
  • 客户机请求IP地址

    当一个DHCP客户机启动时,客户机还没有IP地址,所以客户机要通过DHCP获取一个合法的地址

    此时DHCP客户机以广播方式发送DHCP Discover发现信息来寻找DHCP服务器

  • 服务器响应

    DHCP服务器接收到来自客户机请求lP地址的信息时,在自己的IP地址池中查找是否有合法的IP地址提供给客户机

    如果有,DHCP服务器将此IP地址做上标记,加入到DHCP Offer的消息中,然后广播一则DHCP Offer消息

  • 客户机选择IP地址

    DHCP客户机从接收到的第一个DHCP Offer消息中提取IP地址,发出IP地址的DHCP服务器将该地址保留,这样该地址就不能再分配给另一个DHCP客户机

  • 服务器确定租约

    DHCP服务器接收到DHCP Request消息后,以DHCP ACK消息的形式向客户机广播成功确认,该消息包含有IP地址的有效租约和其他可配置的信息

    当客户机收到DHCP ACK消息时,配置IP地址,完成TCP/IP的初始化

  • 重新登录

    DHCP客户机每次重新登录网络时,不需要再发送DHCP Discover信息,而是直接发送包含前一次所分配的IP地址的DHCP Request请求信息,当收到DHCP ACK确认信息后,继续使用前一次分配得到的IP地址。如果该IP地址已不可用,DHCP服务器会发送DHCP Nack否认信息,此时DHCP客户机重新发送DHCP Discover信息。

  • 更新租约

    当DHCP服务器向客户机出租的lIP地址租期达到50%时,就需要更新租约

    客户机直接向提供租约的服务器发送DHCPRequest包,要求更新现有的地址租约

使用DHCP动态配置主机地址

  • DHCP服务

    • 为大量客户机自动分配地址,提供集中管理

    • 减轻管理和维护成本、提高网络配置效率

  • 可分配的地址信息主要包括

    • 网卡的P地址、子网掩码

    • 对应的网络地址、广播地址

    • 默认网关地址

    • DNS服务器地址

DHCP服务器的配置

安装DHCP服务器

DHCP服务器软件

  • CentOS光盘中的dhcp-4.2.5-47.el7.centos.x86_64.rpm

  • DHCP软件包的主要文件

主配置文件:/etc/dhcpd.conf

执行程序:/usr/sbin/dhcpd、/usr/sbin/dhcrelay

  • 配置DHCP服务器

    systemctl stop firewalld

    setenforce 0 //临时关闭防火墙和SELinux防止实验被安全功能阻止

    systemctl mask/umask firewalld可以永久停用/重新启用firewalld

    修改/etc/sysconfig/selinux可以实现永久禁用/重新启用/部分生效SELinux(disabled、enforcing、permissive)

    yum install -y dhcp //安装dhcp需要配置yum仓库,或者rpm -ivh dhcp-4.2.5-58.elf.centos.x86_64.rpm(具体名称需要自己查询在/mnt/Packages/里查询)

    cd /etc/dhcp/

    ls //进入并查看DHCP安装的目录

    less dhcpd.conf //注释提示去查看/usr/share/doc/dhcp*/dhcpd.conf模板文件

    cd /usr/share/doc/dhcp-4.2.5/

    ls

    less dhcp.conf.example //查看模板

    cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf

  • vim /etc/dhcp/dhcpd.conf

    # 设置全局配置参数
    default-lease-time 21600;                                 # 默认租约为6小时,单位为秒
    max-lease-time 43200;                                     # 最大租约为12小时,单位为秒
    option domain-name "nrh.com";                           # 指定默认域名
    option domain-name-servers 202.106.0.20, 202.106.148.1;   # 指定DNS服务器地址(前主后备)
    ddns-update-style none;                                   # 禁用DNS动态更新
    
    # subnet网段声明(作用于整个子网段,部分配置参数优先级高于全局配置参数,如果有多个网段地址池提供服务,需要把DNS服务器所在的网段设为第一个子网段配置)
    subnet 192.168.42.0 netmask 255.255.255.0 {            # 声明要分配的网段地址
            range 192.168.42.10 192.168.42.20;             # 设置地址池
            option routers 192.168.42.254;                 # 指定默认网关地址
    }
    
    subnet 192.168.1.0 netmask 255.255.255.0 {
            range 192.168.1.100 192.168.1.200;
            option routers 192.168.1.254;
            default-lease-time 45600;                      # 生效后此网段的租期则优先选择为45600秒
            option domain-name-servers 7.7.7.7;            # 指定此网段的DNS服务器的地址
    }
    
    subnet 192.168.2.0 netmask 255.255.255.0 {
            range 192.168.2.20 192.168.2.30;
            option routers 192.168.2.254;
    }
    
    # host主机声明(给单机分配固定的IP地址)
    host hostname {                             # 指定需要分配固定IP地址的客户机名称
        hardware ethernet 00:c0:c3:22:46:81;   # 指定该主机的MAC地址
        fixed-address 192.168.4.100;           # 指定保留给该主机的IP地址   
    }
    
    # 后面内容都可删除
    
    
  • 保存更新配置文件,启动服务

    systemctl start dhcpd

    systemctl stop firewalld

    setenforce 0

    netstat -anpu | grep ":67" //查看启动状态

    tail -f /var/log/messages //如果启动失败,可以查看日志文件

  • 参与实验的所有虚拟机网络适配器设置改为VMnet1(仅主机模式)(NAT模式VMware Workstation默认开启一个DHCP服务,会与本次实验服务器端的DHCP服务冲突)

    Linux的DHCP服务器原理与配置_第1张图片

  • 此时如果使用Xshell等远程登陆工具连接操作,需要在宿主机里将VMware Network Aadpter VMnet1的IP地址指定为不与虚拟机冲突的同一网段的地址

    Linux的DHCP服务器原理与配置_第2张图片 Linux的DHCP服务器原理与配置_第3张图片

DHCP客户端的使用

Windows客户端的验证

  • 开启一台windows虚拟机,在本地网络连接中全部选择自动获取,即可自动获取到服务器端设置的ip地址等配置

    Linux的DHCP服务器原理与配置_第4张图片
    Linux的DHCP服务器原理与配置_第5张图片

Linux客户端的验证

  • 开启一台linux虚拟机,修改ens33网卡配置文件

    vim /etc/sysconfig/network-scripts/ifcfg-ens33

    TYPE=Ethernet
    PROXY_METHOD=none
    BROWSER_ONLY=no
    BOOTPROTO=dhcp
    DEFROUTE=yes
    IPV4_FAILURE_FATAL=no
    IPV6INIT=yes
    IPV6_AUTOCONF=yes
    IPV6_DEFROUTE=yes
    IPV6_FAILURE_FATAL=no
    IPV6_ADDR_GEN_MODE=stable-privacy
    NAME=ens33
    UUID=df409853-929c-4577-81f9-dbe853e3f498
    DEVICE=ens33
    ONBOOT=yes
    
  • 重启网络服务获得DHCP服务端提供的IP地址等信息

    systemctl restart network

    ifconfig
    Linux的DHCP服务器原理与配置_第6张图片
    Linux的DHCP服务器原理与配置_第7张图片

DHCP中继原理与配置

eNSP中的配置

  • 拓扑图如下
    Linux的DHCP服务器原理与配置_第8张图片

  • Cloud的设置
    Linux的DHCP服务器原理与配置_第9张图片

    配置完成后Cloud1才会提供一个Ethernet 0/0/1端口

  • 交换机sw1的配置

    [sw1]vlan batch 10 20 100   //配置vlan
    Info: This operation may take a few seconds. Please wait for a moment...done.
    [sw1]int e0/0/2             //以下都是配置端口类型,设置对应vlan
    [sw1-Ethernet0/0/2]port link-type access
    [sw1-Ethernet0/0/2]port default vlan 10
    [sw1-Ethernet0/0/2]int e0/0/3
    [sw1-Ethernet0/0/3]port link-type access
    [sw1-Ethernet0/0/3]port default vlan 20
    [sw1-Ethernet0/0/3]int e0/0/4
    [sw1-Ethernet0/0/4]port link-type access
    [sw1-Ethernet0/0/4]port default vlan 100
    [sw1-Ethernet0/0/4]int e0/0/5
    [sw1-Ethernet0/0/5]port link-type access
    [sw1-Ethernet0/0/5]port default vlan 100
    [sw1-Ethernet0/0/5]int e0/0/1
    [sw1-Ethernet0/0/1]port link-type trunk
    [sw1-Ethernet0/0/1]port trunk allow-pass vlan all
    
  • 三层交换机sw2的配置

    [sw2]vlan batch 10 20 100
    Info: This operation may take a few seconds. Please wait for a moment...done.
    [sw2]int g0/0/1
    [sw2-GigabitEthernet0/0/1]port link-type trunk
    [sw2-GigabitEthernet0/0/1]port trunk allow-pass vlan all
    [sw2-GigabitEthernet0/0/1]q
    [sw2]int vlanif 10       //配置虚接口ip
    [sw2-Vlanif10]ip address 192.168.1.254 24
    [sw2-Vlanif10]int vlanif 20
    [sw2-Vlanif20]ip address 192.168.2.254 24
    [sw2-Vlanif20]int vlanif 100
    [sw2-Vlanif100]ip address 192.168.42.254 24
    [sw2-Vlanif100]q
    [sw2]dhcp enable         //打开dhcp功能
    Info: The operation may take a few seconds. Please wait for a moment.done.
    [sw2]int vlanif 10       //配置dhcp中继
    [sw2-Vlanif10]dhcp select relay
    [sw2-Vlanif10]dhcp relay server-ip 192.168.42.3
    [sw2-Vlanif10]int vlanif 20
    [sw2-Vlanif20]dhcp select relay
    [sw2-Vlanif20]dhcp relay server-ip 192.168.42.3 //vlan 100网段可以通过广播接收,不需要配置dhcp中继
    
  • 给PC3配置一个固定ip

    记录下PC3的MAC地址,再在DHCP客户端配置

    vim /etc/dhcp/dhcpd.conf //DHCP配置文件

    # 添加以下配置
    host hostname {
            hardware ethernet 54:89:98:C9:7C:58;
            fixed-address 192.168.42.188;
    }
    

    systemctl restart dhcpd

    vim /etc/sysconfig/network-ens33/ifcfg-ens33 //跨网段通信设置网关

    # 修改如下配置
    GATEWAY=192.168.42.254
    

    systemctl restart network

    此后可以在DHCP客户端ping通192.168.10.254和 192.168.20.254,证实可到达客户机网段

  • 三台客户机都开启DHCP自动获取IP地址,在命令行执行ipconfig命令,验证试验成功(PC3得到的DHCP服务器固定分配的IP地址)

    Linux的DHCP服务器原理与配置_第10张图片
    Linux的DHCP服务器原理与配置_第11张图片
    Linux的DHCP服务器原理与配置_第12张图片
    Linux的DHCP服务器原理与配置_第13张图片

你可能感兴趣的:(Linux网络服务,服务器,linux,网络)