BGP:边界网关协议

使用范围:BGP范围,在AS(自治系统)之间使用的协议

协议的特点(算法):路径矢量型,没有算法,有规则

(传拓扑信息是链路状态型,不传是距离矢量型)

无类别,协议传递网络掩码,支持VLSM(可变长子网掩码技术,网络掩码划分在主类网内部)和CIDR(无类别域间路由,网络掩码超越主类网边界)

协议消息数据包封装:基于TCP(保证可靠性,确认重传;单播)封装,端口号179

BGP协议的工作环境:也需要非直连建立邻居关系,故单播是最好的选择

非直连单播的前提是IP可达——BGP承载于IGP之上

AS:自治系统

由单一的机构或者组织所管理的一些列IP网络设备的集合

AS的管理

  每一个AS区域都有一个编号(ASN)

  IANA---互联网数字分配机构

  ASN由16位二进制组成,1--65535;公有AS(1-64511)私有AS(64512-65535)

AS通讯

  AS内部使用相同路由协议---内部网关协议(IGP——收敛快、选路佳、占用资源少)

  AS之间使用专有路由协议---边界网关协议

BGP协议特点

  1. AS到AS,是一种路径矢量型路由协议
  2. BGP协议版本,当前版本V4(V4+:理论上所有的路由条目都可以传)
  3. 更新地址:单播更新;基于TCP 179端口工作
  4. 更新方式:触发更新(仅触发无周期,当网络稳定时,不发送信息;不稳时发送)、增量更新(只发送改变的信息)
  5. BGP协议中存在大量的属性(是一种基于规则的路由协议)
  6. 支持路由认证
  7. 支持BGP路由聚合(可以分级进行聚合)(汇总)
  8. 是一种非常消耗资源的路由协议(每个路由器只能启动一个bgp路由协议)
  9. 默认不用于负载均衡——通过各种选路规则仅仅产生一条最佳路径
  10. 协议本身无法正常优选路径
  • 适合使用BGP的网络环境
  1. 传输AS
  2. 多宿主
  3. 需要对进入和离开的流量进行强大的策略控制时

BGP邻居关系

IBGP:内部BGP邻居;相同AS之间建立的邻居关系,其学习到的路由为IBGP路由

EBGP:外部BGP邻居;不同AS之间建立的邻居关系,其学习到的路由为EBGP路由

IBGP:IBGP的水平分割机制( IBGP的只传一跳,通过一个IBGP邻居学习)

EBGP:AS-Path

BGP邻居状态机制

Idle:初始化 检查对方IP地址有无路由,有路由就三次握手然后经历下面的

224.0.0.x:具有特殊意义,本地链路组播地址,ttl=1

Connect:连接  Active:活动

Opensent:发送open报文  Openconfirm:open报文确认

Keepalive:周期性发送保活报文;收到此报文表示邻居状态建立

Established:邻居状态

BGP消息数据包

BGP 数据包基于TCP的179端口工作;放BGP协议中所有的数据包均需要在 tcp 会话建立后基于TCP 的会话来进行传输及可靠性的保障;

首先通过 TCP的三次握手来寻找到邻居:

Open开启  仅负责邻居关系的建立,正常进收发一次即可;携带 route-id;

Keeplive 保活  周期1min 查询邻居关系是否存在;实际保活TCP会话:hold time 默认3min

Update更新  携带路由条目  目标网络号+各种属性

Notification报错  出现错误数据时收发;

BGP的工作过程

1、IP可达-建立BGP间的两台设备必须能通一可以直连,也可以非直连IGP协议来完成ip地址一静态 rip  ospf  ISIS

2、BGP协议启动后,单播TCP三次握手建立会话一之后所有的数据均在该会话中传输,来保障传输的可靠性

3、正常仅收发一次open报文,建立邻居关系,生成邻居表;邻居关系建立后,由管理员选择性的宣告路由条目;之后这些条目基于更新包

4、到达邻居处;生成BGP表一本地发出及接收到达所有路由条目;

5、之后本端基于本端BGP表,将表中最优路径加载于路由表中;

6、收敛完成,完成后仅keekplive 1min周期保活即可结构突变一新增断开update无法沟通;3min无keeplive,断开邻居,删除BGP表中该邻居传递过来的路由

BGP路由黑洞

由于BGP协议可以非直连建立邻居关系,故可能出现BGP 协议邻居间跨越了未运行 BGP 协议的路由器,导致 BGP 路由传递后,控制层面显示可达,但数据层面,流经过未运行 BGP 协议的路由器时,无法通过,最终不通--- 控制层面可达、数据层面不可达

路由黑洞解决方案:

1、物理或逻辑链路全连

2、BGP邻居关系全连——所有路由器均运行BGP

3、IGP 重发布到 BGP

4、MPLS多协议标签交换技术(推荐做法)

BGP的防环机制——水平分割

1、EBGP水平分割——防御EBGP环境下的环路

BGP协议将在路由条目中记录所有经过的AS 编号;---as-path 属性——装载所有经过过的AS 编号属性接收到的 BGP条目中,若 as-path 属性存在本地的AS 号将拒绝接收

2、IBGP 水平分割——防御IBGP 环境下的环路

AS-BY-AS 特性——以一个 AS 为一跳;因此在一个AS 内部传递的路由,其属性默认没有任何变化

IBGP 水平分割——从一个IBGP 邻居处学习到的路由,不得传递给本地的其他的IBGP 邻居;为了实现所有BGP 设备学习到所有路由,在BGP 水平分的条件下,两两间均需要建立 IBGP 邻居关系

IBGP 邻居关系的数量成指数上升

后期可以使用联邦或路由反射器来打破

BGP配置

1、在BGP协议中、邻居的建立,与路由条目的宣告是分开进行的:

[1]直连的 EBGP 邻居间建立

[r1bgp1启动时需要定义其所在的 AS号没有多进程的概念

[r1-bgp]router-id 1.1.1.1

[r1-bgp]peer 12.1.1.2 as-number 2 建立邻居关系,定义对端设备的ip 地址,及所在AS 编号

建议配置RID、与OSPF的RID 配规则一致

[2]建立IBGP 邻居关系

由于IBGP 邻居处于同一个AS中,正常一个AS 的内部存在大量的备份路径: 若使用物理接口建立邻居关系,将浪费这些备份或负载均衡路径:故建议使用环回接口来进行IBGP 邻居关系:

[r2]bgp 2

[r2-bgp]peer 3.3.3.3 as-number 2

[r2-bgp]peer 3.3.3.3 connect-interface LoopBack 0

切记:一旦使用环回地址做为建邻地址,同时需要修改源 ip 地址,为本地的环回地址

  1. EBGP 邻居间,存在多条物理链路的建立方案

建议使用环回来作为源、目标ip 地址;便于用所有物理链路

1、IP 可达问题,一般使用静态路由

2、正常使用环回地址作为源、目来建立邻居关系

[r5]bgp 3
[r5-bgp]peer4.4.4.4 as-number 2
[r5-bgp]peer 4.4.4.4 connect-interface LoopBack 0
3、EBGP 邻居间,默认TTL值为1,BGP为255;因为理论上EBGP 邻居间没有第三台路由器,故TTL值设定为1,将只能和直连的物理接口建立邻居:一旦使用环回,必须修改TTL 值[r4-bgp]peer 5.5.5.5 ebgp-max-hop 2 修改EBGP邻居间的TTL值
两端配置完成后,将基于TCP的三次握手,建立TCP会话
[r1]display tcp status
TCPCB         Tid/Soid Local Add;port    Foreign Add:port     VPNID    State
b4d0f018 164/5  12.1.1.1:179             12.1.1.2:49877       0     Established
固定端口的使用者为服务端:
会话建立后,邻居间使用 open 报文,建立BGP的邻居关系;生成邻居表
[r1]display bqp peer
BGP local router ID :1.1.1.1
Local AS number :1

bgp open报文 bgp报文封装在什么协议中_服务器