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从非客户机学到的路由不会在反射给非客户机,(非非不反射)
规则一
- 从非客户机学到的路由,会发布给EBGP邻居,会反射给客户机,但是不会反射给另外一个非客户机
规则二
- 从客户机学到的路由,会发布给EBGP邻居
- 会反射给所有非客户机和客户机(发起此路由的客户机除外)。
规则三
- 从EBGP邻居学到的路由,发布给所有的非客户机和客户机
ps:此处“反射”和“发送”的区别。“发送”指的是传统情况下(相当于RR不存在的场景下)的BGP路由传递行为,而“反射”指的是遵循路由反射规则的情况下,RR执行的路由传递动作,被反射出去的路由会被RR插入特殊的路径属性
路由反射器实验案例
需求
实现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 //可以通