BGP-基础配置.note

noteId: BFAEF09DA8624EA99C2EB2EF2309018B · 原始路径:/ALL/网络 - C模块/1-路由协议合集、路由控制、策略路由/BGP (TCP-179)/BGP-基础配置.note · 图片:17 · 附件待处理:0

 
bgp confederation identifier 100 只有在 跟其它BGP建立 eBGP邻居时才需要输入
iBGP 不需要配置 多个下一跳,只有 eBGP邻居建立时才需要配置多跳下一跳,因为 eBGP邻居跳数默认为 1
·实验环境:
先将IP地址等基础配置配置好
 
 
一、手动建立 iBGP 邻居:
 
1、在 R2 与 R3 上配置:
 
(1)R2:
router bgp 200
 neighbor 11.1.1.1 remote-as 200
 
(2)R3:
router bgp 200
 neighbor 11.1.1.2 remote-as 200
 
(3)这时能够收到日志:
邻居建立成功
 
 
(4)查看 邻居状态:
show ip bgp summary
 
 
 
二、手动建立 eBGP 邻居(R1 R2通过环回接口建立邻居):
 
1、先配置基础连通性:
这时底层需要先使用 IGP或者静态路由让R1 和 R2 的环回接口互通
 
R1:
ip route 2.2.2.2 255.255.255.255 G0/1
R2:
ip route 1.1.1.1 255.255.255.255 G0/1
do ping 1.1.1.1 source Loopback 0
 
 
2、建立 eBGP邻居:
(因为eBGP默认TTL值为1,而本实验是通过Loopback接口建立邻居的,理论上需要经过两个入接口,因此TTL值需要设置为 :2)
(1)R1:
R1(config)#router bgp 100
R1(config-router)#neighbor 2.2.2.2 remote-as 200      //指定 eBGP邻居ip地址,AS号码为 200
R1(config-router)#neighbor 2.2.2.2 update-source Loopback 0    //修改更新源,对端的邻居建立请求中的目标地址必须和更新源一致
R1(config-router)#neighbor 2.2.2.2 ebgp-multihop 2    //设置 TTL 值为2,如果不加数字,直接回车,则默认设置 TTL值 为 255
 
(2)R2:
R2(config)#router bgp 200
R2(config-router)#neighbor 1.1.1.1 remote-as 100    //指定 eBGP邻居ip地址,AS号码为 100
R2(config-router)#neighbor 1.1.1.1 update-source Loopback 0
R2(config-router)#neighbor 1.1.1.1 ebgp-multihop 2
 
(3)可以看到日志,eBGP邻居建立成功:
 
 
 
三、路由通告(将 IGP 的路由通告进 BGP 中):
通告进 BGP 的路由必须要在路由表中真实存在
 
 
1、在 R1 上通告路由,将其通告 R2 同步到 R3 中:
新增一个 Loopback 100 接口用于实验:100.1.1.1/32
(1)R1 上通告路由:
do show ip route    //查看该路由是否存在于 IGP 路由表中
 
(2)将其 通告进 BGP 中:
注意:通告的地址,必须严格匹配IGP路由表中的条目
R1(config)#router bgp 100
R1(config-router)#network 100.1.1.1 mask 255.255.255.255 
 
(3)R1上 查看 BGP 路由表:
BGP 单独维护了一张 BGP路由表
show ip bgp    //查看BGP路由表
* //表示可用
> //表示最佳选择
只有 *和> 同时存在的BGP路由条目,才会被写入 IGP的路由表中生效
 
下一跳 0.0.0.0 表示是本地
 
 
(4)R2上 查看 BGP 路由表:
 
 
(5)R3 上 查看 BGP 路由表:
这时会出现一些问题,因为该路由条目是 eBGP 传递进 iBGP 的,iBGP路由器会原封不动的将其传递给其它 iBGP路由器。因此下一跳还是 eBGP路由器
而该 iBGP路由器并没有和 eBGP路由器建立 邻居,并不知道该 eBGP路由器如何到达
 
 
 
2、需要 在 R2 上 添加一条(在 连接 eBGP 与 iBGP的路由器上配置):
 
(1)R2:
R2(config-router)#neighbor 11.1.1.1 next-hop-self 
 
(2)刷新 R3 上 的 BGP 路由表:
R3(config)#do clear ip bgp * soft
 
(3)再次查看 BGP 路由表:
R3(config)#do show ip bgp        
 
可以看到,现在的 BGP路由表已经正常,且下一跳为 iBGP邻居
 
i //表示该路由是由 iBGP传递过来的
 
 
 
四、BGP 反射器:
 
·在前面的基础上再加上路由器:
配置好基础ip地址
 
因为 BGP防环问题,R3通告的路由条目,R2不会将其传递给R4
同理,R4通告的路由条目,R2也不会将其传递给R3
此时就需要使用
 
 
1、测试 不配置 BGP反射器会怎样:
(1)配置 R4:
R4(config)#router bgp 200
R4(config-router)#neighbor 12.1.1.2 remote-as 200
 
 
 
(2)配置 R5:
R2(config)#router bgp 200
R2(config-router)#neighbor 12.1.1.1 remote-as 200
 
 
(3)在 R4 上通告路由条目:
先创建一个环回接口
这时,在 R3(R4)上 通告路由条目,不会被R2同步给R4(R3)
R4(config)#router bgp 200
R4(config-router)#network 110.1.1.1 mask 255.255.255.255 
 
 
(4)在 R2 上查看:
do show ip bgp
 
(5)在 R3 上查看:
do show ip bgp
可以看到,R2并没有将从R4学到的路由条目传递给R3
这是因为BGP(iBGP)中的防环:水平分割【iBGP路由器不会将从iBGP学习到的路由条目传递给其它iBGP路由器】
 
 
2、配置 BGP反射:
 
(1)R2:
router bgp 200
bgp client-to-client reflection    //开启BGP反射【默认是开启的】
neighbor 11.1.1.1 route-reflector-client    //设置R3为BGP反射器客户端
neighbor 12.1.1.1 route-reflector-client     //设置R4为BGP反射器客户端
 
(2)在 R3 上查看R4的路由是否被同步:
do show ip bgp
 
 
可以看到,此时路由已经被成功同步了,但是没有‘>’,是因为底层的IGP没有通信,R3没有去往110.1.1.1 的路由,因此
 
 
(3)在底层配置一个 ospf:
R2、R3、R4:
router ospf 1
 
 
(4)再查看R3上的bgp路由表:
do show ip bgp
此时就BGP路由表就正常了
 
 
(5)在 eBGP 邻居R1上查看 BGP 路由表:
do show ip bgp
eBGP邻居上有路由条目是因为,R2会应为水平分割问题,不将路由条目同步给其它iBGP邻居,但是会将路由条目同步给eBGP邻居