配置BGP的基本示例

BGP简介

定义

边界网关协议BGP(Border Gateway Protocol)是一种实现自治系统AS(Autonomous System)之间的路由可达,并选择最佳路由的距离矢量路由协议。早期发布的三个版本分别是BGP-1(RFC1105)、BGP-2(RFC1163)和BGP-3(RFC1267),1994年开始使用BGP-4(RFC1771),2006年之后单播IPv4网络使用的版本是BGP-4(RFC4271),其他网络(如IPv6等)使用的版本是MP-BGP(RFC4760)。

MP-BGP是对BGP-4进行了扩展,来达到在不同网络中应用的目的,BGP-4原有的消息机制和路由机制并没有改变。MP-BGP在IPv6单播网络上的应用称为BGP4+,在IPv4组播网络上的应用称为MBGP(Multicast BGP)。

目的

为方便管理规模不断扩大的网络,网络被分成了不同的自治系统。1982年,外部网关协议EGP(Exterior Gateway Protocol)被用于实现在AS之间动态交换路由信息。但是EGP设计得比较简单,只发布网络可达的路由信息,而不对路由信息进行优选,同时也没有考虑环路避免等问题,很快就无法满足网络管理的要求。

BGP是为取代最初的EGP而设计的另一种外部网关协议。不同于最初的EGP,BGP能够进行路由优选、避免路由环路、更高效率的传递路由和维护大量的路由信息。

虽然BGP用于在AS之间传递路由信息,但并不是所有AS之间传递路由信息都需要运行BGP。比如在数据中心上行的连入Internet的出口上,为了避免Internet海量路由对数据中心内部网络的影响,设备采用静态路由代替BGP与外部网络通信。


组网需求 

如下图所示,需要在所有Switch间运行BGP协议,SwitchA、SwitchB之间建立EBGP连接,SwitchB、SwitchC和SwitchD之间建立IBGP全连接。 

注意:请确保该场景下互联接口的STP处于未使能状态。因为在使能STP的环形网络中,如果用交换机的VLANIF接口构建三层网络,会导致某个端口被阻塞,从而导致三层业务不能正常运行。 


 配置思路 

  • 在SwitchB、SwitchC和SwitchD间配置IBGP连接。
  • 在SwitchA和SwitchB之间配置EBGP连接。

操作步骤 

  • 配置各接口所属的VLAN

# 配置SwitchA。SwitchB、SwitchC和SwitchD的配置与SwitchA类似。

<Huawei>system-view 
[Huawei]sysname SwitchA
[SwitchA]undo stp enable 
[SwitchA]vlan batch 10 50
[SwitchA]interface GigabitEthernet 0/0/1
[SwitchA-GigabitEthernet0/0/1]port link-type trunk 
[SwitchA-GigabitEthernet0/0/1]port trunk allow-pass vlan 10
[SwitchA-GigabitEthernet0/0/1]quit	
[SwitchA]interface GigabitEthernet 0/0/2
[SwitchA-GigabitEthernet0/0/2]port link-type trunk 
[SwitchA-GigabitEthernet0/0/2]port trunk allow-pass vlan 50
[SwitchA-GigabitEthernet0/0/2]quit
  • 配置各VLANIF接口的IP地址

# 配置SwitchA。SwitchB、SwitchC和SwitchD的配置与SwitchA类似。

[SwitchA]interface Vlanif 10
[SwitchA-Vlanif10] ip address 192.168.1.2 24
[SwitchA-Vlanif10]quit	
[SwitchA]interface Vlanif 50
[SwitchA-Vlanif50]ip address 10.1.1.1 16
[SwitchA-Vlanif50]quit
  • 配置IBGP连接

# 配置SwitchB。

[SwitchB]bgp 65009	
[SwitchB-bgp]router-id 172.17.2.2
[SwitchB-bgp]peer 172.16.1.2 as-number 65009	
[SwitchB-bgp]peer 172.16.3.2 as-number 65009
[SwitchB-bgp]quit

# 配置SwitchC。

[SwitchC]bgp 65009
[SwitchC-bgp]router-id 172.17.3.3
[SwitchC-bgp]peer 172.16.3.1 as-number 65009
[SwitchC-bgp]peer 172.16.2.2 as-number 65009
[SwitchC-bgp]quit

# 配置SwitchD。

[SwitchD]bgp 65009
[SwitchD-bgp]rou	
[SwitchD-bgp]router-id 172.17.4.4
[SwitchD-bgp]peer 172.16.1.1 as-number 65009
[SwitchD-bgp]peer 172.16.2.1 as-number 65009
[SwitchD-bgp]quit
  • 配置EBGP

# 配置SwitchA。

[SwitchA]bgp 65008	
[SwitchA-bgp]router-id 172.17.1.1
[SwitchA-bgp]peer 192.168.1.1 as-number 65009
[SwitchA-bgp]quit

# 配置SwitchB。

[SwitchB]bgp 65009
[SwitchB-bgp]peer 192.168.1.2 as-number 65008
[SwitchB-bgp]quit

# 查看BGP对等体的连接状态。

[SwitchB]display bgp peer BGP local router ID : 172.17.2.2Local AS number : 65009Total number of peers : 3		  Peers in established state : 3Peer            V          AS  MsgRcvd  MsgSent  OutQ  Up/Down       State Pre
fRcv172.16.1.2      4       65009        5        6     0 00:03:55 Established    0172.16.3.2      4       65009        7        8     0 00:05:24 Established    0192.168.1.2     4       65008        2        2     0 00:00:11 Established    0

可以看出,SwitchB其它Switch的BGP连接均已建立。

  • 配置SwitchA发布路由10.1.0.0/16

# 配置SwitchA发布路由。

[SwitchA]bgp 65008
[SwitchA-bgp]ipv4-family unicast 
[SwitchA-bgp-af-ipv4]network 10.1.0.0 255.255.0.0
[SwitchA-bgp-af-ipv4]quit
[SwitchA-bgp]quit

# 查看SwitchA路由表信息。

[SwitchA]display bgp routing-tableBGP Local router ID is 172.17.1.1 Status codes: * - valid, > - best, d - damped,h - history,  i - internal, s - suppressed, S - StaleOrigin : i - IGP, e - EGP, ? - incompleteTotal Number of Routes: 1Network            NextHop        MED        LocPrf    PrefVal Path/Ogn*>   10.1.0.0/16        0.0.0.0         0                     0      i

# 查看SwitchB的路由表。

[SwitchB]display bgp routing-table BGP Local router ID is 172.17.2.2 Status codes: * - valid, > - best, d - damped,h - history,  i - internal, s - suppressed, S - StaleOrigin : i - IGP, e - EGP, ? - incompleteTotal Number of Routes: 1Network            NextHop        MED        LocPrf    PrefVal Path/Ogn*>   10.1.0.0/16        192.168.1.2     0                     0      65008i

# 查看SwitchC的路由表。

[SwitchC]display bgp routing-table BGP Local router ID is 172.17.3.3 Status codes: * - valid, > - best, d - damped,h - history,  i - internal, s - suppressed, S - StaleOrigin : i - IGP, e - EGP, ? - incompleteTotal Number of Routes: 1Network            NextHop        MED        LocPrf    PrefVal Path/Ogni  10.1.0.0/16        192.168.1.2     0          100        0      65008i

从路由表可以看出,SwitchC学到了AS65008中的10.1.0.0的路由,但因为下一跳192.168.1.2不可达,所以也不是有效路由。

  • 配置BGP引入直连路由

# 配置SwitchB。

[SwitchB]bgp 65009
[SwitchB-bgp]ipv4-family unicast 
[SwitchB-bgp-af-ipv4]import-route direct 
[SwitchB-bgp-af-ipv4]quit
[SwitchB-bgp]quit

# 查看SwitchA的BGP路由表。

[SwitchA]display bgp routing-table BGP Local router ID is 172.17.1.1 Status codes: * - valid, > - best, d - damped,h - history,  i - internal, s - suppressed, S - StaleOrigin : i - IGP, e - EGP, ? - incompleteTotal Number of Routes: 4Network            NextHop        MED        LocPrf    PrefVal Path/Ogn*>   10.1.0.0/16        0.0.0.0         0                     0      i*>   172.16.1.0/24      192.168.1.1     0                     0      65009?*>   172.16.3.0/24      192.168.1.1     0                     0      65009?192.168.1.0        192.168.1.1     0                     0      65009?

# 查看SwitchC的路由表。

[SwitchC]display bgp routing-table BGP Local router ID is 172.17.3.3 Status codes: * - valid, > - best, d - damped,h - history,  i - internal, s - suppressed, S - StaleOrigin : i - IGP, e - EGP, ? - incompleteTotal Number of Routes: 4Network            NextHop        MED        LocPrf    PrefVal Path/Ogn*>i  10.1.0.0/16        192.168.1.2     0          100        0      65008i*>i  172.16.1.0/24      172.16.3.1      0          100        0      ?i  172.16.3.0/24      172.16.3.1      0          100        0      ?*>i  192.168.1.0        172.16.3.1      0          100        0      ?

可以看出,到10.1.0.0的路由变为有效路由,下一跳为SwitchA的地址。

# 使用Ping进行验证。

[SwitchC]ping 10.1.1.1PING 10.1.1.1: 56  data bytes, press CTRL_C to breakReply from 10.1.1.1: bytes=56 Sequence=1 ttl=254 time=140 msReply from 10.1.1.1: bytes=56 Sequence=2 ttl=254 time=80 msReply from 10.1.1.1: bytes=56 Sequence=3 ttl=254 time=120 msReply from 10.1.1.1: bytes=56 Sequence=4 ttl=254 time=60 msReply from 10.1.1.1: bytes=56 Sequence=5 ttl=254 time=90 ms--- 10.1.1.1 ping statistics ---5 packet(s) transmitted5 packet(s) received0.00% packet lossround-trip min/avg/max = 60/98/140 ms

配置文件 

  • SwitchA的配置文件

#
sysname SwitchA
#
vlan batch 10 50
#
stp disable
#
interface Vlanif10ip address 192.168.1.2 255.255.255.0
#
interface Vlanif50ip address 10.1.1.1 255.255.0.0
#
interface GigabitEthernet0/0/1port link-type trunkport trunk allow-pass vlan 10 
#
interface GigabitEthernet0/0/2port link-type trunkport trunk allow-pass vlan 50 
#
bgp 65008router-id 172.17.1.1peer 192.168.1.1 as-number 65009#ipv4-family unicastundo synchronizationnetwork 10.1.0.0 255.255.0.0peer 192.168.1.1 enable
#
return
  • SwitchB的配置文件

#
sysname SwitchB
#
vlan batch 10 20 30
#
stp disable
#
interface Vlanif10ip address 192.168.1.1 255.255.255.0
#
interface Vlanif20ip address 172.16.3.1 255.255.255.0
#
interface Vlanif30ip address 172.16.1.1 255.255.255.0
#
interface GigabitEthernet0/0/1port link-type trunkport trunk allow-pass vlan 10
#
interface GigabitEthernet0/0/2port link-type trunkport trunk allow-pass vlan 20
#
interface GigabitEthernet0/0/3port link-type trunkport trunk allow-pass vlan 30
#
bgp 65009router-id 172.17.2.2peer 172.16.1.2 as-number 65009peer 172.16.3.2 as-number 65009peer 192.168.1.2 as-number 65008#ipv4-family unicastundo synchronizationimport-route directpeer 172.16.1.2 enablepeer 172.16.3.2 enable peer 192.168.1.2 enable
#
return
  • SwitchC的配置文件

#
sysname SwitchC
#
vlan batch 20 40
#
stp disable
#
interface Vlanif20ip address 172.16.3.2 255.255.255.0
#
interface Vlanif40ip address 172.16.2.1 255.255.255.0
#
interface GigabitEthernet0/0/1port link-type trunkport trunk allow-pass vlan 20
#
interface GigabitEthernet0/0/2port link-type trunkport trunk allow-pass vlan 40
#
bgp 65009router-id 172.17.3.3peer 172.16.2.2 as-number 65009peer 172.16.3.1 as-number 65009#ipv4-family unicastundo synchronizationpeer 172.16.2.2 enablepeer 172.16.3.1 enable
#
return
  • SwitchD的配置文件

#
sysname SwitchD
#
vlan batch 30 40
#
stp disable
#
interface Vlanif30ip address 172.16.1.2 255.255.255.0
#
interface Vlanif40ip address 172.16.2.2 255.255.255.0
#
interface GigabitEthernet0/0/1port link-type trunkport trunk allow-pass vlan 30
#
interface GigabitEthernet0/0/2port link-type trunkport trunk allow-pass vlan 40
#
bgp 65009router-id 172.17.4.4peer 172.16.1.1 as-number 65009peer 172.16.2.1 as-number 65009#ipv4-family unicastundo synchronizationpeer 172.16.1.1 enablepeer 172.16.2.1 enable
#
return

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/222639.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

核货宝订单管理系统提高企业效率

核货宝订单管理系统可以帮助企业提高效率&#xff0c;具体体现在以下几个方面&#xff1a; 一、订单自动化处理&#xff1a;核货宝订单管理系统支持订单批发和多渠道订单导入&#xff0c;它可以从订单的接收、处理、跟进、发货、到售后服务等环节都可以通过系统自动完成&#x…

再看参数校验

作者简介&#xff1a;大家好&#xff0c;我是smart哥&#xff0c;前中兴通讯、美团架构师&#xff0c;现某互联网公司CTO 联系qq&#xff1a;184480602&#xff0c;加我进群&#xff0c;大家一起学习&#xff0c;一起进步&#xff0c;一起对抗互联网寒冬 写一个接口&#xff0c…

OpenFeign 万字教程详解

OpenFeign 万字教程详解 目录 一、概述 1.1.OpenFeign是什么&#xff1f;1.2.OpenFeign能干什么1.3.OpenFeign和Feign的区别1.4.FeignClient 二、OpenFeign使用 2.1.OpenFeign 常规远程调用2.2.OpenFeign 微服务使用步骤2.3.OpenFeign 超时控制2.4.OpenFeign 日志打印2.5.O…

数据可视化:赋能企业决策的视觉力量

数据可视化在企业中扮演着至关重要的角色&#xff0c;为决策者提供了直观、深入的数据解读&#xff0c;帮助他们更好地理解业务状况并作出明智的决策。今天我就以可视化从业者的角度来简谈说说如何让数据可视化为更好地为企业服务。 首先&#xff0c;数据可视化可以让数据更易…

HFish蜜罐搭建及简单使用

一、HFish蜜罐 HFish是一款社区型免费蜜罐&#xff0c;侧重企业安全场景&#xff0c;从内网失陷检测、外网威胁感知、威胁情报生产三个场景出发&#xff0c;为用户提供可独立操作且实用的功能&#xff0c;通过安全、敏捷、可靠的中低交互蜜罐增加用户在失陷感知和威胁情报领域的…

类和对象(下篇)

再谈构造函数 构造函数体赋值 在之前的学习中我们知道&#xff0c;在创建一个对象时&#xff0c;我们的编译器就会自动调用构造函数将对象初始化&#xff0c;给对象中各个成员变量一个合适的初始值。 例如&#xff1a; class Date { public:Date(int year, int month, int d…

【pentaho】kettle读取Hive表不支持bigint和timstamp类型解决。

一、bigint类型 报错: Unable to get value BigNumber(16) from database resultset显示kettle认为此应该是decimal类型(kettle中是TYPE_BIGNUMBER或称BigNumber)&#xff0c;但实际hive数据库中是big类型。 修改kettle源码解决&#xff1a; kettle中java.sql.Types到kettle…

创建Github Pages 仓库

Github Pages 仓库创建 1. 在 GitHub 上创建一个新仓库2. 在仓库中创建一个分支&#xff08;可选&#xff0c;可跳过&#xff09;3. 创建您的静态网站4. 启用 GitHub Pages5. 等待构建完成6. 访问您的网站 在 GitHub 上创建一个 GitHub Pages 仓库是相对简单的。GitHub Pages 允…

JMeter---JSON提取器

JMeter的JSON提取器是一个用于从JSON响应中提取数据的元件。它可以从JSON响应中提取特定字段的值&#xff0c;并将这些值用于后续的测试步骤。 使用JSON提取器的步骤如下&#xff1a; 添加一个HTTP请求&#xff0c;用于获取包含JSON响应的数据。 在HTTP请求之后添加一个JSON提…

数字图像处理-空间域图像增强-爆肝18小时用通俗语言进行超详细的总结

目录 灰度变换 直方图&#xff08;Histogram&#xff09; 直方图均衡 直方图匹配&#xff08;规定化&#xff09; 空间滤波 低通滤波器 高通滤波器 ​​​​​​​ 本文章讲解数字图像处理空间域图像增强&#xff0c;大部分内容来源于课堂笔记中 灰度变换 图像增强&…

万界星空开源MES/注塑MES/开源注塑MES/免费MES/MES源码

一、系统概述&#xff1a; 万界星空科技免费MES、开源MES、商业开源MES、市面上最好的开源MES、MES源代码、适合二开的开源MES、好看的数据大屏、功能齐全开源mes. 1.万界星空开源MES制造执行系统的Java开源版本。 开源mes系统包括系统管理&#xff0c;车间基础数据管理&…

【大模型】LLM显存占用对比:Qwen-7B-Chat,Qwen-14B-Chat-Int8,chatglm3-6b

【大模型】LLM显存占用对比&#xff1a;Qwen-7B-Chat&#xff0c;Qwen-14B-Chat-Int8&#xff0c;chatglm3-6b 显存占用对比&#xff1a;总结参考 显存占用对比&#xff1a; 显卡&#xff1a;NVIDIA GeForce RTX 4090 系统环境&#xff1a;ubuntu 22.04LTS Qwen-14B-Chat-Int8…

VScode 工作区配置 和 用户配置

一、工作区配置 通常不同的项目都有不同的配置&#xff0c;我一般都是使用eslint和prettier一起用&#xff0c;所以经常会有这几个文件&#xff1a; 这里简单介绍一下这几个文件的作用吧。 1.vscode文件夹下 一般有两个文件&#xff0c;extensions.json和settings.json。 e…

[Linux] LVS+Keepalived高可用集群部署

一、Keepalived实现原理 1.1 高可用方案 Keepalived 是一个基于VRRP协议来实现的LVS服务高可用方案&#xff0c;可以解决静态路由出现的单点故障问题。 在一个LVS服务集群中通常有主服务器&#xff08;MASTER&#xff09;和备份服务器&#xff08;BACKUP&#xff09;两种角色…

WEB 3D技术 three.js 设置图像随窗口大小变化而变化

本文 我们来讲讲我们图层适应窗口变化的效果 可能这样说有点笼统 那么 自适应应该大家更熟悉 就是 当我们窗口发生变化说 做一些界面调整比例 例如 我们这样一个i项目界面 我们打开 F12 明显有一部分被挡住了 那么 我们可以刷新 这样是正常了 但是 我们将F12关掉 给F12的…

FFmpeg 简单文档

一、播放器框架 常用音视频术语 容器&#xff0f;文件&#xff08;Conainer/File&#xff09;&#xff1a;即特定格式的多媒体文件&#xff0c;比如mp4、flv、mkv等。媒体流&#xff08;Stream&#xff09;&#xff1a;表示时间轴上的一段连续数据&#xff0c;如一段声音数据、…

解决找不到vcruntime140.dll无法继续执行的多种方法分享

最近&#xff0c;我在使用电脑时遇到了一个问题&#xff0c;即“由于找不到vcruntime140.dll无法继续执行”。vcruntime140.dll是Visual C Redistributable Packages中的一个组件&#xff0c;它是Visual Studio 2015中运行C程序所必需的。如果找不到vcruntime140.dll文件&#…

【Jenkins】远程API接口:Java 包装接口使用示例

jenkins-rest 库是一个面向对象的 Java 项目&#xff0c;它通过编程方式提供对 Jenkins REST API 的访问&#xff0c;以访问 Jenkins 提供的一些远程 API。它使用 jclouds 工具包构建&#xff0c;可以轻松扩展以支持更多 REST 端点。其功能集不断发展&#xff0c;用户可以通过拉…

Spring中你一定要知道的afterPropertiesSet()

文章目录 功能源码 功能 初始化bean执行的回调方法其一&#xff0c;它不像PostConstruct一样可以有多个&#xff0c;只能调用一次&#xff1b;它执行的时机是在PostConstruct之后&#xff0c;从它的名称也可以看出&#xff0c;他是在属性填充完&#xff0c;也就是bean初始化完…

浅述无人机技术在地质灾害应急救援场景中的应用

12月18日23时&#xff0c;甘肃临夏州积石山县发生6.2级地震&#xff0c;震源深度10千米&#xff0c;灾区电力、通信受到影响。地震发生后&#xff0c;无人机技术也火速应用在灾区的应急抢险中。目前&#xff0c;根据受灾地区实际情况&#xff0c;翼龙-2H应急救灾型无人机已出动…