Linux搭建DHCP服务

Linux搭建DHCP服务

当局域网中有大量的主机时,如果逐个为每一台主机手动设置IP地址、默认网关、DNS服务器等网络参数,显然是一个费力而且容易出错的办法。那就就需要使用部署一台——DHCP服务器。

DHCP的典型应用模式:
在网络中搭建一台DHCP服务器,负责集中分配各种网络地址参数(IP地址、子网掩码、广播地址、默认网关地址、DNS服务器地址);其他主机作为DHCP客户机,将网卡配置为自动获取IP地址,即可与DHCP服务器进行通信,完整自动配置的过程。

环境配置:

Linux搭建DHCP服务

两台linux机器,一台dhcp服务器,一台客户端测试

首先虚拟机环境配置两台主机为仅主机模式:编辑---虚拟网络编辑器,取消使用本地dhcp

其次两台主机的网络适配器选择:仅主机模式

操作以上两部是为了两台机在同一个局域网。

关闭防火墙及selinux

systemctl stop firewalld && setenforce 0

配置DHCP服务器网卡和测试机网卡

dhcp服务器网卡配置:
vim /etc/sysconfig/network-scripts/ifcfg-ens33 
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO="static"
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPADDR=192.168.204.26
PREFIX=24
GATEWAY=192.168.204.2
DNS1=192.168.204.2
DNS2=8.8.8.8
DNS3=114.114.114.114
NAME=ens33
DEVICE=ens33
ONBOOT=yes

测试机网卡配置:
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO="dhcp"
DEFROUTE=yes
NAME=ens33
DEVICE=ens33
ONBOOT=yes

挂载镜像配置repo和yum下载dhcp

替换阿里源:curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo


制作本地dhcp源# vim/etc/yum.repos.d/dhcp.repo
[a]
baseurl=file:///mnt
gpgcheck=0

# mount /dev/cdrom /mnt

清除缓存和加载缓存:yum clean all && yum makecache

安装dhcp服务# yum -y install dhcp

拷贝dhcp服务的主配置文件

这是dhcp默认的主配置文件(默认是空的)# vim /etc/dhcp/dhcpd.conf 

将dhcp服务的模板复制过来,充当dhcp服务的主配置文件# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf

修改dhcp配置文件

[root@localhost ~]# vim /etc/dhcp/dhcpd.conf 
          ………………             //省略部分内容
subnet 192.168.204.0 netmask 255.255.255.0 {
//声明网段,子网掩码
  range 192.168.204.40 192.168.204.45;
    //自动分配的ip地址范围
  option domain-name-servers 192.168.204.26;
    //DNS服务器地址
  option domain-name "internal.example.org";
    //服务器名字
  option routers 192.168.204.2;
    //网关地址
  option broadcast-address 192.168.204.255;
    //广播地址
  default-lease-time 60000;
    //默认租约时间(单位是秒)
  max-lease-time 720000;
    //最大租约时间(单位是秒)
}
          ………………             //省略部分内容
host fantasia {
  hardware ethernet 00:50:56:c0:00:08;
  //客户机的MAC地址
  fixed-address 192.168.204.41;
    //分配给客户机的IP地址
}


启动DHCP服务

启动DHCP服务并加入开机启动# systemctl start dhcpd && systemctl enable dhcpd

查看监听端口是UDP协议67端口# netstat -anput | grep 67
udp        0      0 0.0.0.0:67              0.0.0.0:*                           3592/dhcpd  

验证试验效果

Linux搭建DHCP服务

回到测试机:
1:重启网卡:systemctl restart network
2:查看ip: ip a

或者# ifconfig  ens33
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.10  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::da26:8c07:1d19:3e1e  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:2b:56:b5  txqueuelen 1000  (Ethernet)
        RX packets 138  bytes 16340 (15.9 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 114  bytes 16307 (15.9 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Linux客户端可以使用以下命令:

dhclient -d ens33:可以为主机重新获取新的IP地址;
dhclient -r ens33:释放IP地址;
hostnamectl  -set hostname:主机名”可以永久使用主机名(使用“bash”命令立即生效);
route add default gw IP地址:添加默认网关;
route del default gw IP地址:删除默认网关;
traceroute IP地址:可以测试从当前主机到目的主机经过的网络节点;
通过查看“/etc/resolv.conf”了解本机的默认DNS地址,对该文件的修改保存退出后会立即生效,不用重启系统(这是获取IP地址的linux主机自动获取的DNS服务器地址)

Linux操作主机默认最多三个DNS服务器地址(第三个以后会被忽略)优先使用第一个DNS地址。

的主机经过的网络节点;
通过查看“/etc/resolv.conf”了解本机的默认DNS地址,对该文件的修改保存退出后会立即生效,不用重启系统(这是获取IP地址的linux主机自动获取的DNS服务器地址)


**Linux操作主机默认最多三个DNS服务器地址(第三个以后会被忽略)优先使用第一个DNS地址。**

上一篇:计算机网络 应用层


下一篇:TCP/IP协议族