一.AS
概念 |
Autonomous System,自治系统。AS是指由同一个技术管理机构管理,使用统一选路策略的一些路由器的集合 |
范围 |
AS的内部使用IGP来计算和发现路由,如OSPF,ISIS,RIP等 |
|
AS之间使用BGP传递和控制路由 |
BGP进程号 |
公有:1~64511 |
|
私有:64512~65535 |
分配 |
每个AS都有唯一的AS编号,这个编号是由IANA分配的 |
二.BGP的邻居关系
邻居的发现 |
BGP使用TCP封装建立邻居关系,端口号为179,TCP采用单播建立连接,单播建立连接也使BGP只能手动指定邻居 |
|
|
建立条件 |
确保TCP179端口可达,确保网络层可达 |
|
|
类型 |
EBGP |
范围 |
不同AS之间 |
|
|
建立方式 |
优先使用物理接口建立 |
|
IBGP |
范围 |
同个AS之间 |
|
|
建立方式 |
优先使用loop back建立 |
配置Router ID(标识路由器) |
如果没有配置Router ID,BGP路由器会按一定规则自动选举Router ID |
选举规则 |
路由器在它的所有LoopBack接口上选择数值最高的IP地址 |
|
|
|
如果没有LoopBack接口,路由器会在它的所有物理接口上选择数值最高的IP地址 |
区别 |
BGP邻居关系的类型主要靠配置的AS号区别,AS号相同则为IBGP邻居关系;AS号不同,则为EBGP邻居关系 |
|
|
三.报文类型
Open报文 |
是TCP连接建立后发送的第一个报文,用于建立BGP邻居之间的连接关系 |
|
Update报文 |
用于在BGP邻居之间交换路由信息,用来公布可用路由和撤销路由 |
包含 |
|
|
网络层可达信息(NLRI),用来公布IP前缀和前缀长度 |
|
|
路径属性,为BGP提供环路检测,控制路由优选。 |
|
|
撤销路由,用来描述无法到达且从业务中撤销的路由前缀和前缀长度 |
Notification报文 |
当BGP路由器检测到错误状态时,就向邻居发出Notification报文,之后BGP连接会立即中断 |
|
Keepalive报文 |
BGP路由器会周期性的向邻居发出Keepalive报文,用来保持连接的有效性 |
|
Route-refresh报文 |
Route-refresh用于在改变路由策略后请求对等体重新发送路由信息 |
|
四.邻居关系建立过程
初始状态 |
Idle状态是BGP初始状态。在Idle状态下,BGP路由器拒绝邻居发送的连接请求。只有在收到本设备的Start事件后,BGP路由器才开始尝试与其邻居进行TCP连接,并转至Connect状态。 |
Connect状态 |
BGP路由器启动连接重传定时器(Connect Retry),等待TCP完成连接 |
TCP连接成功的情况 |
OpenSent---OpenConfirm---Established |
TCP连接失败的情况 |
转至Active状态,如果连接重传定时器超时,BGP路由器仍没有收到邻居的响应,那么BGP路由器转至Connect状态 |
五.路由的生成方式
Network |
逐条将IP路由表中已经存在的路由引入到BGP路由表中 |
Import |
根据运行的路由协议(RIP,OSPF,ISIS等)将路由引入到BGP路由表中,同时import命令还可以引入直连和静态路由,为了防止其他路由被引入到BGP中,需要配置ip-prefix进行精确匹配,调用route-policy在BGP引入路由时进行控制 |
六.BGP的通告原则
仅将自己最优的路由发布给邻居 |
连接一建立,BGP路由器将把自己所有BGP路由通告给新对等体,多条路径时,BGP路由器只选最优的给自己使用,BGP路由器只把自己使用的最优路由通告给对等体 |
通过EBGP获得的最优路由发布给所有BGP邻居 |
BGP路由器从EBGP获得的路由会向它所有BGP对等体通告(包括EBGP和IBGP) |
通过IBGP获得的最优路由不会发布给其他的IBGP邻居 |
BGP Speaker 从IBGP获得的路由不会通告给它的IBGP邻居 |
BGP与IGP同步 |
BGP Speaker 从IBGP获得的路由是否通告给它的EBGP对等体要依IGP和BGP同步的情况来决定 |
注意:保证IBGP下一跳可达
七.防环机制
从ibgp对等体收到的路由更新,不会传给ibgp对等体。会导致部分设备的路由不可达:解决的方法是full-match,同时引入新的问题是:设备需要维护很多的bgp的对等体关系;路由反射器或联盟
八.BGP路径属性
公认必遵(Well-known Mandatory) |
BGP的Update消息中必须包含的属性 |
Origin |
|
|
AS_Path |
|
|
Next_hop |
公认任意(Well-known Discretionary) |
不必存在于BGP的Update消息中,可以根据需求自由选择的属性 |
Local_Pref |
|
|
Atomic_aggregate |
可选过渡(Optional Transitive) |
BGP不能识别该属性,但可以接收该属性并将其发布给它的邻居的属性 |
Aggregato |
|
|
Community |
可选非过渡(Optional Non-transitive) |
BGP可以忽略包含该属性的消息并且不向它的邻居发布 |
MED |
九.BGP路由选择原则
BGP路由器将路由通告给邻居后,每个BGP邻居都会进行路由优选 |
路由选择情况 |
|
该路由是到达目的地的唯一路由,直接优选 |
|
对到达同一目的地的多条路由,优选优先级最高的 |
|
对到达同一目的地且具有相同优先级的多条路由,必须用更细的原则去选择一条最优的 |
十.BGP计算路由优先级规则
丢弃下一跳不可达的路由 |
|
优选Preference_Value值最高的路由(私有属性,仅本地有效) |
|
优选本地优先级(Local_Preference)最高的路由 |
|
优选手动聚合>自动聚合>network>import>从对等体学到的 |
|
优选AS_Path短的路由 |
|
起源类型(Origin)IGP>EGP>Incomplete |
|
对于来自同一AS的路由,优选MED值小的 |
|
优选从EBGP学来的路由(EBGP>IBGP) |
|
优选AS内部IGP的Metric最小的路由 |
|
优选Cluster_List最短的路由 |
|
优选Orginator_ID最小的路由 |
|
优选Router_ID最小的路由器发布的路由 |
|
优选具有较小IP地址的邻居学来的路由 |
|
十一.BGP路由聚合
方式 |
配置命令(路由策略配置) |
静态 |
network 聚合的ip地址以及掩码 ip route-static |
自动聚合 |
summary automatic |
手动聚合 |
aggregate 聚合的ip地址以及掩码 detail-suppressed |