BGP是不同自治系统的路由器之间交换路由信息的协议,采用路径向量路由选择协议。
只能力求选择出一条能够到达目的网络且比较好的路由,不是计算出一条最佳路由。
首先互联网规模太大,使得AS之间路由选择非常困难。其次自治系统AS之间路由选择需要考虑安全。
BGP发言者:
在AS之间,BGP发言者(自治区域边界路由器)交换信息,建立TCP连接和BGP会话,这种连接称eBGP连接,在不同AS之间交换路由信息。
在AS内部,任何相互通信的两个路由器之间有一个逻辑连接(TCP连接),称为iBGP连接,在AS内部路由器之间交换BGP路由信息。
在AS内部运行内部网关协议IGP,和协议iBGP。
在AS之间运行协议eBGP。
iBGP和eBGP是同一个协议,实用的报文类型、属性等都一样,但是在通报前缀时采用的规则不同:
在eBGP连接的对等端得知的前缀信息,可以通报给一个iBGP连接的对等端。反过来也可以。
但从iBGP连接的对等端得知的前缀信息,不能通报给另一个iBGP连接的对等端。
BGP路由信息:
BGP路由=【前缀,BGP属性】=【前缀,AS-PATH,NEXT-HOP】
前缀指明到哪一个子网(用CIDR法表示)
AS-PATH:BGP路由经过的自治系统
NEXT-HOP:BGP路由起点
不同的自治系统
末梢AS:不会把来自其他 AS 的分组再转发到另一个 AS。必须向所连接的 AS 付费
多归属AS:同时连接到两个或两个以上的 AS
穿越AS:为其他 AS 有偿转发分组
对等AS:经过事先协商的两个 AS,彼此之间的发送或接收分组都不收费
BGP路由避免兜圈子:在AS-PATH中,不允许出现相同的AS号,否则立刻删除掉这条路由
BGP路由选择:
本地偏好LOCAL-PREF值最高的路由首先选择:
AS跳数最小:
但是分组在AS4中反而要经过更多次转发,说明协议BGP不存在最佳路由选择
热土豆路由选择算法
分组比喻为烫手的热土豆,要尽快地转发出去。
选择BGP标识符数值最小的路由
。。。
BGP的四种报文:
open(打开):用来与相邻的另一个 BGP 发言者建立关系,使通信初始化
update(更新):用来通告某一路由的信息,以及列出要撤销的多条路由。
KEEPALIVE (保活):用来周期性地证实邻站的连通性
NOTIFICATION (通知):用来发送检测到的差错
BGP报文通用首部: