Part.6_DHCP

1、DHCP简介__动态主机配置协议

DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个工作在应用层的局域网网络协议,数据传输时使用 UDP不可靠传输协议工作,通常被应用在大型的局域网络环境中,
主要作用是集中的管理、分配网络资源
使网络环境中的主机能动态的获得 IP 地址、Gateway 地址、DNS 服务器地址等信息,并能够提升地址的使用率。

2、DHCP工作原理

租约四部曲+续租
DHCP Discover
在这里插入图片描述

1DHCP Discover	
Client	向局域网内广播DHCP请求
2DHCP Offer
Server	DHCP服务器接收到请求,回复一个offer包
3DHCP Request
Client	request 确认用的DHCP和确认不用的DHCP
4DHCP ACKNAK)
Server	确认彼此之间协议 (ACK确认)(NAK否认)

2.1DHCP客户端进行IP请求——DHCP Discover

当一个 DHCP 客户机启动时,会自动将自己的 IP 地址配置成 0.0.0.0,由于使用0.0.0.0 不能进行正常通信,
所以客户机就必须通过 DHCP 服务器来获取一个合法的地址。
由于客户机不知道 DHCP 服务器的IP地址,
源地址: 0.0.0.0 目标地址:255.255.255.255
目的端口: UDP67
广播: 请求 IP 地址信息。
广播信息DHCP Discover 包含: DHCP 客户机的MAC地址和计算机名

2.2DHCP服务器相应请求——DHCP Offer

当DHCP服务器接收到客户机请求IP地址的信息时,
它就在自己的IP地址池中查找是否有合法的IP地址提供给客户机。如果有,DHCP服务器就将此IP地址做上标记,加入到DHCP OFFER的消息中,然后DHCP服务器就广播一则包括下列信息的
DHCP OFFER消息: DHCP客户机的MAC地址、DHCP服务器提供的合法IP地址、子网掩码、默认网关(路由)、租约的期限、DHCP服务器的IP地址-MAC。
源地址: DHCP服务器自己的IP地址
目标地址: 255.255.255.255(广播)
源端口: UDP 68端口
因为DHCP客户机还没有IP地址,广播DHCP OFFER信息

2.3DHCP客户机选择IP——DHCP Request

DHCP客户机从接收到的第一个DHCP OFFER消息中选择IP地址,发出IP地址的DHCP服务器将该地址保留,这样该地
址就不能提供给另一个DHCP客户机。当客户机从第一个DHCP服务器接收DHCP OFFER并选择IP地址后,DHCP租约的第三
过程发生。客户机将DHCP REQUEST消息广播到所有的DHCP服务器,表明它接受提供的内容。DHCP REQUEST消息包括为
该客户机提供IP配置的服务器的服务标识符(IP地址)。DHCP服务器查看服务器标识符字段,以确定它自己是否被选
择为指定的客户机提供IP地址,如果那些DHCP OFFER被拒绝,则DHCP服务器会取消提供并保留其IP地址以用于下一个
IP租约请求。
在客户机选择IP的过程中,虽然客户机选择了IP地址,但是还没有配置IP地址,而在一个网络中可能有几个DHCP
服务器,所以客户机仍然使用0.0.0.0的地址作为源地址,使用255.255.255.255作为目标地址,使用UDP 67端口作为
目的端口来广播DHCP REQUEST信息

2.4DHCP服务器确认租约——DHCP ACK

服务器确认租约:DHCP ACK
DHCP服务器接收到DHCP REQUEST消息后,以DHCPACK消息的形式向客户机广播成功的确认,该消息包含有IP地址
的有效租约和其他可能配置的信息。虽然服务器确认了客户机的租约请求,但是客户机还没有收到服务器的DHCPACK
消息,所以服务器仍然使用自己的IP地址作为源地址,使用255.255.255.255作为目标地址,使用UDP 68端口作为源
端口来广播DHCP ACK信息。当客户机收到DHCP ACK消息时,它就配置了IP地址,完成了TCP/IP的初始化。
服务器拒绝租约:DHCP NACK(DHCP NAK)
如果DHCP REQUEST不成功,例如客户机试图租约先前的IP地址,但该IP地址不再可用,或者因为客户机移到其他
子网,该IP无效时,DHCP服务器将广播否定确认消息DHCP NACK。当客户机接收到不成功的确认时,它将重新开始DHCP
租约过程。

注1:如果DHCP客户机无法找到DHCP服务器,它将从TCP/IP的B类网段169.254.0.0/16中挑选一个IP地址作为自己
的IP地址,继续每隔5分钟尝试与DHCP服务器进行通讯,一旦与DHCP服务器取得联系,则客户机放弃自动配置的IP地址,
而使用DHCP服务器分配的IP地址。
注2:DHCP客户机收到DHCP服务器回应的ACK报文后,通过地址冲突检测(arp)发现服务器分配的地址冲突或者
由于其他原因导致不能使用,则发送DECLINE报文,通知服务器所分配的IP地址不可用。

2.5DHCP客户机续租

请添加图片描述

DHCP客户机会在租期过去50%的时候,直接向为其提供IP地址的DHCP服务器发送DHCP REQUEST消息包。如果客户机接收到该服务器回应的DHCP ACK消息包,客户机就根据包中所提供的新的租期以及其它已经更新的TCP/IP参数,更新自己的配置,IP租用更新完成。如果没有收到该服务器的回复,则客户机继续使用现有的IP地址,因为当前租期还有50%。如果在租期过去50%的时候没有更新,则DHCP客户机将在租期过去87.5%的时候再次向为其提供IP地址的DHCP服务器联系。如果还不成功,到租约的100%时候,DHCP客户机必须放弃这个IP地址,重新申请。如果此时无DHCP服务器可用,DHCP客户机会使用169.254.0.0/16中随机的一个地址,并且每隔5分钟再进行尝试

1、DHCP客户机——租期过去50%——向DHCP服务器——发送DHCP REQUEST消息包
2.1、客户机——接收到——服务器回应DHCP ACK消息包——客户机更新(就根据包中所提供的新的租期以及其它已经更新的TCP/IP参数,更新自己的配置,IP租用更新完成。)
2.2、
客户机——没收到——服务器回复——客户机继续使用现有的IP地址
客户机租期87.5%——再次向DHCP服务器联系——租约100%还不成功——DHCP客户机放弃这个IP地址——重新申请。
如果此时无DHCP服务器可用,DHCP客户机会使用169.254.0.0/16中随机的一个地址,并且每隔5分钟再进行尝试

3、DHCP服务搭建

3.1主备实验环境

两台机器,网络连接模式设为自定义VMnet*模式

防护的关闭: 
1. iptables -L   	//防火墙 
2. getenforce   	//SELinux 
3. 关闭 Vmware 虚拟网络编辑器的DHCP功能,切记 

3.2DHCP相关信息

软件名: 
dhcp     		//DHCP服务软件包
dhcp-common     //DHCP命令软件包(默认已安装) 
服务名: 
dhcpd     	 	//DHCP服务名
dhcrelay  		//DHCP中继服务名
端口号: 
udp 67     		//作为客户端的目标端口(监听),接收客户端的请求DHCP请求
udp 68     		//作为服务器的源端口,用来向客户端回复数据包
配置文件: 
dhcpd 				/etc/dhcp/dhcpd.conf         		
//此配置文件默认是空的,需要找模板文件重新生成 
dhcpd.conf.sample 	/usr/share/doc/dhcp-4.*.*/dhcpd.conf.sample        
//DHCP的模板配置文件
dhcrelay	 		/etc/sysconfig/dhcrelay         
//该文件时中继配置文件,中继实验中用到

3.3DHCP配置文件详解

全局配置
局部配置(subnet)

subnet 192.168.88.0 netmask 255.255.255.0	//声明要分配的网段和子网掩码
{     
range 192.168.88.3 192.168.88.254//声明可用 IP 地址池
option domain-name "atguigu.com" ; 			//设置 DNS 域
option domain-name-servers 8.8.8.8 ; 		//设置 DNS 服务器地址
option routers 192.168.88.2//默认网关的地址
option broadcast-address 192.168.88.255//广播地址(可不写)
default-lease-time 600//默认租约(s)
max-lease-time 7200//最大租约(s) 

4、DHCP 实验部署

4.1DHCP基本功能实验

4.1.1前期准备

实验前准备
1、网络配置文件
2、网络防护

1、防火墙 
|iptables	-l
|service iptables status
|chkconfig	--list	iptables
2SE Linux
getenforce

3、yum 源

yun -y install dhcp

4.1.2生成配置文件

|cp -a /usr/share/doc/dhcp-4.*.*/dhcpd.conf.sample /etc/dhcp/dhcpd.conf

4.1.3修改配置文件

将配置文件的前几个subnet声明注释掉。修改最后一个subnet声明
注意配置文件中每行结尾的分号和结束大括号
subnet 192.168.88.0 netmask 255.255.255.0

range 192.168.88.3 192.168.88.254;
option domain-name “atguigu.com” ;
option domain-name-servers 8.8.8.8 ;
option routers 192.168.88.2;
option broadcast-address 192.168.88.255;
default-lease-time 600;
max-lease-time 7200;

4.1.4重启服务

|service dhcpd start
|netstat 	-antp	//查看tcp协议
|netstat	-tlun	//查看udp协议

4.1.5重启客户机的网卡

|service network restart	//慎用,会重启所有网卡
指定网卡设备停止或使用	ifdown ifup
ifdown eth0;ifup eth0	//重启

4.2保留地址(固定地址分配)

4.2.1获取客户端的mac地址

arp -a #查看客户机的mac地址

4.2.2修改/etc/dhcp/dhcpd.conf文件

host fantasia{
hardware ethernet mac地址;  	//客户机的mac地址
fixed-address IP地址; 			//固定分配给客户机的ip地址(可以使用地址池以外的IP) 

4.2.3重启DHCP服务

service dhcpd restart

4.2.4重启客户机网卡验证IP获取是否成功

ifdown eth0;ifup eth0

4.3超级作用域(同一局域网)

DHCP服务器可为单个物理网络上的客户端提供多个作用域租约地址请添加图片描述
三台虚拟机同一网络模式,一个DHCP服务器,两个客户机
单边路由,同一个物理网卡,两个IP地址
实验步骤

1. 设置DHCP服务器的单臂路由所需子网卡:
cp -a ifcfg-eth0 ifcfg-eth0:0 
#编辑此文件,修改网卡名和IP地址即可
2. 开启路由转发:
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1 
此选项修改为1即可
sysctl -p 
刷新内核参数配置文件
3. 修改/etc/dhcp/dhcpd.conf文件
之前的网段声明和主机声明全都注释掉!
shared-network public 
{
subnet 192.168.88.0 netmask 255.255.255.0
	{
	option routers 192.168.88.10;
	range 192.168.88.100 192.168.88.100;
	}
subnet 192.168.99.0 netmask 255.255.255.0
	{
	option routers 192.168.99.10;
	range 192.168.99.100 192.168.99.110;
	}
} 
剩余内容注释掉或删除掉,切记别落下括号
4. 重启DHCP服务
service dhcpd restart
5. 分别重启两台机器的网卡,查看获取的地址
ifdown eth0;ifup eth0

4.4 DHCP中继

DHCP Relay(DHCPR)DHCP中继是一个小程序,可以实现在不同子网和物理网段之间处理和转发dhcp信息的功能。

请添加图片描述
实验环境准备

DHCP服务器:
eth0(192.168.10.10) VMnet10
DHCP中继:
eth0(192.168.10.20) VMnet10
eth1(100.100.100.20) VMnet11
外网客户机:
eth0(IP地址自动获取) VMnet11
注:关闭所有防护:iptables、SELinux 

配置DHCP服务器

1. 软件安装:
yum -y install dhcp
2. 修改/etc/dhcp/dhcpd.conf文件: 
#声明两个subnet,其他无关可以不做操作或删除
subnet 192.168.10.0 netmask 255.255.255.0 {         #实验中并未用到该地址池分配IP
range 192.168.10.100 192.168.10.110;
option routers 192.168.10.20; 
}
subnet 100.100.100.0 netmask 255.255.255.0 {
range 100.100.100.100 100.100.100.110;
option routers 100.100.100.20;
}
3. 重启dhcpd服务:
service dhcpd start
4. 指定网关:
只能中继器的内网IP为网关地址

配置DHCP中继服务器

1. 网卡配置
一块网卡ip=192.168.10.20
一块网卡ip=100.100.100.20
2. 软件安装
yum -y install dhcp
3. 修改中继配置文件
vim /etc/sysconfig/dhcrelay文件
INTERFACES=“eth0 eth1” 
DHCPSERVERS=192.168.10.10
4. 开启路由转发
vim /etc/sysctl.conf文件。
netipv4.ip_forward = 1
sysctl -p
5. 重启中继服务
service dhcrelay start
测试外网主机 
重启网卡 ifdown ifup ifconfig
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
搭建PXE服务器可以让您轻松地通过网络启动和安装操作系统。以下是在中标麒麟7.4 x86_64上搭建PXE服务器的具体步骤: 1. 安装TFTP服务器 在终端中执行以下命令安装TFTP服务器: ``` sudo apt-get update sudo apt-get install tftpd-hpa ``` 2. 配置TFTP服务器 编辑TFTP服务器的配置文件,执行以下命令: ``` sudo vi /etc/default/tftpd-hpa ``` 在文件中添加以下行: ``` TFTP_USERNAME="tftp" TFTP_DIRECTORY="/srv/tftp" TFTP_ADDRESS="0.0.0.0:69" TFTP_OPTIONS="--secure" ``` 保存并关闭文件。 3. 创建PXE启动文件夹 执行以下命令创建PXE启动文件夹: ``` sudo mkdir /srv/tftp sudo mkdir /srv/tftp/pxelinux.cfg ``` 4. 下载PXE启动文件 在PXE启动文件夹中下载PXE启动文件,执行以下命令: ``` sudo wget http://archive.ubuntu.com/ubuntu/dists/bionic-updates/main/installer-amd64/current/images/netboot/ubuntu-installer/amd64/boot-screens/ldlinux.c32 -O /srv/tftp/ldlinux.c32 sudo wget http://archive.ubuntu.com/ubuntu/dists/bionic-updates/main/installer-amd64/current/images/netboot/ubuntu-installer/amd64/boot-screens/menu.c32 -O /srv/tftp/menu.c32 sudo wget http://archive.ubuntu.com/ubuntu/dists/bionic-updates/main/installer-amd64/current/images/netboot/ubuntu-installer/amd64/boot-screens/vesamenu.c32 -O /srv/tftp/vesamenu.c32 sudo wget http://archive.ubuntu.com/ubuntu/dists/bionic-updates/main/installer-amd64/current/images/netboot/ubuntu-installer/amd64/boot-screens/splash.png -O /srv/tftp/splash.png ``` 5. 下载中标麒麟7.4 x86_64镜像文件 将中标麒麟7.4 x86_64镜像文件下载到PXE启动文件夹中,执行以下命令: ``` sudo wget http://mirrors.ustc.edu.cn/kylin/iso/7.4/kylin-7.4-server-x86_64.iso -O /srv/tftp/kylin-7.4-server-x86_64.iso ``` 6. 配置PXE启动菜单 在PXE启动文件夹的pxelinux.cfg文件夹中创建一个名为default的文件,并编辑该文件,执行以下命令: ``` sudo vi /srv/tftp/pxelinux.cfg/default ``` 添加以下内容: ``` default menu.c32 prompt 0 timeout 100 menu title PXE Menu label Install Kylin 7.4 x86_64 menu label ^Install Kylin 7.4 x86_64 kernel ubuntu-installer/amd64/linux append vga=788 initrd=ubuntu-installer/amd64/initrd.gz ksdevice=bootif ks=http://10.0.0.2/ks.cfg --- quiet ``` 保存并关闭文件。 7. 创建Kickstart文件 创建一个Kickstart文件,用于安装中标麒麟7.4 x86_64。在PXE启动文件夹中创建一个名为ks.cfg的文件,并编辑该文件,执行以下命令: ``` sudo vi /srv/tftp/ks.cfg ``` 添加以下内容: ``` #platform=x86, AMD64, or Intel EM64T #version=DEVEL # Firewall configuration firewall --disabled # Install OS instead of upgrade install # Use CDROM installation media cdrom # Root password rootpw --iscrypted $6$5UaKbcVnDZzZv4n2$HjCJYMKY2KQmVgFJ5jzL7tWVHb1M6d3VZJ7cF2H4m8aBqP7zTt0t8y6/9Y3QdReS4xGk5CmJkGQm4Q5XWvGox0 # Network information network --bootproto=dhcp --device=eth0 --onboot=on # System timezone timezone Asia/Shanghai --isUtc # System language lang en_US # Installation logging level logging --level=info # System bootloader configuration bootloader --location=mbr # Clear the Master Boot Record zerombr yes # Partition clearing information clearpart --all --initlabel # Disk partitioning information part /boot --fstype=ext4 --size=1024 part pv.01 --size=1 --grow volgroup vg01 pv.01 logvol / --fstype=ext4 --name=lv_root --vgname=vg01 --size=1 --grow # System authorization infomation auth --useshadow --enablemd5 # Graphical installation graphical # Packages to install %packages @^server-product-environment @^basic-desktop-environment wget net-tools openssh-server %end # Post-installation script %post # Add user useradd -m -d /home/test -s /bin/bash test # Set password echo "test:123456" | chpasswd # Enable ssh systemctl enable sshd %end ``` 保存并关闭文件。 8. 启动PXE服务器 启动TFTP服务器并开启PXE,执行以下命令: ``` sudo systemctl start tftpd-hpa sudo systemctl enable tftpd-hpa sudo systemctl restart dhcpd ``` 现在,您已经成功地在中标麒麟7.4 x86_64上搭建了PXE服务器。现在,您可以使用网络启动和安装操作系统。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值