BGP基本配置实验
Step1.>按拓扑搭建实验环境
每个路由器有一个环回接口,地址为x.x.x.x/32
作直连测试
Step2.>AS65102 中运行OSPF110(单区域),使得R2、R3、R4、R5的
环回接口可以相互通信
Rx#show ip route ospf
Rx#show ip ospf interface brief
Rx#show ip ospf neighbor
Step3.>建立R1和R2的EBGP邻居
R4和R6的EBGP邻居(自行完成)
分区 CCNP 的第 1 页
Step4.>建立R1和R4的IBGP邻居(先测试2.2.2.2与4.4.4.4的通信)
IBGP一般都不是直连,所以采用loopback接口来建立
Step5.>R1和R6通告loopback进BGP进程。确保R1和R6能够通过
loopback口实现相互访问
说明: 6.6.6.6的R2的BGP中不能优化(原因是其下一跳46.1.1.6在R2的
本地路由表中不可达
Step6.>R4关于6.6.6.6/32更新给R2,优化6.6.6.6/32的下一跳为
分区 CCNP 的第 2 页
Step6.>R4关于6.6.6.6/32更新给R2,优化6.6.6.6/32的下一跳为
R4自身(也就是4.4.4.4)
将路由更新给R2的同时将路由的下一跳变为自身
同样道理R2关于1.1.1.1/32更新给R4也需要将下一跳R2自身
Step7.>R1查看6.6.6.6/32
R6查看1.1.1.1/32 都已经为BGP的最优路由
总结:路由器将BGP条目更新给EBGP邻居,下一跳会自动更换为本地与该EBGP邻居的更新源地址
路由器将BGP条目更新给IBGP邻居,下一跳不变,可以通过对IBGP邻居的next-hop-self进行修改
Step8.>R1访问R6是会有问题的,因为数据包经过的R3和R5上
根本没有关于1.1.1.1/32 6.6.6.6/32的路由!
IBGP同步规则本质上就是用来解决该问题
》》从IBGP学习过来的路由条目,必须保证本地路由器从IGP再学习一份
否则该BGP条目在本地路由器上将不能最优,也就不能再更新给其它
BGP邻居
同步并不是解决该问题的最佳方案,更好的方案是:
- Full mesh IBGP
- Route-Reflector
- Confederation
分区 CCNP 的第 3 页
- Confederation
- MPLS
Step9.>R2-R3、R3-R4
R2-R5、R5-R4之间建立IBGP邻居关系能否解决
R1与R6的通信问题??
分区 CCNP 的第 4 页
Step10.>删除R2-R4之间IBGP邻居关系,R1与R6的通信能否继续?
路由更新有问题!(R1和R6无法通信)
R3和R5从R2学习到1.1.1.1/32不会更新给R4.
R3和R5从R4学习到6.6.6.6/32不会更新给R2
IBGP的水平分割原则:
从IBGP邻居学习过来的条目不能再更新给其它的IBGP邻居
正因为水平分割,我们需要用FULL-MESH IBGP邻居关系
才能解决拓扑中的通信问题! 所以R2-R4的IBGP邻居关系
不但不能删除,还需要建立R3-R5的IBGP邻居关系
FULL-MESH IBGP配置量和维护量来说都不具备可扩展性,
Step11.> 路由反射器更好解决方案,并不需要建立R2-R4、R3-R5
的IBGP邻居关系!!!
将R3和R5配置成路由反射器,将指定R2和R4为反射器的客户端
分区 CCNP 的第 5 页
总结:
正常的网络环境因为存在IBGP的水平分割, 会要求我们建立Full-mesh的IBGP关系!
为了网络的扩展性我们引入了反射器的, 它利用了簇的概念来解决路由的传递!
1.反射器和它的客户端就组成一个簇
2.反射器从簇里的任何路由器学到的路由相当于发起于反射器本身
3.反射器除了从非客户端学习过来的路由不传给非客户端以外其它路由都传
分区 CCNP 的第 6 页