
简介这是一份基于OSPF路由协议完成网络互连的计算机网络课程设计报告面向网络工程、计算机及相关专业学生旨在解决5个独立局域网通过OSPF互连的组网问题。报告结构完整包含课程设计任务书、需求分析、概要设计、详细设计、调试与操作说明等部分重点讲解子网划分方法、OSPF链路状态路由协议原理、路由器接口IP地址配置以及路由器与交换机的具体配置命令并基于Cisco Packet Tracer模拟环境给出可操作的实验流程。资源为单个Word文档约1.16MB内容从网络拓扑图设计到OSPF路由验证均有涉及可直接作为课程设计报告模板或实验参考。文档中还对OSPF协议的工作机制做了说明有助于理解链路状态数据库与路由计算过程。目前已有943人学习下载适合需要快速完成计算机网络课程设计或系统学习OSPF组网配置的读者。1. 为什么OSPF课程设计总卡在区域和地址规划先画对拓扑再碰设备把基于OSPF路由协议的网络互连做成计算机网络课程设计真正花时间的不是敲命令而是区域划分和地址规划。很多人一上来就把所有网段塞进Area 0结果邻居也建立了、路由也学到了答辩时被问一句为什么这么设计就答不上来。本文从一套三台路由器加一台三层交换机的多区域互连拓扑讲起覆盖地址设计、H3C/华为eNSP上的OSPF配置、Stub特殊区域、以及五条高频踩坑记录最后给出验证和进阶到MSTPVRRP的园区网思路。适合正在做课程设计、需要交付文档并通过实验验收的读者也适合想把OSPF特殊区域和ABR行为一次弄清楚的同学。2. 多区域OSPF互连拓扑与地址规划一台ABR串联Area 0和Area 12.1 拓扑结构与区域边界为什么骨干区域必须连续课程设计最常见的翻车点不在配置而在拓扑。很多同学从网上抄一个单区域配置三台路由器全部塞进Area 0所有网段互相可通看起来交差很容易但老师一句OSPF为什么需要区域就卡住。要让设计有说服力至少要有两个区域和一台ABR区域边界路由器才能讲清楚Type1/Type2/Type3 LSA的区别以及区域间路由的传递机制。我的建议拓扑是三台路由器串联R1和R2之间的链路属于Area 0R2和R3之间的链路属于Area 1R2同时连接两个区域所以R2是ABR。R3的G0/0/1口接一台三层交换机SW1SW1下面挂PC1、PC2分别属于VLAN 10和VLAN 20R1的G0/0/1口接PC3。这样就构成一个跨两个区域的互连网络PC1和PC3互访时流量从SW1送到R3再经过R2这个ABR转发到R1。设备角色清晰文档也好写R1是区域内路由器R2是ABRR3和SW1在末节区域后面还可以把Area 1做成Stub区域来展示特殊区域路由的理解。OSPF对区域拓扑有一条硬性要求非骨干区域必须与Area 0直接相连区域间路由必须经过骨干区域转发。也就是说所有跨区域流量都要走ABR在骨干区域里完成中转。课程设计里不要用虚链路virtual-link去掩盖Area 0不连续的问题一旦把虚链路写进文档答辩被追问为什么不用物理线路直连骨干就很被动了。老老实实把R2放在Area 0和Area 1之间拓扑合规转发路径也直观。2.2 IP编址、Loopback与Router ID设计地址规划决定配置能不能一次通过。我一般按三类地址来分互连环路口用/30Loopback口用/32业务网段用/24。互连环路口地址只容纳两台设备避免广播域过大Loopback口不依赖物理链路状态作为OSPF Router ID的载体非常合适业务网段用/24方便在文档里做路由汇总也方便后面扩展到MSTPVRRP时不用重新编址。OSPF的network命令后面跟的是通配符掩码反掩码不是子网掩码这是新手最容易看懵的地方。地址规划表如下设备接口IP地址掩码所属OSPF区域R1G0/0/010.0.12.1255.255.255.252Area 0R1G0/0/1192.168.30.254255.255.255.0Area 0R1LoopBack01.1.1.1255.255.255.255Area 0R2G0/0/010.0.12.2255.255.255.252Area 0R2G0/0/110.0.23.1255.255.255.252Area 1R2LoopBack02.2.2.2255.255.255.255Area 0R3G0/0/010.0.23.2255.255.255.252Area 1R3G0/0/1172.16.1.1255.255.255.252Area 1R3LoopBack03.3.3.3255.255.255.255Area 1SW1Vlanif10192.168.10.1255.255.255.0Area 1SW1Vlanif20192.168.20.1255.255.255.0Area 1SW1G0/0/4172.16.1.2255.255.255.252Area 1Router ID在OSPF里是路由器的身份标识邻居之间靠它互相识别。实际设备会优先选择手动配置的router-id其次选择Loopback口地址最后才选物理接口地址。课程设计里直接把router-id写成Loopback地址配置清晰排错时看一眼对端就知道是谁。注意Router ID必须全局唯一否则邻居会反复震荡display ospf peer一直起不来。另一个容易忽略的点是网关设计PC1和PC2的网关分别设在SW1的Vlanif10和Vlanif20上PC3的网关设在R1的G0/0/1上。网关就是终端入网的第一跳必须跟业务网段直连如果网关设在远端路由器上PC发出ARP请求根本得不到响应这是初学网络互连最常犯的低级错误。地址规划还有一个细节R2作为ABR只在Area 0里宣告自己的Loopback 2.2.2.2这样R1能学到这条主机路由R3和SW1则通过R2下发的区域间路由学到。不要把一台设备的Loopback宣告进两个区域否则这台设备会向两个区域同时发布路由虽然不一定会出错但会让文档里的路径选择显得混乱。课程设计讲究的是每一步都有理由地址规划这一段写清楚文档的分数基本就保住了。3. 在H3C/华为eNSP上跑通OSPF接口地址、区域宣告与Stub配置3.1 接口地址与VLANIF让直连网段先能互通我习惯先把所有接口IP和VLANIF配好确认所有直连网段可以互相ping通再开始配OSPF。这样后面排错时可以明确区分故障层如果OSPF邻居起不来先检查直连链路通不通避免把路由问题和链路问题混在一起。H3C和华为的VRP命令行高度一致下面的配置在eNSP里可以直接复制在H3C模拟器或实体设备上除了个别接口命名差异外命令几乎通用。R1的接口配置system-view sysname AR1 interface GigabitEthernet0/0/0 ip address 10.0.12.1 255.255.255.252 quit interface GigabitEthernet0/0/1 ip address 192.168.30.254 255.255.255.0 quit interface LoopBack0 ip address 1.1.1.1 255.255.255.255 quit这段配置的作用是把R1的互联接口、业务接口和Loopback接口的IP地址确定下来。G0/0/0接R2用/30地址段G0/0/1接PC3用/24地址段Loopback0不接任何物理线缆只作为Router ID和测试源地址使用。ip address后面的参数是接口IP和普通子网掩码跟OSPF的network命令用的反掩码不一样不要搞混。H3C上如果接口名是GigabitEthernet0/0/0就完全一致如果是XGigabitEthernet改成对应接口名即可。SW1的交换机配置是另一个重点因为二层交换机默认所有接口都是二层口直接配IP会报错system-view sysname SW1 vlan batch 10 20 interface GigabitEthernet0/0/1 port link-type access port default vlan 10 quit interface GigabitEthernet0/0/2 port link-type access port default vlan 20 quit interface GigabitEthernet0/0/4 undo portswitch ip address 172.16.1.2 255.255.255.252 quit interface Vlanif10 ip address 192.168.10.1 255.255.255.0 quit interface Vlanif20 ip address 192.168.20.1 255.255.255.0 quit这段配置是让SW1同时具备二层接入和三层转发能力。vlan batch 10 20一次性创建两个业务VLANG0/0/1和G0/0/2是access口分别接入VLAN 10和VLAN 20的PCG0/0/4连接R3用undo portswitch把二层口切换成三层路由口才能配IP这个是交换机上最容易踩坑的地方。Vlanif10和Vlanif20是VLAN的虚拟三层接口PC1和PC2的网关就落在这里。在H3C部分型号上undo portswitch等价于port link-mode route效果一样。配完后检查一下从SW1能ping通172.16.1.1从R3能ping通172.16.1.2从R1能ping通10.0.12.2和192.168.30.254。直连不通就往下查不要急着开OSPF。3.2 OSPF进程与多区域宣告Router ID决定邻居身份接口地址就绪后开始配置OSPF。关键点是每个设备的进程号可以不同但Router ID必须全局唯一区域ID必须和拓扑设计一致。R1的OSPF配置如下ospf 1 router-id 1.1.1.1 area 0 network 10.0.12.0 0.0.0.3 network 192.168.30.0 0.0.0.255 network 1.1.1.1 0.0.0.0 quitospf 1后面的数字是进程号只在本地设备上有意义两台设备进程号不一致不影响邻居建立。router-id手动指定为1.1.1.1防止设备自己从接口IP里挑一个导致排错混乱。area 0进入骨干区域配置视图network命令后面跟网段和反掩码反掩码0.0.0.3表示只匹配前30位刚好覆盖10.0.12.0/30这个互联段0.0.0.255匹配前24位覆盖192.168.30.0/24业务网段0.0.0.0是精确匹配把Loopback0这条主机路由宣告进OSPF。R2作为ABR配置是两个区域的宣告ospf 1 router-id 2.2.2.2 area 0 network 10.0.12.0 0.0.0.3 network 2.2.2.2 0.0.0.0 area 1 network 10.0.23.0 0.0.0.3 quitR2的G0/0/0在Area 0G0/0/1在Area 1所以OSPF进程里同时出现了area 0和area 1两个区域配置块。R2会把Area 0的Type1/Type2 LSA转换成Type3 LSA发送到Area 1同时把Area 1的LSA转换成Type3发送到Area 0这就是ABR的核心职责。很多人只宣告物理接口网段忘了宣告Loopback虽然不影响转发但文档里讲Router ID来源时少了一个佐证。R2的Loopback 2.2.2.2宣告在Area 0这样R1可以通过区域内路由学到它R3/ SW1通过区域间路由学到它。R3和SW1都归属Area 1配置如下ospf 1 router-id 3.3.3.3 area 1 network 10.0.23.0 0.0.0.3 network 172.16.1.0 0.0.0.3 network 3.3.3.3 0.0.0.0 quitospf 1 router-id 4.4.4.4 area 1 network 172.16.1.0 0.0.0.3 network 192.168.10.0 0.0.0.255 network 192.168.20.0 0.0.0.255 quitR3的G0/0/0连接R2G0/0/1连接SW1两个接口都在Area 1。SW1是三层交换机Vlanif10和Vlanif20是它的业务三层接口172.16.1.2是它与R3互联的三层口。这里要特别注意SW1宣告的是VLANIF网段而不是物理接口如果漏掉任何一条network对应VLAN的PC就学不到去往其他区域的路径。配置完成后在R2上执行display ospf peer brief能看到R1、R3的邻居状态为Full说明两台设备之间已经建立邻接关系。H3C设备上OSPF配置格式几乎一致如果你用的是H3C模拟器把sysname后面的名字换成H3C风格即可。命令顺序也相同先建OSPF进程再配Router ID然后进入各区域宣告网段。3.3 把Area 1做成Stub区域特殊区域路由的理解与默认路由下发如果文档里只写配置OSPF多区域竞争优势还不够。把Area 1配置成Stub区域就能展示你对OSPF特殊区域路由的理解Stub区域是末节区域不需要知道外部路由区域内的路由器只要有一条离开区域的默认路由就够了。配置后Type4、Type5 LSA不会进入该区域链路状态数据库体积变小SPF计算压力也随之降低。R2、R3、SW1三台设备都要配置Stub区域内的所有路由器必须保持一致漏配任何一台邻居就会卡在Down状态ospf 1 area 1 stub quitospf 1 area 1 stub quitospf 1 area 1 stub quit配置完成后ABRR2会自动向Area 1下发一条Type3的默认路由0.0.0.0/0R3和SW1的路由表里会出现一条O IA的默认路由指向R2。这样Area 1内部的设备不需要维护一大堆外部路由细节只要把非本地流量交给ABR就行。注意Stub区域里不能配置ASBR也不能引入外部路由如果你的设计需要在Area 1里连接RIP或静态路由并重分发进OSPF就应该用NSSA而不是Stub。答辩时能讲清Stub和NSSA的取舍这部分基本就是加分项了。4. OSPF课程设计避坑邻居震荡、路由黑洞与Stub失效的五个现场4.1 五个高频踩坑场景第一个坑是邻居建立不起来。现象是display ospf peer brief里路由器一直在Down或者Init状态怎么等都不变成Full。原因通常是两端区域ID不一致或者network宣告的网段范围没有覆盖互连接口IP。解决办法是先在设备上display current-configuration configuration ospf确认互连接口所在的IP网段被准确宣告到了同一区域再用display ospf error查看错误计数统计重点看bad area相关的错误计数。如果两端网络掩码、区域号都没问题邻居还停在ExStart多半是接口MTU不一致华为设备默认不检查MTU但H3C部分型号会做MTU协商可以在接口下用ospf mtu-enable关闭或调整。第二个坑是邻居已经Full但路由表里缺网段。现象是R1能ping通R2的Loopback但ping不通R3下挂的192.168.10.1display ip routing-table protocol ospf里没有对应的O IA路由。原因基本可以锁定在ABR上某个网段被漏宣告或者同一个网段被两台设备宣告进了不同区域导致路由在LSDB里产生的类型不对。解决办法是在R2上执行display ospf lsdb看有没有生成对应的Type3 LSA如果LSDB里没有回去检查network命令的网段和反掩码是否覆盖了VLANIF地址。这个坑非常隐蔽因为接口都配有IP但OSPF只宣告你告诉它的网段没宣告的网段就是路由黑洞。第三个坑是交换机的OSPF邻居起不来。现象是SW1与R3之间无论怎么配dis ospf peer都是空的而且SW1接口下敲ip address报错Error: Please renew the interface to be a Layer 3 interface。原因很直接交换机接口默认是二层口OSPF报文不会在二层口上跑。解决办法是进入接口执行undo portswitch把接口切换成三层路由口再配IP。H3C部分设备用port link-mode route命令效果一样。配完后用display ip interface brief确认接口协议状态是UP再回头看OSPF邻居。第四个坑是配了Stub区域反而丢路由。现象是之前全网互通配置Stub后R3学不到192.168.30.0/24了。原因有两个可能一是Area 1里有设备没配stub导致区域内路由器配置不一致邻居直接Down二是区域内引入了外部路由Stub区域不允许存在Type5 LSAABR拒绝下发。解决办法是把区域内所有路由器都补上stub如果设计中确实需要引入外部路由就把Area 1改成NSSA用nssa命令替换stub外部路由会以Type7 LSA的形式进入区域。Stub区域的规则一句话记住区域内所有路由器要统一区域内不能有ASBR。第五个坑是修改router-id后不生效。现象是改了router-id重启OSPF进程后display ospf peer里对端看到的还是旧router-id。原因是OSPF进程在运行期间会缓存已用的router-id必须重置进程才能重新选举。解决办法是在用户视图下执行reset ospf process确认后OSPF进程重启新的router-id才会生效。注意reset ospf process会短暂中断所有OSPF路由生产环境要选业务低峰期操作课程设计的模拟器里则无所谓。4.2 排查命令组合从邻居表到路由表的逐层定位课程设计排错最忌讳东敲一条命令西敲一条命令我一般按邻居→LSDB→路由表→转发路径四层往下走display ospf peer brief display ospf error display ospf lsdb display ospf routing display ip routing-table protocol ospf ping -a 1.1.1.1 192.168.10.1 tracert 192.168.10.1display ospf peer brief看邻居状态和Router IDFull代表邻接关系正常display ospf error看邻居建立失败的统计原因区域不匹配、认证失败都会在这里留下记录display ospf lsdb看链路状态数据库判断Type1/Type2/Type3/Type5 LSA的构成能确认Stub区域的过滤效果是否生效display ospf routing是OSPF协议自身的路由表看这条路由是由哪个区域学到的display ip routing-table protocol ospf才是设备最终生效的路由表。ping -a指定源地址用于验证R1访问SW1业务网段时从哪个接口出去tracert看实际转发路径确认流量走了R2而不是直接丢给黑洞。如果OSPF路由表里有路由但ping -a还是不通先检查PC的网关是否指向正确的VLANIF地址再检查交换机上有没有配置ACL过滤或端口安全限制。课程设计阶段90%的路由表有路由但不通都是终端网关配错造成的不是OSPF的问题。还有一个容易被忽略的命令是display ip routing-table 后面直接跟目标网段比如display ip routing-table 192.168.10.0能看到针对这个网段的精确下一跳和优先级比翻整张路由表快得多。5. 验证OSPF网络互连邻居表、LSDB、路由表与端到端通路的检查顺序5.1 邻居关系与DR/BDR选举验证OSPF邻居建立是网络互连的第一步。在以太网链路上OSPF默认要选举DR和BDR所有其他路由器只和DR建立邻接关系这样能减少LSA洪泛次数。课程设计的拓扑里R1-R2、R2-R3如果都用以太网口互联会发生DR选举R3和SW1之间的广播网段也会选DR。为了让文档更好讲、排错更直观我通常在路由器互联接口上把网络类型改成p2pinterface GigabitEthernet0/0/0 ospf network-type p2p quit华为和H3C都支持这个命令。p2p模式跳过了DR/BDR选举邻居状态直接从Two-way进入Full也减少了选举不稳定的概率。改完之后display ospf peer brief的输出会明显简洁没有DR/BDR那一列。如果指导老师要求演示DR选举就保留默认广播模式然后在display ospf peer里看Role字段DR优先级默认为1可以用接口下的ospf dr-priority 0把某台设备配置成不参与选举。这两个方向都要会解释答辩时被问到广播链路和点到点链路在OSPF里有什么不同就不用慌。邻居验证通过后还要确认DR/BDR下发的细节在广播网段里DR会负责向所有邻居发送Type2 Network LSA非DR路由器之间通过DR同步链路状态。课程设计里如果在eNSP上看到邻居状态偶尔卡在Two-way先看是不是两台设备的Router ID一样再看DR优先级是否相同导致选举震荡。把互联口改成p2p后这个问题基本消失。5.2 路由表与路径选择验证邻居Full不代表路由全通要逐项核对路由表。我用下面这张检查表作为课程设计验收标准验证点命令预期结果邻居状态display ospf peer brief所有邻居均为FullLSDB内容display ospf lsdbArea 0出现Type1/2/3Stub区域无Type5OSPF路由表display ospf routing出现O和O IA路由Stub区域有默认路由全局路由表display ip routing-table protocol ospf各业务网段都有对应路由端到端连通ping -a 192.168.30.254 192.168.10.1从PC3网段源地址到PC1网段目标地址通在路由表里会看到两类OSPF路由O表示区域内路由Intra-areaO IA表示区域间路由Inter-area。R1到192.168.10.1的路径是R1→R2R3→SW1这条路由在R1上显示为O IA因为它经过了ABR的转发R1到10.0.12.2则显示为O因为它在同一个区域内。这个区别是OSPF路由计算的直接体现文档里放一张display ip routing-table protocol ospf的输出截图旁边标注O和O IA的含义比用文字解释半天都有效。OSPF的cost计算规则也要能讲清楚。华为设备默认参考带宽是100Mbps接口cost值等于100Mbps除以接口带宽所以千兆接口cost是1百兆接口cost也是1万兆接口还是1。如果两条路径cost相等OSPF会形成等价路由display ip routing-table里会出现两条下一跳并列的情况这叫ECMP负载分担。课程设计里如果出现等价路由在文档里解释一下ECMP能当加分项如果不想出现等价路由可以在接口下用手动cost调整路径权重。5.3 收敛与故障演练验证验证OSPF不只是看静态路由表还要做故障演练。最简单的演练是模拟链路故障在R2的G0/0/0接口执行shutdown然后观察R3上display ospf peer。默认Hello定时器10秒Dead定时器40秒所以最快40秒后邻居才会从Full变成Down等R3的邻居表刷新后R1的Loopback路由会从R3的路由表消失。再执行undo shutdown恢复接口Hello报文重新交互邻居重新建立路由自动回填。整个过程不需要手动添加任何静态路由这就是动态路由协议的核心价值。如果想让收敛速度更快可以调整OSPF定时器interface GigabitEthernet0/0/0 ospf timer hello 5 ospf timer dead 20 quitHello定时器改成5秒Dead定时器一般是Hello的4倍所以改成20秒。两端必须一致否则邻居会频繁震荡。课程设计的模拟器里收敛快慢无所谓但文档里可以写一段OSPF通过Hello报文维持邻居关系Dead定时器过期即判定邻居失效触发LSA更新配合这次演练截图验证章节就很扎实了。演练完成后在文档里记录收敛时间从shutdown到路由表中路由消失的秒数再到恢复后路由重新出现的秒数这组数据比任何理论描述都有说服力。6. 从课程设计到园区网实践把OSPF与MSTP、VRRP组合成可交付方案6.1 OSPF在三层网络中的角色与Cost调优课程设计做完多区域OSPF下一步值得尝试的是把OSPF放进一个更完整的园区网方案里和MSTP、VRRP配合使用。常见的组合方式是接入交换机到汇聚交换机之间跑二层用MSTP防止环路汇聚交换机到核心交换机之间跑三层用OSPF传递路由VRRP部署在汇聚或核心层为终端网关提供冗余。OSPF在这里的角色是三层路由的神经系统它负责把每个VLAN的网段信息在汇聚和核心之间传播让终端无论接入哪台交换机都能找到正确的出口路径。我见过很多人在这个阶段翻车把接入交换机的VLANIF一股脑全部宣告进OSPF的Area 0。这样做的直接后果是任何一台接入交换机上的VLAN变化都会触发全网SPF重算故障半径被无限放大。正确做法是核心和汇聚之间建立OSPF邻居接入交换机通过汇聚交换机以默认路由或聚合路由的方式接入OSPF域。汇聚交换机把下挂的VLAN网段汇总后宣告进OSPF核心交换机只维护聚合路由路由表规模瞬间降下来排错时候选路径也少了。手动调整Cost是控制路径的常用手段ospf 1 router-id 10.0.0.1 area 0 network 10.0.12.0 0.0.0.3 network 10.0.13.0 0.0.0.3 network 172.16.0.0 0.0.255.255 quit interface Vlanif10 ospf cost 10 quit代价是原本network宣告采用的默认cost不再适用需要逐条链路评估带宽。百兆链路cost至少100千兆链路设置成10比较合理万兆可以保持默认1。核心设备之间建议把互联口改成p2p网络类型避免DR/BDR选举引入额外延迟。我做课程设计时也踩过不少坑最深刻的一条教训是OSPF的配置不是敲完就结束要在文档里记录每条network宣告对应的物理拓扑和流量路径否则半个月后自己再看都理不清。建议每完成一台设备配置就立刻保存配置文件并截图邻居表和路由表所有验证命令的输出按时间顺序存档。后期写实验报告时这些记录直接就是证据链。希望帮到你。本文还有配套的精品资源点击获取