华北电力大学网络综合实验解析:VLAN单臂路由与OSPF多区域及NAPT配置
简介华北电力大学计算机网络综合实验报告与配套主要代码适合计算机网络课程设计、综合实验或网络工程实训的本科生参考使用。报告以互联网综合设计与网络协议分析为主线完整呈现VLAN划分与VLAN间通信、单臂路由与三层交换机路由、OSPF多区域划分与cost值调优、静态路由、RIP v2、静态NAT/动态NAT/地址复用、DHCP动态分配以及对TCP建立与释放报文的抓包分析等内容并涵盖ACL访问控制列表安全配置的选做方案。文档中对网络拓扑结构设计、设备接口IP规划、交换机与路由器的具体配置命令、数据帧格式分析均有详细说明可直接支撑实验报告撰写与配置复盘。资源以单份doc文档交付压缩包大小约21.91MB结构紧凑便于浏览。目前已有154人学习适合正在完成课程设计答辩或需要对照完整实验流程查漏补缺的同学。1. 这份华北电力大学网络实验报告从 VLAN 到 OSPF 再到 NAPT 的一条完整链路做网络方向的人看到「实验报告」四个字通常第一反应是模板和排版。但这份华北电力大学 2023-2024 学年第一学期的《计算机网络综合实验》报告实际价值在于它把企业组网里最常见的三件事——VLAN 间通信、OSPF 多区域、NAPT 地址复用——串成了一条可验证的链路而且每一步都给了能直接抄的交换机、路由器命令。报告里的拓扑用了 4 台主机、2 台二层交换机、4 台路由器规模不大但覆盖了单臂路由、OSPF 三区域、动态 NAT 和 Wireshark 抓包分析适合正在做课程设计的学生也适合想快速回顾设备配置要点的从业者。整份报告是 TXT 文本加代码块的形式配置命令可以直接复制到模拟器里跑不需要额外整理。2. VLAN 划分与单臂路由端口规划、trunk 中继与子接口调试2.1 拓扑与 IP 规划先把地址表列清楚再动设备这份实验的拓扑不复杂但 IP 规划容易看花眼。四台路由器分别是 RSR20-12-1、RSR20-12-2、RSR20-12-3、RSR20-12-4两台二层交换机是 S2628-12-1 和 S2628-12-2。三台 PC 挂在二层交换机下面PC123 单独挂在 RSR20-12-4 的 ge0/0 口上充当服务器角色。地址规划如下表设备接口IP 地址网关PC121实验网卡192.168.4.2 / 24192.168.4.1PC122实验网卡192.168.3.2 / 24192.168.3.1PC124实验网卡192.168.3.3 / 24192.168.3.1PC123实验网卡192.168.5.2 / 24192.168.5.1RSR20-12-3gi0/0.1VLAN10192.168.3.1 / 24—RSR20-12-3gi0/0.2VLAN20192.168.4.1 / 24—RSR20-12-3gi0/1192.168.10.2 / 24—RSR20-12-2ge0/0192.168.7.1 / 24—RSR20-12-2ge0/1192.168.10.1 / 24—RSR20-12-1ge0/0192.168.8.1 / 24—RSR20-12-1ge0/1192.168.7.2 / 24—RSR20-12-4ge0/0192.168.5.1 / 24—RSR20-12-4ge0/1192.168.8.2 / 24—注意 PC122 和 PC124 在同一个网段 192.168.3.0/24都在 VLAN10 里PC121 在 192.168.4.0/24属于 VLAN20。VLAN 间要通信必须经过路由器。这里用的是单臂路由方案所以 RSR20-12-3 的 gi0/0 被拆成了两个子接口分别封装 dot1q 10 和 dot1q 20。我拿到这拓扑的第一反应是PC123 为什么不一起挂交换机上后面看到 NAT 和抓包实验才明白PC123 单独接在 RSR20-12-4 上是为了模拟跨路由器访问服务器的场景NAT 转换和 Wireshark 抓包都需要这种跨设备流量。2.2 交换机 VLAN 配置与 trunk 中继先加 VLAN 再分端口VLAN 配置的关键是顺序先在交换机上创建 VLAN再把端口划进去最后配 trunk。报告里 S2628-12-2 的配置是这样的# 进入交换机全局配置模式后创建 VLAN 并命名 vlan 10 name work1 vlan 20 name work2 # 将 fa0/1 口设为 access 模式并划入 VLAN10 int fa0/1 switchport mode access switchport access vlan 10VLAN 命名不是必须的但建议写上。name 只是本地标识不影响数据转发。switchport mode access把端口强制设为接入模式switchport access vlan 10指定该端口属于哪个 VLAN。如果端口之前被配置过 trunk必须先切回 access 模式再划 VLAN否则会报错。S2628-12-1 上的操作类似但端口分配逻辑要看清fa0/2 给 VLAN20fa0/3 给 VLAN10。从拓扑上看PC121 连在 S2628-12-1 的 fa0/2 口上所以这个口划进 VLAN20PC122 和 PC124 连在 S2628-12-2 的 fa0/1 口上所以 fa0/1 划进 VLAN10。端口和物理设备的对应关系一定要对着拓扑图核对我见过不少人把端口划反结果两台 PC 明明在同一台交换机上却 ping 不通。2.3 trunk 配置与单臂路由子接口VLAN 间通信的最后一跳两台交换机之间要传递多个 VLAN 的数据必须配置 trunk。S2628-12-2 上要把连到 S2628-12-1 的端口设为 trunk# 在 S2628-12-2 上配置 trunk 端口 int fa0/2 switchport mode trunk int fa0/13 switchport mode trunk # 在 S2628-12-1 上配置 trunk 端口 int fa0/1 switchport mode trunktrunk 的作用是让 VLAN10 和 VLAN20 的帧都能跨交换机传输。默认情况下 trunk 允许所有 VLAN 通过不需要额外指定 vlan allowed list。如果实验环境里交换机支持 DTP两端都设置成 trunk 会更稳定只在一端配置有可能协商失败。配置完 trunk 后可以用show vlan brief检查 VLAN 和端口对应关系用show interfaces trunk检查中继状态。接下来是单臂路由。RSR20-12-3 的 gi0/0 口用来连接交换机子接口配置如下# 进入物理接口然后创建子接口 gi0/0.1 int gi0/0 int gi0/0.1 encapsulation dot1q 10 ip address 192.168.3.1 255.255.255.0 exit # 创建子接口 gi0/0.2 int gi0/0.2 encapsulation dot1q 20 ip address 192.168.4.1 255.255.255.0encapsulation dot1q 10是告诉路由器这个子接口接收带 VLAN10 标签的帧。ip address给子接口配上网关地址这个地址就是 VLAN10 内 PC 的默认网关。注意原报告里写的是192.168.3..1这是文档笔误实际配置应该是192.168.3.1。配置完子接口后PC122VLAN10ping PC121VLAN20数据包从 PC122 发出经交换机打上 VLAN10 标签送到路由器 gi0/0.1 子接口路由器再转发到 gi0/0.2 子接口换成 VLAN20 标签回给 PC121。这一步通了说明单臂路由链路完整。3. OSPF 三区域配置area0 必须在中间network 语句别把反掩码写错3.1 区域规划为什么 area0 是骨干错位会导致路由表缺项OSPF 实验的核心考核点是「划分不少于 3 个区域」。报告里把四个路由器组成的区域设计成了 area0RSR20-12-3 左侧区域为 area1RSR20-12-4 右侧区域为 area3。为什么 area0 必须放中间因为 OSPF 规定非骨干区域必须直接连接到骨干区域所有区域间通信都要经过 area0。如果像报告第一次实验那样把 area1 放中间两个非骨干区域隔着一个区域号为 1 的区域直连的邻居关系虽然能建立但路由信息在 LSA 传播时会被丢弃路由表自然就不全。拓扑里四个路由器之间的链路形成了 area0192.168.10.0/24RSR20-12-2 到 RSR20-12-3、192.168.7.0/24RSR20-12-1 到 RSR20-12-2、192.168.8.0/24RSR20-12-1 到 RSR20-12-4。左侧是 RSR20-12-3 的两个子接口网段 192.168.3.0/24 和 192.168.4.0/24划到 area1右侧是 RSR20-12-4 的 192.168.5.0/24划到 area3。整个自治系统一共 6 个网段每个路由器都应该在路由表里看到全部 6 个网段。如果某个网段缺失优先检查是不是区域划分错了。3.2 四台路由器的 OSPF 配置进程号、network 语句与通配符掩码OSPF 配置的核心是 network 语句格式是network 网段 通配符掩码 area 区域号。通配符掩码是子网掩码的反码255.255.255.0 对应 0.0.0.255。四台路由器配置如下# RSR20-12-3左侧接 VLAN10/VLAN20右侧接 area0 骨干 router ospf 10 network 192.168.3.0 0.0.0.255 area 1 network 192.168.4.0 0.0.0.255 area 1 network 192.168.10.0 0.0.0.255 area 0 # RSR20-12-2中间路由器全部接口属于 area0 router ospf 10 network 192.168.10.0 0.0.0.255 area 0 network 192.168.7.0 0.0.0.255 area 0 # RSR20-12-1中间路由器全部接口属于 area0 router ospf 10 network 192.168.7.0 0.0.0.255 area 0 network 192.168.8.0 0.0.0.255 area 0 # RSR20-12-4右侧路由器一个接口在 area0一个接口在 area3 router ospf 10 network 192.168.8.0 0.0.0.255 area 0 network 192.168.5.0 0.0.0.255 area 3router ospf 10中的 10 是进程号只在本地有意义四台路由器可以不同习惯上统一。network 语句里的网段要写接口所在的网络地址而不是接口 IP。比如 RSR20-12-3 的 gi0/0.1 地址是 192.168.3.1network 语句就要写 192.168.3.0 而不是 192.168.3.1。如果写成了主机地址通配符掩码也要改新手最容易在这里翻车。报告里给的代码在设备对应关系上有点乱RSR20-12-2 那段实际是 RSR20-12-3 的配置对照 IP 地址和区域划分就能看出来。我在标注设备时按拓扑和 IP 对应关系做了重排实际使用时建议每台设备配置前先show ip interface brief确认接口地址再写 network 语句。3.3 验证路由表和链路状态数据库6 个网段缺一不可配置完成后逐台路由器查看路由表和 OSPF 邻居状态# 查看路由表 show ip route # 查看 OSPF 邻居 show ip ospf neighbor # 查看 OSPF 链路状态数据库 show ip ospf database正常状态下每台路由器应该看到全部 6 个网段的路由。如果某台路由器少了一条先看邻居是否 Full 状态show ip ospf neighbor输出里 State 列如果显示 Full说明邻居关系建立成功如果卡在 Exstart 或 Exchange多半是 MTU 不匹配或区域号写错。报告里提到从 PC121 ping PC123 可以通PC121 在 RSR20-12-3 下面PC123 在 RSR20-12-4 下面这个 ping 要跨越 4 台路由器通了就说明 OSPF 全链路生效。OSPF 的 cost 值实验是加分项。默认 cost 是 10^8 / 带宽百兆口是 1千兆口也是 1。如果想手动改在接口模式下用ip ospf cost 100调整。改完 cost 后路由表可能变化可以用show ip ospf interface查看每个接口的 cost。报告里没细写改 cost 后路由怎么变化但设计任务里有这一项操作方法是改完立刻看路由表的 next-hop 是否切换。4. NAPT 地址复用一张地址池表让三台内网主机同时上网4.1 NAPT 与动态 NAT 的区别为什么要用 overload实验要求配置动态 NAT 或 NAPT 实现局域网访问互联网。在只有 4 台主机、1 个公网 IP 的条件下唯一可行的方案是 NAPTPAT也就是端口地址复用。普通动态 NAT 是一对一映射有多少公网 IP 才能带多少台内网主机NAPT 通过端口号区分不同内网会话一个公网 IP 可以带几百台内网主机。报告中把地址池设置为单个 IP 192.168.10.5配合overload关键字就是典型的 NAPT 配置。这里有一个容易混淆的点internet 接口是 RSR20-12-3 的 gi0/1地址是 192.168.10.2。地址池里的 192.168.10.5 和接口 IP 不在同一个网段吗在同一个网段但地址池里的地址是「借用」的不一定需要配置在物理接口上只要这个地址在出接口的网段内即可。实际企业环境里这个地址通常是运营商分配的公网 IP。4.2 NAPT 配置命令地址池、ACL 和内外网接口标记核心配置全部在 RSR20-12-3 上完成# 定义 NAT 地址池名字 abc起始和结束地址都是 192.168.10.5 ip nat pool abc 192.168.10.5 192.168.10.5 netmask 255.255.255.0 # 定义 ACL允许内网网段通过 NAT 转换 access-list 10 permit 192.168.0.0 0.0.255.255 # 将 ACL 10 匹配的流量关联到地址池 abcoverload 开启端口复用 ip nat inside source list 10 pool abc overload # 标记内外网接口 int gi0/1 ip nat outside int gi0/0.1 ip nat inside int gi0/0.2 ip nat insideaccess-list 10 permit 192.168.0.0 0.0.255.255用了反掩码 0.0.255.255匹配的是 192.168.0.0 到 192.168.255.255 整个 B 段。这个写法比较粗实验环境里够用生产环境建议缩小范围到具体的业务网段避免内网其他段也被 NAT 出去。ip nat inside source list 10 pool abc overload是核心命令。inside指定是内网到外网的转换方向source list 10指定哪些源 IP 需要转换pool abc指定转换后的 IP 池overload表示启用端口复用。如果没有overload这台设备最多只能同时让一台内网主机上网因为地址池里只有一个 IP。忘记写 overload 是 NAPT 实验里最常见的低级错误。另外注意接口标记要在 NAT 配置之后做或者至少确认接口名正确。报告里用的是 gi0/0.1 和 gi0/0.2 子接口如果标记在物理接口 gi0/0 上VLAN 子接口的流量不会触发 NAT因为 NAT 检查的是流量实际入接口。4.3 验证地址转换show 命令看映射表配置完成后从 PC121 ping RSR20-12-1 的接口 192.168.8.2同时在 RSR20-12-3 上查看转换条目# 查看 NAT 转换映射 show ip nat translations # 查看 NAT 统计信息 show ip nat statistics正常输出会显示内网地址 192.168.4.2 转换成了 192.168.10.5并且带上了端口号。如果 ping 不通先排除路由问题确认 RSR20-12-3 有到 192.168.8.0/24 的路由再看 ACL 是否匹配show access-lists 10能看匹配计数最后检查接口标记show ip nat statistics里会显示 inside/outside 接口是否正确。这里有个排查思路可以参考从 PC121 上 ping 外网地址如果通了但show ip nat translations没有变化说明流量没有经过 NAT 设备如果转换表有记录但 ping 不通说明回来的流量没有正确解转换检查地址池里的地址是否可达。实验中为了验证 NAPT我习惯同时开两个 PC 的 ping再查看转换表能看到两条不同的内网 IP 映射到同一个公网 IP 的不同端口这就是 overload 的效果。5. 避坑排查网关遗漏、区域错位、地址池不匹配的三个翻车现场5.1 网关未配置导致 VLAN 间通信失败现象PC 之间 ping 不通但在同一台交换机上、同 VLAN 的 PC 可以互 ping。原因PC 只配置了 IP 地址和子网掩码没有配置默认网关。VLAN 间通信的数据包要发给网关由路由器转发没有网关PC 认为目标地址不可达直接把包丢弃。解决在每台 PC 上配置对应 VLAN 的网关地址。VLAN10 的 PCPC122、PC124网关设为 192.168.3.1VLAN20 的 PCPC121网关设为 192.168.4.1。配置完用ipconfig /all查看然后 ping 网关确认链路。5.2 OSPF 区域划分错位导致路由表缺项现象每台路由器show ip route只能看到部分网段跨路由器 ping 不通但直连网段正常。原因把 area1 放在了自治系统中间两个非骨干区域之间隔着非骨干区域违背 OSPF 的区域设计规则。非骨干区域之间不直接交换路由信息导致部分 LSA 无法传播。解决重新规划区域必须把 area0 放在中间。本实验的拓扑中四台路由器之间的三条链路组成 area0RSR20-12-3 左侧的 VLAN 网段划到 area1RSR20-12-4 右侧的网段划到 area3。修改区域后用clear ip ospf process重启 OSPF 进程再查看路由表。5.3 NAT 地址池 IP 与出接口网段不匹配现象NAPT 配置完成后内网 PC ping 不通外部路由器接口show ip nat translations没有新增条目。原因地址池里的 IP 不在路由器出接口的网段内路由器不知道这个地址应该从哪个接口发出去。UT 的另一个常见错误是地址池首尾地址写反比如写成192.168.10.5 192.168.10.1设备会报错或只有部分地址可用。解决查看路由器出接口地址把地址池起始和结束地址都改成出接口网段内的有效 IP。实验里出接口 gi0/1 是 192.168.10.2地址池用 192.168.10.5 没问题如果改成 192.168.1.5 就不行。改完用no ip nat pool abc删除旧地址池重新配置。5.4 OSPF network 语句里的网络地址写错现象OSPF 邻居能建立但路由条目不完整或者某台路由器宣告了不存在的网段。原因把接口 IP 直接写进了 network 语句。比如接口地址是 192.168.3.1network 语句写的是192.168.3.1 0.0.0.255 area 1。通配符掩码 0.0.0.255 会匹配 192.168.3.0 到 192.168.3.255 的所有地址虽然最终效果一样但容易造成混淆更严重的是把 network 写成192.168.3.1 0.0.0.0 area 1只宣告单个主机地址效果不同。解决network 语句固定写网络地址。接口地址是 192.168.3.1/24就写network 192.168.3.0 0.0.0.255 area 1。配置前先show ip interface brief列出所有接口地址逐个换算成网络地址再写。6. 用 Wireshark 验证组网结果三次握手四次挥手的抓包观察6.1 搭建 HTTP 服务器并确认抓包入口实验要求在 PC123 上部署 WEB 或 FTP 服务器从 PC121 发起访问在 PC121 上抓包。抓包位置有讲究如果抓 PC121 的包看到的是内网到路由器网关的流量TCP 首部里的源地址是 192.168.4.2如果抓 RSR20-12-3 的 gi0/0.1 接口能看到 VLAN10 内的流量要看到 NAPT 转换后的包得在 gi0/1 上抓。期末考试做协议分析抓 PC121 的包就够了重点是 TCP 首部结构不需要看转换后的包。PC123 上装 HFS 或者 Python 的 http.server 模块就行Windows 自带的 IIS 也可以。Python 方式最快# 在 PC123 上启动 HTTP 服务端口 80 python -m http.server 80启动后 PC121 浏览器访问http://192.168.5.2Wireshark 里输入过滤条件tcp.port 80就能看到完整的连接建立和释放过程。6.2 三次握手与四次挥手的观察要点三次握手的三个包特征很明确第一个包 SYN 标志位为 1序列号是随机初始值比如 ISN1000第二个包 SYNACK确认号是第一个包的序列号加 1第三个包 ACK。用 Wireshark 看时点开每个 TCP 包的首部字段对照书上的结构逐项核对。数据偏移Header Length通常是 20 字节没有选项字段时这对应 TCP 首部的最小长度。四次挥手是连接释放过程特征是 FIN 包。观察时注意谁先发 FIN主动关闭方发送 FIN接收方回复 ACK然后接收方也发送 FIN主动方再回复最后的 ACK。正常情况下这四步是清晰的但如果 HTTP 连接上开了 keep-alive浏览器可能不会立即释放连接抓包看不到四次挥手。解决办法是访问完成后立刻关闭浏览器标签页或者在过滤条件里加tcp.flags.fin 1只看 FIN 包。IPv4 数据报首部分析比较简单重点看版本号固定为 4、首部长度20 字节、总长度、TTL 和协议字段TCP 为 6。数据链路层帧格式就看源 MAC 和目的 MAC注意如果抓的是跨交换机流量源 MAC 是 PC121 的网卡 MAC目的 MAC 是路由器 gi0/0 接口的 MAC不是 PC123 的 MAC因为在这个二层路径上下一跳才是目的 MACPC123 的 MAC 要跨三层才能看到。这个细节期末报告中很加分大多数同学没注意到。从那以后我每次做完 NAT 实验都会顺手在路由器上执行show ip nat translations截个图再跑到 PC 上发一个 ping确保转换表里能看到实时条目这是整个链路最后的兜底验证。希望这份配置思路对你的课程设计或者组网排查有帮助祝一次跑通。本文还有配套的精品资源点击获取