1.BGP特点
BGP属于EGP外部网关路由协议,基于TCP目的端口179工作的。目前使用的版本是BGP版本4。
2.AS号
自治系统编号,由国际组织IANA分配。
公有:1~64511
私有:64512~65535
3.BGP更新机制
3.1 触发更新(增量更新)只更新变化的内容。
3.2 管理员手动更新(全量更新)import和export两个方向
import代表重新从所有邻居接收一份最新的路由
export代表从本地推送一个最新的路由给所有邻居
BGP没有周期更新!
4.BGP的邻居
相同的AS号的路由器建立IBGP邻居
不同的AS号的路由器建立EBGP邻居
5.router-id
用来描述唯一的一台BGP路由器
5.1 管理员手动配置
5.2 自动选取,使用路由器全局router-id作为BGP的router-id
6.BGP路由如何产生
强调:BGP是不会自己产生、计算路由的,他只是用来传递路由的
6.1 network 宣告路由表中已存在的路由条目
6.2 import 引入的路由(引入的路由也需要在路由表中存在)
6.3 自动聚合产生的路由条目(只能自动聚合import的路由条目)
命令:summary automatic
6.4 手动聚合 aggregate 172.16.0.0 16
*当BGP表中存在多条相同的路由条目时,会根据BGP选路原则选出best,然后将最优的路由传递给邻居。
7.BGP路由的交互原则
7.1 本地始发的路由既传递给IBGP邻居,又传递给EBGP邻居
7.2 从IBGP收到的路由,会传递给EBGP邻居,不会传递给IBGP邻居
7.3 从EBGP收到的路由,既会传递给IBGP邻居,又会传递给EBGP邻居
8.BGP的防环机制
IBGP:从IBGP收到的路由不会在传递给IBGP邻居,这叫IBGP水平分割。
解释:从同一个AS收到的路由不会再传递给同一个AS
EBGP:使用AS-PATH属性来防环
解释:当BGP设备收到EBGP邻居发来的路由中包含本地AS号时,将拒绝接收这 条路由。
9.建立BGP邻居的习惯
IBGP邻居习惯性使用环回接口建立IBGP邻居
EBGP邻居习惯使用直连接口建立EBGP邻居
注意:
IBGP邻居在发送报文时:TTL默认255
EBGP邻居在发送报文时:TTL默认1
10.BGP同步问题
undo synchronization 在BGP中,同步是默认关闭的,且不可以人为打开,这样做的意义是,从IBGP收到的路由,如果在IGP路由表中不存在,则认为不同步,将不会传递给EBGP邻居
11.如何解决路由黑洞问题
11.1 AS内部采用全互联模式(fullmesh)
11.2 在边界路由器上将BGP路由引入IGP协议中(但是已经被淘汰了)
11.3 在边界路由器上做GRE隧道
11.4 通过LSP隧道解决路由黑洞问题(MPLS)
12.BGP相关报文
12.1 open报文
用于建立BGP邻居的连接,协商BGP参数的报文
12.2 update报文
用于在BGP邻居之间交互路由信息的
12.3 notification报文
差错报文,用于报错,且中断邻居的报文
12.4 keepalive报文(基于TCP的报文)
用于保持邻居连接的报文,保活。
12.5 route-refresh报文
用于在策略改变之后,请求邻居重新发送路由信息,并且只有支持路由刷新能力 的设备才会响应这个报文
=================================================================
#
bgp 8
peer 9.9.9.9 as-number 9
1、指定了邻居的AS号
2、指定了发送报文的目的IP地址
3、指定了接收邻居发送报文的源地址
peer 9.9.9.9 ebgp-max-hop 255
修改EBGP邻居报文TTL默认值
peer 9.9.9.9 connect-interface LoopBack0
修改发送报文的源地址
peer X.X.X.X next-hop-local
当本路由器是一台边界路由器时(有EBGP邻居)指向IBGP的对等体要写这条命令,用来修改下一跳
#
ipv4-family unicast //ipv4地址协议簇
undo synchronization BGP同步
peer 9.9.9.9 enable 邻居使能
BGP支持TLV编码,可以通过TLV来携带各种属性