HCIP—BGP邻居关系建立实验

BGP的邻居称为:IBGP对等体 EBGP对等体

1.EBGP对等体关系:

位于 不同自治系统 的BGP路由器之间的BGP对等体关系

EBGP对等体一般使用 直连建立 对等体关系,EBGP邻居之间的报文 TTL中值设置为1

两台路由器之间建立EBGP对等体关系,满足如下关系: 两个路由器属于不同AS 。在配置时,peer命令所指的对等体的IP地址可达, TCP连接必须正常建立

2.IBGP对等体关系:

位于 相同自治系统 的BGP路由器之间对等体关系

IBGP对等体一般使用 非自连建邻 。IBGP邻居建邻之间的报文中 TTL值被设置为255

在BGP对等体中,常常使用环回接口地址作为源目IP地址,原因环回接口稳定

并且可以借助AS内部的IGP的冗余拓扑来保证可靠性

实验拓扑如图所示,R1与R2属于同一个运营商网,AS编号为100,R1与R2之间的邻居关系为IBGP邻居关系。R3属于另一个运营商网络,AS编号为200,R3与R2之间的邻居关系为EBGP邻居关系。本实验中,路由器将分别采用物理接口和Loopback接口来进行IBGP和EBGP邻居关系的建立。

一:进行基础的IP地址配置,保证直连网段的ping通

二:R1和R2配置IBGP邻居

1.使用物理接口配置

R1和R2之间使用物理接口来配置IBGP邻居关系。R1和R2之间部署两条链路,其中一条物理出现故障时,另一条链路可以提供连通性

[R1]bgp 100
[R1-bgp]router-id 10.0.1.1
[R1-bgp]peer 10.0.12.2 as-number 100
[R1-bgp]peer 10.0.21.2 as-number 10

[R2]bgp 100
[R2-bgp]router-id 10.0.2.2 
[R2-bgp]peer 10.0.12.1 as-number 100
[R2-bgp]peer 10.0.21.1 as-number 100

配置完成后在R2上使用dis bgp peer命令,查看BGP邻居关系

R2现在有两个BGP的邻居,分别为R1的两个接口IP地址10.0.12.1和10.0.21.1 ,AS号都为100,与R2的AS号相同,当前的邻居状态为Established,表示邻居关系建立成功。

R1将Loopback 0接口IP地址通告在BGP进程中
[R1]bgp 100  
[R1-bgp]network 10.0.1.1 32

配置完成后在R2上查看BGP路由表

R2的BGP路由表中去往10.0.1.1/32的路由,可以通过下一跳R1的两个接口的IP地址10.0.12.1和10.0.21.1,实现BGP路由冗余。

2.使用LoopBack 0接口进行配置

        由于BGP是运行在TCP之上的,可以让R1的Loopback 0接口和R2的Loopback 0接口建立会话,并使用Loopback 0接口IP建立BGP邻居关系,则R1和R2之间只维护一个BGP邻居关系。当R1和R2之间的一条链路出现故障时,TCP直接通过另外一条物理链路继续维持会话关系,这效果比直接使用物理接口更具优势。

        R1的Loopback 0接口和R2的Loopback 0接口建立会话前,双方配置静态路由到达对方的Loopback 0接口。

[R1]ip route-static 10.0.2.2 32 10.0.12.2
[R1]ip route-static 10.0.2.2 32 10.0.21.2

[R2]ip route-static 10.0.1.1 32 10.0.12.1
[R2]ip route-static 10.0.1.1 32 10.0.21.1

删除之前使用物理接口配置IBGP邻居关系的命令,并使用Loopback 0接口重新建立IBGP邻居关系

[R1-bgp]undo  peer 10.0.12.2
[R1-bgp]undo  peer 10.0.21.2#删除使用物理接口配置IBGP邻居关系的命令
[R1-bgp]peer 10.0.2.2 as-number 100
#使用Loopback 0接口重新建立IBGP邻居关系


[R2-bgp]undo peer 10.0.12.1
[R2-bgp]undo peer 10.0.21.1
[R2-bgp]peer 10.0.1.1 as-number 100

R1使用dis bgp peer查看BGP邻居关系

        发现R1和R2的邻居关系为Active,说明R1和R2之间尚未成功建立IBGP邻居关系。由于BGP邻居在检测地址时,双方的目标IP地址都与对方的BGP源IP地址相同,才可以正常建立邻居。

        默认情况下BGP前往邻居路由器的出接口作为源IP地址,R1指定邻居地址10.0.2.2作为目的IP地址,R1出接口10.0.12.1源IP地址,。R2指定邻居地址10.0.1.1作为目的IP地址,R2出接口IP地址10.0.12.2作为源IP地址。因为双方的出接口IP地址和目的IP地址都不相同,故无法正常建立邻居。

        为了使数据包的目标IP与对方的BGP源地址相同,所以邻居也要将BGP源地址更改为自己的loopback接口地址。 由于R1发出的数据包目标IP10.0.2.2与R2的BGP源地址10.0.2.2完全相同,所以最终能够正常建立BGP邻居。R1在检测地址时,R2的目标IP10.0.1.1与R1的源10.0.1.1也完全相同。

R1使用命令peer 10.0.2.2 connect-interface LoopBack 0 强制指定LoopBack 0接口地址作为发送BGP报文的源IP地址,R2也一样

[R1-bgp]peer 10.0.2.2 connect-interface LoopBack 0

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

R2使用dis bgp peer查看BGP邻居关系

当前的邻居状态为Established,表示邻居关系建立成功。

R2使用命令dis ip routing-table查看路表。 

R2去往10.0.1.1/32的路由有两条,下一跳10.0.12.1和10.0.21.1,其中一条链路重新问题时,不会影响另一条链路。R1和R2的BGP邻居关系也不会有影响。

三:配置EBGP邻居

配置BGP邻居关系时使用物理接口建立,容易产生两个TCP会话和两个BGP邻居关系,当有较多设备时,这样配置容易导致网络不稳定,消耗设备资源。

        我们以R2的LoopBack 0和R3的LoopBack 0接口来配置EBGP邻居关系,先R2和R3上配置到达对方的LoopBack 0接口的静态路由。

[R2]ip route-static 10.0.3.0 255.255.255.0 10.0.23.3
[R2]ip route-static 10.0.3.0 255.255.255.0 10.0.32.3

[R3]ip route-static 10.0.2.0 255.255.255.0 10.0.23.2
[R3]ip route-static 10.0.2.0 255.255.255.0 10.0.32.2

R2和R3上使用LoopBack 0接口建立EBGP邻居关系,使用命令connect-interface LoopBack 0 强制指定LoopBack 0接口地址作为发送BGP报文的源IP地址

[R2]bgp 100
[R2-bgp]peer 10.0.3.3 as-number 200
[R2-bgp]peer 10.0.3.3 connect-interface LoopBack 0

[R3]BGP 200
[R3-bgp]router-id 10.0.3.3 
[R3-bgp]peer 10.0.2.2 as-number 100
[R3-bgp]peer 10.0.2.2 connect-interface LoopBack 0

R3查看BGP邻居关系

当前的邻居状态为idle,表示邻居关系建立不成功。

        默认情况下,EBGP邻居之间发送BGP报文时,TTL值默认为1,则EBGP要求邻居关系之间必须使用物理接口必须直连。我们使用的地址不是直连地址,那么这个时候我们就需要开启EBGP多跳,否则将无法正常建立BGP邻居。可以通过修改TTL值,使报文TTL值大于1。

R2和R3上使用命令ebgp-max-hop 2,配置TTL值为2

[R2-bgp]peer 10.0.3.3 ebgp-max-hop 2

[R3-bgp]peer 10.0.2.2 ebgp-max-hop 2

R3查看BGP邻居关系

当前的邻居状态为Established,表示EBGP邻居关系建立成功。

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

章鱼网络 Community Call #19|​开启与 Eigenlayer 的合作

香港时间2024年3月8日12点,章鱼网络举行第19期 Community Call。 在过去的一个月,章鱼网络在成功完成 $NEAR Restaking 功能的安全审计之后,一直在稳步吸引关注。事实上,在整个行业中,我们是极少数已经推出 Restaking …

数据结构 之 二叉树

🎉欢迎大家观看AUGENSTERN_dc的文章(o゜▽゜)o☆✨✨ 🎉感谢各位读者在百忙之中抽出时间来垂阅我的文章,我会尽我所能向的大家分享我的知识和经验📖 🎉希望我们在一篇篇的文章中能够共同进步!!&…

【机器学习-02】矩阵基础运算---numpy操作

在机器学习-01中,我们介绍了关于机器学习的一般建模流程,并且在基本没有数学公式和代码的情况下,简单介绍了关于线性回归的一般实现形式。不过这只是在初学阶段、为了不增加基础概念理解难度所采取的方法,但所有的技术最终都是为了…

Mysql:行锁,间隙锁,next-key锁?

注:以下讨论基于InnoDB引擎。 文章目录 问题引入猜想1:只加了一行写锁,锁住要修改的这一行。语义问题数据一致性问题 猜想2:要修改的这一行加写锁,扫描过程中遇到其它行加读锁猜想3:要修改的这一行加写锁&…

BigDecimal保留两位小数失败问题

文章目录 背景问题解决如何测试代码 背景 测试时发现在线swagger测试会自动处理BigDecimal小数点后面的数字,就是有零的会都给你去掉,比如9.000与9.500到最后都会被swagger处理成9跟9.5。使用postman测是最准的,测出来的就是9.000跟9.500。 …

react可视化编辑器 第一章 拖拽

效果: 实现可视化编辑器,第一步难点 是 拖拽 提示:链接和图片默认是可拖动的,不需要draggable属性。 在拖放操作的不同阶段使用并可能发生许多事件属性: 在可拖动目标上触发的事件(源元素)&a…

【渗透测试】redis漏洞利用

redis安装及配置 wget http://download.redis.io/releases/redis-3.2.0.tar.gz tar xzf redis-3.2.0.tar.gz cd redis-3.2.0 make cp /root/redis-6.2.6/redis.conf /usr/local/redis/bin/ cd /usr/local/redis/bin/ vi redis.conf #修改内容如下: #protected-mode …

数据结构的概念大合集04(队列)

概念大合集04 1、队列1.1 队列的定义1.2队列的顺序存储1.2.1 顺序队1.2.2 顺序队的基本运算的基本思想1.2.3 顺序队的4要素的基本思想 1.3 环形队列1.3.1 环形队列的定义1.3.1 环形队列的实现 1.4 队列的链式存储1.4.1 链队1.4.2 链队的实现方式1.4.3 链队的4要素的基本思想 1.…

开发环境热部署:2021版IDEA没有compiler.automake.allow.when.app.running

解决办法:Settings--> Advanced Settings -->Compiler勾选上

科研学习|论文解读——了解在线环境中的多数观点形成过程:Facebook的探索性方法(IPM, 2018)

论文标题 Understanding the majority opinion formation process in online environments: An exploratory approach to Facebook 摘要 在在线社区的社会互动过程中,多数观点经常被观察到,但很少有研究用实证数据来解决这一问题。为了确定一个合适的理论…

Ubuntu 虚拟机安装

最小化安装后常用工具 sudo apt-get install vim# ifconfig apt install net-tools # nload apt install nload # 很多都要用到 apt install build-essential # 开发相关 apt install gcc gapt install iproute2 ntpdate tcpdump telnet traceroute \ nfs-kernel-server nfs…

刚刚离乳的幼猫该如何选择猫粮品牌?

亲爱的猫友们,当你家的幼猫刚刚离乳,准备踏入猫粮的世界时,如何选择一款合适的猫粮品牌确实是个让人头疼的问题。🐾 别担心,今天我就来为大家推荐一款值得信赖的幼猫粮——福派斯幼猫粮。 1️⃣ 考虑幼猫的营养需求 幼…

前端 - 笔记 - JavaScript - WebAPI【DOM + 事件类型 + Date+ 节点操作 + window + 本地存储 + 正则表达式】

前言 Web API:是一套操作 网页内容(DOM) 与 浏览器窗口(BOM) 的 对象; API:就是一些预定义好的方法,这些方法可以实现特定的功能,开发人员可以直接使用;Web …

Day66:WEB攻防-Java安全SPEL表达式SSTI模版注入XXEJDBCMyBatis注入

目录 JavaSec搭建 Hello-Java-Sec搭建 Java安全-SQL注入-JDBC&MyBatis Java安全-XXE注入-Reader&Builder Java安全-SSTI模版-Thymeleaf&URL Java安全-SPEL表达式-SpringBoot框架 知识点: 1、Java安全-SQL注入-JDBC&MyBatis 2、Java安全-XXE注…

Vue 项目安装依赖提示core-js版本低的处理办法

core-js2.6.12: core-js<3 is no longer maintained and not recommended for usage due to the number of issues. Please, upgrade your dependencies to the actual version of core-js3. 我是下载一个老的项目&#xff0c;npm install之后提示上面的错误&#xff1b;本…

通用的springboot web jar包执行脚本,释放端口并执行jar包

1、通用的springboot web jar包执行脚本&#xff0c;释放端口并执行jar包&#xff1a; #!/bin/bash set -eDATE$(date %Y%m%d%H%M) # 基础路径 BASE_PATH/data/yitu-projects/yitu-xzhq/sftp # 服务名称。同时约定部署服务的 jar 包名字也为它。 SERVER_NAMEyitu-server # 环境…

Tuxera NTFS 2023安装使用教程 Tuxera NTFS破解版 Tuxera NTFS for Mac优惠

对于必须在Windows电脑和Mac电脑之间来回切换的Mac朋友来说&#xff0c;跨平台不兼容一直是一个巨大的障碍&#xff0c;尤其是当我们需要使用NTFS格式的硬盘在Windows和macOS之间共享文件时。因为Mac默认不支持写入NTFS磁盘。 为了解决这一问题&#xff0c;很多朋友会选择很便捷…

【安全类书籍-3】XSS跨站脚剖析与防御

目录 内容简介 作用 下载地址 内容简介 这本书涵盖以下几点: XSS攻击原理:解释XSS是如何利用Web应用未能有效过滤用户输入的缺陷,将恶意脚本注入到网页中,当其他用户访问时被执行,实现攻击者的目的,例如窃取用户会话凭证、实施钓鱼攻击等。 XSS分类:分为存储型XSS(…

R统计学3 - 数据分析入门问题41-60

往期R统计学文章: R统计学1 - 基础操作入门问题1-20 R统计学2 - 数据分析入门问题21-40 41. R 语言如何做双坐标图? # 创建模拟数据 year <- 2014:2024 gdp <- data.frame(year, GDP = sort(rnorm(11, 1000, 100))) ur <- data.frame(year, UR = rnorm(11, 5, 1…

[沉淀之华] 自研基于SpringBoot Mybaits 构建低代码数据治理脚手架分享:涵盖数据同步、数据比对、数据归档、数据恢复为一体

文章目录 成果演示背景整体能力功能描述相关细节安装使用 成果演示 Github地址&#xff1a;数据治理脚手架 wiki&#xff1a;kg-ctl-core使用文档 背景 为什么要做这个&#xff1f; 一个老生常谈且不得不谈问题&#xff1a;随着业务日益发展&#xff0c;如果不做数据迁移&…