自主系统号范围1~65535,私有AS64512~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 timeBGP router ID
Openversion number(向后兼容)AS numberholdtimerouter IDoptional parameters
2.       Keepalive
Holdtime1/3holdtime时间不小于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 惩罚路由,如果过于频繁的updown,不启用该路由
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 ID
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地址越小越优先。