您的BGP报文学习笔记(四)已抄送完毕,请查收!

Hi~新朋友,记得点蓝字关注我们哟

BGP

Confederation

BGP路由反射器可以用来减少大型AS中IBGP邻居关系的数量和简化IBGP邻居关系的管理和维护,BGP联盟(Confederation)也可以用来实现类似的目的。

一个BGP联盟是一个具有内部层次结构的AS,一个BGP联盟由若干个子AS(Subautonomous System)组成,子AS也称为成员AS(Member Autonomous System)。

对于一个BGP联盟,其成员AS内部的路由器之间需要建立全互联的IBGP邻居关系或使用BGP路由反射器,而成员AS之间需要建立EBGP邻居关系。

每个联盟都有一个联盟号(Confederation ID),它其实就是一个普通的AS编号。联盟各个成员AS通常使用BGP协议预留的私有的AS编号, 私有AS号为64512-65535。

BGP联盟

之间行为

① 增加成员AS,用于防环,格式为(64513 64514)100

② 下一跳地址不变

③ 保留Local-PREF

④ 保留MED

⑤ 邻居建立TTL值为1

01

防环机制:

BGP联盟之后可能会带来环路的风险,在BGP联盟中,使用以下两种属性进行防环:

① AS Confed Sequence

② AS Confed SET

(1)AS Confed Sequence:

有序的子AS号,AS-Path的Type为4,路由在联盟内部传递时,会携带AS Confed Sequnce,用于防止联盟内部的环路。

格式为(AS Confed Sequence、AS Confed Sequence)AS Sequence

(2)AS Confed SET:

AS-Path的Type为3,在联盟内部使用路由聚合时,如果开启了汇总路由携带明细路由的AS ID属性功能,会使用AS Confed SET携带这些属性ID

02

 BGP联盟配置:

R2:

[Huawei]bgp 2001----创建BGP子AS进程

[Huawei-bgp]router-id 1.1.1.1

[Huawei-bgp]confederation id 200—---设置子AS所属的总AS

[Huawei-bgp]confederation peer-as 202 203---设置联盟成员号

[Huawei-bgp]peer  3.3.3.3 as-number 202

[Huawei-bgp]peer 3.3.3.3 next-hop-local--不是真正的EBGP邻居,下一跳不更改

[Huawei-bgp]peer 3.3.3.3 connect-interface LoopBack 0

[Huawei-bgp]peer  3.3.3.3 ebgp-max-hop 10-修改TTL值(子AS之间为EBGP,TTL为1,使用loop口建立邻居ttl为1将不可达)

[Huawei-bgp]peer 5.5.5.5 as-number 203

[Huawei-bgp]peer 5.5.5.5 next-hop-local

[Huawei-bgp]peer 3.3.3.3 connect-interface LoopBack 0

[Huawei-bgp]peer  5.5.5.5 ebgp-max-hop 10

注:

Ø BGP联盟中,子AS之间的AS-Path变为(2003)200用于防环,并且TTL值只有1跳

Ø BGP联盟之间取消了水平分割的机制用于路由的传递

Ø BGP联盟默认在传递路由时不会更改下一跳

Ø BGP联盟默认在传递路由时会携带路由属性,等同于IBGP

BGP

路由黑洞

在BGP网络总,报文穿越AS内部路由器时,有可能会被AS内部中未运行BGP协议的路由器接收到。由于这样的路由器没有AS间的BGP路由信息,报文有可能会被直接丢弃,造成路由黑洞。

如图:

R1访问R5的2.2.2.2网络,将数据包送往R2,R2查找BGP路由表,下一跳为R4的192.168.3.2,使用迭代查找去往192.168.3.2的下一跳为R3的192.168.2.2/24,于是送往R2,R2收到去往2.2.2.2的数据包,查找路由表,发现路由表中没有2.2.2.2/24的路由条目,于是丢弃数据包,造成路由黑洞。

形成BGP路由黑洞的主要原因在于AS内部中IGP路由器没有AS外部的路由,解决方法为:

① IGP路由器中引入BGP路由

② 全部使用BGP路由

③ GRE隧道解决路由黑洞

④ MPLS技术解决路由黑洞

⑤ BGP同步

01

路由引入:

在运行IGP和BGP的AS边界路由器中,使用命令将BGP路由引入到IGP路由中,但是会造成中间的IGP路由器造成负担。

解决方法:

① 可以在BGP设备上汇总,将汇总路由引入到IGP路由表中

② 可以配置一条汇总的静态路由指向Null0,将这条汇总的静态路由引入的IGP路由表中

在引入时默认路由设备只引入EBGP路由,如果想要引入IBGP路由,使用import BGP permit IBGP,但是会带来环路的风险。

02

全BGP协议

无论是AS之间还是AS内部全部使用EBGP和IBGP路由,IBGP内部建立全互联,解决路由黑洞问题。

03

GRE隧道技术:

解决BGP路由黑洞可以采用GRE隧道技术,在数据包的头部在此封装一个IP头部,此头部为AS边界的路由器的IP网段,这样在AS内部传递中,IGP路由器查看数据包只查看最外层GRE增加的头部,将数据包送往AS边界路由器,AS边界路由器对去往另外AS的数据进行转发。

在R2和R4之间建立GRE隧道:

[Huawei]inter Tunnel 0/0/0

[Huawei-Tunnel0/0/0]ip address 10.0.100.2 24---配置隧道口的IP地址

[Huawei-Tunnel0/0/0]tunnel-protocol gre

[Huawei-Tunnel0/0/0]source 10.0.23.2-----定义新IP头部的源地址

[Huawei-Tunnel0/0/0]destination 10.0.34.4-----定义新IP头部的目标地址

[Huawei]ip route-static 10.0.45.0 24 Tunnel 0/0/0 preference 1

[Huawei]ip route-static 10.0.5.5 32 Tunnel 0/0/0 preference 1

注:R2收到数据包后,查看路由表去往10.0.5.5的下一跳地址为10.0.34.4,查找IGP路由表下一跳为10.0。2.3,下一跳送往R3,R3将数据包丢弃。配置静态路由的意思在于数据包去往10.0.3.4会走隧道口,进行隧道封装,增加新的头部,让R3直接送往R4。

04

 MPLS迭代标签:

设备默认不会为BGP单播路由分配标签,但是本端设备可以使用迭代查找的方式在BGP路有数据包前压入下一跳IGP的标签头部,用来解决路由黑洞。

① R4的4.4.4.4想要访问R5的5.5.5.5

② R4将目标地址为5.5.5.5的数据包送往R1

③ 配置了MPLS的R1收到目的地为5.5.5.5的数据包后,查看路由表5.5.5.5下一跳地址为3.3.3.3:

④ 再次查看去往3.3.3.3的标签:

⑤ 发现去往3.3.3.3的Out Label为1025,于是将BGP数据包增加标签头部为1025。

⑥ 收到标签为1025的IGP路由器查看标签转发表:

标签为3,进行次末节标签弹出,送往目的地3.3.3.3,最终数据包被R3收到。

配置:

华为设备默认不启用迭代标签压入,使用以下命令开启:

[Huawei]route recursive-lookup tunnel

05

BGP同步:

BGP同步是指路由器从EBGP邻居学习到的路由条目如果在IGP中也存在,才会将此条目传递给BGP邻居。如果BGP邻居学习到了一条路由条目,表示此BGP路由条目在IGP中也存在,同时解决了数据在传递过程中出现的路由黑洞问题。

注:华为默认关闭BGP同步,并且无法打开。

06

 物理mash:

在两个BGP speaker之间增加一条物理链路

为了方便广大网络爱好学习者一起学(聚)习(众)交(搞)流(基),特开设华为干货交流群,里面已经上传大量学习资料,欢迎广大网络工程师进群学习!

扫描下方二维码   进群学习交流

(0)

相关推荐