基本BGP实验布署<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
基本知识:
BGP类型分为:EBGP和IBGP。EBGP就是在不同AS(autonoous system)间的BGP,而IBGP就是在同一个AS内的BGP。有的时候也可以说是两台连接且运行BGP协议的设备所属关系。
BGP是路径矢量协议(path-vector), 可以从一个AS到另一个AS,在不同的AS中进行选路。在该协议中,是封装在TCP报文中,因而在BGP建立邻居时候,需要手工建立,而且非常可靠,其使用的是TCP的端口为:179。
Helllo包: 试探建立邻居
Open包: 完整建立邻居
Keepaliove包: 维持邻居关系,默认每60S发送一次keepalive 包。
在BGP中,有丰富的属性,也就是在用来衡量PATH的标准,也就是以前所说的metric值差不多。真正想学好BGP,建议大家去查看BGP手册,以及BGP的相关文档。即使不是官方,其实有很多IE的整理的笔记是非常好的。当然,我会跟大家一起去学习。
接下来作个实验:

R1配置:(R2、R3、R4类似)
interface Loopback0
ip address 1.1.1.1 255.255.255.0 /*建立一个LO0口,用于测试以及在IBGP建立邻居时使用。*/
interface Serial0/0
ip address 13.1.1.1 255.255.255.0
clock rate 2000000
!
interface Serial0/1
ip address 12.1.1.1 255.255.255.0
clock rate 2000000
!
router ospf 110 /* 在R1上 启用OSPF,进程为110*/
log-adjacency-changes /* 在OSPF中,此命令默认打上的,当邻居状态变化时候,会弹出提示 */
redistribute bgp 1 metric 6 subnets /* 把BGP重分布在OSPF中 */
network 1.1.1.0 0.0.0.255 area 0 /* 宣告OSPF的NET */
network 12.1.1.0 0.0.0.255 area 0
!
router bgp 1 /* 启用BGP,其AS为1 */
no synchronization /* 关闭同步, */
bgp router-id 1.1.1.1 /*BGP的RID */
bgp log-neighbor-changes /* 当BGP邻居状态变化时,会有提示信息 */
redistribute connected metric 2 /* 在BGP中,分布直连路由,且metric为2*/
redistribute ospf 110 metric 3 /* 把OSPF学到的路由重分布到BGP */
neighbor 12.1.1.2 remote-as 1 /* 和R2建立IBGP关系 */
neighbor 12.1.1.2 update-source Loopback0 /* IBGP,建议使用环回口建立邻居*/
neighbor 12.1.1.2 next-hop-self /*告诉R2,路由更新源是R1自己*/
neighbor 13.1.1.3 remote-as 3 /* 和R3建立EBGP关系 */
no auto-summary /* 关闭自动汇总*/
!
ip classless
ip route 0.0.0.0 0.0.0.0 13.1.1.3 /* 指定默认路由,下一跳指向R3 */
这个时候,为什么不把R2 、R3、 R4 的配置show 出来,那是如果理解了都是一样的配置原理。
那么在完成配置之后,开始来查看相关信息吧:
1,show ip bgp neighbor
默认情况下,你可以看见两个邻居,一个是R3 另一个是R2。
2,bgp log-neighbor-changes
当BGP连接成功时,你将看见如下类似的提示信息:

这是在BGP建立邻居的时的一个提示信息,也就是上述的实验中使用:
bgp log-neighbor-changes 后的作用。
3,show ip route当我们在IBGP中运行一个OSPF 后我们去看看路由表有没有条目:

这个表的信息,跟平常运行OSPF 的效果没有区别,不是说运行BGP了吗 ?怎么没有看见BGP学到条目啊?
等等 ,我们使用show ip bgp 看看:

确实在BGP的表中确实有从BGP学来的路由,那怎么没有看见写入路由表呢?
对了,BGP只是种路由协议,那么怎么把BGP导出来?记得redistribute吗 ?在这个地方我们用双向重分布的方法来做。(R1上)
redistribute connected metric 2 /* 在BGP中,重分布直连路由,且metric为2*/
redistribute ospf 110 metric 3 * 在BGP中,重分OSPF路由,且metric为3
router ospf 110
redistribute bgp 1 metric 6 subnets /* 在OSPF中,重分布bgp,且metric为6*/
按照上述方法把R1和R3重分布以后,那么我们可以来路由表的情况:

按照上述方法把R2和R4重分布以后,那么我们可以来路由表的情况:

比较下,那么是不从R4学来,4.4.4.0/24的路由,当然在R2上也会有3.3.3.0/24的路由信息。

那么既然都学到了目标网路的路由了,是不是就可以PING通了呢?
试试:
<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />Ping 4.4.4.4 source 3.3.3.3

结果没有通,这是为什么呢 ?
那是因为在尽管已经建立好了邻居,但没有通告R1 和R3的路由,R2 和R4的路由,所以 要写一条路由,我在这就写默认的路由。只要指向对方就行,我们可以假设,R1 和R3之间还有很多设备,我们不管了,其实就是说,只要EBGP邻居通就行。
看看:

这样的话,你看多了一条默认路由,赶紧测试下吧:
Ping 4.4.4.4 source 3.3.3.3

通了,感觉很不容易吧,呵呵!
当然必要高兴,这只是NP阶段的一个小实验而已,加油!在这其实大多数是我本人的自学的实验小笔记,若有错误,请指正。
转载于:https://blog.51cto.com/redyi2008/504639