BGP详解

BGP:

BGP:边界网关路由协议 无类别路径矢量EGP协议(为距离矢量型协议的升级版);
AS之间沟通使用的协议(AS为自治系统)
AS号: 0-65535 1-64511公有 64512-65535私有
对于IGP路由协议主要使命在路由的自动发现和计算上,而BGP主要在路由的控制和选择上。
BGP的版本:共有4个版本 V1,V2,V3,V4 现在是V4,若版本不一致则会协商,高版本兼容低版本。

EGP协议的三大特性:

1、可控性 ----BGP协议共享其他协议产生的路由,正常不关注选路;
2、可靠性 ----TCP—三次握手—单播----非直连建邻-----EGP承载于IGP之上
3、AS-BY-AS — 以一个AS为一跳

BGP特点:

1)无类别路径矢量 -----距离矢量的升级版—AS-BY–AS
2)使用单播更新来发送所有信息;基于TCP 179端口工作
3)增量更新–仅触发无周期
4)具有丰富的属性来取代IGP中度量进行选路----多个参数控制协议
5)可以在进项和出项对流量实施强大的策略–可控性
6)默认不被用于负载均衡-----通过各种选路规则仅仅产生一条最佳路径
7)BGP支持认证和聚合(汇总)

BGP的数据包–所有数据包基于TCP会话传递:

Open 存在hold time 和 RID;用于邻居关系建立;默认仅收发一次即可;
Keeplive 保活 周期1min保活 TCP会话 hold time 180s
Update 更新包 目标网络号+ 属性
Notification 报错包 错误信息出现时发送

BGP的工作过程:

1、IP可达—IGP
2、TCP会话
3、使用open报文建立邻居关系,生成邻居表;
4、之后使用update来共享路由信息,到邻居处;生成BGP表,装载所有本地发出及接收到的路由信息
5、之后将BGP表中最优路径加载于本地的路由表内;
6、收敛完成后,仅keeplive周期保活即可
7、若出现结构的变化—触发更新即可
8、若存在故障或错误信息时,使用Notification包进行报错

BGP的路由黑洞问题:

BGP协议可以非直连建邻,正常BGP可以在控制层面传递路由信息,但数据层面流量一旦需要经过未运行BGP协议的路由器时,将出现不可达,产生路由黑洞;
解决方法:
1、物理链路全连(浪费)
2、邻居关系全连(在多台路由器上太麻烦)
3、将BGP的路由重发布IGP协议(LAB,只能在实验环境下)
4、MPLS(推荐做法)

BGP的水平分割–BGP防环

EBGP水平分割:GP协议存在一种属性–AS-PATH,AS-PATH会记录所有经过的AS编号,若接收到的路由条目中,存在本地的AS编号,将拒绝接收该条目

IBGP水平分割:
基于AS-BY-AS规则,路由条目在一个AS内部传递时,默认属性将不发生任何变化;
IBGP水平分割规定----从一个IBGP邻居处学习到的路由不得传递该下一个IBGP邻居;在一个AS内为实现路径的正常共享,只能和所有设备建立IBGP邻居关系,导致建邻量成指数增长;
解决IBGP水平分割的方法:
1、 联邦 2、路由反射器(本质是使其中转路由且不更改下一跳,故必然有防环机制)

BGP宣告问题:

在BGP协议中,若宣告的路由非本地直连路由,那么将携带本地到达这些目标的度量值和下一跳地址;
度量:本地将携带本地到底目标的度量值,传输给本地的EBGP邻居;方便本地直连的AS内部设备挑选最佳的EBGP邻居;但这些若通过本地的IGBP邻居传递给它们的EBGP邻居时,度量值将归0;故建议所有存在EBGP邻居的BGP路由器均宣告内网路由;
下一跳:本地将路由传递给本地的EBGP邻居时,下一跳地址自动修改为本地;
----------若从IBGP邻居处学习到的路由条目中,下一跳地址为本地将拒绝接收;迫使所有存在EBGP设备的路由器均需要宣告内网路由;但next-hop-self会使得路由传递给邻居时下一跳地址修改为本地;故需要管理员自己为网络最佳在所有存在EBGP邻居的BGP设备上宣告内网路由。

BGP的11种属性:

Weihgt:cisco私有属性,不能传给所有邻居,用于选路的属性,选大

Origin起源:O表示宣告(i),1表示EGP学到(E),3表示其他手段得到的(重发布 ?),越低越好,本质是实别路由器的来源也可以用来做选路。

**ASpath:**本质是路径的记录,一条路有在传输过程中经历的哪些AS(不算自己),可以用来防环,越短越好(可以用来选路)

Next hop:到达路由的下一跳路由器IP地址

Local pref:只用于选路,最适合的情况是本地出口在多个路由器,只能在IBGP之间传递,用于本AS选择离开AS的出口路由器,默认为100值越高越好。

MED:metric,用于选择流入AS的入口路由器,可以在两个AS之间传递,越低越好默认0。
更多情况是影响对方选路
影响对方:1.在出向设置MED 2.在入向设置MED 3.和local pref共同作用双向影响
同一个AS才能进行MED的比较,不同的AS不能进行MED的比较。
Bgp always-compare-med 开启这个条命令可以进行不同AS间MED的比较。

Atomic aggregate:用来警告下游路由器路由聚合后产生的路由路径丢失。
BGP支持向BGP邻居传递重叠路由可以选择多种方式

Aggregator:用来通告汇总路由的汇聚路由器BGP-ID(cisco)

Community:standard(做路由标识) extended(MPLS VPN),可读性好,可控性好
BGP的路由条目数量庞大,所以用社团属性
1.internet默认属性,可以给任何bgp发送
2.No-export 只能在一个AS内传递,可以在联邦内传递
百度连接电信和联通,当电信和联通断了之后如何让百度不作为中转站
3.No-advertise不在IBGP邻居间传递
4.Local-as不向任何EBGP邻居发送包括联邦的EBGP邻居关系
Show ip bgp community

Originato id:路由反射使用,是路由发起者产生的一个32比特的值,该值是本地路由的发起者的RID,若收到有自己的RID说明有环路就忽略

Cluster list:路由反射器使用,是路由进过反射器簇ID的一个序号

BGP的选路规则:

比较前提–同步被关闭、下一跳可达;均可优
1、首先比较weight 大优–不传递 ,Cisco私有 EBGP/IBGP
2、比较本地优先级,默认100;仅IBGP邻居传递,大优 IBGP
3、优选本地下一跳
4、比较as-pash,经过的AS数量少优,EBGP邻居可增添 EBGP/IBGP
5、起源码最小 i-igp=0 e-egp=1 ?-incomplete=2 EBGP/IBGP
6、MED值最小 EBGP/IBGP
7、普通的EBGP邻居优于联邦内EBGP邻居优于IBGP邻居
8、优选最近的IGP邻居(IGP度量小)
9、优选最先建立EBGP邻居
10、最小BGP邻居的RID
11、优选最小的RR list 列表
注:BGP的max path(默认1)改掉的话,比到第8条停止,负载均衡。
其他BGP给的路由如果被自己宣告则会使metric变得非常大。

BGP详解_第1张图片

BGP的社团属性:

BGP的扩展属性;这些扩散属性数量庞大,默认大多数厂商不会传递这些属性的;故一旦使用社团属性,就必须开启传递性

你可能感兴趣的:(BGP详解)