BGP
- AS之间为EGP协议,AS之内IGP协议。通常在IGP之间完成路由计算;BGP完成路由的转发控制,选择最佳路由。
- BGP使用TCP作为传输层协议(端口号179),提高了协议的可靠性。
- 支持无类别域间路由CIDR(A B C类), 目的减少路由表条目的数量。
- 路由更新时,BGP只发送更新的路由(IGP更新后,会发送所有路由),大大减少了BGP传播路由所占用的带宽。
- 是一种距离矢量路由协议,从设计上避免了环路的产生。
(1)AS内部,从IGP学到的路由不会发给IGP。
(2)AS之间,AS-Path中包含自己的,会丢弃掉。
公有自治系统号码范围为1-64511,私有自治系统号码范围为64512-65535
路由传递过程
(1)BGP邻居建立 (2)IGP路由注入到BGP (3)BGP邻居之间通过BGP路由通告原则互相传递路由。
协议报文
报文 | 功能 |
---|---|
open 报文 | 通过TCP建立BGP连接时,发送open消息 |
keepalive 报文 | 邻居关系稳定后,定时发送保持BGP连接的有效性 |
update 报文 | 连接建立后,如果有路由需要发送或者路由变化时,发送update通知对端路由信息 |
Notification 报文 | 当本地BGP在运行中发现错误时,要通过notification通告BGP对等体 |
route refresh | 更新之后,可获取全量路由 |
邻居关系建立状态机
BGP邻居关系类型
BGP邻居关系类型:IBGP邻居(AS内部)和EBGP邻居(AS之间)。
EBGP:
[RTE] bgp 300
[RTE-bgp] peer 20.0.0.1 as-number 200
IBGP:
[RTD] bgp 200
[RTD-bgp] peer 2.2.2.2 as-number 200
指定更新源和EBGP多跳:
在使用loopback地址建立EBGP时需要注意
(1)不同AS之间没有IGP来提供loopback网段的路由可达,需要另外配置静态路由来使EBGP邻居路由器之间的loopback网段路由可达。
(2)EBGP邻居之间的协议报文的TTL默认为1,如果邻居关系使用非直连网段地址建立,需要手工修改TTL值。
EBGP多跳:
[RTE] bgp 300
[RTE-bgp] peer 4.4.4.4 as-number 200
[RTE-bgp] peer 4.4.4.4 connect-interface loopback 0
[RTE-bgp] peer 4.4.4.4 ebgp-max-hop 2
[RTE] ip route-static 4.4.4.4 32 20.0.0.1
BGP默认是根据物理接口建立的连接,如果需要用环回口建立,需要进行说明(peer x.x.x.x connect-interface loopback 0 )
[RTD] bgp 200
[RTD-bgp] peer 2.2.2.2 as-number 200
[RTD-bgp] peer 2.2.2.2 connect-interface loopback 0