BGP多跳及BGP4+

一、知识补充

1、BGP4+

  • 传统BGP-4只管理IPV4路由信息,对于使用其它网络程协议 (若IPV6等)的应用末给予支持。
  • IETF对BGP-4扩展,提出BGP4+,可以提供对IPV6、IPX和MPLS VPN的支持 (简单说: 扩展IPV6协议栈支持)。
    在这里插入图片描述

2、全互联

在上一篇博文中提到过水平分割原则,解决办法是将边界路由器配置为路由反射器,或者BGP联邦,此处使用的是全互联,也就AS内部实现路由器的全互联,相互建立邻居,这样可以避免水平分割。

3、EBGP多跳

通常情况下,EBPG邻居之间必须具有直连的物理链路,EBGP邻居关系也将基于直连接口建立,如果不满足这一要求,则必须使用ebgp-multihop 命令允许它们之间经过多跳建立TCP连接。ebgp-multihop 命令用来配置允许BGP同非直连网络上的对等体建立EBGP连接,并同时可以指定允许的最大跳数。
在这里插入图片描述

如上图所示,两个路由器之间要基于Loopback地址建立EBGP邻居关系。这种情况属于EBGP邻居之间不基于直连接口建立邻居关系的场景,必须配置多跳。

二、配置需求及拓扑图

  1. IPV4:
    1. EBGP
      • R1与R2是EBGP邻居关系,使用物理直连接口建立邻居
      • R4与R5是EBGP邻居关系,使用Loopback0建立邻居
    2. IBGP
      • R2–R3,R3–R4,R2–R4建立IBGP邻居关系
      • 使用Loopback0来建立邻居(底层协议—OSPF)
  2. IPV6:
    1. R1--R2建立IPV6的EBGP邻居关系
      在这里插入图片描述

三、配置步骤

1、IPv6地址的配置

R1

R1(config)#int g0/0                             
R1(config-if-GigabitEthernet 0/0)#ip add 10.1.12.1 24
R1(config-if-GigabitEthernet 0/0)#ipv6 enable 
R1(config-if-GigabitEthernet 0/0)#ipv6 address 12::1/64
R1(config-if-GigabitEthernet 0/0)#exit

验证–IPv6配置信息

在这里插入图片描述

R2

R2(config)#int g0/0
R2(config-if-GigabitEthernet 0/0)#no switchport 
R2(config-if-GigabitEthernet 0/0)#ip add 10.1.12.2 24
R2(config-if-GigabitEthernet 0/0)#ipv6 enable 
R2(config-if-GigabitEthernet 0/0)#ipv6 address 12::2/64 
R2(config-if-GigabitEthernet 0/0)#exit

验证–IPv6配置信息
在这里插入图片描述

2、OSPF配置

R2

R2(config)#router ospf 1
R2(config-router)#router-id 2.2.2.2
Change router-id and update OSPF process! [yes/no]:y
R2(config-router)#network 2.2.2.2 0.0.0.0 area 0
R2(config-router)#network 10.1.23.0 0.0.0.255 area 0
R2(config-router)#exit

R3

R3(config)#router ospf 1
R3(config-router)#router-id 3.3.3.3
Change router-id and update OSPF process! [yes/no]:y 
R3(config-router)#network 3.3.3.3 0.0.0.0 area 0
R3(config-router)#network 10.1.23.0 0.0.0.255 area 0
R3(config-router)#network 10.1.34.0 0.0.0.255 area 0
R3(config-router)#exit

R4

R4(config)#router ospf 1
R4(config-router)#router-id 4.4.4.4
Change router-id and update OSPF process! [yes/no]:y 
R4(config-router)#network 4.4.4.4 0.0.0.0 area 0
R4(config-router)#network 10.1.34.0 0.0.0.255 area 0
R4(config-router)#exit

验证–邻居关系的建立
在这里插入图片描述

3、R1和R2使用直连接口配置EBGP

R1

R1(config)#router bgp 10
R1(config-router)#bgp router-id 1.1.1.1
R1(config-router)#neighbor 10.1.12.2 remote-as 234
R1(config-router)#exit

R2

R2(config)#router bgp 234
R2(config-router)#bgp router-id 2.2.2.2
R2(config-router)#neighbor 10.1.12.1 remote-as 10
R2(config-router)#exit

验证–EBGP邻居的建立
在这里插入图片描述

4、R1、R3、R4建立全互联IBGP

使用环回接口建立邻居,需要修改更新源。默认更新源是物理口,需要修改为自己的环回口。

R2

R2(config)#router bgp 234
R2(config-router)#neighbor 3.3.3.3 remote-as 234
R2(config-router)#neighbor 3.3.3.3 update-source loopback 0
R2(config-router)#neighbor 4.4.4.4 remote-as 234           
R2(config-router)#neighbor 4.4.4.4 update-source loopback 0
R2(config-router)#exit

R3

R3(config)#router bgp 234
R3(config-router)#bgp router-id 3.3.3.3
R3(config-router)#neighbor 2.2.2.2 remote-as 234
R3(config-router)#neighbor 2.2.2.2 update-source loopback 0
R3(config-router)#neighbor 4.4.4.4 remote-as 234
R3(config-router)#neighbor 4.4.4.4 update-source loopback 0
R3(config-router)#exit

R4

R4(config)#router bgp 234
R4(config-router)#bgp
R4(config-router)#bgp router
R4(config-router)#bgp router-id 4.4.4.4
R4(config-router)#neighbor 2.2.2.2 remote-as 234
R4(config-router)#neighbor 2.2.2.2 update-source loopback 0
R4(config-router)#neighbor 3.3.3.3 remote-as 234           
R4(config-router)#neighbor 3.3.3.3 update-source loopback 0
R4(config-router)#exit

验证–R3查看BGP邻居状态
在这里插入图片描述
在这里插入图片描述

5、R4、R5配置静态路由,使Loopback地址可达

R4

R4(config)#ip route 5.5.5.5 255.255.255 10.1.45.2

R5

R5(config)#ip route 4.4.4.4 255.255.255 10.1.45.1

验证–连通性测试
在这里插入图片描述

5、R4、R5配置EBGP

R4

R4(config)#router bgp 234
R4(config-router)#neighbor 5.5.5.5 remote-as 50 
R4(config-router)#neighbor 5.5.5.5 update-source loopback 0
R4(config-router)#exit

R5

R5(config)#router bgp 50
R5(config-router)#bgp router-id 5.5.5.5
R5(config-router)#neighbor 4.4.4.4 remote-as 234
R5(config-router)#neighbor 4.4.4.4 update-source loopback 0
R5(config-router)#exit

验证–R5查看BGP对等体的建立
在这里插入图片描述

可以看到状态为Idel,建立失败。建立EBGP时因为EBGP只传一跳,所以在建立EBGP邻居时,需要修改EBGP多跳的跳数为2以上(自己环回口到对端换回口是2跳,默认为1跳),需要添加多跳属性。

R4

R4(config)#router bgp 234
R4(config-router)#neighbor 5.5.5.5 ebgp-multihop 2
R4(config-router)#exit

R5

R5(config)#router bgp 50
R5(config-router)#neighbor 4.4.4.4 ebgp-multihop 2
R5(config-router)#exit

验证–R5查看邻居关系

在这里插入图片描述

6、BGP4+

R1

R1(config)#router bgp 10
R1(config-router)#neighbor 12::2 remote-as 234
R1(config-router)#address-family ipv6
R1(config-router-af)#neighbor 12::2 activate 
R1(config-router-af)#exit

R2

R2(config)#router bgp 234
R2(config-router)#neighbor 12::1 remote-as 10
R2(config-router)#address-family ipv6
R2(config-router-af)#neighbor 12::1 activate 
R2(config-router-af)#exit
R2(config-router)#exit

验证–R2查看IPv6邻居
在这里插入图片描述

7、配置全网互通

BGP路由只是负责邻居建立,不负责路由转发

查看R1的BGP路由,发现为空,需要在R1中引入直连路由
在这里插入图片描述

R1(config)#router bgp 10
R1(config-router)#redistribute connected    引入直连路由
R1(config-router)#exit

查看R3的路由表,可以发现在AS234内部是依靠OSPF转发路由
在这里插入图片描述

如果要学习到R1的路由,则需要在R2上OSPF引入BGP路由

R2(config)#router ospf 1
R2(config-router)#redistribute bgp subnets 
R2(config-router)#exit

可以看到学习到了R1的loopback
在这里插入图片描述

查看R1的路由表,发现学习不到AS234的路由明细,在AS234内部跑的OSPF协议传递路由,而AS10和AS234之间跑的BGP,所以看不到OSPF路由,需要在R2的BGP引入OSPF

R2(config)#router bgp 234
R2(config-router)#redistribute ospf 1
R2(config-router)#exit

查看R1的路由表,已经学习到AS234的所有路由
在这里插入图片描述

在R3上查看路由表,发现缺少R5的相关路由
在这里插入图片描述

R4的OSPF引入静态路由

R4(config)#router ospf 1
R4(config-router)#redistribute static subnets
R4(config-router)#exit

查看R3的IP路由表

在这里插入图片描述

查看R1的IP路由表,发现缺少AS50的路由;查看R5的一样是缺少对端EBGP的路由

根据BGP默认规则,EBGP传递路由时下一跳会改变,但IBGP在传递路由时不会改变下一跳地址

在这里插入图片描述
在这里插入图片描述

自治系统边界路由器(ASBR)修改路由的下一跳属性

R2(config)#router bgp 234
R2(config-router)#neighbor 3.3.3.3 next-hop-self 
R2(config-router)#neighbor 4.4.4.4 next-hop-self 
R2(config-router)#exit

查看R5的路由表,可以发现学习到AS10的路由信息
在这里插入图片描述

因为在R1上跑的是BGP路由,所以需要在R4上引入静态路由

R4(config)#router bgp 234
R4(config-router)#redistribute static 
R4(config-router)#exit

在R2上查看BGP路由表,可以看到5.5.5.5/32路由,但不是最佳路由,所以没出现在IP路由表中
在这里插入图片描述

同样在R4上修改下一跳属性

R4(config)#router bgp 234
R4(config-router)#neighbor 2.2.2.2 next-hop-self 
R4(config-router)#neighbor 3.3.3.3 next-hop-self 
R4(config-router)#exit

在R1上查看IP路由表
在这里插入图片描述

学不到10.1.45.0是因为没有宣告直连路由

R4(config)#router bgp 234
R4(config-router)#redistribute connected 
R4(config-router)#exit

ok 学习成功
在这里插入图片描述

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

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

相关文章

leetcode - 矩阵区域和

1314. 矩阵区域和 - 力扣&#xff08;LeetCode&#xff09; 给你一个 m x n 的矩阵 mat 和一个整数 k &#xff0c;请你返回一个矩阵 answer &#xff0c;其中每个 answer[i][j] 是所有满足下述条件的元素 mat[r][c] 的和&#xff1a; i - k < r < i k, j - k < c …

备忘录模式 rust和java的实现

文章目录 备忘录模式介绍实现javarustrust仓库 备忘录模式 备忘录&#xff08;Memento&#xff09;模式的定义&#xff1a;在不破坏封装性的前提下&#xff0c;捕获一个对象的内部状态&#xff0c;并在该对象之外保存这个状态&#xff0c;以便以后当需要时能将该对象恢复到原先…

【5G PHY】5G NR 如何计算资源块的数量?

博主未授权任何人或组织机构转载博主任何原创文章&#xff0c;感谢各位对原创的支持&#xff01; 博主链接 本人就职于国际知名终端厂商&#xff0c;负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作&#xff0c;目前牵头6G算力网络技术标准研究。 博客…

严蔚敏数据结构p17(2.19)——p18(2.24) (c语言代码实现)

目录 2.19已知线性表中的元素以值递增有序排列,并以单链表作存储结构。试写一高效的算法,删除表中所有值大于 mink 且小于 maxk 的元素(若表中存在这样的元素&#xff09;同时释放被删结点空间,并分析你的算法的时间复杂度(注意:mink 和 maxk 是给定的个参变量,它们的值可以和表…

Hdoop学习笔记(HDP)-Part.12 安装HDFS

目录 Part.01 关于HDP Part.02 核心组件原理 Part.03 资源规划 Part.04 基础环境配置 Part.05 Yum源配置 Part.06 安装OracleJDK Part.07 安装MySQL Part.08 部署Ambari集群 Part.09 安装OpenLDAP Part.10 创建集群 Part.11 安装Kerberos Part.12 安装HDFS Part.13 安装Ranger …

继阿里云、滴滴、语雀后,腾讯视频也出现重大系统故障

昨晚&#xff0c;许多网友报告称腾讯视频出现了网络故障&#xff0c;具体表现为首页无法加载内容、VIP 用户无法观看会员视频等问题。 针对这一问题&#xff0c;腾讯视频回应称&#xff1a;目前腾讯视频遇到了暂时的技术问题&#xff0c;正在紧急修复中&#xff0c;各项功能正在…

在项目根目录未找到 app.json

这个问题就是我们在编译后的app.json文件找不到&#xff0c;路径出现了问题 首先看dist下我们该文件的路径 所以我们需要将该路径配置到我们project.config.json文件中去 在这里新加下面这行代码就可以了&#xff0c; "miniprogramRoot": "dist/dev/mp-weixi…

C语言扫雷游戏

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、扫雷游戏的分析和设计1.1扫雷游戏的功能说明1.2数据结构的分析1.3文件结构设计 二、扫雷游戏的代码实现总结 前言 详细介绍扫雷游戏的思路和实现过程。 一…

基于springboot + vue体育馆使用预约平台

qq&#xff08;2829419543&#xff09;获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;springboot 前端&#xff1a;采用vue技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xf…

自动提交日志脚本(6)浏览器抓包日志提交的数据

主要完成 do_logigdo_write_log 通过python的requests库post数据上传&#xff0c;因为是公司的系统我就展示抓包了&#xff0c;不展示怎么写了。 这边用日志暂存的页面做展示。 步骤 打开对应的页面&#xff0c;再打开浏览器的开发人员工具【一般是按f12】点击暂存按钮&…

每周一算法:背包问题(三)多重背包

多重背包 有 N N N件物品和一个容量是 M M M的背包。第 i i i种物品最多有 s i s_i si​件&#xff0c;每件的体积是 v i v_i vi​&#xff0c;价值是 w i w_i wi​。 求解将哪些物品装入背包&#xff0c;可使这些物品的总体积不超过背包容量&#xff0c;且总价值最大。 输…

最强Node js 后端框架学习看这一篇文章就够

距离上次认真花时间写作&#xff0c;似乎已经过了许久许久&#xff0c;前端讲了一个新框架 &#xff0c;叫 Nest.js 下方是课件&#xff0c;有过一定开发经验可跟随视频学习 B站 地址 &#xff1a; https://www.bilibili.com/video/BV1Lg4y197u1/?vd_sourcead427ffaf8a5c8344…

Linux --- 进程控制

目录 1. 进程创建 1.1. 内核数据结构的处理 1.2. 代码的处理 1.3. 数据的处理&#xff1a; 方案一&#xff1a;fork创建子进程的时候&#xff0c;直接对数据进行拷贝处理&#xff0c;让父子进程各自私有一份 方案二&#xff1a;写实拷贝(copy on write) 1.4. fork常规用…

后端Long型数据传到前端js后精度丢失的问题

假设一个场景&#xff0c;MybatisPlus的雪花算法生成long类型主键ID&#xff0c;存入数据库&#xff0c;前端获取到数据后&#xff0c;要执行一个更新操作&#xff08;updateById&#xff09;&#xff0c;但这时会出现无法成功更新的情况&#xff01;这是因为前端在长度大于17位…

24.Python 网络编程之socket编程

目录 1.认识TCP/IP2.socket编程2.1 使用socket2.2 使用socketserver 1.认识TCP/IP 计算机网络就是把各个计算机连接在一起&#xff0c;在网络中的计算机可以互相通信。 网络编程是如何在程序中实现两台计算机的通信。 网络通信是两台计算机上的两个进程之间的通信。 为了把…

【编码魔法师系列_构建型1.3 】抽象工厂模式(Abstract Factory)

学会设计模式&#xff0c;你就可以像拥有魔法一样&#xff0c;在开发过程中解决一些复杂的问题。设计模式是由经验丰富的开发者们&#xff08;GoF&#xff09;凝聚出来的最佳实践&#xff0c;可以提高代码的可读性、可维护性和可重用性&#xff0c;从而让我们的开发效率更高。通…

Linux常用命令——atq命令

在线Linux命令查询工具 atq 列出当前用户的at任务列表 补充说明 atq命令显示系统中待执行的任务列表&#xff0c;也就是列出当前用户的at任务列表。 语法 atq(选项)选项 -V&#xff1a;显示版本号&#xff1b; -q&#xff1a;查询指定队列的任务。实例 at now 10 minu…

一个完整的手工构建的cuda动态链接库工程 03记

1&#xff0c; 源代码 仅仅是加入了模板函数和对应的 .cuh文件&#xff0c;当前的目录结构如下&#xff1a; icmm/gpu/add.cu #include <stdio.h> #include <cuda_runtime.h>#include "inc/add.cuh"// different name in this level for different type…

pygame时序模块time

文章目录 简介时钟对象平抛运动 pygame系列&#xff1a;初步&#x1f48e;加载图像&#x1f48e;图像变换&#x1f48e;直线绘制 简介 之前在更新图形的时候&#xff0c;为了调控死循环的响应时间&#xff0c;用到了time.sleep。而实际上&#xff0c;我们并不需要额外导入其他…

Failed to connect to gitee.com port 443: Time out 连接超时提示【Bug已完美解决-鸿蒙开发】

文章目录 项目场景:问题描述原因分析:解决方案:解决方案1解决方案2:解决方案3:此Bug解决方案总结解决方案总结**心得体会:解决连接超时问题的三种方案**项目场景: 导入Sample时遇到导入失败的情况,并提示“Failed to connect to gitee.com port 443: Time out”连接超…