一、BGP概述及基本概念
1.1 前言
1.动态路由协议可以按照工作范围分为IGP和EGP。IGP工作在同一个AS内,主要用来发现和计算路由,为AS内提供路由信息的交换;而EGP工作在AS与AS之间,在AS间提供无环路的路由信息交换,BGP则是EGP的一种。
2.BGP是Border Gateway Protocol的简称。
3.BGP是一种增强的路径矢量路由协议,同时BGP是拥有丰富的策略控制技术的外部网关协议。
4.BGP多运行于AS于AS之间。
1.2 概述
1.2.1 外部网关协议
BGP是一种外部网关协议(EGP),与OSPF、RIP等内部网关协议不同,其着眼点不在于自动发现网络拓扑,而在于在AS之间选择最佳路由和控制路由的传播。
1.2.2 使用TCP作为其传输层协议
rip
:路由信息通过UDP传递
ospf
路由信息通过IP层传递
可通过telnet 到 route-server.ip.att.net 这台外网的路由器查看bgp的路由条目数
BGP使用TCP作为其传输层协议(监听端口号为179),提高了协议的高可靠性,且不需要专门的机制来确保连接的可控性。
BGP进行域间的路由选择,对协议的稳定性要求非常高,因此用TCP协议的高可靠性来保证BGP协议的稳定性。
BGP的对等体之间必须在逻辑上连通,并进行TCP连接。目的端口为179,本地端口号任意。
1.2.3 增量更新
路由更新时,BGP只发送更新的路由,大大减少了BGP传播路由所占用的带宽,使用于在Internet上传播大量的路由信息。
1.2.4 增强型的路径矢量路由协议
BGP通过携带AS路径信息来标记途径的AS
1.2.5 无环路
AS之间
:BGP通过携带AS路径信息来标记途径的AS,带有本地AS号的路由将被丢弃,从而避免了域间发生环路。
AS内部
:BGP在AS内学到的路由将不再通告给AS内的BGP邻居,避免了AS内产生环路。
- 路由策略丰富
BGP提供了丰富的路由策略,能够对路由实现灵活的过滤和选择 - 可防止路由振荡
BGP提供了防止路由振荡的机制(路由衰减)。有效提高了Internet网络的稳定性 - 易于扩展
BGP易于扩展,能够适应网络新的发展,主要是通过TLV进行扩展
未扩展前
:只支持ipv4 单播路由
扩展后
:新增支持ipv4组播、vpn v4 、vpn v6路由
1.3 BGP基本概念
1.3.1 自治系统AS
1.由同一个技术管理机构管理,使用统一选路策略的一些路由器的集合
2.每个自治系统都有唯一的自治系统编号,这个编号是由IANA分配的。
3.自治系统的编号范围是由1到65535(2字节-4字节
),其中1到84511是注册的因特网编号,64512到65535是私有网络编号(BGP网络中AS号码标识)
1.3.2 EBGP和IBGP
IBGP
: BGP运行于同一AS内部
EBGP
: BGP运行于不同AS之间
基本前提:因为要建立TCP连接,所以两端的路由器必须知道对方的IP地址,可以通过直连端口,静态路由或者IGP学习。(IBGP一般推荐使用路由器环回口loopback地址,EBGP用端口直连地址)
使用loopback地址时候要注意开启EBGP多跳功能,默认EBGP的TTL值为1
二、BGP工作原理
2.1 报文类型
2.1 BGP协议中消息应用
2.3 状态机
2.4 BGP路由通告原则
-
连接一建立,BGP Speaker 将把自己产生的所有BGP路由通告给对等体,多条路径时,BGP speaker只选最优的给自己使用
-
BGP speaker 从EBGP获得的路由将会向它所有BGP对等体通告(包括EBGP和IBGP)
-
保证IBGP下一跳可达
AR1把BGP路由信息通告给AR2,默认情况下AR2再把同样的路由信息通告给AR3的时候,路由的下一跳地址仍旧是AR1的接口地址,这时候需要修改配置,让AR2向AR3通告AR1传过来的路由信息时候,把下一跳地址改成AR2的接口地址
(在AR2和AR3同属于一个AS内的情况下)
peer x.x.x.x next-hop-local
-
BGP speaker从IBGP获得的路由不会通告给它的IBGP邻居(水平分割)
2.5 BGP发布路由的方式
三、BGP属性
3.1 BGP属性特点