基本BGP实验布署
基本知识:
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 的整理的笔记是非常好的。当然,我会跟大家一起去学习。
接下来作个实验:
基本BGP实验布署_第1张图片
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 出来,那是如果理解了都是一样的配置原理。
那么在完成配置之后,开始来查看相关信息吧:
1show  ip  bgp  neighbor
默认情况下,你可以看见两个邻居,一个是R3 另一个是R2
2bgp log-neighbor-changes
BGP连接成功时,你将看见如下类似的提示信息:
基本BGP实验布署_第2张图片
 
这是在BGP建立邻居的时的一个提示信息,也就是上述的实验中使用:
 bgp log-neighbor-changes 后的作用。
3 show  ip  route 当我们在 IBGP 中运行一个 OSPF 后我们去看看路由表有没有条目:
基本BGP实验布署_第3张图片
这个表的信息,跟平常运行 OSPF 的效果没有区别,不是说运行 BGP 了吗 ?怎么没有看见 BGP 学到条目啊?
等等 ,我们使用 show  ip  bgp 看看:
基本BGP实验布署_第4张图片
确实在 BGP 的表中确实有从 BGP 学来的路由,那怎么没有看见写入路由表呢?
对了, BGP 只是种路由协议,那么怎么把 BGP 导出来?记得 redistribute ?在这个地方我们用双向重分布的方法来做。 (R1 )
redistribute connected metric 2         /* BGP中,重分布直连路由,且metric2*/
redistribute ospf 110 metric 3          * BGP中,重分OSPF路由,且metric3
router ospf 110
redistribute bgp 1 metric 6 subnets         /* OSPF中,重分布bgp,且metric6*/
 
  按照上述方法把 R1 R3 重分布以后,那么我们可以来路由表的情况:
基本BGP实验布署_第5张图片
 
按照上述方法把 R2 R4 重分布以后,那么我们可以来路由表的情况:
 
基本BGP实验布署_第6张图片
 
比较下,那么是不从 R4 学来, 4.4.4.0/24 的路由,当然在 R2 上也会有 3.3.3.0/24 的路由信息。
 
基本BGP实验布署_第7张图片
 
那么既然都学到了目标网路的路由了,是不是就可以 PING 通了呢?
试试:
Ping 4.4.4.4 source 3.3.3.3
 
基本BGP实验布署_第8张图片
 
结果没有通,这是为什么呢
那是因为在尽管已经建立好了邻居,但没有通告 R1 R3 的路由, R2 R4 的路由,所以 要写一条路由,我在这就写默认的路由。只要指向对方就行,我们可以假设, R1 R3 之间还有很多设备,我们不管了,其实就是说,只要 EBGP 邻居通就行。
看看:
 
基本BGP实验布署_第9张图片
 
这样的话,你看多了一条默认路由,赶紧测试下吧:
Ping 4.4.4.4 source 3.3.3.3
 
基本BGP实验布署_第10张图片
 
通了,感觉很不容易吧,呵呵!
当然必要高兴,这只是 NP 阶段的一个小实验而已,加油!在这其实大多数是我本人的自学的实验小笔记,若有错误,请指正。