Linux搭建DHCP服务
当局域网中有大量的主机时,如果逐个为每一台主机手动设置IP地址、默认网关、DNS服务器等网络参数,显然是一个费力而且容易出错的办法。那就就需要使用部署一台——DHCP服务器。
DHCP的典型应用模式:
在网络中搭建一台DHCP服务器,负责集中分配各种网络地址参数(IP地址、子网掩码、广播地址、默认网关地址、DNS服务器地址);其他主机作为DHCP客户机,将网卡配置为自动获取IP地址,即可与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
验证试验效果
回到测试机:
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地址。**