BGP对等体建立方法--实验

embedded/2024/11/26 5:35:49/

目录

实验拓扑图

实验要求:

第一步、IP地址规划

第二步、配置接口IP地址

第三步、AS 200使用IGP OSPF实现网络互通

第四步、建立BGP对等体关系

1、R1与R2使用直连链路建立EBGP关系。

2、R2与R4使环回建立非直连IBGP关系。

3、R4与R5使用环回建立EBGP关系。

第五步、使用BGP宣告R1环回,R5环回。


实验拓扑图

实验要求:

1、R1与R2使用直连链路建立EBGP关系。
2、R2与R4使环回建立非直连IBGP关系。
3、R4与R5使用环回建立EBGP关系。
4、AS 200使用IGP OSPF实现网络互通。
5、所有环回基于192.168.1.0/24进行合理分配,R1、R5的环回使用BGP进行宣告,能够互相访问。

第一步、IP地址规划

第二步、配置接口IP地址

R1

<Huawei>system-view 
[Huawei]sysname R1
[R1]int g0/0/0
[R1-GigabitEthernet0/0/0]ip address 12.1.1.1 24
[R1-GigabitEthernet0/0/0]int lo0
[R1-LoopBack0]ip address 192.168.1.1 32
[R1-LoopBack0]qu

R2

<Huawei>system-view 
[Huawei]sysname R2
[R2]int g0/0/1
[R2-GigabitEthernet0/0/1]ip address 12.1.1.2 24
[R2-GigabitEthernet0/0/1]int g0/0/0
[R2-GigabitEthernet0/0/0]ip address 23.1.1.2 24
[R2-GigabitEthernet0/0/0]int lo0
[R2-LoopBack0]ip address 192.168.1.2 32
[R2-LoopBack0]qu

R3

<Huawei>system-view 
[Huawei]sysname R3
[R3]int g0/0/1
[R3-GigabitEthernet0/0/1]ip address 23.1.1.3 24
[R3-GigabitEthernet0/0/1]int g0/0/0
[R3-GigabitEthernet0/0/0]ip address 34.1.1.3 24
[R3-GigabitEthernet0/0/0]int lo0
[R3-LoopBack0]ip address 192.168.1.3 32
[R3-LoopBack0]qu

R4

<Huawei>system-view 
[Huawei]sysname R4
[R4]int g0/0/1
[R4-GigabitEthernet0/0/1]ip address 34.1.1.4 24
[R4-GigabitEthernet0/0/1]int g0/0/0
[R4-GigabitEthernet0/0/0]ip address 45.1.1.4 24
[R4-GigabitEthernet0/0/0]int lo0
[R4-LoopBack0]ip address 192.168.1.4 24
[R4-LoopBack0]qu

R5

<Huawei>system-view 	
[Huawei]sysname R5
[R5]int g0/0/1	
[R5-GigabitEthernet0/0/1]ip address 45.1.1.5 24
[R5-LoopBack0]int lo0
[R5-LoopBack0]ip address 192.168.1.5 32
[R5-LoopBack0]int lo1
[R5-LoopBack1]ip address 192.168.1.15 32
[R5-LoopBack1]qu

第三步、AS 200使用IGP OSPF实现网络互通

R2

[R2]ospf 1 router-id 2.2.2.2	
[R2-ospf-1]area 0	
[R2-ospf-1-area-0.0.0.0]network 192.168.1.2 0.0.0.0
[R2-ospf-1-area-0.0.0.0]network 23.1.1.2 0.0.0.0
[R2-ospf-1-area-0.0.0.0]qu
[R2-ospf-1]qu

R3

[R3]ospf 1 router-id 3.3.3.3
[R3-ospf-1]area 0
[R3-ospf-1-area-0.0.0.0]network 192.168.1.3 0.0.0.0
[R3-ospf-1-area-0.0.0.0]network 23.1.1.3 0.0.0.0	
[R3-ospf-1-area-0.0.0.0]network 34.1.1.3 0.0.0.0
[R3-ospf-1-area-0.0.0.0]qu
[R3-ospf-1]qu

R4

[R4]ospf 1 router-id 4.4.4.4	
[R4-ospf-1]area 0
[R4-ospf-1-area-0.0.0.0]network 34.1.1.4 0.0.0.0
[R4-ospf-1-area-0.0.0.0]network 192.168.1.4 0.0.0.0
[R4-ospf-1-area-0.0.0.0]qu
[R4-ospf-1]qu

在R3上看OSPF邻居建立关系。

使用R2环回pingR4环回,已经实现AS 200 IGP可达。

第四步、建立BGP对等体关系

1、R1与R2使用直连链路建立EBGP关系。

R1

[R1]bgp 100
[R1-bgp]router-id 1.1.1.1	
[R1-bgp]peer 12.1.1.2 as-number 200
[R1-bgp]qu

R2

[R2]bgp 200
[R2-bgp]router-id 2.2.2.2
[R2-bgp]peer 12.1.1.1 as-number 100
[R2-bgp]qu

在R1或R2上查看BGP关系建立结果,状态为Established,建立成功。

2、R2与R4使环回建立非直连IBGP关系。

R2

[R2]bgp 200
[R2-bgp]router-id 2.2.2.2
[R2-bgp]peer 192.168.1.4 as-number 200

R4

[R4]bgp 200
[R4-bgp]router-id 4.4.4.4
[R4-bgp]peer 192.168.1.2 as-number 200

在R2或R4上查看BGP关系建立结果,状态为Active,一直处于反复建立连接状态。

因为使用的是环回建立对等体关系,所以需要给对端指定是用的环回某个接口进行的建立对等体关系,所以还需要在R2与R4之间互相配置如下命令:

R2

[R2-bgp]peer 192.168.1.4 connect-interface LoopBack 0

R4

[R4-bgp]peer 192.168.1.2 connect-interface LoopBack 0

现在来查看R2与R4的BGP对等体建立关系,状态为Established,建立成功。

BGP 6种状态机

3、R4与R5使用环回建立EBGP关系。

R4

[R4]bgp 200
[R4-bgp]router-id 4.4.4.4
[R4-bgp]peer 192.168.1.5 as-number 300	
[R4-bgp]peer 192.168.1.5 connect-interface LoopBack 0

R5

[R5]bgp 300
[R5-bgp]router-id 5.5.5.5
[R5-bgp]peer 192.168.1.4 as-number 200
[R5-bgp]peer 192.168.1.4 connect-interface LoopBack 0

 在R4或R5上查看BGP关系建立结果,状态为Idle,是处于TCP建立阶段。

因为BGP是处于IGP之上,R4的环回没有路由到达R5环回的路由,现在互相指定去往环回的路由。

R4

[R4]ip route-static 192.168.1.5 32 45.1.1.5

R5

[R5]ip route-static 192.168.1.4 32 45.1.1.4

现在去查看R4与R5的对等体结果,发现还是处于Idle状态,并且在日志中看出一直处于连接当中。

BGP规定EBGP邻居间默认所有的BGP数据包TTL值为1,每经过一个路由器、三层交换机、防火墙等三层网络时就会减1,导致环回建立邻居关系服务不正常。因此我们需要修改EBGP的TTL值,我这里修改为2。

R4

[R4-bgp]peer 192.168.1.5 ebgp-max-hop 2

R5

[R5-bgp]peer 192.168.1.4 ebgp-max-hop 2

现在再来看R4与R5的BGP对等体建立结果,状态为Established,建立成功。

第五步、使用BGP宣告R1环回,R5环回。

R1

[R1-bgp]network 192.168.1.1 32

 R5

[R5-bgp]network 192.168.1.5 32

现在去R1和R5上查看BGP宣告的路由,然而发现,都只有自己宣告的路由,并没有学到对方宣告的路由。

R1

R5 

去R2上面看学习到R1上的宣告的路由,没有学习到R5上面的路由,但是学习到R1宣告的路由192.168.1.1可用且优(可以传递)。

再去R4上面看,都学习到了,但是发现都不可用,也不优,就导致无法传递。

因为R4去往192.168.1.1这条路由的下一跳是12.1.1.1,而在AS 200 IBGP内没有12.1.1.1网段,12.1.1.1网段不可达,加表不优。所以在R2上做以下配置,告诉R4去R2的下一跳为本地。

R2

[R2-bgp]peer 192.168.1.4 next-hop-local

R4 同理

[R4-bgp]peer 192.168.1.2 next-hop-local

再去R4上查看BGP路由,看到R1 BGP宣告的路由可用且可传递,而R5 BGP宣告的路由还是不可用也无法传递。因为逻辑悖论:我们在建立BGP对等体关系前,需要两环回互通,写了静态路由,如果不写静态路由,会导致BGP对等体关系失败。所以通常在实际工程中,是以一个环回来单独建立BGP对等体关系,其他业务网段不与该环回共用。

 R5

[R5-bgp]network 192.168.1.15 32

再去R1上查看,学习到了R5新宣告的路由192.168.1.15

补充:

*号表示可用。

>号表示条目优秀,可以加表,可以传递(共享给本地的其他邻居,如果不优,原因:1、下一跳不可达AS-BY-AS。

状态处的i表示该条目通过IBGP邻居关系学习。

现在R1与R5互相学习到非建邻环回接口宣告的路由,但是还是没办法互通,这就是BGP路由黑洞导致的问题,该实验模拟环境出现在R3上,解决方法:

1、物理或逻辑链路全连。

2、全连的BGP邻居关系,所有设备运行bgp---设备成本高

3、将BGP路由条目重发布到IGP协议中---只适合在实验模拟环境中。

4、MPLS(多协议标签交换)---最佳方案。

该实验模拟环境中采用第二种方式解决,两两设备之间建立BGP对等体关系。

R2-R3

R2
[R2]bgp 200
[R2-bgp]peer 192.168.1.3 as-number 200
[R2-bgp]peer 192.168.1.3 next-hop-local	
[R2-bgp]peer 192.168.1.3 connect-interface LoopBack 0
R3
[R3]bgp 200
[R3-bgp]router-id 3.3.3.3
[R3-bgp]peer 192.168.1.2 as-number 200
[R3-bgp]peer 192.168.1.2 next-hop-local	
[R3-bgp]peer 192.168.1.2 connect-interface LoopBack 0

R4-R3

R3
[R3-bgp]peer 192.168.1.4 as-number 200	
[R3-bgp]peer 192.168.1.4 connect-interface LoopBack 0
[R3-bgp]peer 192.168.1.4 next-hop-local
R4
[R4]bgp 200
[R4-bgp]peer 192.168.1.3 as-number  200
[R4-bgp]peer 192.168.1.3 connect-interface LoopBack 0
[R4-bgp]peer 192.168.1.3 next-hop-local

现在在R3上查看已经有BGP非建邻宣告的环回路由。

去R1上去用192.168.1.1环回ping192.168.1.15,访问可达。


http://www.ppmy.cn/embedded/140553.html

相关文章

图论基础知识

图论基础知识 什么是图论&#xff1f; 图论&#xff08;Graph Theory&#xff09;是研究图&#xff08;Graph&#xff09;的数学分支&#xff0c;主要研究点和边之间的关系。在计算机科学、网络设计、生物信息学等领域中&#xff0c;图论有广泛的应用。 图的基本定义 图 (Gr…

dify部署和应用 | docker基础使用

使用Docker运行 cd dify cd docker cp .env.example .env docker compose up -d这里docker一定要更新&#xff0c;旧版的没有docker compose这个命令&#xff0c;会失败。如果在ubuntu上面docker拉镜像一直失败&#xff0c;可以使用win系统的docker下载导出&#xff0c;然后再…

【Zookeeper】二、主从应用(master-worker架构)

以一张具有代表性的架构风格展开本篇论述 一般在这种架构中&#xff0c;主节点所负责的工作主要有 跟踪从节点状态分配任务到从节点&#xff0c;并跟踪任务的有效性&#xff08;任务是否正常执行完成&#xff09; 此时&#xff0c;我们需要关注三个问题 主节点崩溃 如果主节…

Firewall防火墙配置

文章目录 一、firewalld简介二、firewalld特性三、firewalld相关文件及目录四、firewalld配置五、firewalld配置实例一、firewalld简介 firewalld 提供了支持网络/防火墙区域(zone)定义网络链接以及接口安全等级的动态防火墙管理工具。它支持 ipv4, ipv6 防火墙设置以及以太网…

CircuitBreaker机制详解:Elasticsearch中的资源管理

CircuitBreaker机制详解:Elasticsearch中的资源管理 在现代软件架构中,熔断器(CircuitBreaker)是一种重要的模式,用于防止系统过载并保护系统稳定性。在Elasticsearch中,熔断器机制尤其关键,因为它们帮助管理资源使用,防止节点因资源耗尽而崩溃。本文将深入探讨Elasti…

废品买卖回收管理系统|Java|SSM|Vue| 前后端分离

【重要①】前后端源码万字文档部署文档 【重要②】正版源码有问题包售后 【包含内容】 【一】项目提供非常完整的源码注释 【二】相关技术栈文档 【三】源码讲解视频 【其它服务】 【一】可以提供远程部署安装&#xff0c;包扩环境 【二】提供软件相关的安装包 【三】如…

输入三个整数x,y,z,请把这三个数由小到大输出。-多语言实现

目录 C 语言实现 Python 实现 Java 实现 Js 实现 题目&#xff1a;输入三个整数x,y,z&#xff0c;请把这三个数由小到大输出。 程序分析&#xff1a;我们想办法把最小的数放到x上&#xff0c;先将x与y进行比较&#xff0c;如果x>y则将x与y的值进行交换&#xff0c;然后…

go语言range的高级用法-使用range来接收通道里面的数据

在 Go 语言中&#xff0c;可以使用 for ... range 循环来遍历通道&#xff08;channel&#xff09;。for ... range 循环会一直从通道中接收值&#xff0c;直到通道关闭并且所有值都被接收完毕。 使用 for ... range 遍历通道 示例代码 下面是一个使用 for ... range 遍历通…