BGP 边界网关路由协议
BGP属于无类别的路径矢量协议
1.IGP和EGP的不同
协议 | 路由协议代表 | 优点 |
---|---|---|
EGP 外部网关路由协议 | BGP | 1.可控性强(管理员方便进行策略干涉选路) 2.可靠性强,基于TCP工作(BGP协议设备间需要交互大量的路由条目,但又不能选择周期更新来占用链路资源,故只能进行触发更新;且BGP协议工作环境中为节约成本,必然出现非直连建邻—单播邻居,) 3.AS-BY-AS |
IGP 内部网关路由协议 | RIP、OSPF、EIGRP | 1.无环(选路佳) 2.收敛快 3.占用资源小 |
2.BGP特点
- BGP仅发送单播消息,并且要与每个对等体建立一个独立的点到点的连接
- BGP是一种使用TCP(端口号179)的应用层协议,依靠TCP的内在特性实现会话的维护功能(如确认重传和排序)
- BGP是一种矢量协议,由于BGP将去往目的端的路由视为经过一系列自治系统的路径。所以称之为路径矢量协议。
- BGP路由利用AS_PATH路由属性来描述路径矢量,AS_PATH按序列列出了到达目的端的陆金所包含的AS号。
- AS_PATH属性是一种最短路径行列式,如果有多条路径去往同一目的端,那么AS_PATH中AS号最少的路径就是最短路径。
- 增量更新—仅触发无周期
- 具有丰富的属性来取代IGP中度量进行选路----多个参数控制协议
- 可以在进项和出项对流量实施强大的策略–可控性
- 默认不被用于负载均衡-----通过各种选路规则仅仅产生一条最佳路径
- BGP支持认证和聚合(汇总)
3.BGP数据包
在建立BGP对等连接之前,两个邻居必须执行标准的TCP三次握手,并打开端口179的TCP连接。所有BGP消息都采取单播方式经TCP连接传递给邻居。
4种基本消息类型:
Open(打开)消息
Keepalive(保持激活)消息
Updata(更新)消息
Notification(通告消息)
1.Open消息
TCp会话建立之后,两个邻居之间需要发送Open消息,每个邻居都用该消息标识自己,并指定BGP操作参数。
2.Keepalive消息
如果路由器接受邻居发送的Open消息中指定的参数,,那么就响应一条Keepalive消息。此后IOS将默认每60秒发送一条Keepalive消息,或者是按照已协商的保持时间的1/3为周期发送Keepalive消息。
3.Updata消息
用于宣告可行路由、撤销路由或两者。
4.Notification消息
路由器检测到差错之后会发送Notification消息,并且总要关闭BGP连接
4.BGP工作过程
【1】配置完成后,邻居间单播TCP三次握手,目标端口179,建立TCP会话;之后所有的BGP协议数据包基于该会话进行传输。
会话建立后,邻居间正常收发一次open报文建立BGP的邻居关系,生成邻居表;
BGP协议的open报文中携带本地的RID—生成方式和ospf一直;仅需要本地及本地所有邻居唯一即可。
【2】邻居关机建立后,默认每1min使用Keepalive周期保活邻居关系(周期保活TCP会话)。管理员选择性将本地路由表通过任意来源获取的路由条目,向BGP协议中进行宣告;使用Updata数据包进行邻居间路由共享;之后生成BGP表。
【3】收敛完成后,仅Keepalive周期保活
【4】若出现错误信息,邻居间将使用Notification报文进行报错操作。
结构突变:
【1】新增:本地使用Updata向本地所有邻居告知,前提该路由不被已经发出的聚合路由包含。
【2】断开:本地使用Updata向本地所有邻居告知,前提该路由不被已经发出的聚合路由包含。
【3】无法沟通:hold time 3min,连续3次未收到邻居的Keepalive,断开邻居关系、TCP会话,删除从该邻居处学习来的所有路由。
5.BGP路由黑洞
非直连建邻使得控制层面路由条目可以到达,递归路由可达,但是数据层面流量在经过没有运行BGP协议的路由器时无法通过。
解决办法:
- 1.物理、逻辑拓扑全连(物理链路直连或者VPN)
- 2.邻居关系全连(网络中所有设备运行BGP)
- 3.BGP重发布到IGP
- 4.MPLS(多协议标签交换)
6.BGP的防环机制(水平分割)
1.EBGP水平分割
依赖BGP路由条目中的一种属性来进行防环(AS_PASH路径属性)。BGP协议在传递路由条目的过程中,将记录所有经过的AS的编号。
EBGP水平分割:接收到的路由条目中,若存在本地的AS号将拒绝该条目进入。
2.IBGP水平分割
本地从一个IBGP邻居处学习到的路由条目,不得传递给本地的其他IBGP邻居。
在IBGP水平分割的限制下,虽然避免了IBGP的环路产生,但同时使得AS内部为了能够传递路由条目,必须俩俩间建立IBGP邻居关系,邻居关系成指数上升。可以使用联邦、路由反射器来解决。