1、路由选择协议
路由选择算法有link state和distance vector两种,基于这两种算法会有不同的路由选择协议,按照网络的层次,协议划分为:
- 因特网中自治系统内部的路由选择:RIP、OSPF;
- ISP网络运营商之间的路由选择:BGP;
什么是自治系统 AS(Autonomous System)?
Internet 是由不同网络组成,自治系统就是组成 Internet 的大型网络,通常由 ISP、大型企业、政府机构运营。
更具体地说,自治系统(AS)是具有统一路由策略的巨型网络或网络群组,连接到 Internet 的每台计算机或设备都连接到一个 AS,每个 AS 都控制一组或多组特定的 IP 地址(下面有具体的例子);
可以认为 AS 类似于一个城镇的邮局。邮件从一个邮局到另一个邮局,直到到达正确的城镇为止,然后该城镇的邮局将在该城镇内传递邮件。
与之类似,数据包在整个互联网范围内通过从 AS 跳到 AS,直到它们到达包含其目的IP地址的 AS。该 AS 中的路由器将数据包发送到IP地址;
大多数 AS 连接到其他几个 AS,如果一个 AS 仅连接到另一个 AS 并共享相同的路由策略,则可以将其视为第一个 AS 的子网。
什么是自治系统编号(ASN)?
每个 AS 都分配有一个自治系统编号(ASN),外部各方通过编号来引用 AS。
ASN 是介于 1 和 65534 之间的唯一 16 位数字,或介于 131072 和 4294967294 之间的 32 位数字。
截止到2022-05-17日,全球一共分配了184482个as自治系统号;
具体例子:AS4134信息
2、RIP(Routing Information Protocol)
2.1、RIP协议
在1982年发布的BSD-UNIX中实现,基于DV算法;
- 链路的代价:跳数,最多15 hops;
- 以RIP通告的形式,每个30s与邻居交换DV信息;
- 每个通告最多25个目标子网,适用于小型的网络;
可以发RIP通告的几种情况:30s定时、路径改变、有请求;
例子:开始呢,对于路由器D来说,到达z的下一跳是B,共需要7跳;
某一时刻A发给D新的距离矢量信息,D就会重新计算到z的信息,发现A到z只需要4跳,加上AD之间一共5跳,于是更新信息;
2.2、RIP链路失效和恢复
如果180s没有收到邻居A的通告,则认为邻居A路由失效,将新的通告发给别的邻居;
采用水平分割算法(前篇有介绍),跳数=16即认为不可达;
2.3、RIP以应用进程的方式实现
3、OSPF(Open Shortest Path First)
使用LS算法,全局网络拓扑、代价在每一个节点中都保持;
OSFP通告在IP数据报上传输(不通过UDP和TCP)
OSFP通告信息,相当于LS分组,包含本节点及到每一个邻居路由器的代价;
OSPF“高级”特性(RIP中没有)
- 安全:所有的OSPF报文都经过认证,可防止恶意攻击;
- 允许多个代价相同的路径存在;(RIP中只有一个)
- 支持多重代价矩阵,可根据不同指标计算;
- 支持大型网络中层次化OSPF,分为本地区域和骨干区域;
- 链路状态通告,仅在本区域内泛洪,每个节点拥有本区域的拓扑信息;
- 对于其他区域,由区域边界路由器来转发;
4、AS之间路由协议——BGP(Border Gateway Protocol)
BGP基于距离矢量算法,提供给AS以下方法:
- eBGP:收集AS内部子网可达信息,传给相邻的AS;
- iBGP:将获得的子网可达信息传遍AS内部所有路由器;
根据子网可达信息和策略来决定子网的路径;
BGP会话:
2个BGP路由器在一个半永久的TCP连接上交换BGP报文,通告各目标网络的详细路径(AS序号列表);
BGP报文:
- OPEN:打开TCP连接,认证发送方;
- UPDATE:通告新路径,或撤销原路径;
- KEEPALIVE:没有更新时保持连接,也用于对OPEN的请求确认;
- NOTIFICATION:报告错误信息,也用于关闭连接;
BGP属性:
- AS-PATH:所经过的AS列表;
- NEXT-HOP:通过哪个AS转发;
BGP路径通告(能够避免环路问题)
AS内部,子网信息都被网关路由器获取,比如AS3.3a,AS3.3a会通过eBGP向外扩散子网信息;
至于AS2是否接受也有自己的策略,可以接收并转发给AS2内部的子网;
如果AS2内部想要通过eBGP再通告的话,要额外加上自己AS2这一AS路径;(看图中文字)
可能有同一个子网的多条路径,基于策略选择;
- 本地偏好值属性;
- 最短AS-PATH:AS跳数
- 最近代价最小的下一跳NEXT HOP路由器,也称热土豆路由;
- 使用BGP标识;
5、为什么内部网关协议和外部网关协议不同?
对于AS内部,关注性能,规模比较小,各子网的主机尽可能地利用资源进行快速路由;
对于AS之间,关注策略,谁使用我的网络传输数据,对于接受的数据要不要做转发,能否获得收益等;
参考链接: