IGP:内部网关协议(Interior Gateway Protocol)
内部网关协议(IGP)是一种专用于一个自治网络系统(比如:某个当地社区范围内的一个自治网络系统)中网关间交换数据流转通道信息的协议。网络IP协议或者其他的网络协议常常通过这些通道信息来决断怎样传送数据流。目前最常用的两种内部网关协议分别是:路由信息协议(RIP)和最短路径优先路由协议(OSPF)。
EGP:外部网关协议(ExteriorGateway Protocol)
外部网关协议(EGP)是一种在自治系统的相邻两个网关主机间交换路由信息的协议。EGP 通常用于在因特网主机间交换路由表信息。它是一个轮询协议,利用 Hello 和 I-Heard-You消息的转换,能让每个网关控制和接收网络可达性信息的速率,允许每个系统控制它自己的开销,同时发出命令请求更新响应。路由表包含一组已知路由器及这些路由器的可达地址以及路径开销,从而可以选择最佳路由。每个路由器每间隔120 秒或 480 秒会访问其邻居一次,邻居通过发送完整的路由表以示响应。
BGP协议为域间路由提供高度的控制和柔韧性,执行策略约束,避免路由回路。在此说明的指导方针为BGP使用提供了一个起点,随着BGP增长,它将提供更多高级和可管理的路由方法。
附录A. BGP与IGP的关系
本部分概述了BGP与IGP交换路由信息的方法。这些方法此处不提议作为标准BGP使用的一部分。这些方法仅是信息补充。应用在引入IGP信息时,可能需要考虑这些方法。 这是适用于一般IGP的概述信息。 BGP与某特定IGP的关系不在此部分讨论。特定IGP的方法应在其他文档论述,在将来应成为标准化用法。
概论
根据定义,所有过渡AS必须能运输那些源于或终于该AS的流量。这要求在BGP和那个特定AS使用的内部网关协议(IGP)之间具有一定的联系和协调。一般来说,源于外部AS的流量将同时穿越内部网关(只支持IGP)和边界网关(支持IGP和BGP)。所有内部网关都通过IGP从一个以上的边界网关那儿接收有关外部路由的信息。 依靠在一个AS内传播BGP信息的机制,BGP和IGP之间的一致性须得到特别关注,因为状态的改变可能以不同的速度在AS内传播。可能出现时间窗,两个时刻分别为:在某边界网关(A)从相同AS内的另一台边界网关(B)获取新的BGP路由信息;AS的IGP能够路由过渡流量到边界网关(B)。在这两个时刻之间,错误路由和"黑洞"均可能发生。 为了尽可能减轻这个路由问题,在AS的所有内部网关准备好将目标为外部 IP的流量发往正确出口边界网关(B)之前,边界网关(A)不应该向外部对等体广播那些通过边界网关(B)运往外部目标网络的路由。换句话说,内部路由须会聚一个合适的出口网关,然后才能广播通过该出口网关前往外部对等体的路由。
A.2 实现稳定关系的方法
下面的讨论概述了几个能实现在AS内BGP和IGP之间稳定关系的技术。
A.2.1 通过IGP传递BGP信息
BGP提供自己的机制在AS内传递BGP信息,同样,只要IGP支持全部路由信息的洪泛(提供分散BGP信息的机制)和一条通路的会聚(使得机制有效原子化),就可以用来传输BGP信息。如果一个IGP用来传递BGP信息,前述的异步时间将不复存在,因为AS内部的BGP信息传递与IGP同步,IGP的会聚或多或少与新路由信息的到来同步。注意,IGP只运输BGP信息,不对其解析或处理。
A.2.2 标记的内部网关协议
当向外的路由在AS内传递时,一定的IGP可以用它们的出口点给它们做标记。每个边界网关应使用同一的标记声明外部路由信息(通过BGP接收),不管这些路由信息是进入IGP还是传递到其他的内部对等体(拥有相同AS号的对等体)。边界网关产生的标记必须唯一对应那个特定的边界网关——不同的边界网关必须使用不同的标记。 在一个AS内的所有边界网关必须遵守如下两条规则: 1. 如果边界网关A从内部对等体接收到信息声称某些目标网络不可达,则它必须向所有外部对等体传递该信息。 2.如果边界网关A从内部对等体接收到关于某些可达目标网络X的信息,则它必须拥有到X的IGP路由,而且IGP和BGP的路由信息都有对应标记,否则无法将这些信息传递到任何外部对等体。 这些规则保证了除非IGP正确支持,否则不向外声明路由信息。它也可以部分避免"黑洞"。 在AS内标记BGP和IGP的一种方法是使用出口边界网关的IP地址。这种情况下,BGP的UPDATE消息的"gateway"域将用作标记。
A.2.3 封装
封装为运输AS间过渡流量提供了最简单的机制(关于IGP和BGP的联系)。用这种方法,过渡流量封装在一个地址为出口网关的IP数据包内。这种方法对IGP的唯一要求是能够支持同一AS内边界网关间的路由。 前往某些外部目标网络X的出口网关A的地址,通过A向同一AS内其他边界网关发送的BGPOPEN消息中的BGP标识符进行声明。为了路由流量到目标X,AS内的每个边界网关都封装流量到以网关A为地址的IP数据包。然后,网关A解封装,将原始数据包发送到外部AS的对应网关。 因为封装不依靠IGP来运输外部路由信息,所以在BGP和IGP之间无需同步。 一些方法用来标识包含封装IP的数据包,如用IP协议类型码,必须在使用前定义。 注意,如果一个封装后的数据包的长度非常接近MTU,这个数据包将被那个执行封装的网关分片。
A.2.4 遍布的BGP
如果一个AS内的所有路由器都是BGP发言人,那么就没有必要联系BGP和IGP。这种情况下,AS内的所有路由器拥有BGP路由的全部信息。IGP只用来在AS中路由,不再有BGP路由被导入成IGP。 如果路由器按此方式工作,它们必须能够完成对路由表的循环查找。第一次查找将使用一条BGP路由来建立出口路由器,第二次查找将决定前往出口路由器的IGP路径。 这种情形下,IGP不携带任何外部信息,所有BGP发言人一旦获得路由的新信息,该AS内的路由器将很快会聚。因为不存在为IGP的会聚延迟,一个应用能广播这些路由,而没有延迟。
A.2.5 其他情况
有些AS的IGP,可能既无法传输BGP信息,也无法标记外部路由(比如,RIP)。另外,封装可能不可行或不被接受。这些情况下,以下两条规则须被遵守: (1). 如果边界网关A从内部对等体接收到信息声称某些目标网络不可达,则它必须向所有外部对等体传递该信息。 (2).如果边界网关A从内部对等体接收到关于某些可达目标网络X的信息,则它必须拥有到X的IGP路由,而且有足够的时间使IGP路由会聚,否则无法将这些信息传递到任何外部对等体。 以上规则只说明了传递BGP路由信息到其他AS的必要(但不充分)条件。与标记的IGP相比,这些规则不能保证,在传递路由到其他AS之前,到出口网关的内部路由存在。 如果IGP会聚时间比某小值X还小,IGP和BGP不同步造成的时间窗也将小于X,那么,路由不稳定是异常短暂的,这个问题就可以忽略。至于这个X的合理取值,尚待研究,但至少应小于1秒。 如果IGP会聚时间无法忽略,就需要不同的方法。适合这种情形的机制和技术尚待深入研究
该贴已经同步到 Pually的微博 |