BGP4+简介

定义

BGP是一种用于自治系统AS(Autonomous System)之间的动态路由协议,常用版本是BGP-4,BGP-4只能传递IPv4路由。针对IPv6的BGP4扩展,通常称为BGP4+。

目的

BGP4+用于在AS之间传递路由信息,并不是所有情况都需要运行BGP4+。

以下情况中需要使用BGP4+协议:

  • 如图1,用户需要同时与两个或者多个ISP相连,ISP需要向用户提供部分或完全的Internet路由。这时可以通过BGP4+路由携带的各种属性来决定到达目的地,走哪一个ISP的AS更为经济。

  • 不同组织下的用户之间需要传递AS路径信息。

图1 BGP4+的应用场景

以下情况不需要使用BGP4+协议:

  • 用户只与一个ISP相连。

  • ISP不需要向用户提供Internet路由。

  • AS间使用了缺省路由进行连接。

BGP4+原理描述

传统的BGP4只能管理IPv4的路由信息,对于使用其他网络层协议(如IPv6等)的应用,在跨自治系统传播路由信息时就无能为力。

为了实现对IPv6协议的支持,BGP4需要将IPv6协议的信息反映到NLRI(Network Layer Reachable Information)属性及Next_Hop属性中。

BGP4+中引入的两个NLRI属性分别是:

  • MP_REACH_NLRI:Multiprotocol Reachable NLRI,多协议可达NLRI。用于发布可达路由及下一跳信息。

  • MP_UNREACH_NLRI:Multiprotocol Unreachable NLRI,多协议不可达NLRI。用于撤销不可达路由。

BGP4+中的Next_Hop属性用IPv6地址来表示,可以是IPv6全球单播地址或者下一跳的链路本地地址。

BGP4+是利用BGP的多协议扩展属性,来达到在IPv6网络中应用的目的,BGP协议原有的消息机制和路由机制并没有改变。

举例:配置BGP4+基本功能

组网需求

如图2所示,有AS 65008和AS 65009,其中DeviceA属于AS 65008,DeviceB、DeviceC和DeviceD属于AS 65009,要求使用BGP4+协议来交换AS之间的路由信息。

图2 配置BGP4+基本组网图

本例中interface1,interface2和interface3分别代表10GE0/0/1,10GE0/0/2和10GE0/0/3。

为完成此配置例,需准备如下的数据:

  • DeviceA、DeviceB、DeviceC和DeviceD的Router ID。

  • DeviceA、DeviceB、DeviceC和DeviceD所在的AS号。

配置思路

采用如下的思路配置BGP4+的基本功能:

  1. 在DeviceB、DeviceC、DeviceD之间配置IBGP连接。

  2. 在DeviceA和DeviceB之间配置EBGP连接。

操作步骤
  1. 配置各接口的IPv6地址(略)
  2. 配置DeivceA的接口加入安全区域,并开启安全策略。其他设备的安全区域和安全策略配置请参考DeviceA进行配置。

    # 配置接口加入安全区域。

    [DeviceA] firewall zone trust
    [DeviceA-zone-trust] add interface 10ge 0/0/1
    [DeviceA-zone-trust] quit
    [DeviceA] firewall zone untrust
    [DeviceA-zone-untrust] add interface 10ge 0/0/2
    [DeviceA-zone-untrust] quit

    #配置local与接口所在安全区域之间的双向安全策略用于设备之间路由学习。

    [DeviceA] security-policy
    [DeviceA-policy-security] rule name policy_sec_1  
    [DeviceA-policy-security-rule-policy_sec_1] source-zone local
    [DeviceA-policy-security-rule-policy_sec_1] destination-zone trust untrust
    [DeviceA-policy-security-rule-policy_sec_1] service bgp
    [DeviceA-policy-security-rule-policy_sec_1] action permit
    [DeviceA-policy-security-rule-policy_sec_1] quit
    [DeviceA-policy-security] rule name policy_sec_2  
    [DeviceA-policy-security-rule-policy_sec_2] source-zone trust untrust
    [DeviceA-policy-security-rule-policy_sec_2] destination-zone local
    [DeviceA-policy-security-rule-policy_sec_2] service bgp
    [DeviceA-policy-security-rule-policy_sec_2] action permit
    [DeviceA-policy-security-rule-policy_sec_2] quit
    [DeviceA-policy-security] quit

  3. 配置IBGP

    # 配置DeviceB。

    [DeviceB] bgp 65009
    [DeviceB-bgp] router-id 2.2.2.2
    [DeviceB-bgp] peer 2001:db8:9:1::2 as-number 65009
    [DeviceB-bgp] peer 2001:db8:9:3::2 as-number 65009
    [DeviceB-bgp] ipv6-family unicast
    [DeviceB-bgp-af-ipv6] peer 2001:db8:9:1::2 enable
    [DeviceB-bgp-af-ipv6] peer 2001:db8:9:3::2 enable
    [DeviceB-bgp-af-ipv6] network 2001:db8:9:1:: 64
    [DeviceB-bgp-af-ipv6] network 2001:db8:9:3:: 64
    [DeviceB-bgp-af-ipv6] quit
    [DeviceB-bgp] quit

    # 配置DeviceC。

    [DeviceC] bgp 65009
    [DeviceC-bgp] router-id 3.3.3.3
    [DeviceC-bgp] peer 2001:db8:9:3::1 as-number 65009
    [DeviceC-bgp] peer 2001:db8:9:2::2 as-number 65009
    [DeviceC-bgp] ipv6-family unicast
    [DeviceC-bgp-af-ipv6] peer 2001:db8:9:3::1 enable
    [DeviceC-bgp-af-ipv6] peer 2001:db8:9:2::2 enable
    [DeviceC-bgp-af-ipv6] network 2001:db8:9:3:: 64
    [DeviceC-bgp-af-ipv6] network 2001:db8:9:2:: 64
    [DeviceC-bgp-af-ipv6] quit
    [DeviceC-bgp] quit

    # 配置DeviceD。

    [DeviceD] bgp 65009
    [DeviceD-bgp] router-id 4.4.4.4
    [DeviceD-bgp] peer 2001:db8:9:1::1 as-number 65009
    [DeviceD-bgp] peer 2001:db8:9:2::1 as-number 65009
    [DeviceD-bgp] ipv6-family unicast
    [DeviceD-bgp-af-ipv6] peer 2001:db8:9:1::1 enable
    [DeviceD-bgp-af-ipv6] peer 2001:db8:9:2::1 enable
    [DeviceD-bgp-af-ipv6] network 2001:db8:9:2:: 64
    [DeviceD-bgp-af-ipv6] network 2001:db8:9:1:: 64
    [DeviceD-bgp-af-ipv6] quit
    [DeviceD-bgp] quit

  4. 配置EBGP

    # 配置DeviceA。

    [DeviceA] bgp 65008
    [DeviceA-bgp] router-id 1.1.1.1
    [DeviceA-bgp] peer 2001:db8:10::1 as-number 65009
    [DeviceA-bgp] ipv6-family unicast
    [DeviceA-bgp-af-ipv6] peer 2001:db8:10::1 enable
    [DeviceA-bgp-af-ipv6] network 2001:db8:10:: 64
    [DeviceA-bgp-af-ipv6] network 2001:db8:8:: 64
    [DeviceA-bgp-af-ipv6] quit
    [DeviceA-bgp] quit

    # 配置DeviceB。

    [DeviceB] bgp 65009
    [DeviceB-bgp] peer 2001:db8:10::2 as-number 65008
    [DeviceB-bgp] ipv6-family unicast
    [DeviceB-bgp-af-ipv6] peer 2001:db8:10::2 enable
    [DeviceB-bgp-af-ipv6] network 2001:db8:10:: 64
    [DeviceB-bgp-af-ipv6] quit
    [DeviceB-bgp] quit

检查配置结果

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

[DeviceB] display bgp ipv6 peer
 BGP local router ID : 2.2.2.2
 Local AS number : 65009
 Total number of peers : 3                 Peers in established state : 3

  Peer            V    AS  MsgRcvd  MsgSent  OutQ  Up/Down       State PrefRcv

  2001:DB8:9:1::2 4 65009        8        9     0 00:05:37 Established       2
  2001:DB8:9:3::2 4 65009        2        2     0 00:00:09 Established       2
  2001:DB8:10::2  4 65008        9        7     0 00:05:38 Established       2

可以看出,DeviceB到其他设备的BGP4+连接均已建立。

# 显示DeviceA的路由表。

[DeviceA] display bgp ipv6 routing-table

 BGP Local router ID is 1.1.1.1
 Status codes: * - valid, > - best, d - damped, x - best external, a - add path,
               h - history,  i - internal, s - suppressed, S - Stale
               Origin : i - IGP, e - EGP, ? - incomplete
 RPKI validation codes: V - valid, I - invalid, N - not-found

 Total Number of Routes: 6
 *>  Network  : 2001:DB8:8::                             PrefixLen : 64
     NextHop  : ::                                       LocPrf    :
     MED      : 0                                        PrefVal   : 0
     Label    :
     Path/Ogn : i

 *>  Network  : 2001:DB8:9:1::                           PrefixLen : 64
     NextHop  : 2001:DB8:10::1                           LocPrf    :
     MED      : 0                                        PrefVal   : 0
     Label    :
     Path/Ogn : 65009 i

 *>  Network  : 2001:DB8:9:2::                           PrefixLen : 64
     NextHop  : 2001:DB8:10::1                           LocPrf    :
     MED      :                                          PrefVal   : 0
     Label    :
     Path/Ogn : 65009 i

 *>  Network  : 2001:DB8:9:3::                           PrefixLen : 64
     NextHop  : 2001:DB8:10::1                           LocPrf    :
     MED      : 0                                        PrefVal   : 0
     Label    :
     Path/Ogn : 65009 i

 *>  Network  : 2001:DB8:10::                            PrefixLen : 64
     NextHop  : ::                                       LocPrf    :
     MED      : 0                                        PrefVal   : 0
     Label    :
     Path/Ogn : i

  *
     NextHop  : 2001:DB8:10::1                           LocPrf    :
     MED      : 0                                        PrefVal   : 0
     Label    :
     Path/Ogn : 65009 i                                  

从路由表可以看出,DeviceA学到了AS 65009中的路由。AS 65008和AS 65009可以相互交换路由信息。

配置脚本
  • DeviceA的配置文件

    #
    sysname DeviceA
    #
    interface 10GE0/0/1
     ipv6 enable
     ipv6 address 2001:DB8:8::1/64
    #
    interface 10GE0/0/2
     ipv6 enable
     ipv6 address 2001:DB8:10::2/64
    #
    firewall zone trust
     add interface 10GE0/0/1
    firewall zone untrust
     add interface 10GE0/0/2
    #
    security-policy
      rule name policy_sec_1
        source-zone local
        destination-zone trust
        destination-zone untrust
        service bgp
        action permit
      rule name policy_sec_2
        source-zone trust
        source-zone untrust
        destination-zone local
        service bgp
        action permit
    #
    bgp 65008
     router-id 1.1.1.1
     peer 2001:DB8:10::1 as-number 65009
     #
     ipv4-family unicast
     #
     ipv6-family unicast
      network 2001:DB8:8:: 64
      network 2001:DB8:10:: 64
      peer 2001:DB8:10::1 enable
    #
    return
  • DeviceB的配置文件
    #
    sysname DeviceB
    #
    interface 10GE0/0/1
     ipv6 enable
     ipv6 address 2001:DB8:9:1::1/64
    #
    interface 10GE0/0/2
     ipv6 enable
     ipv6 address 2001:DB8:10::1/64
    #
    interface 10GE0/0/3
     ipv6 enable
     ipv6 address 2001:DB8:9:3::1/64
    #
    firewall zone trust
     add interface 10GE0/0/1
     add interface 10GE0/0/3
    firewall zone untrust
     add interface 10GE0/0/2
    #
    security-policy
      rule name policy_sec_1
        source-zone local
        destination-zone trust
        destination-zone untrust
        service ospf bgp
        action permit
      rule name policy_sec_2
        source-zone trust
        source-zone untrust
        destination-zone local
        service ospf bgp 
        action permit
    #
    bgp 65009
     router-id 2.2.2.2
     peer 2001:DB8:9:1::2 as-number 65009
     peer 2001:DB8:9:3::2 as-number 65009
     peer 2001:DB8:10::2 as-number 65008
     #
     ipv4-family unicast
     #
     ipv6-family unicast
      network 2001:DB8:9:1:: 64
      network 2001:DB8:9:3:: 64
      network 2001:DB8:10:: 64
      peer 2001:DB8:9:1::2 enable
      peer 2001:DB8:9:3::2 enable
      peer 2001:DB8:10::2 enable
    #
    return
  • DeviceC的配置文件

    #
    sysname DeviceC
    #
    interface 10GE0/0/2
     ipv6 enable
     ipv6 address 2001:DB8:9:2::1/64
    #
    interface 10GE0/0/3
     ipv6 enable
     ipv6 address 2001:DB8:9:3::2/64
    #
    firewall zone trust
     add interface 10GE0/0/3
     add interface 10GE0/0/2
    #
    security-policy
      rule name policy_sec_1
        source-zone local
        destination-zone trust
        service ospf bgp 
        action permit
      rule name policy_sec_2
        source-zone trust
        destination-zone local
        service ospf bgp 
        action permit
    #
    bgp 65009
     router-id 3.3.3.3
     peer 2001:DB8:9:2::2 as-number 65009
     peer 2001:DB8:9:3::1 as-number 65009
     #
     ipv4-family unicast
     #
     ipv6-family unicast
      network 2001:DB8:9:2:: 64
      network 2001:DB8:9:3:: 64
      peer 2001:DB8:9:2::2 enable
      peer 2001:DB8:9:3::1 enable
    #
    return
  • DeviceD的配置文件

    #
    sysname DeviceD
    #
    interface 10GE0/0/1
     ipv6 enable
     ipv6 address 2001:DB8:9:1::2/64
    #
    interface 10GE0/0/2
     ipv6 enable
     ipv6 address 2001:DB8:9:2::2/64
    #
    firewall zone trust
     add interface 10GE0/0/1
     add interface 10GE0/0/2
    #
    security-policy
      rule name policy_sec_1
        source-zone local
        destination-zone trust
        service ospf bgp 
        action permit
      rule name policy_sec_1
        source-zone trust
        destination-zone local
        service ospf bgp 
        action permit
    #
    bgp 65009
     router-id 4.4.4.4
     peer 2001:DB8:9:1::1 as-number 65009
     peer 2001:DB8:9:2::1 as-number 65009
     #
     ipv4-family unicast
     #
     ipv6-family unicast
      network 2001:DB8:9:1:: 64
      network 2001:DB8:9:2:: 64
      peer 2001:DB8:9:1::1 enable
      peer 2001:DB8:9:2::1 enable
    #
    return

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python爬取歌曲宝音乐:轻松下载Jay的歌

歌曲宝是一个不用付费就能听jay的歌曲,但是每次都只能播放一首不方便,于是今天想把它下载下来,本地循环播放,它所用到的接口是某我的还不错哈 获取搜索接口 分析html请求接口,获取到的数据是直接渲染好的HTML内容&…

lvs+keepalived+nginx实现高可用

主机:192.168.199.132 备机:192.168.199.133 真实服务器1:192.168.199.134 真实服务器2:192.168.199.135 问题: 防火墙没关 132配置ipvsadm进行dr模式 132配置keepalived.conf 133配置ipvsadm进行dr模式 133配置ke…

【测试开发学习历程】计算机编程语言

前言: 学习完数据库,我们便要进入到编程语言的内容当中了。 这里先对编程语言写出大致的分类, 在这之后,我们会以Python为重点, 开始测试开发为重点的编程语言学习。 目录 1 计算机编程语言的发展 2 语言的分类…

高蛋白的猫粮品牌有哪些?

亲爱的猫友们,你们是否也在寻找一款高蛋白的猫粮,希望给自家的小猫咪提供最好的营养呢?🐱 在市面上,高蛋白的猫粮品牌确实不少,但要说到真正让人信赖的,福派斯鲜肉无谷猫粮无疑是一个不错的选择…

如何自己构建 Ollama 模型

如何自己构建 Ollama 模型 0. 引言1. 下载原始模型2. 创建 Modelfile 文件3. 构建 Ollama 模型4. 运行自构建的 Ollama 模型 0. 引言 针对模型新出的大模型,可能 Ollama Models Library 不提供,或者会在今后的某个时点提供。还有可能 Ollama Models Lib…

计算机视觉之三维重建(3)---单视几何

文章目录 一、问题提出二、无穷远点、无穷远线、无穷远平面2.1 2D空间2.2 3D空间 三、影消点和影消线3.1 2D平面上的无穷远点,无穷远线变换3.2 影消点3.3 影消线 四、单视重构 一、问题提出 1. 当摄像机标定后,内部参数 K K K 已知,外部参数…

R语言逻辑回归与lasso模型

一、数据描述 数据集heart_learning.csv与heart_test.csv是关于心脏病的数据集,heart_learning.csv是训练数据集,heart_test.csv是测试数据集。 变量名称变量说明age年龄sex性别,取值1代表男性,0代表女性pain 胸痛的类型&#x…

去中心化的 AI 数据供应:认识Grass,参与Grass

去中心化的 AI 数据供应:认识Grass,参与Grass 👋:邀请链接☘️:Intro❓:看好Grass和即将推出的L2的原因有哪些?💡:展望🔍:总结 👋&…

Ubuntu 安装GPU驱动

https://www.nvidia.cn/Download/index.aspx 驱动我前面安装好啦,不做了,不过可以去看看 CUDA Toolkit 12.4 Downloads | NVIDIA Developer wget https://developer.download.nvidia.com/compute/cuda/12.4.0/local_installers/cuda_12.4.0_550.54.14_l…

【CXL协议-事务层之CXL.io(3)】

3.1 CXL.io CXL.io 为 I/O 设备提供非一致的加载/存储接口。 图 14 显示了 CXL.io 事务层在 Flex Bus 分层结构中的位置。 交易类型、交易数据包格式、基于信用的流量控制、虚拟通道管理和交易排序规则遵循PCIe定义; 请参阅 有关详细信息,请参阅 PCI Ex…

一文读懂多模态大模型:原理、应用与挑战全解析

在这个信息交织、五彩斑斓的时代,文字、图像、视频和音频如同四条蜿蜒曲折的河流,各自流淌,却又相互交织。它们构成了我们数字生活的核心元素,每一天,我们都在与之亲密接触。然而,面对这些形态各异的信息流…

(附源码)基于Spring Boot + Vue 在线网课学习系统的设计与实现

前言 💗博主介绍:✌专注于Java、小程序技术领域和毕业项目实战✌💗 👇🏻 精彩专栏 推荐订阅👇🏻 2024年Java精品实战案例《100套》 🍅文末获取源码联系🍅 &#x1f31…

政安晨:【深度学习实践】【使用 TensorFlow 和 Keras 为结构化数据构建和训练神经网络】(六)—— 二元分类

政安晨的个人主页:政安晨 欢迎 👍点赞✍评论⭐收藏 收录专栏: 政安晨的机器学习笔记 希望政安晨的博客能够对您有所裨益,如有不足之处,欢迎在评论区提出指正! 这篇文章咱们将深度学习应用到另一个常见任务中。 前言 在…

说说webpack的构建流程?

文章目录 一、运行流程初始化流程编译构建流程compile 编译make 编译模块build module 完成模块编译 输出流程seal 输出资源emit 输出完成 二、小结参考文献 一、运行流程 webpack 的运行流程是一个串行的过程,它的工作流程就是将各个插件串联起来 在运行过程中会…

selenium自动化登录模块HTMLTestRunner测试报告

1.下载HTMLTestRunner.py放到python的Lib目录下,python3之后的,文件要修改以下内容: 第94行,将import StringIO修改成import io 第539行,将self.outputBuffer StringIO.StringIO()修改成self.outputBuffer io.Strin…

eth 交易案例分析9

交易hash: 先用0.26eth买入了多个GPT,然后用这多个GPT 在uniswap3 兑换了1.69 个eth, 疑问点:买入的 DLP 什么意思?

C++一维数组练习oj

思路分析:这题它说n是小于等于1000的,那么我们现在就需要找出1--1000的幸运数 4,7,44,47,74,77,444,447,474,477,774,747&…

OCR研究背景及相关论文分享

光学字符识别(Optical Character Recognition,OCR)是指使用光学方法将图像中的文字转换为机器可编辑的文本的技术。OCR技术的研究和应用已有数十年的历史,其背景和发展受到多方面因素的影响。 技术需求背景 1.自动化文档处理&am…

从原理到实践:深入探索Linux安全机制(一)

前言 本文将从用户和权限管理、文件系统权限、SELinux、防火墙、加密和安全传输、漏洞管理和更新等几个Linux安全机制中的重要方面,深入探索其工作原理和使用方法。在当今数字化时代,网络安全问题备受关注,Linux作为广泛应用的操作系统之一&…

Github 2024-03-23 Rust开源项目日报 Top10

根据Github Trendings的统计,今日(2024-03-23统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Rust项目10Dart项目1RustDesk: 用Rust编写的开源远程桌面软件 创建周期:1218 天开发语言:Rust, Dart协议类型:GNU Affero General Public Li…