在linux-CentOS7.9中搭建DHCP服务器

目录

dhcp协议:

dhcp分配的过程:

在linux系统里搭建一个dhcp服务,给其他机器分配ip地址,具体步骤:

1.安装dhcp相关的软件包

2.拷贝样例文件到/etc/dhcp目录下

3.编辑配置文件

4.启动dhcp服务器

5.查看dhcp服务是否已启动 

6.关闭防火墙

7.测试--使用一台服务器作为客户端

8.在dhcp服务器上查看给哪些客户机分配了ip地址

补充:linux中手工配置静态ip地址

1.进入网卡配置文件的目录

2.修改配置文件ifcfg-ens33,ens33是具体接口的名字

3.重新启动服务,让新的配置重新生效


dhcp协议:

动态主机配置协议,是应用层的协议,负责为客户机动态分配TCP/IP信息,包括ip地址、子网掩码、默认网关、首选DNS服务器等。dhcp只是在内网给部分电脑配置ip地址,一个局域网中有一个dhcp服务器就可以了。

相关疑问:

dhcp服务器是如何知道哪些ip地址分配出去了,哪些没有分配出去呢?

        dhcp服务器会记录哪些ip地址分配出去了,哪些没有分配 --> 会有一个文件记录。

分配ip地址出去的时候,是否会检查ip地址是否冲突?

        分配之前会先ping一个准备给别人的ip地址,看是否有回应。

dhcp分配的过程:

客户机请求ip地址(DHCPDiscover) -> 服务器相应请求(DHCPOffer) -> 客户机选择ip地址(DHCPRequest) -> 服务器确认租约(DHCPAck)

其中客户机发出的包都是广播包,服务器发出的包都是单播包。

在linux系统里搭建一个dhcp服务,给其他机器分配ip地址,具体步骤:

1.安装dhcp相关的软件包

[root@router ~]# yum install dhcp -y

2.拷贝样例文件到/etc/dhcp目录下

[root@router ~]# cd /etc/dhcp/
[root@router dhcp]# ls
dhclient.d  dhclient-exit-hooks.d  dhcpd6.conf  dhcpd.conf  scripts     #dhcpd6.conf是ipv6的配置文件,dhcpd.conf是ipv4的配置文件--主要配置文件
[root@router dhcp]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf 
cp:是否覆盖"/etc/dhcp/dhcpd.conf"? y

3.编辑配置文件

[root@router dhcp]# vim /etc/dhcp/dhcpd.conf
log-facility local7;
# A slightly different configuration for an internal subnet.
subnet 192.168.188.0 netmask 255.255.255.0 {
  range 192.168.188.210 192.168.188.240;
  option domain-name-servers 114.114.114.114;
  option routers 192.168.188.1;
  default-lease-time 600;
  max-lease-time 7200;
}

其中配置的主要含义:

 log-facility local7:指定日志类型,采用的日志设备为本地设备

subnet 192.168.188.0 netmask 255.255.255.0:指定分配ip地址的网段号和子网掩码

range 192.168.188.210 192.168.188.240:指定分配地址池的范围,必须是上面指定网段号里面的ip

option domain-name-servers 114.114.114.114:指定dns服务器

option routers 192.168.188.1:指定网关

default-lease-time 600:最短租约时间为600s

max-lease-time 7200:最长租约时间为7200s

注意:dhcp服务器里的网关或者dns服务器配置错误,就会导致客户机上不了网

4.启动dhcp服务器

[root@router dhcp]# service dhcpd start
Redirecting to /bin/systemctl start dhcpd.service

5.查看dhcp服务是否已启动 

[root@router dhcp]# ps aux|grep dhcpd     #查看进程
dhcpd      4482  0.2  0.4 105988  8180 ?        Ss   21:34   0:00 /usr/sbin/dhcpd -f -cf /etc/dhcp/dhcpd.conf -user dhcpd -group dhcpd --no-pid
[root@router dhcp]# netstat -anplut|grep dhcpd    #查看端口
udp        0      0 0.0.0.0:67              0.0.0.0:*                           4482/dhcpd

6.关闭防火墙

[root@router dhcp]# service firewalld stop
Redirecting to /bin/systemctl stop firewalld.service
[root@router dhcp]# systemctl disable firewalld

7.测试--使用一台服务器作为客户端

[root@goweb ~]# dhclient -lf /var/lib/dhclient/dhclient.leases     #将租约信息存入该文件
[root@goweb ~]# cat /var/lib/dhclient/dhclient.leases
lease {
  interface "ens33";
  fixed-address 192.168.188.210;
  option subnet-mask 255.255.255.0;
  option dhcp-lease-time 1800;
  option dhcp-message-type 5;
  option domain-name-servers 192.168.188.1;
  option dhcp-server-identifier 192.168.188.254;    #dhcp服务器的ip地址
  option broadcast-address 192.168.188.255;
  option domain-name "localdomain";
  renew 4 2023/07/27 13:58:24;
  rebind 4 2023/07/27 14:12:58;
  expire 4 2023/07/27 14:16:43;
}

8.在dhcp服务器上查看给哪些客户机分配了ip地址

[root@router ~]# cat /var/lib/dhcpd/dhcpd.leases
# The format of this file is documented in the dhcpd.leases(5) manual page.
# This lease file was written by isc-dhcp-4.2.5

server-duid "\000\001\000\001,U,\360\000\014)\350\033\200";

lease 192.168.188.210 {
  starts 4 2023/07/27 13:40:27;
  ends 4 2023/07/27 13:50:27;
  cltt 4 2023/07/27 13:40:27;
  binding state active;
  next binding state free;
  rewind binding state free;
  hardware ethernet 00:0c:29:e4:41:50;     #物理地址
  client-hostname "goweb";     #客户机主机名
}

补充:linux中手工配置静态ip地址

1.进入网卡配置文件的目录

[root@localhost network-scripts]# cd /etc/sysconfig/network-scripts/

2.修改配置文件ifcfg-ens33,ens33是具体接口的名字

[root@localhost network-scripts]# vim ifcfg-ens33
BOOTPROTO="none"
NAME="ens33"
UUID="e605fdb1-4998-467b-b659-84e12fecab31"
DEVICE="ens33"
ONBOOT="yes"
IPADDR=192.168.15.149
#NETMASK=255.255.255.0
PREFIX=24 4
GATEWAY=192.168.15.2 
DNS1=114.114.114.114
DNS2=192.168.0.1

其中配置文件中主要配置的含义:

BOOTPROTO="none":none或static表示静态配置ip,dhcp表示动态获得ip地址,通过dhcp服务器分配

NAME="ens33":网卡的名字

UUID="e605fdb1-4998-467b-b659-84e12fecab31":网络连接的唯一标识,一个硬件会对应一个编号,这个编号会自动生成,不需要修改

DEVICE="ens33":设备的名字

ONBOOT="yes":yes表示开机的时候激活网络连接,no表示禁用这个网络连接

IPADDR=192.168.15.149:静态配置的ip地址

NETMASK=255.255.255.0:子网掩码

PREFIX=24:子网掩码的长度为24,与NETMASK只需要配置其中一个就可以了

GATEWAY=192.168.15.2:默认网关

DNS1=114.114.114.114:首选dns服务器

DNS2=192.168.0.1:备选dns服务器

3.重新启动服务,让新的配置重新生效

[root@localhost network-scripts]# service network restart
Restarting network (via systemctl):                        [  确定  ]

猜你喜欢

转载自blog.csdn.net/m0_69298614/article/details/131984250