天天看点

BGP学习笔记

自主系统号范围1~65535,私有AS号64512~65535

外部BGP邻居由于没有运行IGP,为此,IP地址必须通过直连网络或静态路由才能到达。

内部GBP邻居使用直连网络,静态路由或者动态路由协议,一般指定一个环回地址来建立IBGP会话。

为避免AS中出现路由选择环路,BGP规定不将通过IBGP获悉的路由传播给其他IBGP对等体,IBGP邻居收到更新后,不转发更新,因为他们假定发送该更新的IBGP邻居与所有IBGP发言者都直接相连,它已经将该更新发送给每个IBGP邻居。

在AS内,IBGP邻居之间的路径被称为中转路径,这种路径中的所有路由器都必须运行BGP。这些IBGP会话必须是全互联的。根据AS号区分iBGP或者EBGP。

基于TCP,端口179

初次建立连接发全表,接下来增量触发更新。不需要发送定期路由选择更新。

BGP database

1.       邻居表 – neighbor

table

2.       BGP表(转发数据库) - 多条路径

3.       ip路由表

4.       存储收到和发送的BGP信息的独立的表

BGP 消息类型

1.       Open

包括hold

time和BGP router

ID

Open:version number(向后兼容),AS

number,holdtime,router ID,optional

parameters

2.       Keepalive

Holdtime的1/3,holdtime时间不小于3s

3.       Update

Network-layer reachability information

       Path

attributes

       Withdrawn

routes

4.       Notification

When error is detected

Keepalive只包含消息头,长19字节;默认情况下,每60秒发送一次,其他类型消息19~4096字节。默认保持时间为180秒。

EBGP必须直连,IBGP不需要直接相连

一台路由器只能存在于一个AS。

BGP session

1.       idle

2.       connect

3.       open

sent

4.       open

confirm

a)         如果没有收到对open的响应(5秒内),路由器将进入Active状态

5.       established

BGP配置步骤:

1.       对等体组(对等体)

2.       bgp

router-id

3.       指定邻居

neighbor

4.       配置环回地址 指定源IP地址 (update-source)

5.       EBGP多条 ebgp-multihop

6.       修改下一跳属性

next-hop-self

7.       配置分发列表

8.       network通告网络

a)         BGP network通告的网络必须是ip路由表中存在的网络号,但不管它是通过什么方式学来的路由

b)        可配置静态路由 ip

route x.x.x.x mask null0指向空接口,BGP将在路由选择表中找到一个完全匹配的条目,进而将该网络通告给邻居。

当有多条路径时,BGP路由器只能将其使用的最佳路径通告给邻居自主系统中的对等体。

Show ip bgp

a)         Suppressed表示汇总路由

b)        Damped 惩罚路由,如果过于频繁的up和down,不启用该路由

c)        History 路由不可用,并可能出现了故障;曾经拥有路由,未删除

d)        Rib

failure 路由没有加入到RIB中

e)         Next hop – 0.0.0.0是本地起源的

f)         Stale 过期路由,用于支持不中断转发的路由器

g)        Origin codes:  ? --

表示不知道怎么起源的,是重发布的路由和静态路由。

Show ip bgp rib-failure

Show ip bgp neighbors

Show ip bgp summary (查看BGP邻居)

Neighbor        V    AS MsgRcvd MsgSent   TblVer 

InQ OutQ Up/Down 

State/PfxRcd

10.200.200.12   4 65001     806    

808       15    0   

0 13:15:18        2(从邻居那收到了多少个网络条目)

使用BGP来连接Inertnet

一个企业使用两个ISP服务

什么是多宿主MUltihoming?

连接至2个多个ISP以提升:

 -可靠性:如果1个ISP或连接失效,仍有一个可用的互联网访问。

 -性能:为相同互联网目的地更优的选路

ISP通告默认路由和部分路由

ISP通告全路由表

BGP自治系统

1.一个AS代表属于同一个技术管理者的网络集合

2.AS内部使用IGPs协议

3.自治系统之间使用BGP

4.保证交换无环路路由信息

BGP距离矢量路由协议

1.IGPs通告网络及描述对应到达这些网络的度量值。

2.BGP通告路径和可到达的网络。BGP使用属性描述路径(属性和度量值相似)

3.BGP允许管理者定义策略或规定,用于控制数据如何传输通过自治系统

BGP路由策略

BGP可以支持任何逐跳选路原则的策略。

BGP特征

BGP最适合在以下环境使用:

 -一个AS允许数据报文通过它到达另外一个AS(比如说ISP的网络)

 -一个AS有多个连接到其它AS.

 -数据进入和离开AS时必需控制路由策略和选路。

BGP不一定适合用于任何环境,在以下环境你不需要使用BGP:

 -对路由过滤和BGP路径选择的理解有限

 -只有单条链路连接到互联网和另外一个AS

 -却反内存或者处理BGP路由更新的能力

BGP是路径矢量路由协议,较距离矢量路由协议有以下差异:

 -可靠更新:基于TCP(PORT

179)

 -只有增加,触发更新

 -定时发送存活信息验证TCP连接

 -丰富度量值(称为路径向量 或者

属性)

 -设计用于可扩展至巨大的互联网络。

BGP数据库

1.邻居表

 -BGP邻居表(单播)

2.BGP表(转发数据库)

 -从每个邻居收到所有网络列表

 -到一个目的地可以包含多条路径

 -每个路径均包含BGP属性

3.IP

routing table

 -到目的网络的最佳路径

BGP信息类型

1.Open

 -包含hold time和BGP router

2.keeppalive

3.Update

 -仅有一条路径信息(可以有多个网络)

 -包含路径属性和网络

4.Notitfication

 -检测到错误的时候

 -信息发送之后,BGP连接关闭

总结

1.BGP是多宿主连接INTERNET恰当的办法

2.ISP提供的多宿主选项包含:

 -仅通告1条默认路由

 -1条默认路由和提供商自身的路由

 -全路由

3.BGP是外部路由协议,用于自治系统之间,基于策略转发,而不是最佳路劲(最好的策略就被认为是最佳路劲)

BGP信息:

1. Open:用来建立BGP会话

2. Keepalive:用来维护TCP连接

3. Update:用来承载BGP路由信息,每一个BGP更新都会相应的附带一些BGP属性。

4. Notification:当BGP检测到错误之后,用于切断BGP会话。

BGP路由器鉴别机制:BGP Router-ID(RID):

1. 如果有逻辑接口,逻辑接口IP地址最大的IP地址作为RID

2. 如果只有物理接口,物理接口IP地址最大的IP地址作为RID

BGP邻居关系的建立:

1. 首先,当BGP路由器之间准备建立TCP连接,此时,BGP邻居关系的状态称之为空闲状态(idle)

2. 当TCP连接建立完成之后,此时BGP邻居关系的状态称之为活跃状态(active)

3.

当TCP双向连接建立之后,BGP路由器发送open包,open包包含的参数包含:AS号,keepalive计时器,RID等,这个状态叫做OpenSent状态

4. 对方给予open包,这个状态叫做OpenConfirm状态

5. 如果双方Open包参数协商成功,那么BGP邻居(会话)关系建立,达到

Established状态,如果不成功,可能回退到Active状态,再重新发送Open包,试图建立BGP会话。

3和4在CISCO IOS的show命令里是看不到的,统称为active状态。

1、 AS-PATH属性:AS-PATH属性越短,路径越优先。

2、 起源(Origin)属性:定义BGP更新是如何产生的:

(1)、起源于IGP:BGP更新是通过BGP进程下network命令所发布出来的。(i)

(2)、起源于EGP:BGP更新是通过EGP重分发进来的。(e)

(3)、起源不完整(incomplete):BGP更新是通过IGP(OSPF,EIGRP等)重分发进来的。(?)

如果同一个BGP更新有3种起源方式。IGP优先于EGP优先Incomplete

3、下一跳(NEXT_HOP)属性:到达目标AS的下一个AS(IP地址)。

BGP连接关系:

1.内部BGP(Internal BGP,IBGP)

建立BGP邻居关系的BGP路由器位于同一自治系统。

对于IBGP邻居,AS-PATH属性是不变,下一跳属性也不变。

2.外部BGP(External BGP,EBGP)

建立BGP邻居关系的BGP路由器位于不同自治系统。

对于EBGP,AS_PATH属性根据经过的AS号码向前叠加,下一跳属性也会改变。

对于EBGP而言:下一跳属性是宣告该EBGP更新的接口IP地址。

知名任意属性:

1、本地优先级(Local_pref):默认值100。用于同一个AS多出口的选路控制,值超高,也就越优先。本地优先级只在AS内比较(只在IBGP邻居间比较),用于影响出站流量。

本地产生的为空。

2、Atomic aggregate:用于通知邻居AS,说明执行汇总路由器的路由信息。地址信息以RID呈现。

可选传递属性:

1. Aggregator:定义了实行路由聚合(汇总)的路由器的IP地址AS号信息,地址信息是接口信息。

2. 社团属性(community):用于BGP的路由标记(打标签)。

可选非传递:

1.

MED:默认值为0,值越低越优先,用于不同AS多出口的选路比较。用于影响进站流量。默认情况下,来自不同AS的MED属性不能相互比较。如果MED属性为空(NULL),CISCO设备把空值当成0,其他厂商把空值当成无穷大。

CISCO私有属性:权重(0-65535)

1. 本一产生的BGP更新权重默认是32768

2. 从邻居学过来的BGP更新权重默认为0,值越高,越优先。权重本地有效,不传递。影响出站流量。

BGP的选路法则:

(必须要下一跳可达)

如果一个BGP更新同时通过多个邻居学习到,就要进行一系列的选路比较法则。过程如下:

1. 先比较权重,权重高的越优先。(只对本地有效,只能影响自己不能影响别人)

2. 比较本地优先级,越高越优先,仅在同一个AS内的IBGP邻居比较。

3. 本地产生(下一跳属性为0.0.0.0)的优先于从邻居学过来的。

4. AS-PATH长度最短。(BGP:路径矢量协议)

5. 比较起源属性:IGP优先于EGP优先于Incomlete

6. 比较MED属性,越低越优先。

7. EBGP(AD=20)优先于IBGP(AD=200)

-------------------------------------------------分水岭------------------------------------------------------------

8a.如果是EBGP更新,那么最老(最先被学习到的)的EBGP更新更优先

8b.如果是IBGP更新,离邻居IGP度量值最小的路径优先。

9.比较BGP RID,越低越优先。

10.比较学习到BGP更新的接口地址,接口IP地址越小越优先。

继续阅读