学习
路无止境!

没有伞的孩子要学会努力奔跑!


  • 首页

  • 归档

  • 关于我

  • 公益404

  • 搜索

AWS-案例分析02(DX&BGP)

假设:

您的公司已设置AWS Direct Connect以将本地连接到Amazon VPC实例。

两个直接连接在两个不同的位置终止直接连接位置。您正在本地使用两个路由器,R1和R2(每个直接连接一个)。R1和R2它们之间的没有连通性。两个路由器通过BGP向VGW播发相同的路由。每个路由器上都有一个有状态防火墙。现在的情况是路由器丢弃来自专有网络的部分流量。

应该在本地采取什么措施来解决此问题?

考虑使用BGP属性:AS_Path,Local_Pref和MED(Multi_Exit_Disc)

网络拓扑

在这里插入图片描述

设计需要考虑的事项

  1. 有状态的防火墙:这就要求在设计上对流量的主用在同一链路进出,在本案例中要不考虑使用R1-DX路径,要不考虑R2-DX路径
  2. 路由选择:在本案例中需要在本地路由器上做配置,那么要影响公布给VPC的路由路径

BGP属性分析

BGP 路径属性

路径属性是已公布的BGP路由的一个特点。除了提供基本路由功能的必须的信息,路径属性允许BGP设置和互通路由策略。 每一个路径属性可能是下面四种中的一种:

  • 公认必选
  • 公认自选
  • 任选可透明传送
  • 任选非可透明传送

公认属性可以是强制性的,意味着所有的BGP Update 消息都要包括该属性,该属性也可以是任选的,也就是说在规定的更新消息中既可以包括它也可以不包括它。

如果一个任选属性是可传递的,即使BGP过程不支持该属性,它也应当接受包含该属性的路由并且把这个路径传送它的对端。

如果一个任选属性是不可传递的,不识别该属性的 BGP 过程可以忽略包含这个属性的Update 消息并且不向它的对端公布这条路径。

主要的属性及类别

属性类别
ORIGIN公认必选
AS_PATH公认必选
NEXT_HOP公认必选
LOCAL_PREF公认自选
ATOMIC_AFFREGATE公认自选
AGGREGATOR任选可透明传送
COMMUNITY任选可透明传送
MULTI_EXIT_DISC(MED)任选非可透明传送
ORIGINATOR_ID任选非可透明传送
CLUSTER_LIST任选非可透明传送

选路的准则

  1. 首选具有最高管理权值的路由。该功能是Cisco特有的。
  2. 如果权值相同,首选具有最高LOCAL_PREF值的路由。
  3. 如果LOCAL_PREF值相同,首选逻辑上在该路由器上发起的路由。也就是说,首选从同一个路由器上的IGP学习到的路由。
  4. 如果 LOCALPREF 值相同,而且没有逻辑上发起的路由,首选具有最短 AS_PATH的路由。
  5. 如果AS_PATH长度相同,首选具有最低原码(ORIGIN CODE)的路由。IGP低于EGP,EGP低于Incomplete。
  6. 如果源代码相同,首选具有最低 MULTI_EXIT_DISC 值的路由。只有当要考虑的所有路由的AS号都相同时,才会进行此项比较。
  7. 如果MED相同,在EBGP路由和联盟 EBGP路由中,首选EBGP路由,在联盟 EBGP路由和IBGP路由中首选联盟EBGP路由。
  8. 如果路由相同,首选到BGP下一跳最短的路径。这是一条到下一跳路由器的具有最低IGP度量的路由。
  9. 如果路由相同,它们来自相同的相邻AS并且通过maximum-paths命令使BGP多条路径可用,那么将所有开销相同的路由安装到Loc-RIB中。
  10. 如果多条路径不可用,首选具有最低BGP路由器ID的路由。

本案例中,我们需要考虑Origin、AS_Path、LOCAL_PREF和MULTI_EXIT_DISC(MED),其选路优先级为LOCAL_PREF>AS_Path>MULTI_EXIT_DISC(MED)。

1. ORIGIN 属性

ORIGIN是一个公认必选的属性,它明确了路由更新消息的来源。当BGP有多条路由时,它会将ORIGIN当作一个决定较优路由的因素。 它规定了下面几种源:

  • IGP–从发起者AS的一个内部协议可以学习到网络层可到达信息(NLRI)。一个IGP源会得到ORIGIN值中最佳的选项。如果BGP路由是从IGP路由表通过 network 命令学到的
  • EGP–NLRI是从EGP学习到的。相对于IGP,EGP是第二选择。
  • Incomplete–NLRI是通过其他手段学习到的。Incomplete 是ORIGIN 值的最低的选择。Incomplete 并不代表路由在任何情况下都有故障,只代表决定路由来源的信息不完整。 BGP通过再分发学习到的路由会携带不完整的源属性,因为在这种情况下无法决定路由的初始源。 如在使用MED属性后,看到的bgp的Origin属性就是Incomplete:
Innsbruck#show ip bgp 172.16.0.0
BGP routing table entry for 172.16.0.0/16,version 10
Paths:(2 available,best #2)
  Advertised to non peer-group peers:
    10.50.250.1 10.75.100.1
  30
    172.30.255.254 from 172.30.255.254(172.30.255.254)
      Origin incomplete, metric 200, localpref 100, valid, external,ref 2
  30
    10.100.65.1 from 10.100.65.1 (10.100.65.1)
      Origin incomplete,metric 100,localpref 100,valid, internal, best,ref 2

2. AS_PATH 属性

AS_PATH是一个公认必选(Well-Known Mandatory)属性,它用AS号的顺序来描述 AS间的路径或者到NLRI所明确的目的地的路由。

运行BGP的路由器在BGP路由表发现同一条路由信息如果有多个路径,会选择AS_PATH属性较短的路径。

当一个运行BGP的路由器发起一条路由(它在自己的AS域内公布一个有关目的地的NLRI),它会将自己的AS号加到AS_PATH中。

而后续的运行BGP的路由器向外部的对端公布路由,它们将自己的AS号附加到AS_PATH中。

结果是AS_PATH可以描述所有它经过的自治系统,以最近的AS开始,以发起者的AS结束。

注意,只有将Update 消息发送给在另外一个AS域内的邻居时,BGP路由器才将它的AS号加到AS_PATH中。 也就是说,只有在两个EBGP对等实体之间公布路由时,AS号才被附加到AS_PATH中。如果路由是在IBGP对等实体之间公布(对等实体在相同的自治系统内)不加入任何AS号。

AS_PATH Prepend BGP可以通过改变AS_PATH来影响进站流量,而使用的增加出站AS_Path 的ID方式达到目的。如下面的情况 在这里插入图片描述 NAP到AS 100的路由通常应该是NAP->AS 300->AS 100。

如果我们出于某种原因(AS 200提供更大带宽,Cost更便宜等),我们可以使用以下配置将AS 100 对201.126.0.0/16出站AS_PATH进行修改

router bgp 100
no synchronization
neighbor 10.100.82.1 remote-as 200
neighbor 10.100.83.1 remote-as 300
Loopbacko neighbor 10.100.83.1 route-map PATH out
....
no auto-summary
!
access-list 3 permit 201.126.0.0
!
route-map PATH permit 10
match ip address 3
set as-path prepend 100 100
!
route-map PATH permit 20

修改之后 在这里插入图片描述 NAP到AS100 的两条路径的AS_PATH分别为:500-200-100和300-100-100-100,NAP会选择前者。

3. LOCAL_PREF 属性

LOCAL_PREF是本地首选项的简写。

这个公认自选属性只用在内部网关对端之间的更新消息中;它不会传递给其他的自治系统。

该属性用于对一条已公布路由的BGP路由器的首选项等级进行交流。如果一个内部运行BGP的路由器收到了到一个目的地的多条路由,它将这些路由的LOCAL_PREF属性进行比较。选择具有最高的LOCAL_PREF的路由。

下图显示了如何使用LOCAL_PREF属性。 在这里插入图片描述

AS2101从两个ISP获得路由,需要把ISP1为首选服务提供商。 配置连接到ISP1路由器宣告路由的LOCAL_PREF为200,连接到ISP2的路由器宣告的路由的LOCAL_PREF为100(默认值),其值为4字节的数,0~4294967295。 所有的内部对等实体,包括连接到ISP2的路由器,对于同一目的,就会更优先选用从ISP1学到的路由。

我们可以看到,利用LOCAL_PREF属性可以影响离开AS的业务流量,限制就是仅仅在IGBP间作用。

4. MULTI_EXIT_DISC 属性

上面提到的LOCAL_PREF 属性只影响离开 AS 域的业务量。如果想影响入业务量,应该使用MULTI_EXIT_DISC 属性,它的简写是MED。

这个任选非传递属性于EBGP的Update 消息中携带,它允许一个AS将它首选的入口点通知另外一个AS。如果其他的参数都相同,收到到同一个目的地的多条路由的AS将这些路由的MED进行比较。

与选用最高LOCAL_PREF值的路由不同,具有最低MED值的路由是首选。这是因为将MED看作是一个度量,并且最低的度量(最短的距离)是首选。

如下图AS 525偏向于入业务量使用DS-3链路,而DS-1链路只用于备用。 在这里插入图片描述

MED DS-3传送的更新消息中,MED被置为0(缺省值),而通过DS-1传送的更新消息中,MED被置为100。 如两条路由没有其他不同的选项,ISP就会优先选择具有较低MED值的DS-3链路。

配置参考:

 AS 525 R2:
router bgp 525
...
neighbor 10.100.83.1 remote-as 300
...
neighbor 10.100.83.1 route-map MED out
!
access-list 1 permit 206.25.160.0/19

route-map MED permit 10
match ip address 1
set metric 100
!
route-map MED permit

注意,在ISP内,路由器之间使用IBGP。在内部的对等实体之间传递来自 AS 525的MED,从而使它们都知道优选的路由。 但是,不会在接收AS范围之外的地方传递MED。

例如,如果ISP向另外一个AS公布206.25.160.0/19,它不会将发起AS所置的MED传递给那个AS。这也就是说,MED只是在直接相连的自治系统间影响业务量。

为了影响相邻AS以外的路由选项,就像前面所描述的,必须对AS_PATH属性进行处理。

另外,如果到同一个目的地的两条路由来自两个不同的自治系统,也不进行 MED值的比较。 例如,如果上图中的ISP不仅从AS 525收到关于206.25.160.0/19的路由宣告,而且还从另外一个AS收到关于它的路由宣告,那么来自不同的自治系统的MED不会进行比较。

MED只对单一的AS有意义,当该AS有多个入口点时,它用来说明首选项的等级。

案例详细设计

  1. On premise的两台路由器之间没有连接,不能建立IBGP连接,所以不能选择Local_pref属性;
  2. 可以选择AS_PATH属性,参考前面AS_PATH Prepend的例子。可以将R1的出口AS_Path设置增加AS ID,以使得R2为VGW的首选。
  3. 可以使用 MULTI_EXIT_DISC 属性,如果选择R2作为首选,可以将R1对VGW发布的本地路由的MED值改为100。
  • 文章目录
  • 站点概览
Etaon

Etaon

Kepp Going!

80 日志
15 分类
43 标签
GitHub CSDN
友情链接
  • Kubernetes
  • Cisco
  • W3School
  • 廖雪峰
标签云
  • Mysql
  • Aws
  • Dql
  • Hadoop
  • Kubernetes
  • Nsx t
  • Redis
  • Azure
  • Cicd
  • Git
  • 假设:
  • 网络拓扑
  • 设计需要考虑的事项
  • BGP属性分析
    • BGP 路径属性
    • 选路的准则
    • 1. ORIGIN 属性
    • 2. AS_PATH 属性
    • 3. LOCAL_PREF 属性
    • 4. MULTI_EXIT_DISC 属性
  • 案例详细设计
© 2010 - 2023 路无止境!
Powered by - Hugo v0.101.0 / Theme by - NexT
/
Storage by Azure static web apps /
0%