BGP-基础配置.note
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邻居