BGP选路原则

2.BGP选路原则

(1)实验 2.1 优选 Prefval 值更高的路由

【1】实验目的

深入理解13条选路原则的第一条,基于Prefval值选路;掌握修改Prefval值的两个方法。

【2】IP地址规划
  • 互联地址采用 10.1.XY.X/24位,比如 AR1与 AR2 的互联接口地址分别为 10.1.12.1/24和 10.1.12.2/24,以此类推。

  • 每台设备都有一个测试用的loopback0口,地址为10.1.X.X/32,比如 AR1的loopback0口地址为 10.1.1.1/32,以此类推。

【3】实验拓扑

【4】实验步骤
a.先配置基本的IP地址,此处略。
b.配置AS100内部的IGP,确保AR1,AR2的环回口可达。

在AR1上:

在AR2上:

c.配置AS100内部的IBGP连接关系,用lookback0作为建立IBGP连接的IP地址,配置下一跳为本地。

在AR1上:

在AR2上:

d.配置各个AS间的EBGP连接关系,用直连接口IP地址建立EBGP连接。

在AR1上:

在AR2上:

在AR3上:

e.在AR1上查看邻居状态

f.在AR3上用network的方法产生一条BGP路由

g.在AR3上去查看一下这条路由

  • 我们发现这条路由的Prefval值为0,因为起源于本地。
h.再去AR1上查看一下

  • 以上表示 AR1 这条路由从 AR3 学到了,然后也从 AR2 学到了。他们的 PrefVal 值都为0。现在因为选路原则(EBGP 优于IBGP)选择了从AR3来的路由。现在去修改成从AR2学到于的路由 PreVal值为 100,以重新选择为从 AR2 来的更优。
i.针对从某个邻居学习到的所有路由修改 PrefVal值。

在AR1上:

刷新一下BGP路由表:

再去查看AR1的BGP表:

  • 以上表示此路由重新选择了AR2,因为从AR2学习到的路由器前缀的 PrefVal值为1000。但此方法有不精确的地方,就是从 AR2 学过来的所有路由的 PrefVal值都会变成1000,所以我们一般会用第二种方法:
j.先在 AR1 上用 route-policy 去匹配这条路由然后优改此路由的 PrefVal值。

在AR1上:

再去调用这个route-policy

然后在AR1查看BGP路由表:

以上表明成功修改成了 200,并且我们发现,当我们二种方法都使用了的话,用route-policy 的这种方法的优先级会更高一些。

k.再去 AR3 上产生一条路由来观察这种现象。

然后在AR1上查看BGP路由表:

以上表示我们用route-policy精确匹配的一条被优先改成了200,其他的改成了1000。


(2)实验 2.2 优选 local preference 值更高的路由

【1】实验目的

深入理解13条选路原则的第二条,基于Local Preference值选路,掌握修改Local Preference值的两个方法。

【2】IP地址规划
  • 互联地址采用 10.1.XY.X/24位,比如 AR1与 AR2 的互联接口地址分别为 10.1.12.1/24和 10.1.12.2/24,以此类推。

  • 每台设备都有一个测试用的loopback0口,地址为10.1.X.X/32,比如 AR1的loopback0口地址为 10.1.1.1/32,以此类推。

【3】实验拓扑

【4】实验步骤
  • 基础环境搭建:IP 地址规划和前面实验一致。
  • 配置 AS100 内部的 IGP,确保 AR1,AR2 的回环口可达。
  • 配置 AS100 内部的IBGP 连接关系,用loopback0 作为建立 IBGP 连接的IP 地址,配置下一跳本地(next-hop-local)
  • 配置各个 AS 间的 EBGP 连接关系,用直连接口IP 地址建立 EBGP 连接以上步骤不再演示。做好以后,在 AR1,AR2,AR3 上都会看到两个 BGP 邻居关系。
a.在AR1上查看BGP邻居

b.在AR3上用network的方法产生一条路由10.1.3.3/32,此步骤也不再演示
c.做完以上步骤后去AR1上查看BGP表项

  • 以上表示从 IBGP 邻居 AR2 学到的路由默认的 Local preference 值为 100,从EBGP邻居 AR3 学到的值为空(EBGP 邻居过来的条目不带 local preference 值),但是本地路由器会赋予没有携带 local preference 的 BGP 条目默认值。所以此时通过 AR3 学来的路由前缀实质在本地的 local preference 值也为100。所以此时没有通过比较 localpreference 值选出最优路径。
  • 现在 AR1 的选择是从 AR3 学过来的路由前缀,我们去修改从 AR2 学过来的 localpreference 值为 200,然后去观察选路的变化。
d:用 route-policy 的方法针对某个邻居的某条路由做修改

先用 route-policy把要修改的路由匹配上修改成期望值:

在AR1上:

e.再去基于R2邻居调用即可

在AR1上:

f.刷新一下R1的BGP表项,然后再看BGP路由

  • 以上表示已经生效了。由于从 AR2学过来的这条路由local preference 值已经变成了200,被选为了最优。
  • 我们再去用另一种把从 AR3学过来的local preference 值改为 300,让 BGP 再把从 AR3选为最优:用下面的方法实现
g.修改缺省的local  preference 值,此命令只对从 EBGP 邻居学过来的路由和本地产生的路由生效。对于从IBGP 学过来的路由不生效。

在AR1上:

做完之后再去查看AR1的BGP表项:

  • 通过上面的表项看到了AR1只有通过AR3学习到了路由前缀,那为什么AR1没有了从AR2学过来的那条路由了呢?

h.我们去AR2上查看BGP表:

  • 以上表示 AR2 选择了从 AR1 过来的最优,所以没有再把这条路由回传给 AR1了,而且我们发现从 AR1 传递过来的前缀local preference 变成了 300,也正因为如此 AR1 上才只有从 AR3 学习到的前缓。这也说明了 local preference 值在同一个 AS 之间是可以相互传递的。

(3)实验 2.3 优选从本路由器始发的路由

【1】实验目的

深入理解13条选路原则的第三条,优选从本地注入的BGP条目。

【2】IP地址规划
  • 互联地址采用 10.1.XY.X/24位,比如 AR1与 AR2 的互联接口地址分别为 10.1.12.1/24和 10.1.12.2/24,以此类推。

  • 每台设备都有一个测试用的loopback0口,地址为10.1.X.X/32,比如 AR1的loopback0口地址为 10.1.1.1/32,以此类推。

【3】实验拓扑

【4】实验步骤
  • 基础环境搭建:IP 地址规划和前面实验一致。
  • 配置 AS100 内部的 IGP,确保 AR1,AR2 的回环口可达。
  • 配置 AS100 内部的IBGP 连接关系,用loopback0 作为建立 IBGP 连接的IP 地址,配置下一跳本地(next-hop-local)
  • 配置各个 AS 间的 EBGP 连接关系,用直连接口IP 地址建立 EBGP 连接以上步骤不再演示。做好以后,在 AR1,AR2,AR3 上都会看到两个 BGP 邻居关系。
a.在AR1上产生一条100.1.1.1/32的路由

这条路由必然会被AR2所学到,然后我们再去AR2上产生同样的一条路由。

b.在AR2上产生同样一条路由

c.在AR2上查看BGP路由表

  • 可以看到,从 AR2 本身宣告的条目 LocPrf为空,缺省是100。因此第一二条选路原则都不能选出最优 BGP 条目。下一跳为 0.0.0.0 的 BGP 条目为 AR2 自身宣告的条目,被选为最优。

(4)实验 2.4 优选有最短 AS_PATH 的 BGP 路由条目

【1】实验目的

深入理解13条选路原则的第四条,学会使用route-policy增加as-path影响

【2】IP地址规划
  • 互联地址采用 10.1.XY.X/24位,比如 AR1与 AR2 的互联接口地址分别为 10.1.12.1/24和 10.1.12.2/24,以此类推。

  • 每台设备都有一个测试用的loopback0口,地址为10.1.X.X/32,比如 AR1的loopback0口地址为 10.1.1.1/32,以此类推。

【3】实验拓扑

【4】实验步骤
  • 基础环境搭建:IP 地址规划和前面实验一致。
  • 配置 AS100 内部的 IGP,确保 AR1,AR2 的回环口可达。
  • 配置 AS100 内部的IBGP 连接关系,用loopback0 作为建立 IBGP 连接的IP 地址,配置下一跳本地(next-hop-local)
  • 配置各个 AS 间的 EBGP 连接关系,用直连接口IP 地址建立 EBGP 连接以上步骤不再演示。做好以后,在 AR1,AR2,AR3 上都会看到两个 BGP 邻居关系。
a.现在AR3上network宣告10.1.3.3的路由,然后在AR1上查看BGP表项

以上表示现在选择了从AR3过来的路由条目最优,我们现在去把从AR3学过来的路由前缀AS-path加长,这样就会选择从AR2过来的最优了。

b.在AR1上配置route-policy

c.再去针对AR3邻居调用这个route-policy

d.在AR1上查看BGP路由表:

以上表示已经成功了,重新选择了从AR2过来的路由为最优。并且也看到了新加的3个AS Path。

(5)实验 2.5 优选更低 Origin 属性的路由

【1】实验目的

深入理解13条选路原则的第五条,学会使用route-policy影响第五条选路原则。

【2】IP地址规划
  • 互联地址采用 10.1.XY.X/24位,比如 AR1与 AR2 的互联接口地址分别为 10.1.12.1/24和 10.1.12.2/24,以此类推。

  • 每台设备都有一个测试用的loopback0口,地址为10.1.X.X/32,比如 AR1的loopback0口地址为 10.1.1.1/32,以此类推。

【3】实验拓扑

【4】实验步骤
  • 基础环境搭建:IP 地址规划和前面实验一致。
  • 配置 AS100 内部的 IGP,确保 AR1,AR2 的回环口可达。
  • 配置 AS100 内部的IBGP 连接关系,用loopback0 作为建立 IBGP 连接的IP 地址,配置下一跳本地(next-hop-local)
  • 配置各个 AS 间的 EBGP 连接关系,用直连接口IP 地址建立 EBGP 连接以上步骤不再演示。做好以后,在 AR1,AR2,AR3 上都会看到两个 BGP 邻居关系。
a.现在AR3上network宣告10.1.3.3的路由,然后在AR1上查看BGP表项

  • 我们去把AR3学过来的路由的起源属性改为incomplete,这样就会重新选择AR2了。

在AR1上:

b.再对AR3调用这个route-policy

c.刷新一下路由表再去看现象

  • 我们发现从AR3学过来的路由起源已经变为了 “?” ,并且也选择了AR2作为最优。

(6)实验 2.6 优选最小 MED 值的路由

【1】实验目的

深入理解13条选路原则的第六条,学会使用route-policy影响第6条选路原则。

理解什么情况下MED值的比较生效,理解compare-different-as-med。

【2】IP地址规划
  • 互联地址采用 10.1.XY.X/24位,比如 AR1与 AR2 的互联接口地址分别为 10.1.12.1/24和 10.1.12.2/24,以此类推。

  • 每台设备都有一个测试用的loopback0口,地址为10.1.X.X/32,比如 AR1的loopback0口地址为 10.1.1.1/32,以此类推。

【3】实验拓扑

【4】实验步骤
  • 基础环境搭建:IP 地址规划和前面实验一致。
  • 配置 AS100 内部的 IGP,确保 AR1,AR2 的回环口可达。
  • 配置 AS100 内部的IBGP 连接关系,用loopback0 作为建立 IBGP 连接的IP 地址,配置下一跳本地(next-hop-local)
  • 配置各个 AS 间的 EBGP 连接关系,用直连接口IP 地址建立 EBGP 连接以上步骤不再演示。做好以后,在 AR1,AR2,AR3 上都会看到两个 BGP 邻居关系。
a.现在AR3上network宣告10.1.3.3的路由,然后在AR1上查看BGP表项

b.然后再从AR2查看BGP表项

  • 以上表示 AR1,AR2 分别都选择了各自的 EBGP 邻居 AR3 做为自己最优下一跳。现在我们去 AR3 上的出方向做修改,让 AS100(也就是 AR1 和 AR2)的所有流量都从 AR1进入AS200(也就是去访问 AR3)。
  • 针对于 AR1,我们修改 10.1.3.3/32路由的 MED值 500。针对于 AR2,我们修改为 1000这样就会选择 AR1。
c.在AR3上配置route-policy

d.再写针对AR2的route-policy

e.分别去调用他们

f.先在AR3刷新一下出向,然后去AR1,AR2查看BGP路由表

  • 以上表示 AS100 里面的 AR1,AR2 的选路都是从 AR1 进到 AS200 了,达到了我们的要求。

  • MED 值的比较条件:在 AS-PATH 中,默认第一个AS 号相同时才进行 MED 比较。
  • 现在我们让 AR2 收到的这条路由的第一个 AS 号不一致,再来看现象
  • 用我们刚才学到的知识,分别 AR1和 AR2 的入方向改变 AS-path (增加的长度要一样,AS 号码要不同)。
g.在AR1上

h.再去AR2上

h.直接在AR2 查看BGP路由表

以上表示 AR2 从 AR3 学过来的 metric 值为 1000,但他依然选择了 AR3 为最优,这就是因为他们的第一个 AS path 不一致,默认情况是不比较 Metric 值的。

i.这时,如果第一个AS path 不一致时,我们也可以用以下命令要求 BGP 去做比较

在AR2上:

然后再AR2上看BGP路由表:

以上表示在第一个AS不一致的时候,也开始比较MED值了。达到实验要求。

(7)实验 2.7优选从 EBGP 邻居学习到的路由

【1】实验目的

深入理解13条选路原则的第七条。

【2】IP地址规划
  • 互联地址采用 10.1.XY.X/24位,比如 AR1与 AR2 的互联接口地址分别为 10.1.12.1/24和 10.1.12.2/24,以此类推。

  • 每台设备都有一个测试用的loopback0口,地址为10.1.X.X/32,比如 AR1的loopback0口地址为 10.1.1.1/32,以此类推。

【3】实验拓扑

【4】实验步骤
  • 基础环境搭建:IP 地址规划和前面实验一致。
  • 配置 AS100 内部的 IGP,确保 AR1,AR2 的回环口可达。
  • 配置 AS100 内部的IBGP 连接关系,用loopback0 作为建立 IBGP 连接的IP 地址,配置下一跳本地(next-hop-local)
  • 配置各个 AS 间的 EBGP 连接关系,用直连接口IP 地址建立 EBGP 连接以上步骤不再演示。做好以后,在 AR1,AR2,AR3 上都会看到两个 BGP 邻居关系。
a.现在AR3上network宣告10.1.3.3的路由,然后在AR1上查看BGP表项

b.然后在AR2上查看路由表和详细路由

  • 可以看到 AR1 和 AR2 都优选直接从 AR3 学习到的 BGP 条目,而且在 AR2 上输出详细内容发现从 AR1 学习到的路由信息不优选的原因是“not preferred forpeer type”,同理AR1 上也是一样。
  • 备注:peer type类型两种,IBGP和EBGP,EBGP>IBGP。

(8)实验 2.8优选从更近的 BGP邻居学到的路由

 【1】实验目的
  • 深入理解13条选路原则的第八条,掌握通过调整去往BGP条目next-hop的路由的IGP度量值来影响BGP路由选路。
  • 其实这个用到的情况非常少,因为需要EBGP邻居之间也运行IGP协议,正常情况下EBGP邻居是不会跑IGP的。
  • 所以这个实验跳过,记住这个原理就行了。

(9)实验 2.9 BGP 的等价负载均衡

【1】实验目的

理解BGP的等价负载均衡,掌握打开和关闭IBP和EBGP的等价负载均衡。

【2】IP地址规划
  • 互联地址采用 10.1.XY.X/24位,比如 AR1与 AR2 的互联接口地址分别为 10.1.12.1/24和 10.1.12.2/24,以此类推。

  • 每台设备都有一个测试用的loopback0口,地址为10.1.X.X/32,比如 AR1的loopback0口地址为 10.1.1.1/32,以此类推。

【3】实验拓扑

【4】实验步骤
  • 基础环境搭建:IP 地址规划和前面实验一致。
  • 配置 AS100 内部的 IGP,确保 AR1,AR2 的回环口可达。
  • 配置 AS100 内部的IBGP 连接关系,用loopback0 作为建立 IBGP 连接的IP 地址,配置下一跳本地(next-hop-local)
  • 配置各个 AS 间的 EBGP 连接关系,用直连接口IP 地址建立 EBGP 连接以上步骤不再演示。做好以后,在 AR1,AR2,AR3 上都会看到两个 BGP 邻居关系。
 a.去AR2上产生一条路由

b.去AR3上查看BGP表与路由表

  • 以上表示 AR3 选择了从 AR1 传过来的路由,原因是因为从 AR1 学习到了这一条的route-id 小。但那不是前8条选路原则选出来的,所以这里我们就可以实现负载均衡。
c.接下来直接去AR3上打开负载分担就行了

d.然后再查看AR3的路由表

  • 以上表示这条路由有了两个下一跳,实现了负载分担。

(10)实验 2.10 优选拥有最短的 cluster-list长度的路由

【1】实验目的

深入理解13条选路原则的第十条。

【2】IP地址规划
  • 互联地址采用 10.1.XY.X/24位,比如 AR1与 AR2 的互联接口地址分别为 10.1.12.1/24和 10.1.12.2/24,以此类推。

  • 每台设备都有一个测试用的loopback0口,地址为10.1.X.X/32,比如 AR1的loopback0口地址为 10.1.1.1/32,以此类推。

【3】实验拓扑

【4】实验步骤
  • 基础环境搭建:IP 地址规划和前面实验一致。
  • 配置 AS100 内部的 IGP,确保 AR1,AR2,AR5,AR6 的回环口可达
  • 配置AR1,AR2,AR5全互联IBGP邻居,AR5与AR6配置IBGP邻居,以上配置自己配好。
a.配置AR1和AR2为RR,他们client都为AR5,然后配置AR5为RR,AR5的client为AR6。

b.再去AR6上用network方式产生一条BGP路由

c.去AR1上查看BGP路由表

  • 以上表项说明此路由的下一跳都是一样的,甚至我们都看不出来这两条分别是从哪里学来的。
d.再去看详细的

  • 可以看到选了Cluster List最短的。

(11)实验 2.11优选具有更小的 Originator ID或者是 route-ID的 BGP 邻居

 【1】实验目的

深入理解13条选路原则的第十一条。

【2】IP地址规划
  • 互联地址采用 10.1.XY.X/24位,比如 AR1与 AR2 的互联接口地址分别为 10.1.12.1/24和 10.1.12.2/24,以此类推。

  • 每台设备都有一个测试用的loopback0口,地址为10.1.X.X/32,比如 AR1的loopback0口地址为 10.1.1.1/32,以此类推。

【3】实验拓扑

【4】实验步骤
  • 基础环境搭建:IP 地址规划和前面实验一致。
  • 配置 AS100 内部的 IGP,确保 AR1,AR2 的回环口可达。
  • 配置 AS100 内部的IBGP 连接关系,用loopback0 作为建立 IBGP 连接的IP 地址,配置下一跳本地(next-hop-local)
  • 配置各个 AS 间的 EBGP 连接关系,用直连接口IP 地址建立 EBGP 连接以上步骤不再演示。做好以后,在 AR1,AR2,AR3 上都会看到两个 BGP 邻居关系。
a.去AR2上产生一条路由

b.去AR3上查看BGP表与路由表

c.然后直接看10.1.22.22这条路由的详细

  • 以上表示AR3选择了从AR1传过来的路由,原因是因为从AR1学习到的这一条路由的router-id小。

(12)实验 2.12优选具有最小BGP邻居地址的路由

 【1】实验目的

深入理解13条选路原则的第十二条。

【2】IP地址规划
  • 互联地址采用 10.1.XY.X/24位,比如 AR1与 AR2 的互联接口地址分别为 10.1.12.1/24和 10.1.12.2/24,以此类推。

  • 每台设备都有一个测试用的loopback0口,地址为10.1.X.X/32,比如 AR1的loopback0口地址为 10.1.1.1/32,以此类推。

【3】实验拓扑

【4】实验步骤
  • 基础环境搭建:IP 地址规划和前面实验一致。
  • 配置 AS100 内部的 IGP,确保 AR1,AR2 的回环口可达。
  • 配置 AS100 内部的IBGP 连接关系,用loopback0 和lookback1作为建立 IBGP 连接的IP 地址,以上步骤不再展示。
a.注意在AR1和AR2上分别都有lookback0和lookback1接口

b.接下来配置IBGP邻居

在AR1上:

在AR2上:

c.在AR2上用network方式产生一条BGP路由100.1.2.2/32

d.再去AR1上查看BGP路由表

  • 以上表示AR1选择了更小的IP地址建立的邻居关系的路由
e.再去查看详细信息,也会得到此结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值