AS自治系统
一个AS是一组共享相似的路由策略并在单一管理域中运行的路由器
AS 的范围:1-65535 其中私用范围为64512-65535
BGP发展过程 路径矢量路由
EGP3 BGP4
AS 类型:
1 单宿主自治系统
配置
使用静态配置
使用IGP
使用BGP
注:这三种方法并不需要用户与其服务提供商运行BGP
2 多宿主非渡越自治系统
优点,对路由传播和过滤的高度控制能力
3 多宿主渡越自治系统
IBGP概念 当BGP在一个AS中运行
EBGP概念 当BGP在AS之间运行
渡越路由器概念
边界路由器概念
BGP更新 TCP协议 端口号179
RIP更新 UDP协议 端口号520
OSPF不使用4层协议
BGP继承了TCP的可靠性和面向连接性。
为了确保无环,BGP根据BGP邻居之间交换的信息来建立一张自治系统图。
BGP概念:边界网关协议
自治系统之内使用IGP IGP宣告网络的可达性及链路的开销
自治系统之间使用EGP BGP宣告可达的AS的路径信息
什么情况下使用BGP
允许某个AS做穿越AS,允许数据包穿越到别的AS
一个AS有多条连接到达另一个AS.
需要对进入和离开某AS的流量进行路由策略
什么情况下不使用BGP
只有单个到达INTERNET或别的AS的连接(建议使用默认路由)
路由器内存和CPU 资源过低(现在世界上大概的BGP条目有12万条,占资源很大,占内存110多M)
缺乏对BGP路由策略的理解
AS之间的链路带宽过低(BGP更新数据比较大,现实情况中AS之间链路不会过低)
BGP特性
增强型的路径矢量路由协议
1 可靠的路由更新机制,BGP运行于TCP,使用TCP端口号179 (OSPF通过LSACK,RSS中利用PSNP或者SNP来保证可靠性)
2 触发式增量更新(有变化才更新,而且增量只是变化的部分)
3 周期性的KEEPALIVE信息保证TCP的连接是否存活. IBGP 5S EBGP 60S
4 更强大的METRIC标准属性.
5 使用于大型网络
BGP的三张表
邻居表 列举BGP邻居信息
BGP转发表 列举从每个BGP中学来的路径,可能有多条路径,每条路径都有属性
IP路由表 列举到达网络的最佳路径
BGP信息类型
1 OPEN包 包括holdtime和BGP的RID(ospf中有也RID)
2 KEEPALIVE
3 UPDATE (路由更新TCP 179) 每条路径信息 包含BGP属性和网络信息
4 NOTIFICATION 当检测到错误后发出;当notification信息发送后,BGP关闭
BGP术语 对等体(PEER) (OSPF两两连接关系叫链接)
BGP对等体,也叫BGP邻居,代表和本地BGP路由器建立了邻居关系的BGP路由器。
BGP分为两种(私有64512-65535)
1 EBGP (外部BGP)当形成邻居关系的两台路由器分别位于不同的AS,这种BGP就叫EBGP
EBGP对等体之间默认需要直连
2 IBGP (内部BGP)当形成邻居关系的两台路由器分别位于相同的AS
IBGP对等体之间不是必须直连
IBGP的水平分割原则 IBGP防止环路
默认情况下,通过IBGP邻居学到的路由不会再传给别的IBGP邻居(IBGP路由信息只传一跳)
BGP同步
如果一个AS要提供到达别的AS的穿越服务的话,BGP是不会宣告路由的,除非
BGP路由器不会把那些通过IBG邻居学到的BGP路由宣告给自己的EBGP邻居,除非自己的IGP路由表中存在这些路由,才可以向EBGP邻居宣告这些路由。
如下情况中可以关闭同步
1 不想让某个AS提供到别的AS的穿越服务
2 AS内的所有穿越路由器都运行BGP
BGP下一跳属性(NEXT_HOP)
描述了宣告到达某个目标地址的路径上,下一跳路由器的IP地址
在一般的网络环境中,对于EBGP而言,下一跳为它的EBGP邻居的IP地址
对于多路访问网络环境中,必须注意
对于NBMA网络环境中,必须注意
BGP ORIGIN(起源)属性
1 IGP 网络层路由信息(NLRI)是通过IGP学到的 优先级最高 通过NETWORK发布的
2 EGP NLRI通过EGP学习到的,优先级次高
3 INCOMPLETE NLRI通过别的方式学习到的,比如路由的再发布,优先级最低
BGP AS_PATH属性
使用AS号的顺序组合来决定AS间的路径。
EBGP通过AS号来防止路由环路。
只有EBGP的AS号才会被加入AS_PATH中
BGP 下一跳属性(NEXT_HOP)
需要注意多路访问网络环境和NBMA网络环境
BGP LOCAL_PREE属性(多个出口在相同个AS之中,与源也在同一个AS中)
只是用于IBGP之间
包含在路由更新中,默认为100
只是在本地AS之间,不会传输到EBGP中去。
BGP MED属性(多个出口在相同的AS之中,与源不在同一个AS中,值越低越优先)
定义到达相同目标网络,AS之间的多条路由的优先级(值越低的优先级越高)值默认为0。
与本地优先级不同的是MED属性是在AS之间交换的,但是进入一个AS里的MED属性,是不会再离开该AS的,既带有一个特定MED属性的BGP路由更新,要发送到其它的AS的时候,MED属性值就被重置为默认的值0,除非使用BGP ALWAYS-COMPARE-MED.
BGP管理权重(CISCO私有的属性管理权重)私有属性 (值越高的优先级越高)
只对本地BGP路由器生效,本地BGP路由器产生的路由管理权重默认为32768,从其它路由器所产生的路由管理权重默认值为0
BGP选路策略
1 管理权重 cisco私有属性 越高越优先
2 本地优先级属性 越高越优先
3 AS PATH属性 路径越短越优先
4 ORIGIN属性 IGP最高 EBGP茨高 重分发最低
5 MED属性 越低越优先
6 离自己最近的IGP邻居
7 选择RID 越低越优先
BGP基本配置
1启动BGP进程
router(config)#route bgp {AS-number} 一台路由器只能指定一个AS
2指定BGP邻居(通常为对方接口地址)
router(config-router)#neighbor{ip-address}remote-as{AS-number}
3定义要宣告的网络
router(config-router)#network{network-number}[mask]
关闭BGP同步特性
router(config-router)#no synchronization
使用回环接口建立BGP邻居关系
1定制跳数TTL,默认为255
router(config-router)#neighbor{ip-address}ebgp-multihop [ttl]
2使用回环接口建立TCP会话
router(config-router)#neighbor{ip-address}update-source loopback{number}
注意静态路由配置,因为下一跳是否可达不确认,需要通过静态路由来确认
使用回环接口建立BGP邻居关系注意事项:
1使用回环接口建立BGP邻居关系,对于EBGP,要指定多跳关系ebgp-multihop
2要确保本地BGP路由器的IGP路由表中有到达邻居回环接口的路由(必须下一条可达)
3为了防止路由环路,如果到达多条对等体的路由是默认路由,邻居关系是不会建立。
更改BGP的下一跳
router(config-router)#neighbor{ip-address} next-hop-self
注意:不是在本机上该,而且在下一跳的机器上指定我是你的下一跳。
BGP的路由汇总
1关闭BGP路由的自动汇总特性
router(config-router)#no auto-summary
2BGP手动的路由汇总,当使用了关键字summary-only后,本地BGP的细致路由全部被抑制,并且在BGP表中以S进行标记;
router(config-router)#aggregate-address {ip-address}{mask}[summary-only][route-map map-name]
BGP的管理权重 越高越优先
router(config-router)#neighbor{ip-address}weight{weight}
neighbor 1.1.1.1 weight 100
neighbor 2.2.2.2 weight 200
这时候会选2.2.2.2
配置BGP的本地优先级 同一个AS多个出口 越高越优先
router(config-router)#bgp default local-perference number
配置BGP的MED属性(值越低越优先) 同一个AS有不同AS的出口,
router(config-router)#default-metric{metric}
router(config-router)#bgp always-compare-med 在不同AS之中比较MED,必须加上这句
BGP对等体组
一组享有相同路由策略的邻居的结合
router(config-router)#neighbor name peer-group
router(config-router)#neighbor{ip-address} peer-group name
验证BGP对等体信息
show ip bgp summary
show ip bgp
show ip bgp neighbors 关注 Bgp state=established
IBGP keepalive 5s EBGP keepalive 60s