BGP通告原则

  • BGP通告原则之一 : 仅将自己最优的路由发布给邻居
  • BGP通告原则之二 : 通过EBGP获得的最优路由发布给所有BGP邻居
  • BGP通告原则之三 : 通过IBGP获得的最优路由不会发布给其他的IBGP邻居(内内不相传,即:IBGP水平分割)

IBGP水平分割机制

  • 通过IBGP获得的最优路由不会发布给其他的IBGP邻居,即:内内不相传
  • 作用:解决IBGP内部路由环路问题

突破IBGP水平分割的限制

  • IBGP全互联
  • 路由反射器
  • BGP联盟
  • 静态路由···· 在OSPF中引入BGP···· MPLS·····

路由反射器RR

反射器角色

  • 路由反射器RR
  • 客户机
  • 非客户机

反射器原理

  • 客户机只需要与反射器建立IBGP邻居,客户机之间不需要建立邻居,减少了邻居关系的数量,通过RR将自身学习到的路由反射给邻居,实现路由的传递
  • 反射器通过命令指定自己的客户机,客户机不知道谁是反射器,只有反射器知道谁是客户机,没有指定为客户机的路由器,就是非客户机
  • 反射器打破了IBGP水平分割的限制,让IBGP邻居之间路由可以传递,不需要改变原有拓扑结构,配置简单,较为常用

反射原则

  • RR从客户机学到的路由,会反射给客户机和非客户机,会发布给外部邻居
  • RR从非客户机学到的路由,会反射给客户机,会发布给外部邻居
  • RR从EBGP邻居学到的路由,会发布给所有邻居
  • RR从非客户机学到的路由不会在反射给非客户机,(非非不反射)

BGP水平分割防环原理是什么 ibgp水平分割_OSPF

规则一

  • 从非客户机学到的路由,会发布给EBGP邻居,会反射给客户机,但是不会反射给另外一个非客户机

BGP水平分割防环原理是什么 ibgp水平分割_R3_02

规则二

  • 从客户机学到的路由,会发布给EBGP邻居
  • 会反射给所有非客户机和客户机(发起此路由的客户机除外)。

BGP水平分割防环原理是什么 ibgp水平分割_BGP水平分割防环原理是什么_03

规则三

  • 从EBGP邻居学到的路由,发布给所有的非客户机和客户机

BGP水平分割防环原理是什么 ibgp水平分割_R3_04



  • ps:此处“反射”和“发送”的区别。“发送”指的是传统情况下(相当于RR不存在的场景下)的BGP路由传递行为,而“反射”指的是遵循路由反射规则的情况下,RR执行的路由传递动作,被反射出去的路由会被RR插入特殊的路径属性

路由反射器实验案例

BGP水平分割防环原理是什么 ibgp水平分割_OSPF_05

需求

实现R4的10.10.4.4 和R5的10.10.5.5互通

  • 思路1:R4和R1建立EBGP邻居 (外部的EBGP邻居)
  • 思路2:R3和R5建立EBGP邻居 (外部的EBGP邻居)
  • 思路3:AS200内部的R1-R2-R3配置ospf-建立ospf邻居关系
  • 思路4:R1和R2建立IBGP邻居 (内部的IBGP邻居)
  • 思路5:R2和R3建立IBGP邻居 (内部的IBGP邻居)
  • 思路6:在R4和R5中注入路由
  • 思路7:把R2配置为路由反射器 ,把R1配置为客户机

配置步骤

  • 配置路由器的接口IP地址
  • 在AS200内部配置OSPF
  • 配置BGP邻居关系
  • 在R4 和R5中注入路由
  • 配置路由反射器,指定客户机

配置命令

R4的配置:
R4的接口配置:

• [R4]int g0/0/0
• [R4-G0/0/0]ip add 192.168.14.4 24
• [R4-G0/0/0]int lo0
• [R4-LoopBack0]ip add 10.10.4.4 32
R4的BGP配置:
• [R4]bgp 100
• [R4-bgp]router-id 4.4.4.4
• [R4-bgp]peer 192.168.14.1 as 200 //和R1建立外部邻居
• [R4-bgp]network 10.10.4.4 32 //注入路由

R1的配置:
R1的接口配置:

• [R1]int g0/0/0
• [R1-G0/0/0]ip add 192.168.12.1 24
• [R1-G0/0/0]int g0/0/1
• [R1-G0/0/1]ip add 192.168.14.1 24
R1的OSPF配置:
• [R1]ospf 1 router-id 1.1.1.1
• [R1-ospf-1]area 0
• [R1-ospf-1-area-0.0.0.0]network 192.168.12.0 0.0.0.255
• [R1-ospf-1-area-0.0.0.0]quit
• [R1-ospf-1]quit
R1的BGP配置:
• [R1]bgp 200 //开启BGP,配置AS200
• [R1-bgp]router-id 1.1.1.1
• [R1-bgp]peer 192.168.14.4 as 100 //和R4建立外部邻居
• [R1-bgp]peer 192.168.12.2 as 200 //和R2建立内部邻居
• [R1-bgp]peer 192.168.12.2 next-hop-local //修改下一跳

R2的配置:
R2的接口配置:

• [R2]int g0/0/0
• [R2-G0/0/0]ip add 192.168.12.2 24
• [R2-G0/0/0]int g0/0/1
• [R2-G0/0/1]ip add 192.168.23.2 24
R2的ospf配置:
• [R2]ospf 1 router-id 2.2.2.2
• [R2-ospf-1]area 0
• [R2-ospf-1-area-0.0.0.0]network 192.168.12.0 0.0.0.255
• [R2-ospf-1-area-0.0.0.0]network 192.168.23.0 0.0.0.255
• [R2-ospf-1-area-0.0.0.0]quit
R2的BGP配置:
• [R2]bgp 200
• [R2-bgp]router-id 2.2.2.2
• [R2-bgp]peer 192.168.12.1 as 200 //和R1建立内部邻居
• [R2-bgp]peer 192.168.23.3 as 200 //和R3建立内部邻居
在R2中配置路由反射器,把192.168.12.1 做成客户机
• [R2]bgp 200 [R2-bgp]peer 192.168.12.1 reflect-client //指定192.168.12.1 为客户机

R3的配置:
R3的接口配置:

• [R3]int g0/0/0
• [R3-G0/0/0]ip add 192.168.23.3 24
• [R3-G0/0/0]int g0/0/1
• [R3-G0/0/1]ip add 192.168.35.3 24
R3的OSPF配置
• [R3]ospf 1 router-id 3.3.3.3
• [R3-ospf-1]area 0
• [R3-ospf-1-area-0.0.0.0]network 192.168.23.0 0.0.0.255
• [R3-ospf-1-area-0.0.0.0]quit
• [R3-ospf-1]quit
R3的BGP配置:
• [R3]bgp 200
• [R3-bgp]router-id 3.3.3.3
• [R3-bgp]peer 192.168.23.2 as 200 //和R2建立内部邻居
• [R3-bgp]peer 192.168.23.2 next-hop-local //修改下一跳
• [R3-bgp]peer 192.168.35.5 as 300 //和R5建立外部邻居

R5的配置:
R5的接口配置:

• [R5]int g0/0/0
• [R5-G0/0/0]ip add 192.168.35.5 24
• [R5-G0/0/0]int lo0
• [R5-LoopBack0]ip add 10.10.5.5 32
R5的BGP配置:


• [R5]bgp 300
• [R5-bgp]router-id 5.5.5.5
• [R5-bgp]peer 192.168.35.3 as 200 //和R3建立外部邻居
• [R5-bgp]network 10.10.5.5 32 //注入路由

验证方法:


• ping -a 10.10.4.4 10.10.5.5 //可以通