第一步,首先按照实验需求搭建好实验拓扑图,以下:node
第二步,按照规划,配置相应的IP地址,而且按照要求建立相应的回环口,用来表示相应的服务器web
这里咱们不论是创建EBGP仍是IBGP邻居关系都统一采用回环口的方式创建,因此咱们还须要在每一个路由器上面建立一个回环口,若是路由器为AR1,回环口的地址就为1.1.1.1 /32,全部路由器都是按照这种配置方式。其次对AR2这样的路由器须要和AR1创建EBGP关系,与AR3和AR4创建IBGP邻居关系,也能够在AR2上面只建立一个回环口来代替,固然咱们也能够一个回环口单独创建一个邻居关系,这些都是没有什么影响的,接下咱们开始创建邻居关系了安全
按照图示的规划,AR1和其回环口属于AS1,AR二、AR三、AR4以及其回环口属于AS2,AR五、AR六、AR7及其回环口属于AS3,在具体介绍命令以前,咱们应该须要知道,创建邻居关系的过程应该是两个路由器先互相发送单播包指邻居、而后经过ping的方式检测其TCP可达性、而后再是后面具体的过程,而后开始介绍命令吧服务器
首先咱们咱们应该让AR1的回环口和AR2的回环口创建EBGP邻居关系,首先是在AR1路由器下面配置,命令以下:网络
而后咱们在AR2路由器上面配置相关命令:app
[AR2]BGP 2 //数字表明路由器AR1所在的自治系统的编号svg
而后AR1和AR2就能够创建EBGP的邻居关系了,以下图:oop
在AR2路由器上面查看同样能够发现是Established状态了学习
接下来在AS2中的路由器AR二、AR三、AR4两两相互创建IBGP的邻居关系,这里再也不须要更改TTL值,默认是255。在创建邻居关系以前,咱们须要在AS2内部配置OSPF动态路由协议,目的是保证路由器之间的TCP可达性,使得各自用来创建IBGP邻居关系的回环口能够相互ping通,这里再也不采用静态路由,毕竟配置起来太麻烦,命令不在描述,只要注意OSPF宣告的时候只能是213.34.1.0 /30、213.34.1.4 /30、213.34.1.8 /30和各自的回环口网段就能够了测试
首先是AR2和AR3创建IBGP的邻居关系,首先在AR2上面配置,命令以下:
而后再AR3上面配置,命令以下:
而后AR2和AR4之间:
在AR4上面配置:
AR3和AR4之间命令都是相同的,不在罗列
而后各自的IBGP邻居关系就创建好了,以下图:
AR4上面查看:
能够看到相应的IBGP关系都已经创建好了
接下来是在AR3和AR五、AR4和AR6分别创建EBGP关系,这里创建的EBGP关系与AR1和AR2创建关系的步骤同样,以下:
首先是AR3和AR5,首先在AR3上面配置:
而后再AR5上面配置:
这样AR3和AR5之间的EBGP邻居关系就创建好了,以下图:
而后是AR4和AR6之间创建EBGP的邻居关系,步骤和AR3和AR5之间同样,不在罗列命令
最后是AS3内部的IBGP邻居关系的创建,和AS2内部同样,首先启动一个OSPF协议,保证TCP的可达性,宣告的网段包括AR五、AR六、AR7的各自回环口,以及83.69.1.0/30、83.69.1.4/30网段,而后AR5和AR七、AR6和AR7创建相应的IBGP关系,就能够了,命令也再也不罗列出,给出创建好以后的截图以下:
最后,全部的BGP邻居关系就创建好了,接下来须要保证左右两边的模拟服务器的回环口均可以互相通讯,因此咱们应该在AR1和AT7路由器上面宣告本身服务器IP地址,以便相互传递
首先是AR1:
[AR1-bgp]network 210.1.1.0 24
[AR1-bgp]network 210.1.2.0 24
而后咱们查看AR7路由表,看是否存在这两个条目:
很明显没有这是什么问题了, 咱们查看AR2的路由表发现上面存在210.1.1.0 /2四、210.1.2.0 /24网段,以下图:
咱们在查看AR3的路由表能够发现并无相应的条目,说明AR2没有成功的传递给AR3,咱们来查看看AR3的BGP拓普表:
能够发现这两个条目的下一跳仍是AR1路由器,原本应该是AR2才对,因此在拓扑表中这两个条目表示无效的,是不会加到路由表中,只有存在于拓扑表中,而且最优和有效的条目才会传递下去,解决办法:更改下一跳,由于路由器在把路由条目传递给IBGP关系的路由器的时候,下一跳不会自动指向发送路由信息的路由器,而是保持上一次的值不变,而传递给EBGP邻居关系的路由器的时候,下一跳会自动更改,因此咱们这里须要在AR2上面配置一条命令:
[AR2-bgp]peer 3.3.3.3 next-hop-local //当传递路由信息给邻居路由器的时候,路由条目的下一跳指向本身
咱们在AR3上面查看路由表:
在查看AR3的BGP拓普表:
能够发现路由表和拓普标都正常了
而后咱们接下来咱们还须要更改到AR4的路由信息的下一跳:
接下来,AR5和AR7与AR6和AR7之间也是IBGP的邻居关系,也要在AR5和AR6上面修改相应的下一跳
最后咱们查看AR7的路由表:
而后就是把AR7上面的服务器信息宣告出来,让AR1可以学习到,而且要在AR3和AR4上面修改下一跳,最后查看AR1的路由表以下:
咱们用AR1的服务器pingAR7的服务器测试一下:
能够发现,已经能够正常通讯了
这里咱们能够作一个简单的BGP路由汇总,在AR7上面配置,命令以下:
[AR7-bgp]aggregate 134.0.0.0 255.248.0.0 detail-suppressed //把全部住类为134的明细条目汇总为134.0.0.0 /13,而且抑制明细条目的传递,在AR7上面查看BGP拓普表:
咱们能够经过更改BGP拓扑表里面的相应的公有或者私有属性来变动流量的路径,这里咱们经过修改公有必遵属性Originate来变动流量 ,首先咱们查看AR7的路由表,能够发现到达AR1的流量路径的相应路由条目的下一跳是5.5.5.5,咱们须要经过修改Originate属性,让流量的下一跳是6.6.6.6
很明显到达路由器AR1的路由条目能够从AR三、AR5或者AR四、AR6的路径学习到,咱们修改当路由条目在经过AR三、AR5之间的链路的时候,Originate变为最低等的Incomplete,这样AR7路由器就会选择从AR6传递过来的路由条目,在AR3上面配置的命令以下:
查看AR7的BGP拓扑表:
咱们在查看AR7的路由表: