一、OSPF 基础原理
- 协议背景与特点:针对 RIP 的跳数限制、带宽占用高、收敛慢等问题设计,支持大规模组网,以 Cost 为度量值,采用 SPF 算法防环,通过组播更新增量路由,30 分钟周期性更新 LSA(链路状态通告)。
- 核心组件:
- 三张表:邻居表(记录邻居状态)、拓扑表(LSDB,链路状态数据库)、路由表(SPF 计算结果)。
- 五种报文:Hello(发现 / 保活邻居)、DBD(数据库描述,含 LSA 摘要)、LSR(请求缺失 LSA)、LSU(发送完整 LSA)、LSAck(确认 LSU),直接封装在 IP 中(协议号 89)。
二、工作机制与状态机
- 工作过程:先通过 Hello 建立邻居关系,再经 DBD、LSR、LSU、LSAck 同步 LSDB,最终用 SPF 算法计算路由形成邻接关系。
- 状态机:邻居关系(Down→Init→2-way)与邻接关系(Exstart→Exchange→Loading→Full),2-way 和 Full 为稳定状态,需满足掩码、区域 ID、Hello/Dead 时间等匹配条件。
- DR/BDR 选举:在广播 / NBMA 网络中选举,优先级(0-255,默认 1)高者优先,无抢占性,减少邻接关系数量以优化资源。
三、链路状态通告(LSA)
- LSA 头部:含老化时间、类型、ID、通告路由器、序列号等关键字段,用于标识和验证 LSA。
- 主要 LSA 类型:
- Type1(Router LSA):路由器描述自身直连链路,区域内传播。
- Type2(Network LSA):由 DR 生成,描述广播 / NBMA 网络的路由器信息。
- Type3(Summary LSA):ABR 生成,传递跨区域子网路由。
- Type4(ASBR Summary LSA):ABR 生成,标识 ASBR 位置。
- Type5(AS External LSA):ASBR 生成,传递域外路由。
- Type7(NSSA LSA):NSSA 区域 ASBR 生成,域外路由在区域内传播,经 ABR 转为 Type5。
四、网络类型与区域管理
- 网络类型:根据二层链路特性分为 Broadcast(以太网默认,需 DR/BDR,Hello 10s)、P2P(PPP 默认,无 DR/BDR)、NBMA(帧中继默认,单播报文)、P2MP(手动配置,无 DR/BDR)。
- 区域划分:骨干区域(Area 0)为核心,非骨干区域需直接连接骨干区域以防环;支持虚连接解决非骨干区域与骨干隔离或骨干分割问题,仅能穿越普通区域。
五、高级特性
- 特殊区域:优化 LSDB 和路由表规模,包括:
- Stub/Totally Stub:拒绝 4/5 类 LSA(Totally Stub 额外拒绝 3 类),由 ABR 下发 3 类缺省路由。
- NSSA/Totally NSSA:允许区域内引入域外路由(Type7),Totally NSSA 拒绝 3 类 LSA,ABR 下发缺省。
- 路由聚合:ABR 对 3 类 LSA 聚合,ASBR 对 5/7 类 LSA 聚合,减少路由条目并防环,需手动配置。
六、安全与优化
- 安全特性:支持区域 / 接口验证(MD5 等)、静默接口(禁止端口发 OSPF 报文)、路由过滤(ACL 控制 LSA 传播)。
- 收敛与控制:可调整 Hello/Dead 时间、重传计时器,修改接口 Cost 或参考带宽优化选路;缺省路由分 3 类(特殊区域自动下发)、5 类(手工配置)、7 类(NSSA 区域)。
- 防环与选路:区域内依赖 SPF 算法,区域间靠骨干区域互联原则防环;选路优先级:区域内路由>区域间路由>一类外部路由>二类外部路由。
---------------------------------------------------------------------------------------------------------------------------------
一、拓扑
二、要求
1、R4为ISP,其上只配置IP地址;R4与其他所直连设备间均使用公有IP;
2、R3-R5、R6、R7为MGRE环境,R3为中心站点;
3、整个OSPF环境IP基于172.16.0.0/16划分;除了R12有两个环回,其他路由器均有一个环回IP
4、所有设备均可访问R4的环回;
5、减少LSA的更新量,加快收敛,保障更新安全;
6、全网可达;
三、配置
1.配置IP地址
[R1]int g 0/0/0
[R1-GigabitEthernet0/0/0]ip address 172.16.33.1 24
[R1]int l 0
[R1-LoopBack0]ip address 172.16.34.1 24
[R2]int g 0/0/0
[R2-GigabitEthernet0/0/0]ip address 172.16.33.2 24
[R2-GigabitEthernet0/0/0]q
[R2]int l 0
[R2-LoopBack0]ip address 172.16.35.2 24
[R3]int g 0/0/0
[R3-GigabitEthernet0/0/0]ip add
[R3-GigabitEthernet0/0/0]ip address 172.16.33.3 24
[R3-GigabitEthernet0/0/0]q
[R3]int l 0
[R3-LoopBack0]ip address 172.16.36.3 24
[R3-LoopBack0]q
[R3]int s 4/0/0
[R3-Serial4/0/0]ip address 34.0.0.3 24
[R4]int g 0/0/0
[R4-GigabitEthernet0/0/0]ip add
[R4-GigabitEthernet0/0/0]ip address 47.0.0.4 24
[R4-GigabitEthernet0/0/0]q
[R4]int s 3/0/0
[R4-Serial3/0/0]ip address 46.0.0.4 24
[R4-Serial3/0/0]q
[R4]int s 4/0/0
[R4-Serial4/0/0]ip address 34.0.0.4 24
[R4-Serial4/0/0]q
[R4]int s 4/0/1
[R4-Serial4/0/1]ip address 45.0.0.4 24
[R4-Serial4/0/1]q
[R4]int l 0
[R4-LoopBack0]ip address 172.16.2.4 24
[R5]int s 4/0/0
[R5-Serial4/0/0]ip address 45.0.0.5 24
[R5-Serial4/0/0]q
[R5]int l 0
[R5-LoopBack0]ip address 172.16.3.5 24
[R6]int s 4/0/0
[R6-Serial4/0/0]ip address 46.0.0.6 24
[R6-Serial4/0/0]q
[R6]int g 0/0/0
[R6-GigabitEthernet0/0/0]ip address 172.16.65.1 30
[R6-GigabitEthernet0/0/0]q
[R6]int l 0
[R6-LoopBack0]ip address 172.16.4.6 24
[R6-LoopBack0]q
[R7]int g 0/0/0
[R7-GigabitEthernet0/0/0]ip address 47.0.0.7 24
[R7-GigabitEthernet0/0/0]q
[R7]int g 0/0/1
[R7-GigabitEthernet0/0/1]ip address 172.16.97.1 30
[R7-GigabitEthernet0/0/1]q
[R7]int l 0
[R7-LoopBack0]ip address 172.16.5.7 24
[R8]int g 0/0/0
[R8-GigabitEthernet0/0/0]ip address 172.16.97.2 30
[R8-GigabitEthernet0/0/0]q
[R8]int g 0/0/1
[R8-GigabitEthernet0/0/1]ip address 172.16.97.5 30
[R8-GigabitEthernet0/0/1]q
[R8]int l 0
[R8-LoopBack0]ip address 172.16.98.8 24
[R9]int g 0/0/0
[R9-GigabitEthernet0/0/0]ip address 172.16.97.6 30
[R9-GigabitEthernet0/0/0]q
[R9]int g 0/0/1
[R9-GigabitEthernet0/0/1]ip address 172.16.129.1 30
[R9-GigabitEthernet0/0/1]q
[R9]int l 0
[R9-LoopBack0]ip address 172.16.130.9 24
[R10]int g 0/0/0
[R10-GigabitEthernet0/0/0]ip address 172.16.129.2 30
[R10-GigabitEthernet0/0/0]q
[R10]int l 0
[R10-LoopBack0]ip address 172.16.131.10 24
[R11]int g 0/0/0
[R11-GigabitEthernet0/0/0]ip address 172.16.65.2 30
[R11-GigabitEthernet0/0/0]q
[R11]int g 0/0/1
[R11-GigabitEthernet0/0/1]ip address 172.16.65.5 30
[R11-GigabitEthernet0/0/1]q
[R11]int l 0
[R11-LoopBack0]ip address 172.16.66.11 24
[R12]int g 0/0/0
[R12-GigabitEthernet0/0/0]ip address 172.16.65.6 30
[R12-GigabitEthernet0/0/0]q
[R12]int l 0
[R12-LoopBack0]ip address 172.16.160.12 24
[R12-LoopBack0]q
[R12]int l 1
[R12-LoopBack1]ip address 172.16.161.12 24
[R12-LoopBack1]q
2.公网通
[R3]ip route-static 0.0.0.0 0 34.0.0.4
[R5]ip route-static 0.0.0.0 0 45.0.0.4
[R6]ip route-static 0.0.0.0 0 46.0.0.4
[R7]ip route-static 0.0.0.0 0 47.0.0.4
测试
3.内网通
area 0
[R5]ospf 1 rout
[R5]ospf 1 router-id 5.5.5.5
[R5-ospf-1]a 0
[R5-ospf-1-area-0.0.0.0]net
[R5-ospf-1-area-0.0.0.0]network 172.16.3.0 0.0.0.255
[R6]ospf 1 router-id 6.6.6.6
[R6-ospf-1]a 0
[R6-ospf-1-area-0.0.0.0]network 172.16.4.0 0.0.0.255
[R7]ospf router-id 7.7.7.7
[R7-ospf-1]a 0
[R7-ospf-1-area-0.0.0.0]network 172.16.5.0 0.0.0.255
area 1
[R1]ospf 1 router-id 1.1.1.1
[R1-ospf-1]a 1
[R1-ospf-1-area-0.0.0.1]network 172.16.33.1 0.0.0.0
[R1-ospf-1-area-0.0.0.1]network 172.16.34.1 0.0.0.0
[R2]ospf 1 router-id 2.2.2.2
[R2-ospf-1]a 1
[R2-ospf-1-area-0.0.0.1]network 172.16.33.0 0.0.0.255
[R2-ospf-1-area-0.0.0.1]network 172.16.35.0 0.0.0.255
[R3]ospf 1 router-id 3.3.3.3
[R3-ospf-1]a 1
[R3-ospf-1-area-0.0.0.1]network 172.16.33.0 0.0.0.255
[R3-ospf-1-area-0.0.0.1]network 172.16.36.0 0.0.0.255
area 2
[R6-ospf-1]a 2
[R6-ospf-1-area-0.0.0.2]network 172.16.65.1 0.0.0.0
[R11]ospf 1 router-id 11.11.11.11
[R11-ospf-1]a 2
[R11-ospf-1-area-0.0.0.2]network 172.16.65.2 0.0.0.0
[R11-ospf-1-area-0.0.0.2]network 172.16.65.5 0.0.0.0
[R11-ospf-1-area-0.0.0.2]network 172.16.66.0 0.0.0.255
[R12]ospf 1 router-id 12.12.12.12
[R12-ospf-1]a 2
[R12-ospf-1-area-0.0.0.2]network 172.16.65.6 0.0.0.0
R12上还有rip也一起配置
[R12]rip 1
[R12-rip-1]version 2
[R12-rip-1]undo summary
[R12-rip-1]network 172.16.0.0
进行路由引入(单向)
[R12]ospf 1
[R12-ospf-1]import rip 1
area 3
[R7]ospf 1
[R7-ospf-1]a 3
[R7-ospf-1-area-0.0.0.3]network 172.16.97.1 0.0.0.0
[R8]ospf 1 router-id 8.8.8.8
[R8-ospf-1]a 3
[R8-ospf-1-area-0.0.0.3]network 172.16.97.2 0.0.0.0
[R8-ospf-1-area-0.0.0.3]network 172.16.97.5 0.0.0.0
[R9]ospf 1 router-id 9.9.9.9
[R9-ospf-1]a 3
[R9-ospf-1-area-0.0.0.3]network 172.16.97.6 0.0.0.0
area 4
[R9]ospf 2
[R9-ospf-2]a 4
[R9-ospf-2-area-0.0.0.4]network 172.16.129.1 0.0.0.0
[R9-ospf-2-area-0.0.0.4]network 172.17.130.0 0.0.0.255
进行路由引入(双向)
[R9]ospf 1
[R9-ospf-1]import-route ospf 2
[R9-ospf-1]q
[R9]ospf 2
[R9-ospf-2]import-route ospf 1
[R9-ospf-2]
[R10]ospf 1 router-id 10.10.10.10
[R10-ospf-1]a 4
[R10-ospf-1-area-0.0.0.4]network 172.16.129.2 0.0.0.0
[R10-ospf-1-area-0.0.0.4]network 172.16.131.10 0.0.0.255
测试
area 1
area 2
area 3
area 4
4.配置mgre vpn
配置nhrp
[R3]int t 0/0/0
[R3-Tunnel0/0/0]ip address 172.16.6.3 24
[R3-Tunnel0/0/0]tunnel-protocol gre p2mp
[R3-Tunnel0/0/0]source 34.0.0.3
[R3-Tunnel0/0/0]nhrp network-id 1000
[R3-Tunnel0/0/0]nhrp entry multicast dynamic
[R3-Tunnel0/0/0]ospf network-type broadcast
[R5]int t 0/0/0
[R5-Tunnel0/0/0]ip address 172.16.6.5 24
[R5-Tunnel0/0/0]tunnel-protocol gre p2mp
[R5-Tunnel0/0/0]source s 4/0/0
[R5-Tunnel0/0/0]nhrp network-id 1000
[R5-Tunnel0/0/0]nhrp entry 172.16.6.3 34.0.0.3 register
[R5-Tunnel0/0/0]ospf network-type broadcast
[R6]int t 0/0/0
[R6-Tunnel0/0/0]ip address 172.16.6.6 24
[R6-Tunnel0/0/0]tunnel-protocol gre p2mp
[R6-Tunnel0/0/0]source s 4/0/0
[R6-Tunnel0/0/0]nhrp network-id 1000
[R6-Tunnel0/0/0]nhrp entry 172.16.6.3 34.0.0.3 register
[R6-Tunnel0/0/0]ospf network-type broadcast
[R7]int t 0/0/0
[R7-Tunnel0/0/0]ip address 172.16.6.7 24
[R7-Tunnel0/0/0]tunnel-protocol gre p2mp
[R7-Tunnel0/0/0]source g 0/0/0
[R7-Tunnel0/0/0]nhrp network-id 1000
[R7-Tunnel0/0/0]nhrp entry 172.16.6.3 34.0.0.3 register
[R7-Tunnel0/0/0]ospf network-type broadcast
传递子网路由
[R3]ospf 1
[R3-ospf-1]a 0
[R3-ospf-1-area-0.0.0.0]network 172.16.6.0 0.0.0.255
[R5]ospf 1
[R5-ospf-1]a 0
[R5-ospf-1-area-0.0.0.0]network 172.16.6.0 0.0.0.255
[R6]ospf 1
[R6-ospf-1]a 0
[R6-ospf-1-area-0.0.0.0]network 172.16.6.0 0.0.0.255
[R7]ospf 1
[R7-ospf-1]a 0
[R7-ospf-1-area-0.0.0.0]network 172.16.6.0 0.0.0.255
测试[R1 ping R10]
5.配置NAT(easy-ip)
[R3]acl 2000
[R3-acl-basic-2000]rule permit source 172.16.0.0 0.0.255.255
[R3-acl-basic-2000]q
[R3]int s 4/0/0
[R3-Serial4/0/0]nat outbound 2000
[R5]acl 2000
[R5-acl-basic-2000]rule permit source 172.16.0.0 0.0.255.255
[R5-acl-basic-2000]q
[R5]int s 4/0/0
[R5-Serial4/0/0]nat outbound 2000
[R6]acl 2000
[R6-acl-basic-2000]rule permit source 172.16.0.0 0.0.255.255
[R6-acl-basic-2000]q
[R6]int s 4/0/0
[R6-Serial4/0/0]nat outbound 2000
[R7]acl 2000
[R7-acl-basic-2000]rule permit source 172.16.0.0 0.0.255.255
[R7-acl-basic-2000]q
[R7]int g 0/0/0
[R7-GigabitEthernet0/0/0]nat outbound 2000
6.进行区域间路由聚合
[R3]ospf 1
[R3-ospf-1]a 1
[R3-ospf-1-area-0.0.0.1]abr-summary 172.16.32.0 255.255.224.0
[R3-ospf-1-area-0.0.0.1]q
[R3-ospf-1]q
防环
[R3]ip route-static 172.16.32.0 19 null 0
[R6]ospf 1
[R6-ospf-1]a 2
[R6-ospf-1-area-0.0.0.2]abr-summary 172.16.64.0 255.255.224.0
[R6-ospf-1-area-0.0.0.2]q
[R6-ospf-1]q
[R6]ip route-static 172.16.64.0 19 null 0
[R7]ospf 1
[R7-ospf-1]a 3
[R7-ospf-1-area-0.0.0.3]abr-summary 172.16.96.0 255.255.224.0
[R7-ospf-1-area-0.0.0.3]q
[R7-ospf-1]q
[R7]ip route-static 172.16.96.0 19 null 0
7.进行域外路由聚合--精简area 0区域的lsdb/路由表
[R12]ospf 1
[R12-ospf-1]asbr-summary 172.16.160.0 255.255.224.0
[R12-ospf-1]q
[R12]ip route-static 172.16.160.0 19 null 0
[R9]ospf 1
[R9-ospf-1]asbr-summary 172.16.128.0 255.255.224.0
[R9-ospf-1]q
[R9]ip route-static 172.16.128.0 19 null 0
8.配置特殊区域--精简除area 0以外区域的lsdb/路由表
area 1
[R1]ospf 1
[R1-ospf-1]a 1
[R1-ospf-1-area-0.0.0.1]stub no
[R1-ospf-1-area-0.0.0.1]stub no-summary
[R2]ospf 1
[R2-ospf-1]a 1
[R2-ospf-1-area-0.0.0.1]stub no-summary
[R3]ospf 1
[R3-ospf-1]a 1
[R3-ospf-1-area-0.0.0.1]stub no
[R3-ospf-1-area-0.0.0.1]stub no-summary
area 2
[R6]ospf 1
[R6-ospf-1]a 2
[R6-ospf-1-area-0.0.0.2]nssa no-summary
[R11]ospf 1
[R11-ospf-1]a 2
[R11-ospf-1-area-0.0.0.2]nssa no-summary
[R12]ospf 1
[R12-ospf-1]a 2
[R12-ospf-1-area-0.0.0.2]nssa no-summary
area 3
[R7]ospf 1
[R7-ospf-1]a 3
[R7-ospf-1-area-0.0.0.3]nssa no-summary
[R8]ospf 1
[R8-ospf-1]a 3
[R8-ospf-1-area-0.0.0.3]nssa no-summary
[R9]ospf 1
[R9-ospf-1]a 3
[R9-ospf-1-area-0.0.0.3]nssa no-summary
最后给R10手动配置一个缺省路由指向R9
[R10]ip route-static 0.0.0.0 0 172.16.129.1
或者用R9下发缺省路由
[R9]ospf 2
[R9-ospf-2]default-route-advertise
测试
9.加快收敛【更改hello时间】
[R1]int g 0/0/0
[R1-GigabitEthernet0/0/0]ospf timer hello 2
[R2]int g 0/0/0
[R2-GigabitEthernet0/0/0]ospf timer hello 2
[R3]int g 0/0/0
[R3-GigabitEthernet0/0/0]ospf timer hello 2
[R4]int g 0/0/0
[R4-GigabitEthernet0/0/0]ospf timer hello 2
[R4]int s 4/0/0
[R4-GigabitEthernet0/0/0]ospf timer hello 2
[R4]int s 4/0/1
[R4-GigabitEthernet0/0/0]ospf timer hello 2
[R4]int s 3/0/0
[R4-GigabitEthernet0/0/0]ospf timer hello 2
[R5]int s 4/0/0
[R5-GigabitEthernet0/0/0]ospf timer hello 2
[R6]int g 0/0/0
[R6-GigabitEthernet0/0/0]ospf timer hello 2
[R6]int s 4/0/0
[R6-GigabitEthernet0/0/0]ospf timer hello 2
[R7]int g 0/0/0
[R7-GigabitEthernet0/0/0]ospf timer hello 2
[R7]int g 0/0/1
[R7-GigabitEthernet0/0/0]ospf timer hello 2
[R8]int g 0/0/0
[R8-GigabitEthernet0/0/0]ospf timer hello 2
[R8]int g 0/0/1
[R8-GigabitEthernet0/0/0]ospf timer hello 2
[R9]int g 0/0/0
[R9-GigabitEthernet0/0/0]ospf timer hello 2
[R9]int g 0/0/1
[R9-GigabitEthernet0/0/0]ospf timer hello 2
[R10]int g 0/0/0
[R10-GigabitEthernet0/0/0]ospf timer hello 2
[R11]int g 0/0/0
[R11-GigabitEthernet0/0/0]ospf timer hello 2
[R11]int g 0/0/1
[R11-GigabitEthernet0/0/0]ospf timer hello 2
[R12]int g 0/0/0
[R11-GigabitEthernet0/0/0]ospf timer hello 2
10.做区域认证、接口认证
[R3]ospf 1
[R3-ospf-1]a 0
[R3-ospf-1-area-0.0.0.0]authentication-mode md5 1 cipher 123456
[R5]ospf 1
[R5-ospf-1]a 0
[R5-ospf-1-area-0.0.0.0]authentication-mode md5 1 cipher 123456
[R6]ospf 1
[R6-ospf-1]a 0
[R6-ospf-1-area-0.0.0.0]authentication-mode md5 1 cipher 123456
[R7]ospf 1
[R7-ospf-1]a 0
[R7-ospf-1-area-0.0.0.0]authentication-mode md5 1 cipher 123456