本文研究了Internet连接的不同情况以及您为什么选择使用BGP的原因 。对于此讨论,将使用企业网络工程师的观点。
这样,出站路由被认为是从企业网络到Internet的直接数据包,而入站路由是指从Internet到企业网络的直接数据包。
为了有助于讨论,本文研究了四个单独的情况:
- 单宿主(每个ISP 1个链接,1个ISP)
- 双宿主(每个ISP 2个以上的链接,一个ISP 1个)
- 单多宿主(每个ISP 1个链接,2个以上ISP)
- 双多宿主(每个ISP 2个以上链接,2个ISP以上)
单宿主
在单归属网络设计采用一个单一的ISP,与企业和ISP之间的单一链路。采用单宿主设计时,对于Internet目的地的任何和所有路由,仅存在一个可能的下一跳路由器。
结果,无论您使用BGP做什么,所有学到的路由都会为每条路由列出相同的传出接口,这使使用BGP的好处最小化。
单宿主设计通常使用以下两个选项之一来路由到Internet和从Internet路由:
- 使用静态路由(企业中的默认路由,以及在ISP处用于企业公共地址范围的静态路由)。
- 使用BGP,但仅用于交换默认路由(ISP到企业)和企业公共前缀的路由(企业到ISP)。
对于第二种选择,该概念仍然使用IGP的机制来泛洪整个企业中的默认路由,从而使所有数据包都流向面向Internet的路由器。但是,必须使用以下方法来代替静态路由:
- ISP路由器使用BGP向企业发布默认路由。
- 您必须在企业的面向Internet的路由器上配置IGP以泛洪默认路由(通常仅当该路由器的路由表中存在默认路由时)。
- 您必须在企业路由器上配置BGP并将企业的公共前缀发布给ISP
双宿主
双宿主设计具有到Internet的两个(或更多)链接,但所有链接都连接到单个ISP。此类设计可以使用一对路由器,两个对或它们的组合,如下图的三种情况所示。
将双宿主设计与单宿主设计进行比较,第二个链接为企业提供了选择。企业路由器可以在两个链路之一之间进行选择,对于具有两个企业路由器的情况,选择不同的链路也意味着选择将数据包发送到不同的路由器。
上图中显示的每种情况都很有趣,但是具有两个企业路由器的情况提供了最多的考虑因素。在考虑是否在这种情况下使用BGP(如果使用)以及如何使用BGP时,请首先考虑是否要影响出站路由的选择。忽略BGP,使用默认值的常见情况如下:
- 为了在所有目标位置上优先使用一个Internet连接而不是另一个Internet连接,但是当更好的ISP连接失败时,所有流量都会重新路由到辅助连接。
- 为了将两个Internet连接均等对待,请通过每条路径向某些目标发送数据包。但是,当一个失败时,所有流量都会沿仍在工作的路径重新路由。
现在,本文按顺序检查了每个选项,包括有关如何使用部分和全部BGP更新来选择最佳出站路由的讨论。
对于所有目的地,优先选择一条路径而不是另一条路径
当设计要求始终优先选择两个Internet连接之一时,无论目的地是什么,都可以使用BGP,但这不是必需的。为了优先选择一条路径而不是另一条路径,路由器可以使用默认路由进入Internet。
为了说明这一概念,下图显示了双宿主设计,这次是将两个路由器(E1和E2)连接到Internet。每个路由器都有到单个ISP的单个链接。图13-10显示了使用默认路由将所有流量转发到路由器E1时产生的路由。
上图显示,所有路由器都将以Internet为目的地的数据包转发到路由器E1,因为该路由器具有到ISP1的更快的Internet连接(在这种情况下为100 Mbps)。同样在此示例中,从路由器E2到ISP1的另一个连接使用10 Mbps链路。
为了使该设计能够进行故障转移,E1和E2都需要向企业发布默认路由,但是主路由器(E1)所发布的路由需要设置指标,以便始终是两者中的佼佼者。路线。
例如,使用EIGRP,E1可以配置静态默认路由,将路由器I1-1作为下一跳,但是在重新分配到EIGRP时具有很高的带宽和非常小的延迟。相反,E2可以为路由器I1-2创建默认值作为下一跳路由器,但带宽低但延迟高。
下例显示了如何使用redistribute命令在Cisco路由器中设置度量标准,从而在E1和E2上配置静态默认路由。
使用BGP选择一条路径通过另一条路径
当您想影响哪个链接用于Internet上的某些目的地时,就会使用BGP。要查看这种情况,请考虑下图,该图将Company 3添加到了设计中。在这种情况下,公司3使用前缀192.135.250.0/28作为其公共地址范围。公司3可能位于ISP1中比路由器I1-1更靠近I1-2的位置,在这种情况下,BGP设计要求使数据包流经所示路由。
除了所示的eBGP对等体的基本配置之外,必须执行两个值得注意的操作才能使此设计生效。首先,企业和ISP的工程师必须就如何使BGP将前缀指定为通过特定链接的最佳可达性达成一致。在这种情况下,I1-2为192.135.250.0/28的前缀发布的路由必须具有比从I1-1获悉的路由更好的BGP PA设置。
在这种情况下,您不能仅仅依靠检查AS_PATH的长度,因为AS_PATH的长度可以绑定,因为I1-1和I1-2在同一ASN中。因此,在与ISP1的工程师进行规划时,企业网络的工程师必须讨论哪种前缀可以通过I1-1更好地工作,哪些前缀可以通过I1-2更好地工作,以及ISP如何将PA值设置为企业路由器(E1和E2)可以做出反应。
第二大考虑因素发生在企业网络内部,需要在多个路由器之间运行BGP。到目前为止,在本章中,企业路由器都使用默认路由将数据包发送到面向Internet的路由器,只有那些路由器知道Internet路由。但是,为了使图3的设计正常工作,E1和E2必须使用iBGP连接来传递BGP路由。
由于E1和E2之间的数据包转发通过其他路由器(例如Core1和Core2)进行,因此这些路由器通常还需要运行BGP。您甚至可能还决定在WAN路由器上运行BGP。这样,核心路由器将知道最佳的BGP路由。
例如,他们都知道公司3的192.135.250.0/28公共地址空间的最佳路由是通过E2,因此数据包将转发到E2。以下列表概述了图3所示的匹配逻辑:
- 分支B1的主机将数据包发送到192.135.250.1。
- 路由器B1匹配其默认路由,将数据包转发到路由器WAN2。
- WAN2将其通过iBGP学习的路由匹配为192.135.250.0/28,然后转发到Core2。
- Core2将其通过iBGP学习的路由匹配为192.135.250.0/28,转发到E2。
- E2将其通过eBGP学习的路由匹配为192.135.250.0/28,转发到I1-2。
- ISP1中的路由器将数据包转发到公司3中的路由器I3。
企业核心中的路由器需要运行BGP,因为如果没有BGP,可能会发生路由环路。例如,如果WAN1,WAN2,Core1和Core2不使用BGP,而是依靠默认路由,则它们的默认设置会将数据包驱动到E1或E2。然后,E1或E2可能已将数据包直接发送回Core1或Core2。(请注意,E1和E2之间没有直接链接。)
单多宿主
单多宿主拓扑是指每个ISP有一个链接,但有多个(至少两个)ISP。下图显示了几个单多宿主设计,每个都有两个ISP。
单多宿主设计与本节先前看到的单宿主和双宿主设计都有一些相似之处。图顶部的单多宿主设计使用单个路由器,就像企业中默认路由的单宿主设计一样。
这种设计可以在整个企业中泛洪一条默认路由,从而将流量吸引到该路由器,因为只有一个路由器连接到Internet。使用图4下半部分的双路由器设计,企业中仍可以使用默认路由将流量吸引到首选的Internet连接(如果首选),或在两者之间平衡流量。
单多宿主设计在某些方面类似于双宿主设计,因为两个(或更多)链接将企业连接到Internet。通过两个链接,Internet设计可能会要求使用默认值,始终偏爱其中一个链接。设计工程师还可能选择使用BGP,了解全部或部分更新,然后为某些路由选择一个连接优于另一个连接。
双多宿主
最后一种通用的Internet访问拓扑称为双多宿主。通过这种设计,可以使用两个或多个ISP,每个ISP具有两个或多个连接。可以使用许多不同的路由器。请看下图。
上图未显示所有设计选项,但是由于至少有两个ISP,每个ISP至少有两个连接,因此冗余度可能很高。该冗余可以用于备份,但是最常见的是,BGP用于做出有关到达各种目的地的最佳路径的一些决策。