FAQ-第3期-BGP及L3VPN

FAQ-第3期-BGP及L3VPN

1、BGP如何选路?

当到达同一目的地存在多条路由时,如果下一跳地址可达,BGP采取如下策略进行路由选择:

优选协议首选值(PrefVal)最高的路由;(缺省值0)

优选本地优先级(Local_Pref)最高的路由;(缺省值100)

优选聚合路由(聚合路由优先级高于非聚合路由);

本地手动聚合路由的优先级高于本地自动聚合的路由;

本地通过network命令引入的路由的优先级高于本地通过import-route命令引入的路由;

优选AIGP数值小的路由,有AIGP的路由优于没有AIGP的路由。

优选AS路径(AS_Path)最短的路由;

比较Origin属性,依次选择Origin类型为IGP、EGP、Incomplete的路由;

优选MED值最低的路由;(缺省值0)

优选从EBGP学来的路由(EBGP路由优先级高于IBGP路由);

优选AS内部到达BGP下一跳的IGP Metric最低的路由。如果配置了负载分担,并且有多条As_Path完全相同的外部路由,则根据配置的路由条数选择多条路由进行负载分担;

优选Cluster_List最短的路由;

优选Originator_ID最小的路由;

优选Router ID最小的设备发布的路由;

比较对等体的IP Address,优选从具有较小IP Address的对等体学来的路由。

2、RR通告路由的原则

从非客户机IBGP对等体学习到的路由,发布给此RR的所有客户机;

从客户机学习到的路由,发布给此RR的所有非客户机和客户机(发其此路由的客户机除外);

从EBGP对等体学习到的路由,发布给所有的非客户机和客户机。

3、什么是路由迭代?

BGP从IBGP邻居接收到一条路由,其下一跳一般是对端loopback地址,而这样的下一跳信息是不能指导转发的,需要计算出一个实际的出接口下一跳,这个过程就叫做迭代。

迭代分为两种,迭代出接口下一跳和迭代隧道:

迭代出接口下一跳是指根据以BGP学习到的下一跳为目的在IP路由表中查找。当找到一条具有实际的下一跳、出接口信息的路由后(一般为一条IGP路由),将其下一跳、出接口信息填入这条BGP路由的IP路由表项中并生成对应的FIB表项。

隧道迭代是指交叉进VPN实例的私网路由,这时的下一跳一般都是远端PE的Loopback地址,并没有出接口、OutGoingToken等信息,不能指导转发,需要去查找相应的信息填入转发表项。路由管理模块就会以这部分路由的下一跳为目的地址,在全局的隧道列表中查找是否存在到该目的地址的隧道信息。如果存在,则将该隧道信息填入路由表项,并生成对应的FIB表项。

4、什么是路由交叉?

路由交叉是指一条私网路由复制到其他VPN实例中。

根据路由来源不同,又可以分为远端交叉和本地交叉:

远端交叉是指从VPNv4学习到的路由,根据其属性中的Ext-Community值,逐个与本地的VPN下的Import Community进行匹配。如果能够匹配则将这条路由复制一份到该VPN实例下。

本地交叉是指某一个VPN实例下的路由根据ERT、IRT的匹配规则(和远端交叉的规则一样)复制到其他VPN实例下。

5、如何为VPN选择公网TE隧道

默认情况下,系统为VPN选择LDP LSP隧道,如果公网建立了TE隧道,系统并不会自动为VPN选择TE隧道,必须通过配置隧道策略来实现。配置VPN路由迭代到TE隧道的方法有两种:

(1)使用隧道绑定策略,配置步骤如下:

i. 在TE隧道的Tunnel接口视图下配置mpls te reserved-for-binding命令。配置该命令之后,那么该TE隧道为该VPN独享,非本VPN流量不得使用该TE隧道。

ii. 在系统视图下执行tunnel-policy命令,配置tunnel-policy。进入tunnel-policy视图后,使用tunnel binding destination dest-ip-address te { tunnel interface-number } &<1-6> [ down-switch ]命令配置隧道绑定策略,为到达远端CE的VPN路由绑定TE隧道。

iii. 在VPN实例视图下使用tnl-policy命令引用该tunnel-policy。

(2)使用顺序选择方式,在这种方式下,可以配置隧道负载分担,配置步骤如下:

i. 在系统视图下执行tunnel-policy命令,配置tunnel-policy。进入tunnel-policy视图后,使用tunnel select-seq cr-lsp lsp load-balance-number load-balance-number命令配置系统为VPN优先选择CR-LSP隧道,也就是TE隧道。使用load-balance-number参数可以配置进行负载分担的TE隧道的条数,其取值范围由License控制,在使用默认的License时,只能取值为1,不进行负载分担。

ii. 在VPN实例视图下使用tnl-policy命令引用该tunnel-policy。

6、BGP独立选路和IP路由表选路的关系?

在现有版本中,BGP实现了独立选路。当BGP从邻居收到路由后其选路步骤如下:

(1)先在BGP路由表中按照“BGP选择路由的策略”选路,此时不会比较路由协议优先级(preference)。在BGP路由表中优选的路由会被发布给BGP邻居。

(2)将优选的BGP路由添加到IP路由表。

(3)在IP路由表中进行协议间选路,此时会比较不同路由协议的优先级。

旧版本(VRPV500R007之前的版本,包含VRPV500R007版本)实现与现有版本不同。在旧版本中,当BGP从邻居收到路由后其选路步骤如下:

(1)首先将路由添加到IP路由表,在IP路由表内进行协议间选路,此时先比较路由协议优先级(preference)。如果路由在IP路由表中被优选,将允许被引入到BGP路由表中。

(2)在BGP路由表中按照“BGP选择路由的策略”选路,此时不会比较路由协议优先级。

(3)在BGP路由表中优选的路由会被发布给BGP邻居。

7、如何理解vpnv4 route distinguisher/vpnv4 vpn-instance/ ip route vpn-instance这三张表的关系?

这三张表是独立的, 先比较RT,通过的会放到RD表里。在RD表里:RD相同的都放到VPNV4表里, RD不同的,优选后放到VPNV4表里。

在VPNV4表里,发往PEER前,会检查有没有隧道, 是通过tunnel selector。

在私网VPN实例的路由表里,会通过tnl-policy来看能否迭代到隧道, 没有隧道的也不能放到私网路由表里。

VPNV4路由和VPN实例私网路由分别进行选路,二者没有相互影响,见BGP独立选路和IP路由表选路的关系部分。


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 xumeng32@126.com

文章标题:FAQ-第3期-BGP及L3VPN

文章字数:1.8k

本文作者:F_numen

发布时间:2020-02-13, 23:00:57

最后更新:2020-02-13, 23:20:32

原始链接:https://netheroone.cn/archives/a4f659e2.html

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录
/*baidu统计*/