一、IBGP和EBGP概念

EBGP是不同的AS间建立的邻居关系,通常EBGP通过直连建立邻居关系

IBGP是相同的AS内的建立的BGP关系,邻居之间不必要通过直连建立邻居关系,一般通过loopback建立邻居关系。

二、BGP组网拓扑:

2876e421f75877e5f9495ee4221045ae.png

R2 R3 R4属于AS200 , 我们配置IBGP邻居:

R2到R4,完成IGP-EIGRP(目标使环回口路由可达)

R2和R4建立IBGP邻居关系,此处使用sopf,建立完成后R2和R4互相学到loopback地址,我们R2和R4建立IBGP邻居关系:

R2(config)#router bgp 200

R2(config-router)#neighbor 44.1.1.1 remote-as 200

R4(config)#router bgp 200

R4(config-router)#neighbor 22.1.1.1 remote-as 200

配置完后我们发现BGP邻居关系为IDLE状态,debug查看默认R2用的物理之间出接口与R4 lo 建立邻居关系无法建立重置。

6915a9182fb65b2537b737961940ea95.png

我们需要配置R2的建立BGP邻居关系的源为lo0

aa583e76734d8e7c740ce53ae10d6634.png

同时我们也需要把R4配置lo0 为源,否则某种场景下也会出现问题。

R4(config)#router bgp 200

R4(config-router)#neighbor 22.1.1.1 update-source lo 0

我们在R2可以学到R1的11.1.1.1 的路由:

f7098b3b70eb46e3a95a1bfe94e5812a.png

我们在R4无法学到R1的11.1.1.1 的路由,我们对比下R2和R4的BGP数据库。

afe23812f71ed78b5a1d0f80eb1f4c11.png

R4没有>最优的路由

faf8debc259f3fec74b2b7589c126b5a.png

最优(没有过滤):

下一跳: 必须可达(即在路由表中出现)

同步: 和IGP的同步,此条件默认满足

此时我们发现R4没有到下一跳12.1.1.1 的路由,因此BGP路由表没有学到11.1.1.1的路由

c53b3cad6c424960ab0ca5eb9cd6b389.png

此时我们可以R2的ospf引入直连路由,让R4学到12.1.1.1的路由

R2(config)#route-map conn

R2(config-route-map)#match interface serial 1/0

R2(config)#router ospf 110

R2(config-router)#redistribute connected route-map conn

此时我们可以在R4路由表学到12.1.1.1的路由,BGP路由表可以学到11.1.1.1的有效路由:

b505fb086f0a32c18e3719b88a833952.png

以上这种方法不常用,我们常用的是下面这种方法next-hop-self,下一跳为自己,R2进行配置改完后我们R4查看路由表下一跳为R2自己22.1.1.1

R2(config)#router ospf 110

R2(config-router)#no redistribute connected route-map conn

R2(config-router)#no redistribute connected subnets

R2(config)#router bgp 200

R2(config-router)#neighbor 44.1.1.1 next-hop-self —针对IBGP邻居把下一跳改为本设备的更新源

55da1b7c2fb23a271b26cad553f6fe76.png

同时路由表下一跳变为22.1.1.1:

37b85589bbfe9d5c2ea1301f487b1403.png

查看CEF:

63a5444cdc1a2b14f0413343dd1fe04c.png

我们再把R5配置下:

R5#show run | s bgp

router bgp 300

bgp log-neighbor-changes

network 55.1.1.1 mask 255.255.255.255 —–BGP network精准匹配掩码

neighbor 45.1.1.4 remote-as 200

R4查看BGP数据库:

141a024c436c4c897b1a9be0272288b6.png

此时下一跳也是45.1.1.5,因此在R2同样是学不到这条路由,因此我们需要针对R4的IBGP邻居改变下一跳为本设备R4。

R4(config)#router bgp 200

R4(config-router)#neighbor 22.1.1.1 next-hop-self

我们在R2查看到达55.1.1.1的下一跳变为44.1.1.1(R4 lo)

8d70eb82aba45c50ffdf5b4db902be8e.png

此时我们在R5和R1 都能通过BGP学到对方的lo0 路由,但是我们发现R5 ping R1 是没法ping通的,此时R3出现了路由黑洞,R3之前我们没有配置任何的BGP。

R5#ping 11.1.1.1 source lo 0

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 11.1.1.1, timeout is 2 seconds:

Packet sent with a source address of 55.1.1.1

…..

R5数据到达R4,R4到达了R3(通过CEF查看下一跳到达R3)

R4#show ip cef 11.1.1.1 detail

11.1.1.1/32, epoch 0, flags [rib only nolabel, rib defined all labels]

recursive via 22.1.1.1

nexthop 34.1.1.3 Ethernet0/2

然后我们在R3查看路由表没有发现到11.1.1.1的路由:

f6140f4108cbd9ca572812853889b384.png

为了使R3得到11.1.1.1 的路由,我们使用之前学过的路由重分布,R2通过EBGP已经学到11.1.1.1的路由R2上bgp引入ospf就可让R3学到11.1.1.1的路由:

R2(config)#router ospf 110

R2(config-router)#redistribute bgp 200 subnets

此时我们在R3可以学到11.1.1.1的路由:

97f15003d8ee03bffdcaad42d39e1b24.png

虽然R3学到路由但是我们从R5ping 11.1.1.1是仍然没法ping通的,因为R3没有55.1.1.1的路由。

R5#ping 11.1.1.1 source lo 0

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 11.1.1.1, timeout is 2 seconds:

Packet sent with a source address of 55.1.1.1

…..

Success rate is 0 percent (0/5)

我们在R4上也进行重分布:

R4(config)#router os 110

R4(config-router)#redistribute bgp 200 subnets

此时我们在R3都能学到R1 和 R5 lo0 路由:

8d994dd1ebcffe7866a91284560397b2.png

此时我们可以在R5 ping通R1的lo0 11.1.1.1:

39ff33b67b83276c32f2d48a7eda8d9d.png

路由黑洞:我们可以跨设备更新路由表,但是R3没有运行BGP,R3是路由黑洞(没有得到路由)。

IP 逐跳转发(hop-by-hop),每台设备都需要有路由表。

如果喜欢这段内容,欢迎大家点赞、收藏、分享、转发,技术改变命运!欢迎网络狂热分子加入网络狂热爱好者圈子交流,圈内持续更新分享干货网络技术,祝大家事业更上一层楼,人生更加精彩!

同时欢迎想系统学网络的朋友私信交流!


版权声明:本文为weixin_35935249原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_35935249/article/details/112181861