建立IBGP邻居建议使用环回接口,更加稳定
建立EBGP邻居建议使用物理接口
默认建立IBGP邻居的时候,发送报文的TTL=255
默认建立EBGP邻居的时候,发送报文的TTL=1
BGP路由的产生方式:
1、通过network方式,将本地路由中的路由发送出去。
2、通过import-route的方式,将其他协议的路由引入到BGP协议中。
3、通过手动聚合的方式,产生一条聚合路由(汇总)
4、通过自动聚合的方式,产生一条聚合路由。
如何得到BGP路由呢?
1、IBGP邻居给我传递
2、EBGP邻居给我传递
3、自身产生BGP路由
BGP路由通告原则:
1、BGP只会将有效路由中的最优的BGP路由通告给邻居。
2、自身产生的BGP路由通告给所有的BGP邻居。
3、从IBGP邻居收到的路由,不会传递给IBGP邻居。(防环)
4、从IBGP邻居收到的路由传递给EBGP邻居。
5、从EBGP邻居收到的路由传递给IBGP邻居。
6、从EBGP邻居收到的路由传递给EBGP邻居。
BGP的防环原则:
AS内的防环:使用IBGP水平分割机制(只传一跳),即从IBGP邻居收到的路由不会传递给另一个IBGP邻居。
AS之间的防环:利用了BGP的路由属性,即BGP将路由发送给EBGP邻居的时候会将自身的AS号添加到as-path列表中;并且规定,从EBGP邻居收到的路由如果携带自身AS号 则不接受该路由。
BGP下一跳属性的特点:
1、自身产生的路由发送给所有BGP邻居的时候,下一跳自动修改。
2、从EBGP邻居接受的路由发送给IBGP邻居的时候,下一跳不会自动修改。
3、从EBGP邻居接受的路由发送给EBGP邻居的时候,下一跳自动修改。
4、从IBGP邻居接受的路由发送给EBGP邻居的时候,下一跳自动修改。
5、从IBGP邻居接受的路由不存在发送给IBGP邻居的情况(防环)
[R2-bgp]peer 4.4.4.4 next-hop-local //针对邻居配置下一跳为自身
只需要在AS的边界设备上,针对本AS内的IBGP邻居配置。
因为从EBGP邻居接受的路由发送给IBGP邻居的时候,下一跳不会自动修改。
自动修改指的是将路由传递给改邻居的时候,下一跳修改为自身与其建立邻居的接口IP。
路由黑洞:IBGP水平分割规则和BGP关系建立过程的特点,也正是因为这两个原因,才导致了BGP路由黑洞问题。
所谓BGP路由黑洞问题,实际上就是BGP在路由传递过程中跨过中间路由器,从而导致了在数据包发送的时候中间的路由器无法收到路由信息,从而导致数据包转发失败的现象。
BGP同步:用于防止BGP路由黑洞问题(早期解决路由黑洞的方法)
BGP同步机制:即从IBGP邻居接受的路由需要在IGP表中存在,才能称为最优BGP路由;如果IGP表中不存在,则不会称为最优的BGP。
undo synchronization //关闭BGP同步,华为设备默认开启且不能更改
路由黑洞的解决方法:
1、在ASBR上将BGP路由引入到IGP协议中。//问题:BGP路由信息量庞大,IGP可能无法承载大量的路由信息。
2、AS内采用全互联的IBGP邻居架构,让所有路由器都运行BGP协议,从而使每台路由器动能学到BGP路由,防止路由黑洞产生。
3、在ASBR之间建立GRE隧道,解决路由黑洞问题。 //优势:节约成本
4、通过LSP隧道解决路由黑洞问题。
(5、6属于IBGP全互联建立邻居的优化,不是为了解决BGP的路由黑洞)
5、BGP的路由反射器,可以打破水平分割原则,让路由多传递一跳
6、配置BGP联盟,将原本的IBGP邻居关系变成EBGP邻居关,从而打破水平分割
GRE配置
[R2]int Tunnel 0/0/1
[R2-Tunnel0/0/1]tunnel-protocol gre
[R2-Tunnel0/0/1]source 23.1.1.2
[R2-Tunnel0/0/1]destination 34.1.1.4
[R2-Tunnel0/0/1]ip address 24.1.1.2 24
[R2]ip route-static 5.5.5.5 32 Tunnel 0/0/1
[R4]interface Tunnel 0/0/1
[R4-Tunnel0/0/1]tunnel-protocol gre
[R4-Tunnel0/0/1]source 34.1.1.4
[R4-Tunnel0/0/1]destination 23.1.1.2
[R4-Tunnel0/0/1]ip address 24.1.1.4 24
[R4]ip route-static 1.1.1.1 32 Tunnel 0/0/1