先建立概念理解,再通过下一个活动进行检验。
OSPF 如何构建路由表
邻居、链路状态通告和最短路径计算——每台路由器各自学到什么,以及为什么它必须学到全部内容。
你将能够做到
- 描述从两台路由器相遇到一条路由出现之间的三个阶段
- 解释一个区域内的每台路由器各自保存什么,以及为什么它们是完全相同的
- 阅读邻接状态,并判断它是否健康
- 根据接口成本预测 OSPF 会选择哪条路径
预备知识:你应该能够编写一条静态路由,并解释为什么静态路由无法扩展——参见《编写静态路由》和《为什么静态路由无法扩展》。
为什么重要:OSPF 是你最有可能在单一组织内部遇到的路由协议,也是考试考察最深入的一种。几乎每一个 OSPF 故障都是下面这个流程中三件事之一出了问题,因此了解这个流程就是诊断工作的大部分内容。
静态路由是指你告诉一个路由器一个事实。OSPF 是每台路由器将它所知道的一切告诉其他所有路由器,然后每台路由器各自独立找出答案。这听起来像是更多的工作,而且确实如此,但这是路由器所做的工作,而且每次网络发生变化时都会自动再次发生。
从 “两台路由器连接在一起” 到 “表中出现一条路由” 需要三个阶段。几乎每个 OSPF 问题都是这三个失败问题中的一个,因此值得给出它们的名字。
第一阶段-找邻居
每个启用 OSPF 的接口都会定期发送一个小的 hello 数据包。当两台路由器听到对方的声音时,它们会比较音符。如果多个设置相匹配,他们就会成为邻居;如果他们中的任何一个不同意,他们就会保持陌生状态,根本不交换路线。
| 设定 | 如果不同会发生什么 |
|---|---|
| 区域编号 | 路由器看到对方的问候并拒绝他们 |
| 你好和死亡间隔 | 邻居形成然后反复掉落 |
| 链路上的子网和掩码 | 你好甚至没有收到 |
| MTU | 邻接关系到达 exStart 并在那里停止 |
| 身份验证(如果已配置) | 你好会被默默丢弃 |
第二阶段-交换地图
一旦相邻,两台路由器就会交换链路状态通告。LSA 只是一个简短的事实陈述—— “我就是这个路由器,我以这个代价连接到这个网络”。每台路由器都会将听到的内容大量涌出,因此在几秒钟内,该区域中的每台路由器都会保存相同的语句集。
该集合是链路状态数据库,也是造成 OSPF 本质的特性——区域中的每台路由器都拥有相同的数据库。不是路由列表;是拓扑的描述。两台路由器在数据库上存在分歧是故障,也是首先要检查的事情之一。
第三阶段-运行计算
然后,每台路由器在该数据库上运行最短路径算法,将自己置于根目录,并找出到达每个目的地的最便宜的方式。结果成为路由表条目。由于每台路由器都从同一个数据库启动,但根目录不同,因此无需比较路由表,它们都能得到一致的答案。
“最短” 是什么意思
OSPF 的衡量标准是成本,成本来自接口带宽——更快的链路成本更低。路径的成本是沿路径传出接口成本的总和。跳数不计入其中,这才是重点:快速链路上的两跳路径胜过慢速链路的单跳路径。
两条路径,以及为何越长者获胜
从总部到仓库车间的交通可以直接通过租用线路,费用为 64,也可以通过两条线路通过陈列室经过 10。OSPF 选择了展厅路径,总成本 20,尽管它是两跳而不是一跳。它不包括啤酒花,而是在增加成本,20 击败了 64。
把它打开
router ospf 1
router-id 10.30.0.1
network 10.30.0.0 0.0.0.3 area 0
network 10.30.10.0 0.0.0.255 area 0
每条网络语句同时做两件事,将它们混为一谈会在以后造成混乱。它在地址在该范围内的任何接口上启用 OSPF,并将该范围通告给该区域的其余部分。OSPF 在两个方向上都看不到任何网络语句都不匹配的接口。
区域 0
单区域设计将所有内容置于主干 0 区域。存在一些区域可以防止数据库在大型网络上不受限制地增长;在几十台路由器以下,拆分一台路由器没有任何好处。从 0 区域开始,当数据库出现问题时添加区域。
读取状态
show ip ospf neighbor
# Neighbor ID Pri State Dead Time Address Interface
# 10.30.0.2 1 Full/DR 00:00:34 10.30.0.2 GigabitEthernet0/0
show ip route
# O 10.30.40.0/24 [110/74] via 10.30.0.2, GigabitEthernet0/0
| 州 | 意思 |
|---|---|
| 已满 | 健康。数据库已同步。 |
| 2-Way | 在两台非指定路由器之间的共享分段上正常。 |
| exStart | 卡在这里几乎总是意味着 MTU 不匹配。 |
| 初始化 | 你好,只能走一条路。检查过滤和寻址。 |
| 向下 | 根本不打个招呼。检查接口和网络声明。 |
形成的邻接关系和从未到来的路线
报告说,新的仓库连接已经开通了一个小时,总部仍然无法联系到地板机器。邻居表显示已满,因此链路和邻接关系正常。仓库路由器根本没有覆盖 10.30.40.0/24 的网络声明,因此它从未向任何人公布过该楼层。第一阶段成功了,第二阶段没有什么可承受的。
术语
- 邻接
- 两台 OSPF 路由器之间的同步关系,通过该关系交换链路状态通告。
- LSA
- 链接状态广告。一台路由器关于其连接的内容和成本的声明。
- 链路状态数据库
- 为某个区域收集的 LSA。该区域的每台路由器都相同。
- 成本
- OSPF 的度量来自接口带宽,沿路径求和。较低的胜利。
- 路由器 ID
- 路由器在 OSPF 中使用的 32 位标识符,写得像 IPv4 地址。
要点总结
- OSPF 先是邻居,然后是数据库,然后是计算——故障发生在三者之一。
- 在形成邻接关系之前,多个设置必须匹配;区域和 MTU 通常是罪魁祸首。
- 一个区域中的每台路由器都有一个描述拓扑结构的相同链路状态数据库。
- 成本来自带宽,沿路径汇总,因此跳数越少并不意味着越短。
- 网络语句既在接口上启用 OSPF,又公布该范围。
- 完全邻接证明邻居同意,而不是在宣传任何东西。
准备好继续了吗?
创建免费账户,保存学习进度并进行知识检测。
