一、内外之别
Internet网被分成多个域或多个自治系统(AS)。一个域(domain)是一组主机和使用相同路由选择协议的路由器集合,并由单一机构管理。换言之,一个域可能是由一所大学或其它机构管理的互联网。内部网关协议(IGP)在一个域中选择路由。外部网关协议(EGP)为两个相邻的位于各自域边界上的路由器提供一种交换消息和信息的方法。
内部网关协议IGP,是在AS(自治系统)内部使用的协议,常用的有OSPF、ISIS、RIP、EIGRP。
外部网关协议EGP,是在AS(自治系统)外部使用的协议,常用的有BGP。
二、内部网关协议
1.内部网关协议的分类
内部网关协议可以划分为两类:距离矢量路由协议和链路状态路由协议。
[1] 距离矢量路由协议:距离矢量是指以距离和方向构成的矢量来通告路由信息。距离按跳数等度量来定义,方向则是下一跳的路由器或送出接口。距离矢量协议通常使用贝尔曼-福特 (Bellman-Ford) 算法来确定最佳路径。尽管贝尔曼-福特算法最终可以累积足够的信息来维护可到达网络的数据库,但路由器无法通过该算法了解网际网络的确切拓扑结构。路由器仅了解从邻近路由器接收到的路由信息。
距离矢量协议适用于以下情形:
~ 网络结构简单、扁平,不需要特殊的分层设计。
~管理员没有足够的知识来配置链路状态协议和排查故障。
~特定类型的网络拓扑结构,如集中星形(Hub-and-Spoke)网络。
~无需关注网络最差情况下的收敛时间。
[2] 链路状态路由协议:配置了链路状态路由协议的路由器可以获取所有其它路由器的信息来创建网络的“完整视图”(即拓扑结构)。并在拓扑结构中选择到达所有目的网络的最佳路径(链路状态路由协议是触发更新,就是说有变化时就更新)。
链路状态协议适用于以下情形:
~网络进行了分层设计,大型网络通常如此。
~管理员对于网络中采用的链路状态路由协议非常熟悉。
~ 网络对收敛速度的要求极高。
2.OSPF
OSPF开放最短路径优先(Open Shortest Path First),是一个内部网关协议(Interior Gateway Protocol,简称IGP),用于在单一自治系统(autonomous system,AS)内决策路由。与RIP相对,OSPF是链路状态路由协议,而RIP是距离向量路由协议。链路是路由器接口的另一种说法,因此OSPF也称为接口状态路由协议。OSPF通过路由器之间通告网络接口的状态来建立链路状态数据库,生成最短路径树,每个OSPF路由器使用这些最短路径构造路由。最主要的特点是使用分布式的链路状态协议,而不是像RIP那样的距离向量协议。三个要点:(1)向本自治系统中所有路由器发送信息。(2)发送的信息就是与本路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部分信息。(3)只有在链路状态发生变化时,路由器才向所有路由器用洪泛法发送此信息。
3.RIP
RIP(Routing Information Protocol) ,路由信息协议,是内部网关协议中应用最广泛的一种协议,它是一种分布式的,基于距离向量的路由选择协议,其特点是协议简单。适用于相对较小的自治系统,它们的直径“跳数”一般小于15。 RIP协议特点是:(1)仅和相邻路由交换信息(2)路由器交换的信息是当前本路由器所知道的全部信息,即自己的路由表。也就是说,交换的信息是:“我到本自治系统中所有网络的(最短)距离,以及到那个网络应经过的下一跳路由器。”(3)按固定时间间隔交换路由信息,例如,每隔30秒。然后路由器根据收到的路由信息更新路由表。
三、外部网关协议
1.简介
外部网关协议(Exterior Gateway Protocol,EGP)是一个在自治系统网络中两个邻近的网关主机(每个都有它们自己的路由)间交换路由信息的协议。EGP常常被用来在英特网的两个主机间交换路由表信息。路由表包括已知的路由器清单、它们能到达的地址以及与每个路由的路径相关的成本度量,以便选出最好的可用路径。每个路由器按照一定的时间间隔,通常在120秒到480秒之间,就给它的邻近路由发送信息,然后邻近路由就会将自己的完整路由表发回给它。EGP-2是EGP的最新版本。 [1]
大部分的公司和机构将它们拥有的路由器组合成一个自治系统,自治系统的本地路由选择信息使用RIP或者OSPF等内部网关协议进行收集。而在这些自治系统中,通过为位于各自自治区域边界的两台相邻路由器提供交换路由选择信息的方法,选择一台或者多台路由器使用EGP(外部网关协议,Exterior Gateway Protocol)与其他自治区域通信。EGP路由器只向其自治区域边界上的路由器转发路由选择表信息来获得对方自治系统的路由信息,从而为IP数据报选择最佳路由。因此, [2] EGP协议应具有以下三个基本功能: [3]
- 支持邻站获取机制,即允许一个路由器请求另一个路由器同意交换可达路由信息。
- 路由器持续测试其EGP邻站是否有响应。
- EGP邻站周期性地传送路由更新报文来交换网络可达路由信息。
EGP协议为了实现以上三个基本功能,定义了在该协议实现过程中使用的10种报文类型。
2.当前形势
当前国际互联网络含有大量智能网关和很多无智能的网关。智能网关使用网间连接协议(GGP)[3]动态地交换它们自身间的路由选择信息。无智能的网关不能动态地交换路由选择信息。无智能的网关必须登记在智能网关路由表上,而且智能网关列表中的无智能的网关状态(例如,增加新无智能的网关)改变时需要人工干预。
在智能网关间路由通信量的量取决于智能网关的数目和网络的总数。因为无智能的网关典型情况下连接位于国际互联网络边缘的单个网络,典型地在路由表中为每个无智能的网关存在一个或者多个网络。连接国际互联网络边缘的单个网络的网关多半称作"支线"网关。当前用于智能网关的GGP程序有容量的限制。急切地需要对这个程序进行重大改进。这很难完成,因为智能网关由若干不同的团体维护,而且很难分离出这些网关的一个子集用于测试新程序。
3.作用
外部网关协议用于在非核心的相邻网关之间传输信息。非核心网关包含互联网络上所有与其直接相邻的网关的路由信息及其所连机器信息,但是它们不包含Internet上其他网关的信息。对绝大多数EGP而言,只限制维护其服务的局域网或广域网信息。这样可以防止过多的路由信息在局域网或广域网之间传输。EGP强制在非核心网关之间交流路由信息。
由于核心网关使用GGP,非核心网关使用EGP,而二者都应用在Internet上,所以必须有某些方法使二者彼此之间能够通信。Internet使任何自治(非核心)网关给其他系统发送“可达”信息,这些信息至少要送到一个核心网关。如果有一个更大的自治网络,常常认为有一个网关来处理这些可达信息。
和GGP一样,EGP使用一个查询过程来让网关清楚它的相邻网关并不断地与其相邻者交换路由和状态信息。EGP是状态驱动的协议,意思是说它依赖于一个反映网关情况的状态表和一组当状态表项变化时必须执行的一组操作。
三、为什么外部网关不使用内部网关协议?
主要是BGP使用的环境不同。主要因为一下两个原因:
- 因特网的规模太大,使得AS之间路由选择非常困难。想一想如果运用OSPF需要建立一个非常大的数据库,这显然不现实。
- AS之间的路由选择必须考虑有关策略。比如安全问题,或者路径上的路由不允许其非该AS的数据报通过等等。
所以BGP只能是力求寻找一条能够到达目的网络且比较好的路由(不能兜圈子),而并非要寻找一条最佳路由。BGP采用路径向量路由选择协议,与距离向量协议和链路状态协议不同。
我的微信公众号:架构真经(id:gentoo666),分享Java干货,高并发编程,热门技术教程,微服务及分布式技术,架构设计,区块链技术,人工智能,大数据,Java面试题,以及前沿热门资讯等。每日更新哦!
参考资料: