第4章 路由设计基础
路由协议 | IGP (内部网关协议) | RIP (路由信息协议) | 距离向量协议 |
OSPF (开放最短路径优先协议) | 分布式链路状态协议 | ||
IS-IS (中间系统到中间系统) | |||
IGRP (内部网关路由协议) | |||
EGP (外部网关协议) | BGP (边界网关协议) | 路由向量协议 |
三种协议精讲
场景设定:互联网的两个世界
首先,你要知道互联网有两个“世界”:
- 内部世界 (IGP - 内部网关协议): 就像一个 城市内部的交通系统。比如你所在的大学校园网、公司内网。这个世界里的路由器彼此信任,目标是尽快找到 最短、最快 的路。
- 外部世界 (EGP - 外部网关协议): 就像 国家之间的国际航线系统。比如中国电信、美国 AT&T、Google 这些巨大的网络。这个世界里的“国家”(自治系统 AS)之间不完全信任,目标是找到一条 符合政策、不会绕圈 的路。
现在,我们来看这三个协议分别是怎么在这两个世界里工作的。
1. 距离向量协议 (Distance Vector) - “听邻居报路况”
代表人物: RIP (出租车司机) 适用世界: 内部世界 (小城市里)
这是一种最古老、最简单的导航逻辑。
核心思想:
每个路由器就像一个 只和隔壁邻居说话的村民。它完全不知道整个村子的地图,它只关心两件事:
- 距离 (Distance): 去某个地方有多远?(在 RIP 里就是“要经过几个路口/路由器”)
- 方向 (Vector): 我应该把信交给哪个邻居?
工作方式:
- 每个路由器都会维护一个简单的“路牌”,上面写着:“去 A 村,3 个路口;去 B 村,5 个路口……”
- 它会定期和 直接相连 的邻居交换路牌信息。
- 如果邻居告诉它一条更近的路(路口更少),它就会 盲目地相信 邻居,然后更新自己的路牌,并告诉自己的其他邻居。
- 这个过程就像“传话游戏”或“八卦传播”,路况信息一站一站地在网络里传开。
优缺点:
- 优点: 非常简单,容易配置,不怎么消耗路由器的大脑 (CPU) 和内存。
- 缺点:
- 容易被骗(路由环路): 如果一个邻居给了错误信息,这个错误信息会像谣言一样传遍网络,可能导致信件在两个路口之间来回打转。
- 消息不灵通 (收敛慢): 网络大了以后,最远地方的路况变化,要很久才能传过来。
一句话总结:只听邻居的,谁说近就信谁。适合小型、简单的网络。
2. 分布式链路状态协议 (Link-State) - “人人都有完整地图”
代表人物: OSPF (拥有实时 GPS 系统的专业司机) 适用世界: 内部世界 (大城市里)
这是为了解决“距离向量”的缺点而发明的更高级的导航逻辑。
核心思想:
每个路由器不再是只听邻居话的村民,而是变成了一个 主动的地图绘制员。
工作方式:
- 认识邻居: 每个路由器先和自己 直接相连 的邻居打个招呼,确认“咱俩是通的”。
- 绘制地图碎片: 它会把自己和邻居的连接状态(比如路况好不好、带宽多少)画成一张小小的“地图碎片”。
- 分发地图: 它会把这张地图碎片 广播给城市里的每一个路由器,就像把传单发给全城的人。
- 拼成完整地图: 每个路由器都会收集来自全城所有路由器的“地图碎片”,然后在自己的大脑里拼出一张 完整、一模一样 的城市交通图!
- 独立计算最佳路径: 有了完整的地图后,每个路由器都会 自己 使用导航算法(比如 Dijkstra 算法)计算出到任何一个地方的最佳路径。
优缺点:
- 优点:
- 上帝视角: 因为每个路由器都有完整的地图,所以绝对不会出现“被骗绕圈”的问题。
- 反应迅速: 任何一个地方的路断了,消息会立刻广播出去,所有人马上就能更新地图,找到新的路。
- 缺点: 需要更聪明的大脑 (CPU) 和更大的内存来存储完整的地图和计算路径,配置也更复杂。
一句话总结:先拿到全城地图,然后自己做导航。适合中大型、复杂的内部网络。
3. 路由向量协议 (Path Vector) - “出国要看完整行程单”
代表人物: BGP (国际航线规划师) 适用世界: 外部世界 (国家之间)
这是“距离向量”的终极进化版,专门用于庞大而复杂的互联网。
核心思想:
它不再关心距离远近,而是关心 途经哪些国家。
工作方式:
- BGP 在通告一条路径时,它不会说:“到谷歌只要 3 跳”。
- 它会提供一份 完整的“行程单”,上面清清楚楚地写着:“要去谷歌,你需要先经过 [中国电信 AS1] -> [日本 NTT AS2] -> [美国 AT&T AS3] -> [谷歌 AS4]”。
- 这个由“国家编号 (AS号)”组成的列表,就是 路径向量 (Path Vector)。
优缺点:
- 优点:
- 绝对不会绕圈(环路): 如果一个国家(AS)收到的行程单里已经有了自己的名字,它就知道“这信怎么又绕回来了?”,会立刻丢弃这条路线。这是它最强大的功能!
- 可以实施政策 (Policy): 这是它和前两种协议的根本区别。规划师可以根据行程单的内容做决策,比如:“这条路线要经过某个不安全的国家,我不走!” 或者 “这条路线要经过的合作伙伴收费太贵,我选另一条便宜的!”
- 缺点: 非常复杂,信息量巨大。
一句话总结:我要看完整的行程单,然后根据我的政策决定走哪条路。是整个互联网的基石。
最终对比
协议类型 | 距离向量 (RIP) | 链路状态 (OSPF) | 路由向量 (BGP) |
---|---|---|---|
导航逻辑 | 听邻居报路况 | 人人都有完整地图 | 出国要看完整行程单 |
视角 | 只看得到邻居 | 拥有整个网络的“上帝视角” | 拥有整个互联网的“全球视角” |
决策依据 | 谁近听谁的 (跳数) | 自己算最短路径 (成本) | 谁的行程单符合政策 |
适用范围 | 小型内部网络 | 中大型内部网络 | 互联网核心 |
内部网关协议¶
RIF(Routing Information Protocol)路由信息协议,一种分布基于距离向量的内部网关协议。
- 要求路由器周期性地向外发送路由刷新报文
- 路由刷新报文主要内容是由若干个 (V, D) 组成的表。其中,V 代表矢量,标识该路由器可以到达的目标网络(或目的主机);D 代表距离,指出该路由器到达目标网络(或目标主机)的距离,距离 D 对应路由器上的跳数。
- 其他路由器在接收到某个路由器的 (V, D) 报文后,按照 最短路径原则 对各自的路由表进行刷新。
- RIF规定,一条有限的路径长度不得超过15
RIP的更新原则:
对应两个路由器 R1 和 R2,R1 接收 R2 的 (V, D),R1 根据下列规则更新路由表:
① 如果 R1 的路由表中没有此项记录,则增加该项,由于要经过 R2 转发,因此距离 D 值加 1。
② 如果 R1 中的路由表的一项记录比 R2 发送的一项记录 D 值加 1 还要大,R1 在路由表中修改该项,距离 D 值根据 R2 提供的值加 1。
RIF优点是实现简单,但不适用于大型或路由变化剧烈的环境。
开放最短路径优先协议¶
开放最短路径优先(Open Source Path First, OSPF)协议,内部网关协议的一种,采用最短路径算法。
- 使用分布式链路状态协议(Link State Protocol)
- 对于规模很大的网络,OSPF 通过 划分区域 来提高路由更新收敛速度。每个区域有一个 32位 的区域标识符,区域内路由 器不超过 200 个。
- 一个 OSPF 区域内每个路由器的链路状态数据库包含着本区域(不是全网)的拓扑结构信息,不知道其他区域的网络拓扑。
- 链路状态“度量”主要指 费用、距离、延时、带宽 等,没有路径。
- 当链路状态发生变化时用 洪泛法 向所有(不是相邻)路由器发送此信息。
- 链路状态数据库中保存的是 全网的拓扑结构图(所有区域的×,本区域的√),而非一个完 整的路由表,也不是只保存下一跳路由器的数据。
- 为确保链路状态数据库一致,OSPF 每隔一段时间(不确定) 刷新一次数据库中的链路状态
外部网关协议¶
BGP(Border Gateway Protocal)是一个主要的外部网关协议。
- BGP是一种外部网关协议,重点在于不同自治系统(AS)之间传递路由信息以及控制优化路由信息
- BGP 采用路由向量协议,而RIP采用距离向量协议。
- 使用 TCP来承载协议报文
- BGP 协议交换路由信息的节点数是以自治系统数为单位的, BGP 交换路由信息的节点数不小于自治系统数。
BGP路由协议在执行中使用4种分组:
- 打开(Open)分组,与相邻的另一个BGP发言人建立关系
- 保活(Keepalive)分组:二个BGP发言人需要周期性地证实相邻边界路由器的存在
- 更新(Update)分组:通知相邻系统。宣告一条(只能一条,不能多条)新路由(含所有路径属性),或者撤销多条旧路由
- 通知(Notification)分组:作用是发出错误通知