BGP的报文种类:
Open:打招呼“你好,和我交个朋友吧”
KeepAlive:我还活着哪,别不理我;
Update:有新闻……
Notfication:我不跟你玩了
BGP协议的状态机:
BGP的路由属性:
表达了路由的特征;
过渡和非过渡的;(过渡指的是经过其他自治区域后还可以保留的属性)
必遵和可选的;
便于扩展;
截止目前共16种属性;
起点(origin)属性:
一般的,具体的实现按如下方式决定一条路由的Origin属性;
某条路由是直接而具体的注入到BGP路由表中的,则Origin属性为IGP;
路由是通过EGP得到的,则origin属性为EGP;
其他情形下,Origin属性都为incomplete;
AS路径(AS-PATH)属性:(该属性只有在离开自治系统的时候才会加上;该属性有俩个作用,1用来优选路由;2防止环路,如果BGP收到一条标记自己自治系统路径的路由,将不会接受)
下一跳(Next Hop)属性:
在自治系统之间传送路由的时候边检路由器会强制改变下一跳的路由地址为本机,但是在自治系统内部传送的时候不改变,但是这样会导致有些情况下,路由不可达。
为了解决这样的问,可以使用以下方法:
1、在IBGP邻居上通告路由的时候修改下一跳为自己(推荐使用);
2、添加一个静态路由,或者用其他方法保证改BGP路由的下一跳可达;
如果一个ASDR的BGP路由器,从自己的IBGP邻居收到某条路由,准备转发给自己的EBGP邻居,如果说IBGP与EBGP邻居的地址在一个子网内,则本路由器通告该路由时不改变下一跳,这样可以防止次优路径的出现;
本地优先属性
该属性在自治系统内使用,缺省值100;
MED(Multi-Exit-DISC)属性
该属性在自治系统间使用,可以发送到其他自治系统内,缺省值0;
MED可以来自3个地址:
1、IGP的METRIC因为在重发布import-route IGP路由时,MED就是METRIC;
2、IGP的直连路由被重发布,那此时MED等于0;
3、通过汇总的BGP路由则无MED字段;
BGP路由器上用default med 1000 修改所有从此路由转发的路由的med值;
通过路由策略修改;
团体(community)属性
团体是一组有相同性质的目的地的路由,一个团体不限于一个网络或一个自治系统,它没有物理边界;
公认的团体:
no-export:不通告给联盟/AS外的EBGP相邻体;
no-advertise:不通告给任何BGP相邻体;
local-AS:不通告给EBGP相邻体;
BGP路由选择过程:
1、如果此路由的下一跳不可达,忽略此路由;
2、选择本地优先级较大的路由;
3、选择本地路由器始发的路由(本地优先级相同);
4、选择AS路径较短的路由;
5、依次选择起点类型为IGP,EGP,Incomplete类型的路由;
6、选择MED较小的路由;
7、选择Router ID较小的路由;