BGP:边界网关路由协议(进阶版重发布)
无类别路径矢量型(AS-BY-AS)EGP协议
AS:自治系统--
1.标准编号16位二进制(0--65535)
1--64511为公有;64512-64535为私有。
2.扩展编号32位二进制
AS内运行IGP协议,实现全网可达--协议需要收敛快,选路佳,占用资源少。
AS间运行EGP协议,实现全网互通--协议需要
1.可靠性--基于TCP 179端口(单播)--非直连建邻接
2.可控性--BGP协议主要负责搬运IGP协议产生的路由,类似多点双向重发布,对选路不做计算需要管理员手工干涉选路。
3.AS-BY-AS--以一个AS为一跳
IGP--内部网关协议--rip ospf EIGRP isis......
EGP--外部网关协议--EGP BGP
1.BGP特点:
1.无类别路径矢量--距离矢量的升级版---AS--BY--AS;
2.使用单播更新来发送所有信息;基于TCP 179 端口工作;
3.增量更新--仅触发更新,无周期更新;
4.具有丰富的属性来取代IGP中的度量进行选路---多个参数控制协议;
5.可以在进项和出项对流量实施强大的策略--可控性;
6.默认不被用于负载均衡---通过各种选路规则仅仅产生一条最佳路径;
7.BGP支持认证和聚合(汇总);
2.BGP数据包
--基于TCP的179 端口工作;故BGP协议中所有的数据包均需要在TCP会话建立后,基于TCP的会话来进行传输及可靠性的保障;
首先基于TCP的三次会话寻找邻居;
open包:仅负责建立邻居关系,正常收发一次,携带route-id;
keeplive:保活,周期1min查询邻居关系是否存在;实际保活TCP会话;hold time默认为3min;
update:携带路由条目 目标网络号+各种属性;
notification:出现错误数据时收发;
EBGP:不同AS 建立的bgp关系
IBGP:同一AS 建立的bgp关系
3.BGP路由黑洞:
控制层可达;数据层不可达
解决方案:
1.物理或逻辑全连
2.邻居关系全连--所有路由器均运行BGP
3.将BGP重发布到IGP
4.MPLS--多协议标签交换
5.BGP水平分割:
1.EBGP水平分割:针对AS间的环路
AS-path属性:该属性用于记录该路由条目经过的所有AS编号;若BGP协议学习到一条路由其中包含了本地的AS号,将拒绝接受。
2.IBGP水平分割:针对AS内部的环路
本地从一个IBGP邻居处学习到的路由不得共享给本地的其他IBGP邻居;因为AS-BY-AS,一条路由条目在一个AS内部传递时,其属性不变;
打破IBGP水平分割规则:(保证不出现环路的前提下)
1.联邦 :在AS内划分小区域
2.路由发射器:反射器RR 客户端 非客户端 角色
RR作为中心,与客户端或者非客户端——IBGP邻居关系
1>一台RR作为中心,可以多台设备与它建立IBGP关系;构成一个簇;组中心为RR,其他设备为客户或者非客户;有且至少有一台客户;
2>反射规则:
1.RR从一台EBGP邻居学到的路由,可以传递给本地的其他客户,非客户,其他EBGP
2.RR从一台客户端学习到的路由,可以传递给本地的其他客户端,非客户端,其他EBGP
3.RR从一台非客户端学习到的路由,可以传递给本地的其他客户端,EBGP邻居;不能传递给本地其他的非客户端
建立邻居关系:
1.直连的EBGP邻居--物理接口直接建邻
2.建立IBGP邻居关系--建议使用环回作为源目IP地址建邻
3.直连的EBGP邻居间,存在多条物理链路
1>路由可达问题(静态路由)
2>环回建立
3>修改TTL值(EBGP间默认TTL值为1)
4.BGP宣告:
本地路由表中无论何种来源产生的任意路由条目;均可逐条宣告到BGP协议中宣告后产生BGP表;
*-----可用
>-----优
优且可用 标识 该条目本地可以加表(路由表)可以传递给本地的BGP邻居
下一跳不可达问题:修改下一跳;
1.BGP的宣告问题:
1.在BGP协议中每台运行的BGP的设备上,宣告本地直连路由;
2.在BGP协议中吗运行的BGP协议的设备还可以宣告通过IGP学习到的未运行bgp协议设备产生的路由;
在BGP协议中宣告本地路由表条目时,将携带本地到达这些目标的IGP度量值;传递到BGP邻居处;其他AS设备便于选择离目标最近的EBGP邻居;
若一台BGP设备,通过IBGP邻居学习到一条路由,存在度量值;同时本地需要将这些路由传输给本地其他的EBGP邻居时,只能将度量值取消,按0进行传输;导致选路参考值不优--建议在一个AS中若需要BGP设备宣告某条路由,那么该AS 内所有运行的BGP设备均宣告;