外部网关协议(Exterior Gateway Protocol)是AS之间使用的路由协议,最初于1982年由BBN技术公司的EricC.Rosen及DavidL.Mills提出。其最早在RFC827中描述,并于1984年在RFC904中被
正式规范。
EGP是一种简单的(网络)可达性协议,其与现代的距离-矢量协议和路径-矢量协议不同,它仅限适用于树状拓扑的网络。
简介
外部网关协议(Exterior Gateway Protocol,EGP)是一个在自治系统网络中两个邻近的网关主机(每个都有它们自己的路由)间交换路由信息的协议。EGP常常被用来在英特网的两个主机间交换路由表信息。路由表包括已知的路由器清单、它们能到达的地址以及与每个路由的路径相关的成本度量,以便选出最好的可用路径。每个路由器按照一定的时间间隔,通常在120秒到480秒之间,就给它的邻近路由发送信息,然后邻近路由就会将自己的完整路由表发回给它。EGP-2是EGP的最新版本。
大部分的公司和机构将它们拥有的路由器组合成一个自治系统,自治系统的本地
路由选择信息使用RIP或者OSPF等
内部网关协议进行收集。而在这些自治系统中,通过为位于各自自治区域边界的两台相邻路由器提供交换路由选择信息的方法,选择一台或者多台路由器使用
EGP(外部网关协议,Exterior Gateway Protocol)与其他自治区域通信。EGP路由器只向其自治区域边界上的路由器转发
路由选择表信息来获得对方自治系统的路由信息,从而为
IP数据报选择最佳路由。因此,EGP协议应具有以下三个基本功能:
1. 支持邻站获取机制,即允许一个路由器请求另一个路由器同意交换可达路由信息。
3. EGP邻站周期性地传送路由更新报文来交换网络可达路由信息。
EGP协议为了实现以上三个基本功能,定义了在该协议实现过程中使用的10种报文类型,如表1所示。
表1 EGP协议报文类型
在
EGP协议中,所有的EGP报文都有其固定的报头用于说明报文类型。EGP报文的报头格式如图1所示。
从图1可以看出,版本字段取整数值,指出该报文使用的
EGP协议版本号。以便接收方通过检测来确认双方是否使用相同版本的EGP协议。类型字段指出EGP报文的类型,代码字段给出了报文的子类型。状态字段包含了与该报文有关的状态信息。
校验和字段用来确认报文的正确到达,自治系统编号字段表示发送该报文路由器所在的自治系统编号。序号字段用于收发双方进行联系,路由器请求邻站时赋值一个初始序号,以后每发送一个报文,序号将增加1。邻站回送最近收到的序号值,发送方将回送值与发送时的值做比较,以确保报文传输的正确性。
EGP建立外部路由器间通信的第一步是执行邻居探测。在邻居探测过程中,一个外部路由器向另一个外部路由器发出请求,要求同意它们共享
路由选择表信息。在通信建立之后,路由器继续测试
EGP邻居是否正在响应。路由选择表信息使用路由更新信息,按照120~480秒的间隔在EGP邻居之间进行交换。邻居通过发送其完全路由选择表做出响应。
EGP允许外部网关只通告在网关自治系统内完全可到达的目的网络,从而对外部网关加以限制。因此,外部网关使用EGP将信息传递到它的EGP邻居,而不是在自治系统外部将其自己通告给路由器。
EGP有一个主要的局限:表示特定目的地的距离并不指定通往目的地的成本。EGP只报告目的地是否可到达。由于这种局限,EGP只能用于
树型网络。所有的
路由选择协议域必须连接到相同的中心网络。
由于所有的路由选择协议域必须连接到相同的中心网络,所以EGP不支持循环的拓扑结构。EGP只能向给定网络通告一条路由。对于给定的任何两台机器之间的通信量,不能分担有效负载,并且当某种通信量状况导致选择路由中出现拥塞时,数据包可能选择非最佳路由。因此,如果主路由失效,EGP很难切换到另一条备用路由。
当前形势
当前国际互联网络含有大量智能网关和很多无智能的网关。智能网关使用网间
连接协议(
GGP)[3]动态地交换它们自身间的
路由选择信息。无智能的网关不能动态地交换路由选择信息。无智能的网关必须登记在智能网关
路由表上,而且智能网关列表中的无智能的网关状态(例如,增加新无智能的网关)改变时需要人工干预。
GGP程序有容量的限制。急切地需要对这个程序进行重大改进。这很难完成,因为智能网关由若干不同的团体维护,而且很难分离出这些网关的一个子集用于测试新程序。
将来形势
在将来,根据情况看将有大量的平等的网关独立系统。为了维护
路由选择信息每个将拥有专用内部程序,也许通过一个
内部网关协议(
IGP)。网关的
智能化将导致被用于网关参予的
自治系统的IGP的智能化。每个自治系统的有些网关将通过一个外部网关协议(
EGP)[2]与其他的自治系统的一些网关交换路由选择信息。
受原有
智能网关进入大量自治系统之内的影响答应更灵活的为了改善路由选择过程进行开发和测试。不同的自治系统内部可以采用不同的路由选择过程,只要他们通过EGP和其他的自治系统通讯。
过渡状况
从当前形势过渡到将来形势的第一步是用至少实现了
EGP的一个子集的网关淘汰全部无智能的网关。
这些子集被称作“支线外部网关协议”,并且在RFC0[1]中被描述。
第三步将规定完整的EGP协议,而且在平等的
自治系统间提供
作用
外部网关协议用于在非核心的相邻网关之间传输信息。非核心网关包含互联网络上所有与其直接相邻的网关的
路由信息及其所连机器信息,但是它们不包含Internet上其他网关的信息。对绝大多数
EGP而言,只限制维护其服务的局域网或
广域网信息。这样可以防止过多的路由信息在局域网或广域网之间传输。EGP强制在非核心网关之间交流路由信息。
由于核心网关使用
GGP,非核心网关使用EGP,而二者都应用在Internet上,所以必须有某些方法使二者彼此之间能够通信。Internet使任何自治(非核心)网关给其他系统发送“可达”信息,这些信息至少要送到一个核心网关。如果有一个更大的自治网络,常常认为有一个网关来处理这些可达信息。
和GGP一样,
EGP使用一个查询过程来让网关清楚它的相邻网关并不断地与其相邻者交换
路由和状态信息。EGP是状态驱动的协议,意思是说它依赖于一个反映网关情况的状态表和一组当状态表项变化时必须执行的一组操作。