dhcp report finished

This commit is contained in:
2025-10-25 21:53:18 +08:00
parent 3a2b47721c
commit 0b8c75e521
37 changed files with 98 additions and 65 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 103 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 204 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 75 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 90 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 75 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

0
ne_dhcp/IMG_20251010_102423.jpg → 7_dhcp/back.jpg Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 3.7 MiB

After

Width:  |  Height:  |  Size: 3.7 MiB

Binary file not shown.

View File

@ -54,6 +54,7 @@
=== DHCP工作原理
#para[
假定DHCP 客户端进程监听的是 68 端口号DHCP 服务端进程监听的是 67 端口号主机通过下面介绍的4个步骤来获取到IP。
]
#figure(image("DHCP.jpg",format:"png",width: 44%),caption:"DHCP工作原理")
+ *DHCP发现*
客户端首先发起 DHCP 发现报文DHCP DISCOVER IP 数据报,由于客户端没有 IP 地址,也不知道 DHCP 服务器的地址,所以使用的是 UDP 广播通信,其使用的广播目的地址是 255.255.255.255(端口 67并且使用 0.0.0.0(端口 68作为源 IP 地址。DHCP 客户端将该 IP 数据报传递给链路层,链路层然后将帧广播到所有的网络中设备。
@ -65,23 +66,24 @@
客户端收到一个或多个服务器的 DHCP 提供报文后,从中选择一个服务器,并向选中的服务器发送 DHCP 请求报文DHCP REQUEST进行响应回显配置的参数。
+ *DHCP确认*
最后,服务端用 DHCP ACK 报文对 DHCP 请求报文进行响应,应答所要求的参数。一旦客户端收到 DHCP ACK 后,交互便完成了,并且客户端能够在租用期内使用 DHCP 服务器分配的 IP 地址。
]
=== DHCP续约
#para[
在租用期内,客户端可以选择续约,即向 DHCP 服务器发送 DHCP REQUEST 报文,以延长租用期:
]
- 服务器如果同意继续租用,则用 DHCP ACK 报文进行应答,客户端就会延长租期。
- 服务器如果不同意继续租用,则用 DHCP NACK 报文,客户端就要停止使用租约的 IP 地址。
]
=== DHCP中继代理
#para[
DHCP 交互中,全程都是使用 UDP 广播通信。如果 DHCP 服务器和客户端不在同一个局域网内,加之路由器不会转发广播包,那么每个网络都需要配置一个 DHCP 服务器。为了解决这一问题,引入了 DHCP 中继代理。有了 DHCP 中继代理以后,对不同网段的 IP 地址分配也可以由一个 DHCP 服务器统一进行管理。如@dhcp_relay 所示:
#figure(image("DHCP_relay.png",format:"png",width: 52%),caption:"DHCP中继代理工作原理")<dhcp_relay>
]
#figure(image("DHCP_relay.png",format:"png",width: 48%),caption:"DHCP中继代理工作原理")<dhcp_relay>
- DHCP 客户端会向 DHCP 中继代理发送 DHCP 请求包,而 DHCP 中继代理在收到这个广播包以后,再以单播的形式发给 DHCP 服务器。
- 服务器端收到该包以后再向 DHCP 中继代理返回应答,并由 DHCP 中继代理将此包广播给 DHCP 客户端。
#para[
因此DHCP 服务器即使不在同一个链路上也可以实现统一分配和管理 IP 地址。
]
== DNS
#para[
DNS即域名系统Domain Name System是互联网中的一种命名系统用于将域名与IP地址相互映射。在互联网中每个主机都有一个唯一的IP地址但是IP地址不便于人们记忆因此需要一个更易记的域名来代替。DNS系统通过将域名映射到IP地址实现了域名与IP地址之间的转换使得用户可以通过域名访问互联网上的各种服务。
@ -89,20 +91,23 @@
=== 域名的层级关系
#para[
在DNS系统中域名采用句点.进行分隔例如www.server.com句点用于标识不同层级之间的界限。域名的层级结构从右至左依次递增右侧的层级高于左侧。这种命名方式源于域名的发明者为外国人其思维方式与中国人有所不同。在描述地理位置时外国人习惯从小范围到大范围依次描述如XX街道 XX区 XX市 XX省而中国人则倾向于从大范围到小范围如XX省 XX市 XX区 XX街道
]
#para[
在域名体系中根域位于最顶层其下为顶级域如com再往下为二级域如server.com。这种层级关系类似于树状结构具体表现为
#figure(image("DNS_hierarchy.png",format:"png",width: 50%),caption:"域名的层级关系")<dns_hierarchy>
]
#figure(image("DNS_hierarchy.png",format:"png",width: 62%),caption:"域名的层级关系")<dns_hierarchy>
- 根DNS服务器
- 顶级域DNS服务器如com
- 权威DNS服务器如server.com
#para[
根域的DNS服务器信息被存储在互联网中的所有DNS服务器中。这一机制确保了任何DNS服务器都能够定位并访问根域DNS服务器。因此客户端只需能够连接到任意一台DNS服务器即可通过该服务器找到根域DNS服务器并沿着层级结构逐步查询最终定位到目标DNS服务器。
]
=== 域名解析的工作流程
#para[
浏览器在进行域名解析时首先会检查自身的缓存若未找到对应的IP地址则会查询操作系统的缓存。如果仍未找到浏览器会进一步检查本机的hosts文件。若在这些地方均未找到目标域名的IP地址浏览器将向本地DNS服务器发起查询请求。查询过程如下
]
#figure(image("DNS_resolution.png",format:"png",width: 100%),caption:"域名解析的工作流程")<dns_resolution>
1. 客户端首先发送一个DNS请求询问www.server.com的IP地址并将请求发送至本地DNS服务器即客户端TCP/IP设置中指定的DNS服务器地址。本地DNS服务器接收到请求后会先在其缓存中查找是否存在www.server.com的记录。若缓存中存在该记录则直接返回对应的IP地址若不存在本地DNS服务器将向根域名服务器发起查询。
@ -114,16 +119,15 @@
5. 最后本地DNS服务器将查询到的IP地址返回给客户端客户端据此与目标服务器建立连接。
#para[
整个DNS域名解析过程类似于日常生活中向他人问路的过程通过层层指引最终找到目标地址。
]
= 实验环境
== 实验背景
#para[
网工系的学生正在学习DHCP与DNS技术需要通过实验验证DHCP服务器的配置和工作原理以及DNS服务器的配置和域名解析过程。为此需要搭建一个简单的网络拓扑包括两台路由器和两台PC通过配置DHCP服务器和DNS服务器实现客户端自动获取IP地址和域名解析的功能
本实验将路由器 R1 模拟成公司 DHCP Server配置全局地址池该公司市场部和财务部下的 PC 通过 DHCP 的方式自动配置 IP 地址
]
== 实验设备
#para[
#align(center)[#table(
columns: (auto, auto,auto),
rows:(1.5em,1.5em,2.8em),
@ -132,95 +136,124 @@
table.header(
[*设备名称*], [*设备型号*], [*设备数量*]
),
"路由器", "华为AR6120-S", "2",
"路由器", "华为AR6120-S", "1",
"交换机", "华为S5735", "2",
"PC", "联想启天M410\nWindows 10", "2",
)]
]
= 实验步骤及结果
== 实验拓扑
#para[
按实验背景,绘制拓扑图如下:
#figure(image("实验拓扑.png",format: "png",fit:"stretch",width: 44%),caption: "实验拓扑图")
]
#figure(image("拓扑图.png",format: "png",fit:"stretch",width: 64%),caption: "实验拓扑图")
== 按照拓扑图接线
#para[
按照拓扑图接线。
#figure(image("机柜背面连线.jpg",format: "jpg",fit:"stretch",width: 40%),caption: "机柜接线图")
]
#figure(image("front.jpg",format: "jpg",fit:"stretch",width: 40%),caption: "机柜正面接线图")
#figure(image("back.jpg",format: "jpg",fit:"stretch",width: 40%),caption: "机柜背面接线图")
== 配置基本网络
=== 配置PC
=== 启用DHCP
#para[
配置PC1、PC2为“自动获得IP地址”、“自动获得DNS服务器地址”。
首先在路由器开启DHCP功能
]
#figure(image("step1.jpg",format: "jpg",fit:"stretch",width: 40%),caption: "启用DHCP功能")
=== 配置路由器IP地址
#para[
按照拓扑图配置路由器的IP地址。
1. 配置AR2路由器
- 接口 `GE 0/0/0` 连接到 `AR3`IP地址为 `192.168.60.2`
- 接口 `GE 0/0/1` 连接到 `PC3`IP地址为 `192.168.30.2`
#figure(image("ar2ip.png",format: "png",fit:"stretch",width: 60%),caption: "配置AR2的IP地址")
]
#figure(image("step2.jpg",format: "jpg",fit:"stretch",width: 60%),caption: "配置路由器接口GE0/0/0和GE0/0/1的IP地址")
2. 配置AR3路由器
- 接口 `GE 0/0/0` 连接到 `AR2`IP地址为 `192.168.30.2/24`
- 接口 `GE 0/0/1` 连接到 `PC1`IP地址为 `192.168.3.1/24`
- 接口 `GE 0/0/2` 连接到 `PC2`IP地址为 `192.168.2.1/24`
#figure(table(
columns: (auto),
rows:(auto,auto,auto),
inset: 10pt,
align: horizon+center,
figure(image("ar3ip1.png",format: "png",fit:"stretch",width: 80%),),
figure(image("ar3ip2.png",format: "png",fit:"stretch",width: 80%),),
figure(image("ar3ip3.png",format: "png",fit:"stretch",width: 80%),),
stroke: none,
),caption: "配置AR3的IP地址",kind: image)
]
=== 配置RIP协议使互通
=== 配置市场部和财务部的地址池
#para[
本次实验使用RIP协议配置路由器使得各个网络互通
#figure(image("ar2rip.png",format: "png",fit:"stretch",width: 40%),caption: "在AR2上配置RIP协议")
#figure(image("ar3rip.png",format: "png",fit:"stretch",width: 40%),caption: "在AR3上配置RIP协议")
先创建地址池
]
== 配置DHCP服务器
#figure(image("step3.jpg",format: "jpg",fit:"stretch",width: 70%),caption: "创建市场部地址池 (huawei)")
#figure(image("step4.jpg",format: "jpg",fit:"stretch",width: 70%),caption: "创建财务部地址池 (huawei2)")
== 配置地址池
#para[
配置AR2为DHCP服务器。首先使能DHCP服务并创建地址
#figure(image("ar2enable.png",format: "png",fit:"stretch",width: 55%),caption: "使能DHCP服务并创建地址池")
然后配置DHCP服务器的参数网关、DNS服务器等。
#figure(image("ar2dhcpcfg.png",format: "png",fit:"stretch",width: 70%),caption: "配置DHCP服务器的参数")
给第二个网段创建地址池,并配置参数:
#figure(image("ar2dhcpcfg2.png",format: "png",fit:"stretch",width: 70%),caption: "配置另一个网段的参数")
配置地址池的可分配网段租期网关及DNS服务器地址:
]
== 配置DHCP中继
#figure(image("step5.jpg",format: "jpg",fit:"stretch",width: 70%),caption: "配置财务部地址池 (huawei)")
#figure(image("step4.jpg",format: "jpg",fit:"stretch",width: 70%),caption: "配置市场部地址池 (huawei2)")
#figure(image("step7.jpg",format: "jpg",fit:"stretch",width: 70%),caption: "配置保留地址 (huawei)")
== 在接口下启用DHCP功能
#para[
配置AR3为DHCP中继代理将DHCP请求转发到DHCP服务器。为此进入两个与PC相连的接口配置中继模式和DHCP服务器地址
#figure(image("ar3relay.png",format: "png",fit:"stretch",width: 53%),caption: "配置DHCP中继代理")
#figure(image("ar3relay2.png",format: "png",fit:"stretch",width: 53%),caption: "在另一个接口配置DHCP中继代理")
配置市场部和财务部接口使用全局地址池模式
]
#figure(image("step8.jpg",format: "jpg",fit:"stretch",width: 70%),caption: "使用全局地址池模式")
== 验证DHCP服务器配置
#para[
在PC1、PC2上查看IP地址、网关、DNS服务器等信息验证DHCP服务器配置是否生效。
#figure(image("2ip.png",format: "png",fit:"stretch",width: 70%),caption: "PC1的IP地址信息")<pc1ip>
#figure(image("3ip.png",format: "png",fit:"stretch",width: 70%),caption: "PC2的IP地址信息")<pc2ip>
#figure(image("2dns.png",format: "png",fit:"stretch",width: 70%),caption: "PC1的DNS服务器地址")
其中PC1的两张截图中先后IP地址不一致这是因为后来为验证DNS服务器是否分配补做了实验。图中显示PC1、PC2分别获取到了合法的IP地址、网关和DNS服务器地址。
#pagebreak()
在AR2上查看DHCP地址分配情况
#figure(image("disp2.png",format: "png",fit:"stretch",width: 70%),caption: "查看DHCP地址分配情况3.0网段)")
图中显示的已分配的IP地址`192.168.3.190`即是@pc1ip 中显示的PC1被分配到的IP地址。
#pagebreak()
另一个网段的也是如此:
#figure(image("disp1.png",format: "png",fit:"stretch",width: 70%),caption: "查看DHCP地址分配情况2.0网段)")
图中显示的已分配的IP地址`192.168.2.124`即是@pc2ip 中显示的PC2被分配到的IP地址。
以上结果表明DHCP服务器配置成功PC1、PC2能够自动获取合法的IP地址、网关和DNS服务器地址。
执行`display ip pool`命令,查看地址池配置情况:
]
#figure(image("step9.jpg",format: "jpg",fit:"stretch",width: 70%),caption: "查看地址池配置情况")
#para[
在台式机 (PC-1, PC-2) 上验证DHCP服务器配置是否成功注意确保 PC-1 连接在 S1 PC-2 连接在 S2 上。具体验证步骤如下:
]
1. 设置PC为自动获取IP地址
- 打开 “控制面板” \> “网络和共享中心” \> “更改适配器设置”。
- 右键点击你的有线网卡,选择 “属性”。
- 双击 “Internet 协议版本 4 (TCP/IPv4)”。
- 选择 “自动获得IP地址” “自动获得DNS服务器地址”然后点击“确定”。
2. 查看获取到的IP地址
- 在PC的命令提示符(CMD)中输入 `ipconfig /all`
- PC-1 (市场部) 应该获取到类似 `192.168.1.1` 的IP地址网关是 `192.168.1.254`DNS是 `8.8.8.8`
- PC-2 (财务部) 应该获取到类似 `192.168.2.1` 的IP地址网关是 `192.168.2.254`DNS是 `8.8.8.8`
3. 测试网络连通性:
- 在PC-1上 `ping 192.168.1.254` (ping自己的网关)。
- 在PC-2上 `ping 192.168.2.254` (ping自己的网关)。
- 都应该能ping通。
4. 释放和重新获取IP
- 在CMD中执行 `ipconfig /release` 来释放IP地址。
- 再执行 `ipconfig /renew` 来重新获取。
- 观察获取到的IP地址是否与之前相同或发生变化。通常情况下会优先获取到之前使用过的地址。
#figure(image("step10.jpg",format: "jpg",fit:"stretch",width: 70%),caption: "验证DHCP服务器配置生效(1)")
#figure(image("step11.jpg",format: "jpg",fit:"stretch",width: 70%),caption: "验证DHCP服务器配置生效(2)")
#figure(image("step12.jpg",format: "jpg",fit:"stretch",width: 70%),caption: "验证DHCP服务器配置生效(3)")
#para[
如上图所示DHCP服务正常工作。至此DHCP服务器配置完成PC能够成功通过DHCP获取IP地址。
]
= 思考题
#para[
DHCP服务器在分配地址时是从该网段中最小的地址还是最大地址进行分配这样做的好处是什么
]
分配顺序: 华为设备和其他大多数网络设备一样,默认情况下是\\从网段中可用的最小地址开始(正序)\\进行分配。例如,在`192.168.1.0/24`网段,它会从`192.168.1.1`开始依次分配。
好处:
1. 可预测性: 使得IP地址的分配非常有规律管理员可以很容易地预测新加入网络的设备会获得哪个范围的IP地址便于网络管理和故障排查。
2. 简化管理: 网络管理员通常会将网段中靠前或靠后的IP地址保留用于静态分配给服务器、打印机、网关等重要设备。从最小地址开始分配可以清晰地将动态和静态地址区域分开。
由于...客户端采用广播方式发送请求...因此DHCP只适用于客户端和服务器处于同一个网段内的情况。当多个网段都需要进行动态IP地址分配时就需要...都设置一个DHCP服务器这种情况下该如何配置
这个问题实际上引出了一个比“在每个网段都部署服务器”更优的解决方案DHCP中继DHCP Relay
虽然可以在每个网段都部署一台DHCP服务器但这会导致管理复杂且成本高昂。一个更好的方法是
1. 集中部署DHCP服务器: 在网络中只部署一台或为了冗余部署两台功能强大的DHCP服务器并在上面配置好所有网段的地址池。
2. 在网关上配置DHCP中继: 在每个客户端所在网段的网关通常是路由器或三层交换机接口上配置DHCP中继功能。
3. 工作原理:
客户端在本网段发送DHCP请求的广播报文。
网关接口DHCP中继代理收到这个广播报文后会将其转换成单播报文。
中继代理将这个单播报文发送给远端的、集中的DHCP服务器。报文中会包含中继代理自身的IP地址giaddr字段这样服务器就知道这个请求来自哪个网段。
DHCP服务器根据这个来源信息从对应的地址池中选择一个IP地址并将响应报文单播发回给中继代理。
中继代理再将响应报文(广播)转发给客户端。
配置方法: 在客户端所在网段的网关接口上,使用类似 `dhcp relay server-ip <DHCP服务器的IP地址>` 的命令来启用中继功能。这样,仅用一台服务器就能为所有网段提供服务,实现了集中管理,大大降低了维护成本。
#pagebreak()
= 实验总结
#para[
本次实验通过配置DHCP服务器和DNS服务器实现了客户端自动获取IP地址和域名解析的功能。在实验过程中我们了解了DHCP和DNS的工作原理掌握了DHCP服务器和DNS服务器的配置方法提升了网络管理的便捷性和安全性。
]
#pagebreak()
// #pagebreak()
#show heading: it => box(width: 100%)[
#v(0.50em)
#set text(font: hei)

0
ne_dhcp/IMG_20251010_102430.jpg → 7_dhcp/front.jpg Executable file → Normal file
View File

Before

Width:  |  Height:  |  Size: 4.6 MiB

After

Width:  |  Height:  |  Size: 4.6 MiB

View File

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 3.4 KiB

View File

Before

Width:  |  Height:  |  Size: 118 KiB

After

Width:  |  Height:  |  Size: 118 KiB

View File

Before

Width:  |  Height:  |  Size: 54 KiB

After

Width:  |  Height:  |  Size: 54 KiB

View File

Before

Width:  |  Height:  |  Size: 58 KiB

After

Width:  |  Height:  |  Size: 58 KiB

View File

Before

Width:  |  Height:  |  Size: 150 KiB

After

Width:  |  Height:  |  Size: 150 KiB

View File

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 17 KiB

View File

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 31 KiB

View File

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 20 KiB

View File

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 37 KiB

View File

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 22 KiB

View File

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 23 KiB

View File

Before

Width:  |  Height:  |  Size: 99 KiB

After

Width:  |  Height:  |  Size: 99 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

BIN
7_dhcp/拓扑图.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 247 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB