一、结论:

1、BGP只能建立备份路由,不能建立等价路由.

2、BGP按照下面的规则进行优选路由。

BGP选择路由的策略

当到达同一目的地存在多条路由时,BGP依次对比下列属性来选择路由:

  1. 优选协议首选值(PrefVal)最高的路由。

    协议首选值(PrefVal)是华为设备的特有属性,该属性仅在本地有效。

  2. 优选本地优先级(Local_Pref)最高的路由。

    如果路由没有本地优先级,BGP选路时将该路由按缺省的本地优先级100来处理。

  3. 依次优选手动聚合路由、自动聚合路由、network命令引入的路由、import-route命令引入的路由、从对等体学习的路由。

  4. 优选AS路径(AS_Path)最短的路由。

  5. 依次优选Origin类型为IGP、EGP、Incomplete的路由。

  6. 对于来自同一AS的路由,优选MED值最低的路由。

  7. 依次优选EBGP路由、IBGP路由、LocalCross路由、RemoteCross路由。

    PE上某个VPN实例的VPNv4路由的ERT匹配其他VPN实例的IRT后复制到该VPN实例,称为LocalCross;从远端PE学习到的VPNv4路由的ERT匹配某个VPN实例的IRT后复制到该VPN实例,称为RemoteCross。

  8. 优选到BGP下一跳IGP度量值(metric)最小的路由。

    说明:

    在IGP中,对到达同一目的地址的不同路由,IGP根据本身的路由算法计算路由的度量值。

  9. 优选Cluster_List最短的路由。

  10. 优选Router ID最小的设备发布的路由。

    如果路由携带Originator_ID属性,选路过程中将比较Originator_ID的大小(不再比较Router ID),并优选Originator_ID最小的路由。

  11. 优选从具有最小IP Address的对等体学来的路由。

3、BGP负载分担

当到达同一目的地址存在多条等价路由时,可以通过BGP等价负载分担实现均衡流量的目的。形成BGP等价负载分担的条件是“BGP选择路由的策略”的1至8条规则中需要比较的属性完全相同。

在大型网路中,到达同一目的地通常会存在多条有效路由,但是BGP只将最优路由发布给对等体,这一特点往往会造成很多流量负载不均衡的情况。通过配置BGP负载分担,可以流量负载均衡,减少网络拥塞。

[Huawei-bgp] ipv4-family unicast
[Huawei-bgp-af-ipv4] maximum load-balancing 2

二、组网图:

三、关键配置:

1、各个邻居之间,都是EBGP邻居。

2、左侧有一个PC,右侧有两个PC,为了验证流量在中间网络上是否总是走一个路由器,而不是负载均衡。

四、实测结果:

1、无论从左边到右边,还是从右边到左边的流量,总是走上面的路由器。而不走下面的路由器。

PC1上的tracert结果:

PC2上的tracert结果:

PC3上的tracert结果:

再做一个实验,将上面的路由器的AS号修改为65010,比下面的路由器的AS号更大,结果如下:

先说结论:BGP仍然是单选一条最优路径,而不会负载分担。选择的最优路由仍然同上面的。

下面是AR9上看到的路由表。

PC1上tracert的结果,可见仍然是走上面的路径。

PC2上tracert的结果,也显示走上面的路径,如下:

PC3上tracert的结果,也显示走上面的路径,如下:

贴上所有设备的配置信息:

AR9路由器配置如下:

<Huawei>dis curr
[V200R003C00]
#
snmp-agent local-engineid 800007DB03000000000000
snmp-agent
#
clock timezone China-Standard-Time minus 08:00:00
#
portal local-server load portalpage.zip
#
drop illegal-mac alarm
#
set cpu-usage threshold 80 restore 75
#
aaa
authentication-scheme default
authorization-scheme default
accounting-scheme default
domain default
domain default_admin
local-user admin password cipher %$%$K8m.Nt84DZ}e#<0`8bmE3Uw}%$%$
local-user admin service-type http
#
firewall zone Local
priority 15
#
interface Vlanif1
ip address 10.0.0.1 255.255.255.0
#
interface Ethernet0/0/0
#
interface Ethernet0/0/1
#
interface Ethernet0/0/2
#
interface Ethernet0/0/3
#
interface Ethernet0/0/4
#
interface Ethernet0/0/5
#
interface Ethernet0/0/6
#
interface Ethernet0/0/7
#
interface GigabitEthernet0/0/0
ip address 20.0.0.1 255.255.255.0
#
interface GigabitEthernet0/0/1
ip address 30.0.0.1 255.255.255.0
#
interface NULL0
#
bgp 65001
peer 20.0.0.2 as-number 65010
peer 30.0.0.2 as-number 65003
#
ipv4-family unicast
undo synchronization
network 10.0.0.0 255.255.255.0
network 20.0.0.0 255.255.255.0
network 30.0.0.0 255.255.255.0
peer 20.0.0.2 enable
peer 30.0.0.2 enable
#
user-interface con 0
authentication-mode password
user-interface vty 0 4
user-interface vty 16 20
#
wlan ac
#
return
<Huawei>

AR4路由器的配置如下:

<Huawei>dis curr
[V200R003C00]
#
snmp-agent local-engineid 800007DB03000000000000
snmp-agent
#
clock timezone China-Standard-Time minus 08:00:00
#
portal local-server load portalpage.zip
#
drop illegal-mac alarm
#
set cpu-usage threshold 80 restore 75
#
aaa
authentication-scheme default
authorization-scheme default
accounting-scheme default
domain default
domain default_admin
local-user admin password cipher %$%$K8m.Nt84DZ}e#<0`8bmE3Uw}%$%$
local-user admin service-type http
#
firewall zone Local
priority 15
#
interface GigabitEthernet0/0/0
ip address 20.0.0.2 255.255.255.0
#
interface GigabitEthernet0/0/1
ip address 40.0.0.1 255.255.255.0
#
interface GigabitEthernet0/0/2
#
interface NULL0
#
bgp 65010
peer 20.0.0.1 as-number 65001
peer 40.0.0.2 as-number 65004
#
ipv4-family unicast
undo synchronization
peer 20.0.0.1 enable
peer 40.0.0.2 enable
#
user-interface con 0
authentication-mode password
user-interface vty 0 4
user-interface vty 16 20
#
wlan ac
#
return
<Huawei>

AR5路由器的配置如下:

<Huawei>dis curr
[V200R003C00]
#
snmp-agent local-engineid 800007DB03000000000000
snmp-agent
#
clock timezone China-Standard-Time minus 08:00:00
#
portal local-server load portalpage.zip
#
drop illegal-mac alarm
#
set cpu-usage threshold 80 restore 75
#
aaa
authentication-scheme default
authorization-scheme default
accounting-scheme default
domain default
domain default_admin
local-user admin password cipher %$%$K8m.Nt84DZ}e#<0`8bmE3Uw}%$%$
local-user admin service-type http
#
firewall zone Local
priority 15
#
interface GigabitEthernet0/0/0
ip address 30.0.0.2 255.255.255.0
#
interface GigabitEthernet0/0/1
ip address 50.0.0.1 255.255.255.0
#
interface GigabitEthernet0/0/2
#
interface NULL0
#
bgp 65003
peer 30.0.0.1 as-number 65001
peer 50.0.0.2 as-number 65004
#
ipv4-family unicast
undo synchronization
peer 30.0.0.1 enable
peer 50.0.0.2 enable
#
user-interface con 0
authentication-mode password
user-interface vty 0 4
user-interface vty 16 20
#
wlan ac
#
return
<Huawei>

AR10路由器的配置如下:

<Huawei>dis curr
[V200R003C00]
#
snmp-agent local-engineid 800007DB03000000000000
snmp-agent
#
clock timezone China-Standard-Time minus 08:00:00
#
portal local-server load portalpage.zip
#
drop illegal-mac alarm
#
set cpu-usage threshold 80 restore 75
#
aaa
authentication-scheme default
authorization-scheme default
accounting-scheme default
domain default
domain default_admin
local-user admin password cipher %$%$K8m.Nt84DZ}e#<0`8bmE3Uw}%$%$
local-user admin service-type http
#
firewall zone Local
priority 15
#
interface Vlanif1
ip address 90.0.0.1 255.255.255.0
#
interface Ethernet0/0/0
#
interface Ethernet0/0/1
#
interface Ethernet0/0/2
#
interface Ethernet0/0/3
#
interface Ethernet0/0/4
#
interface Ethernet0/0/5
#
interface Ethernet0/0/6
#
interface Ethernet0/0/7
#
interface GigabitEthernet0/0/0
ip address 40.0.0.2 255.255.255.0
#
interface GigabitEthernet0/0/1
ip address 50.0.0.2 255.255.255.0
#
interface NULL0
#
bgp 65004
peer 40.0.0.1 as-number 65010
peer 50.0.0.1 as-number 65003
#
ipv4-family unicast
undo synchronization
network 40.0.0.0 255.255.255.0
network 50.0.0.0 255.255.255.0
network 90.0.0.0 255.255.255.0
peer 40.0.0.1 enable
peer 50.0.0.1 enable
#
user-interface con 0
authentication-mode password
user-interface vty 0 4
user-interface vty 16 20
#
wlan ac
#
return
<Huawei>

故障切换:

1、模拟主用链路故障,可见流量立即切换到备用链路。

把AR4的端口shutdown, 模拟故障:

2、PC1 在持续ping PC2, 可见中间有一个丢包,然后恢复正常。

BGP: 容易实现路由备份,不容易实现等价负载均衡。的更多相关文章

  1. Azure Traffic Manager(二) 基于权重与基于优先级的路由策略为我们的Web项目提供负载均衡

    一,引言 上一片文章我们使用 Azure Traffic Manager 分发用户请求,同时演示了两种路由策略,“Performance”,“Geographic”的两种方式,今天我们继续讲解 Tra ...

  2. HA主备路由模式的原理 + HA和负载均衡的区别

       HA主备路由模式的原理 HA是High Availability缩写,即高可用性 ,可防止网络中由于单个防火墙的设备故障或网络故障导致网络中断,保证网络服务的连续性和安全强度.目前,ha功能已经 ...

  3. Dubbo中集群Cluster,负载均衡,容错,路由解析

    Dubbo中的Cluster可以将多个服务提供方伪装成一个提供方,具体也就是将Directory中的多个Invoker伪装成一个Invoker,在伪装的过程中包含了容错的处理,负载均衡的处理和路由的处 ...

  4. RPC原来就是Socket——RPC框架到dubbo的服务动态注册,服务路由,负载均衡演化

    序:RPC就是使用socket告诉服务端我要调你的哪一个类的哪一个方法然后获得处理的结果.服务注册和路由就是借助第三方存储介质存储服务信息让服务消费者调用.然我们自己动手从0开始写一个rpc功能以及实 ...

  5. 三十一、【WCF路由中间件】WCFHosting服务主机的路由器与负载均衡和实现思路

    回<[开源]EFW框架系列文章索引> EFW框架源代码下载V1.3:http://pan.baidu.com/s/1c0dADO0 EFW框架实例源代码下载:http://pan.baid ...

  6. 面向服务的体系架构 SOA(二) --- 服务的路由和负载均衡

    2. 服务的路由和负载均衡 1.2.1 服务化的演变 SOA设计思想:分布式应用架构体系对于业务逻辑复用的需求十分强烈,上层业务都想借用已有的底层服务来快速搭建更多.更丰富的应用,降低新业务开展的人力 ...

  7. 利用BGP虚拟下一跳实现链路负载均衡

    最近针对BGP链路负载均衡方案“虚拟下一跳”进行了总结,现将总结的PPT贴上来.

  8. 【7】JMicro微服务-服务路由,负载均衡

    如非授权,禁止用于商业用途,转载请注明出处作者:mynewworldyyl   1.关于服务路由和负载均衡 服务路由:根据预先配置好的策略,为客户端选择一个当前可用的服务提供者,根据策略选择一个可用的 ...

  9. FastDFS是纯C语言实现,只支持Linux,适合以中小文件为载体的在线服务,还可以冗余备份和负载均衡

    一.理论基础 FastDFS比较适合以中小文件为载体的在线服务,比如跟NGINX(APACHE)配合搭建图片服务器. 分布式文件系统FastDFS FastDFS是纯C语言实现,只支持Linux.Fr ...

随机推荐

  1. 什么是shell和终端?

    目录 什么是shell? 什么是终端? 什么是shell? 当谈到命令时,我们实际上指的是shell.shell是一个接收由键盘输入的命令,并将其传递给操作系统来执行的程序.几乎所有的Linux发行版 ...

  2. [Swift]LeetCode473. 火柴拼正方形 | Matchsticks to Square

    Remember the story of Little Match Girl? By now, you know exactly what matchsticks the little match ...

  3. windows下golang实现Kfaka消息发送及kafka环境搭建

    kafka环境搭建: 一.安装配置java-jdk (1)kafka需要java环境,安装java-jdk,下载地址:https://www.oracle.com/technetwork/java/j ...

  4. Python内置函数(42)——memoryview

    英文文档: class memoryview(obj) memoryview objects allow Python code to access the internal data of an o ...

  5. 关于mybatis中typeHandler的两个案例

    在做开发时,我们经常会遇到这样一些问题,比如我有一个Java中的Date数据类型,我想将之存到数据库的时候存成一个1970年至今的毫秒数,怎么实现?再比如我有一个User类,User类中有一个属性叫做 ...

  6. 【转载】asp.net core 2.0的认证和授权

    在asp.net core中,微软提供了基于认证(Authentication)和授权(Authorization)的方式,来实现权限管理的,本篇博文,介绍基于固定角色的权限管理和自定义角色权限管理, ...

  7. 痞子衡嵌入式:第一本Git命令教程(7.1)- 清理之缓存(stash)

    今天是Git系列课程第七课,上一课我们学会了查看Git本地历史提交,今天痞子衡要讲的是Git仓库的清理操作,一共4个命令,都是日常开发中非常实用的命令,掌握这4个命令,会让你有一种玩弄Git仓库于股掌 ...

  8. oracle数据库密码过期修改注意事项

    近期的工作中,因数据库密码临近过期,需要进行修改,因对oracle数据库底层结构不了解,导致安装网上的教程操作是出现一些问题,特记录下来 传统的修改语句为 输入:win+R进入cmd  输入sqlpl ...

  9. [Redux] redux之combineReducers

    combineReducers combineReducer 是将众多的 reducer 合成通过键值映射的对象,并且返回一个 combination 函数传入到 createStore 中 合并后的 ...

  10. 【深度学习系列】用PaddlePaddle和Tensorflow实现经典CNN网络AlexNet

    上周我们用PaddlePaddle和Tensorflow实现了图像分类,分别用自己手写的一个简单的CNN网络simple_cnn和LeNet-5的CNN网络识别cifar-10数据集.在上周的实验表现 ...