您的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之间增加一条物理链路
为了方便广大网络爱好学习者一起学(聚)习(众)交(搞)流(基),特开设华为干货交流群,里面已经上传大量学习资料,欢迎广大网络工程师进群学习!
扫描下方二维码 进群学习交流