Linux网络服务之DHCP

本文详细介绍了Linux中的DHCP服务,包括DHCP的定义、优势、分配方式和工作过程。此外,还讨论了如何使用DHCP动态配置主机地址,以及DHCP中继的原理与配置步骤,强调了DHCP在简化网络管理和降低成本方面的关键作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.了解DHCP服务

1.定义

DHCP(动态主机配置协议)是一个局域网的网络协议。指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码。默认情况下,DHCP作为Windows Server的一个服务组件不会被系统自动安装,还需要管理员手动安装并进行必要的配置。

DHCP采用C/S架构,C-client(客户机),S-server(服务器),客户机/服务器架构

DHCP服务对应传输层UDP协议,因为是C/S架构,所以客户机端口号是67,服务器端口号是68

2.好处

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

3.分配方式

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

4.工作过程

查看源图像

客户机从DHCP服务器获得IP地址的过程称为DHCP的租约过程,分为四个步骤:

  1. 客户机请求IP地址

    当一个DHCP客户机启动时,客户机还没有IP地址,所以客户机要通过DHCP获取一个合法的地址 。此时DHCP客户机以广播方式发送DHCP Discover发现信息来寻找DHCP服务器;

  2. 服务器响应

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

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

  3. 客户机选择IP地址

    客户机选择第一台DHCP服务器回复的ip地址,并且要广播发送DHCP request,通告给局域网中所有的DHCP服务器,它选择了哪个IP和哪个DHCP(发送DHCP request的原因有两层,第一层是通告所有DHCP,让未被选中的服务器,把未使用的地址收回,第二层是通告给被选中的服务器,这个IP地址客户机要使用了)

  4. 服务器确定租约

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

二.使用DHCP动态配置主机地址

1.DHCP服务优点

  • 为大量客户机自动分配地址,提供集中管理
  • 减轻管理和维护成本,提高网络配置效率

2.可分配的地址信息

  • 网卡的IP地址,子网掩码
  • 对应的网络地址,广播地址
  • 默认的网关地址
  • dns服务器地址

三.DHCP中继原理与配置

1.DHCP配置文件中的参数

#设置全局配置参数
defau7t-lease-time 21600;      #默认租约为6小时,单位为秒I
max-lease-time 43200;           #最大租约为12小时,单位为秒
option domain-name "benet.com";         #指定默认域名
option domain-name-servers 202.106.0.20,202.106.148.1;      #指定DNS服务器地址
ddns-update-style none;          #禁用DNS动态更新

#subnet网段声明(作用于整个子网段,部分配置参数优先级高于全局配置参数)
subnet 192.168.100.0 netmask 255.255.255.o {         #声明要分配的网段地址
range 192.168.100.128 192.168.100.200;               #设置地址池
option routers 192.168.100.1;               #指定默认网关地址
#host主机声明(给单机分配固定的IP地址)    
host hgstname{                         #指定需要分配固定IP地址的客户机名称
hardware ethernet 00:c0:c3:22:46:81;         #指定该主机的MAC地址
fixed-address 192.168.4.100;        #指定保留给该主机的IP地址

2.步骤讲解

  1. 关闭防火墙和selinux

    [root@localhost ~]# systemctl stop firewalld.service 
    [root@localhost ~]# setenforce 0
    
  2. 安装服务并查看相关配置文件

     [root@localhost ~]# yum install -y dhcp       #安装DHCP服务
    [root@localhost ~]# rpm -qc dhcp               #查看相关配置文件
    /etc/dhcp/dhcpd.conf                             #我们只需要对/etc/dhcp/dhcpd.conf 此文档进行配置
    /etc/dhcp/dhcpd6.conf
    /etc/openldap/schema/dhcp.schema
    /etc/sysconfig/dhcpd
    /var/lib/dhcpd/dhcpd.leases
    /var/lib/dhcpd/dhcpd6.leases
    [root@localhost ~]# vim /etc/dhcp/dhcpd.conf 
    #空的
    # DHCP Server Configuration file.
    #   see /usr/share/doc/dhcp*/dhcpd.conf.example          #可以将此文档拷贝过来
    #   see dhcpd.conf(5) man page
    
    
  3. 拷贝并修改/etc/dhcp/dhcpd0conf 配置文件

    [root@localhost ~]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf 
    cp:是否覆盖"/etc/dhcp/dhcpd.conf"yes             #拷贝上述文档并覆盖,4.2.5代表版本
    
    [root@localhost ~]# cd /etc/dhcp/                          #切换至dhcpd.conf所在目录
    [root@localhost dhcp]# vim dhcpd.conf         #进入编辑器查看配置文件,此时不为空了
    
    
  4. 更改网卡连接模式为仅主机

  5. 更改完成过后重连xshell,再修改配置

  6. 修改网卡

    [root@localhost dhcp]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
    #修改网卡ip地址及网关,然后保存退出
    [root@localhost dhcp]# systemctl restart network               #重启网络服务
    root@localhost dhcp]# ifconfig               #查看一下ip地址是否配好了
    
    
  7. 修改配置文件

    [root@localhost ~]# cd /etc/dhcp/                 #切换至dhcpd.conf所在目录
    [root@localhost dhcp]# vim dhcpd.conf       #修改配置文件
    
    末行模式下:set nu显示行号
    
    #第8行 修改默认的全局DNS地址
      option domain-name-servers 8.8.8.8;
    
    #直接修改27行
      subnet 192.168.100.0  netmask 255.255.255.0 {
        range 192.168.100.128  192.168.100.200;
       option routers 192.168.100.1;
        option domain-name-servers 114.114.114.114;
      }
     
    subnet 192.168.10.0  netmask 255.255.255.0{
      range 192.168.10.128  192.168.10.200;
      option routers 192.168.10.1;
    }
    
    subnet 192.168.20.0  netmask 255.255.255.0{
      range 192.168.20.128  192.168.20.200;
      option routers 192.168.20.1;
    }
    
    [root@localhost dhcp]# systemctl start dhcpd                #启动dhcp服务
    [root@localhost dhcp]# systemctl status dhcpd             #查看是否成功启动
    [root@localhost dhcp]# netstat -anup  | grep "dhcp"      #查看网络状态,过滤出dhcp端口
    
    
  8. 验证区域与全局优先级

    #windows设置虚拟网卡为仅主机模式
    #虚拟网络编辑器里也设置成仅主机模式,一定要把使用本地DHCP选项勾掉
    #改一下windows虚拟机的网卡配置
    
    #在windows系统的cmd里测试是否能ping通dhcp服务器,然后释放并重启一下网络
    ping 192.168.100.100  ping 一下dhcp服务器,看是否可以ping通
    ipconfig  查看网卡信息
    ipconfig /release  释放地址
    ipconfig /renew    重新获取地址
    ipconfig /all  可以看到详情信息,
    
    
  9. 配置DHCP中继

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值