安装DHCP服务
1、DHCP(Dynamic Host Configuration Protocol)动态主机配置协议
DHCP是由Internet工作任务小组设计开发,专门用于为TCP/IP网络中的计算机自动分配TCP/IP参数的协议。
主要作用就是分配IP地址的
使用DHCP可以减少管理员的工作量避免IP地址的冲突,当网络更改IP地址网段时不需要在重新配置每个用户的IP地址,提高了IP地址的利用率,方便客户端的配置。
2、可分配的地址信息主要包括:
网卡的IP地址、子网掩码、对应的网络地址、广播地址、默认网关地址、DNS服务器地址
3、DHCP的分配方式
(1) 自动分配: 分配到一个IP地址后永久使用
(2) 手动分配: 由DHCP服务器管理员专门指定IP地址
(3)动态分配:使用完后释放该IP,供其他客户机使用
5、服务的协议和端口
遵从udp协议
客户端是68端口
服务端是67端口 查看服务端口是否打开 :netstat -lnup |grep :67
DHCP服务端通过监听UDP协议67端口工作,客户端通过UDP协议68端口工作
6、配置DHCP服务
主要配置文件是:/etc/dhcp/dhcpd.conf
执行程序:/usr/sbin/dhcpd
服务的脚本名是:dhcpd
启动服务用: systemctl start dhcpd
关闭防火墙与安全机制
iptables -F
systemctl stop firewalld
setenforce 0
安装DHCP所依赖的包
mkdir /media/cdrom
mount /dev/cdrom /media/cdrom
rpm -ivh /media/cdrom/Packages/dhcp-4.2.5-36.e17.centos.x86_64.rpm
rpm -q dhcp
mkdir /media/cdrom
mount /dev/cdrom /media/cdrom
rpm -ivh /media/cdrom/Packages/dhcp-4.2.5-36.e17.centos.x86_64.rpm
rpm -q dhcp
首次打开/etc/dhcp/dhcpd.conf里面会有提示文件内容参考以下两个文件
所以用 yes | cp /usr/share/doc/dhcp*/dhcpd.conf.example /etc/dhcp/dhcpd.conf
接着在对配置文件进行编辑
输入vim /etc/dhcp/dhcpd.conf
文件进行修改,只保留以下内容,其他全删掉
option domain-name "crushlinux.com"; //定义分配的域名
option domain-name-servers 202.106.0.20,8.8.8.8; //定义分配到DNS服务器信息
default-lease-time 21600; //定义分配IP地址的默认祖约时间,单位是秒
max-lease-time 43200; //定义分配IP地址的最大租约时间,单位是秒
subnet 192.168.116.0 netmask 255.255.255.0 { //定义IP地址网段及子网掩码
range 192.168.116.100 192.168.116.200; //定义分配IP地址的地址池范围 最大不能是255
option routers 192.168.116.1; //定义分配网关地址
}
开启服务
systemctl start dhcpd
systemctl status dhcpd //查看服务开启状态
接着用测试机进行测试,必须将测试机跟主机保持在同一个网络模式即V8net模式。
在测试机的终端中进行ping www.baidu.com
接着查看测试机获取的IP地址信息,注意测试之前应将虚拟机的网络V8设置,把开启DHCP服务关掉。
信息排错
第一中查看配置文件是否写过
第二中查寻/var/log/messages //日志中捕获到的四个过程
也可以用tail -f /var/log/messages //动态查看日志。
cat /var/lib/dhcp/dhcpd.leases //查看租约信息文件
=====================================================================================
让Linux客户机进行获取IP地址
同样关闭防火墙与安全机制
需要将Linux客户机的网络模式设置要与DHCP服务器相同模式,才能获取IP地址进行测试
首先:修改以下两项内容Linux客户机的网卡配置
BOOTPROTO=dhcp
ONBOOT=yes
输入vim /etc/sysconfig/network-scripts/ifcfg-ens32
修改后输入systemctl restart network //重启网卡,获取IP
在用 ip a 进行查看即可。
与此同时我们可以在装有DHCP服务器的机器中输入 tail -f /var/log/messages 进行监听
接着我们在Linux客户机中输入 ip a 可以查看测试机获取的IP地址
或者也可以在测试机中输入
dhclient -r ens32 //释放IP
dhclient -d ens32 //获取IP,当出现DHCPDISCOVER DHCPREQUEST DHCPOFFER DHCPACK 这四个
单词的时候就说明IP已经获取到了
输入ip a 进行查看就可以了
需要将Linux客户机的网络模式设置要与DHCP服务器相同模式,才能获取IP地址进行测试
首先:修改以下两项内容Linux客户机的网卡配置
BOOTPROTO=dhcp
ONBOOT=yes
输入vim /etc/sysconfig/network-scripts/ifcfg-ens32
修改后输入systemctl restart network //重启网卡,获取IP
在用 ip a 进行查看即可。
与此同时我们可以在装有DHCP服务器的机器中输入 tail -f /var/log/messages 进行监听
接着我们在Linux客户机中输入 ip a 可以查看测试机获取的IP地址
或者也可以在测试机中输入
dhclient -r ens32 //释放IP
dhclient -d ens32 //获取IP,当出现DHCPDISCOVER DHCPREQUEST DHCPOFFER DHCPACK 这四个
单词的时候就说明IP已经获取到了
输入ip a 进行查看就可以了
===================================================================================
解决分配固定IP地址即针对部分主机可绑定其MAC地址为其分配固定IP地址
方法如下:
修改 vim /etc/dhcp/dhcpd.conf 文件 ,在原来基础上添加以下内容
option domain-name "crushlinux.com"; //定义分配的域名
option domain-name-servers 202.106.0.20,8.8.8.8; //定义分配到DNS服务器信息
default-lease-time 21600; //定义分配IP地址的默认祖约时间,单位是秒
max-lease-time 43200; //定义分配IP地址的最大租约时间,单位是秒
subnet 192.168.116.0 netmask 255.255.255.0 { //定义IP地址网段及子网掩码
range 192.168.116.100 192.168.116.200; //定义分配IP地址的地址池范围 最大不能是255
option routers 192.168.116.1; //定义分配网关地址
}
host win7 { //host 后面跟要绑定的客户机的主机名称
hardware ethernet 00:0c:29:a9:29:ec; //mac地址可以查看租约获取,也可以到客户机中ip a 查看
fixed-address 192.168.116.101; //指定要绑定的客户机的IP地址 只要保证在这个地址池范围内即可
}
保存退出!!!
方法如下:
修改 vim /etc/dhcp/dhcpd.conf 文件 ,在原来基础上添加以下内容
option domain-name "crushlinux.com"; //定义分配的域名
option domain-name-servers 202.106.0.20,8.8.8.8; //定义分配到DNS服务器信息
default-lease-time 21600; //定义分配IP地址的默认祖约时间,单位是秒
max-lease-time 43200; //定义分配IP地址的最大租约时间,单位是秒
subnet 192.168.116.0 netmask 255.255.255.0 { //定义IP地址网段及子网掩码
range 192.168.116.100 192.168.116.200; //定义分配IP地址的地址池范围 最大不能是255
option routers 192.168.116.1; //定义分配网关地址
}
host win7 { //host 后面跟要绑定的客户机的主机名称
hardware ethernet 00:0c:29:a9:29:ec; //mac地址可以查看租约获取,也可以到客户机中ip a 查看
fixed-address 192.168.116.101; //指定要绑定的客户机的IP地址 只要保证在这个地址池范围内即可
}
保存退出!!!
开启服务
systemctl start dhcpd
在wind客户机中进行测试
输入 ipconfig /release //表示释放IP
输入 ipconfig /renew //表示重新获取IP
====================================================================================
DHCP中继实验
systemctl start dhcpd
在wind客户机中进行测试
输入 ipconfig /release //表示释放IP
输入 ipconfig /renew //表示重新获取IP
====================================================================================
DHCP中继实验
作用:实现DHCP服务器给不同网段的客户机进行IP地址的分配
实验环境,两台Linux机器,两台win测试机
win测试机,一台是116网段 ,一台是100网段
Linux1作为DHCP服务器,一块网卡 ip 192.168.116.66
Linux2作为DHCP中继服务器,两块网卡 ,一个(ens32)是v8net ,一个是(ens34)是V2仅主机模式
实验过程如下
DHCP服务器配置不变
DHCP中继服务器配置如下
1、首先关闭防火墙,安全机制
iptables -F
systemctl stop firewalld
setenforce 0
2、编辑网卡设置
首先修改ens32,修改并添加以下内容
BOOTPROTO=dhcp
ONBOOT=yes
IPADDR=192.168.116.68
NETMASK=255.255.255.0
保存退出
重启网络服务
systemctl restart network
ping 192.168.116.66 //检测一下Linux2 主机与 Linux1主机是否通信
接着修改Linux2主机的另一块网卡 新添加的网卡,网卡配置文件是没有东西的,
但是我们可以将ens32 文件的内容复制给ens34
输入 cp /etc/sysconfig/network-scripts/ifcfg-ens32 /etc/sysconfig/network-scripts/ifcfg-ens34
接着修改 /etc/sysconfig/network-scripts/ifcfg-ens34 配置文件的内容
BOOTPROTO=static
NAME=ens34
DEVICE=ens34
IPADDR=192.168.100.68
NETMASK=255.255.255.0
保存退出
重启网卡
systemctl restart network
由于配了两块网卡,Linux2主机有可能会造成混乱的情况,所以,我们可以用一台win测试机,
把网络适配器中的ipv4 设定一下IP地址
即手动添加192.168.100.10 子网掩码255.255.255.0
然后用Linux2 DHCP中继服务器ping IP ,测试网络连通性
输入ping 192.168.116.66 //测试跟Linux1DHCP服务器的连通性
输入ping 192.168.100.10 //测试跟win测试机的连通性(稍等一会可能连接会慢) 全部连通才可以
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!!接着对Linux1DHCP服务器进行调整!!!
Linux1 Linux2
DHCP服务器 =============》》》 DHCP中继服务器
192.168.116.66 网卡1 :192.168.116.68 网卡2:192.168.100.68
|| ||
|| ||
^ ^
测试机1 测试机2
192.168.116.110 192.168.100.90
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
win测试机,一台是116网段 ,一台是100网段
Linux1作为DHCP服务器,一块网卡 ip 192.168.116.66
Linux2作为DHCP中继服务器,两块网卡 ,一个(ens32)是v8net ,一个是(ens34)是V2仅主机模式
实验过程如下
DHCP服务器配置不变
DHCP中继服务器配置如下
1、首先关闭防火墙,安全机制
iptables -F
systemctl stop firewalld
setenforce 0
2、编辑网卡设置
首先修改ens32,修改并添加以下内容
BOOTPROTO=dhcp
ONBOOT=yes
IPADDR=192.168.116.68
NETMASK=255.255.255.0
保存退出
重启网络服务
systemctl restart network
ping 192.168.116.66 //检测一下Linux2 主机与 Linux1主机是否通信
接着修改Linux2主机的另一块网卡 新添加的网卡,网卡配置文件是没有东西的,
但是我们可以将ens32 文件的内容复制给ens34
输入 cp /etc/sysconfig/network-scripts/ifcfg-ens32 /etc/sysconfig/network-scripts/ifcfg-ens34
接着修改 /etc/sysconfig/network-scripts/ifcfg-ens34 配置文件的内容
BOOTPROTO=static
NAME=ens34
DEVICE=ens34
IPADDR=192.168.100.68
NETMASK=255.255.255.0
保存退出
重启网卡
systemctl restart network
由于配了两块网卡,Linux2主机有可能会造成混乱的情况,所以,我们可以用一台win测试机,
把网络适配器中的ipv4 设定一下IP地址
即手动添加192.168.100.10 子网掩码255.255.255.0
然后用Linux2 DHCP中继服务器ping IP ,测试网络连通性
输入ping 192.168.116.66 //测试跟Linux1DHCP服务器的连通性
输入ping 192.168.100.10 //测试跟win测试机的连通性(稍等一会可能连接会慢) 全部连通才可以
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!!接着对Linux1DHCP服务器进行调整!!!
Linux1 Linux2
DHCP服务器 =============》》》 DHCP中继服务器
192.168.116.66 网卡1 :192.168.116.68 网卡2:192.168.100.68
|| ||
|| ||
^ ^
测试机1 测试机2
192.168.116.110 192.168.100.90
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
DHCP服务器配置修改:
首先修改网卡配置,将网关指向DHCP中继服务器同网络的IP地址(同网段的IP)
输入 vim /etc/sysconfig/network-scripts/ifcfg-ens32
GATEWAY=192.168.116.68 //指向DHCP中继服务器同网段的IP
保存退出
重启网卡
systemctl restart network
route -n //查看路由信息看Gateway是否生效
接着修改 dhcp配置文件,添加网段信息,其中 "host {} " 可以去掉,它只是用来绑定主机的固定IP用的。
输入 vim /etc/dhcp/dhcpd.conf
在原有的基础上添加
subnet 192.168.100.0 netmask 255.255.255.0 {
range 192.168.100.50 192.168.100.200;
option routers 192.168.100.1;
}
保存退出 【:.,$ s/192.168.116/192.168.100/g】这个用于替换操作
systemctl restart dhcpd
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
DHCP中继服务器配置修改:
输入 vim /etc/sysconfig/network-scripts/ifcfg-ens32
GATEWAY=192.168.116.68 //指向DHCP中继服务器同网段的IP
保存退出
重启网卡
systemctl restart network
route -n //查看路由信息看Gateway是否生效
接着修改 dhcp配置文件,添加网段信息,其中 "host {} " 可以去掉,它只是用来绑定主机的固定IP用的。
输入 vim /etc/dhcp/dhcpd.conf
在原有的基础上添加
subnet 192.168.100.0 netmask 255.255.255.0 {
range 192.168.100.50 192.168.100.200;
option routers 192.168.100.1;
}
保存退出 【:.,$ s/192.168.116/192.168.100/g】这个用于替换操作
systemctl restart dhcpd
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
DHCP中继服务器配置修改:
首先挂载光盘,安装dhcp软件包
mkdir /media/cdrom
mount /dev/cdrom /media/cdrom
rpm -ivh /media/cdrom/Packages/dhcp-4.2.5-36.e17.centos.x86_64.rpm
rpm -ql dhcp //查询软件包安装时所产生的东西 //重点是产生/usr/sbin/dhcrelay 这个命令
接着打开DHCP中继服务器路由转发功能
输入 vim /etc/sysctl.conf //修改这个文件 添加以下内容
net.ipv4.ip_forward =1
输入 sysctl -p //生效文件内容
开启DHCP中继服务
输入 dhcrelay 192.168.116.66
输入 netstat -lnup | grep :67 //检查端口信息
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~·~
客户机测试
将客户机的网络适配器终中的IP地址都改为自动获取模式
一台客户机模式修改为V8 net模式 可以获取到116网段的IP
一台客户机模式修改为V2 仅主机模式,可以获取到100网段的IP
mkdir /media/cdrom
mount /dev/cdrom /media/cdrom
rpm -ivh /media/cdrom/Packages/dhcp-4.2.5-36.e17.centos.x86_64.rpm
rpm -ql dhcp //查询软件包安装时所产生的东西 //重点是产生/usr/sbin/dhcrelay 这个命令
接着打开DHCP中继服务器路由转发功能
输入 vim /etc/sysctl.conf //修改这个文件 添加以下内容
net.ipv4.ip_forward =1
输入 sysctl -p //生效文件内容
开启DHCP中继服务
输入 dhcrelay 192.168.116.66
输入 netstat -lnup | grep :67 //检查端口信息
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~·~
客户机测试
将客户机的网络适配器终中的IP地址都改为自动获取模式
一台客户机模式修改为V8 net模式 可以获取到116网段的IP
一台客户机模式修改为V2 仅主机模式,可以获取到100网段的IP