BGP路径选择——第三选择 Next Hop 属性 解决非对称路由-看不懂请捶我系列

本文主要是介绍BGP路径选择——第三选择 Next Hop 属性 解决非对称路由-看不懂请捶我系列,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

BGP路径选择——第三选择 Next Hop 属性 解决非对称路由实验拓扑图如下:

在这里插入图片描述

实验目的: 实现AS100的客户与AS 200的服务器能够正常通信,并消非对称路由现象。

R1上:bgp 100router-id 10.0.1.1peer 10.0.12.2 as-number 200 peer 10.0.13.3 as-number 200 #ipv4-family unicastundo synchronizationnetwork 10.0.100.1 255.255.255.255 peer 10.0.12.2 enablepeer 10.0.13.3 enable#R2:
#
ospf 1 router-id 10.0.2.2 area 0.0.0.0 network 10.0.2.2 0.0.0.0 network 10.0.24.0 0.0.0.255 
#
bgp 200router-id 10.0.2.2peer 10.0.3.3 as-number 200 peer 10.0.3.3 connect-interface LoopBack0peer 10.0.4.4 as-number 200 peer 10.0.4.4 connect-interface LoopBack0peer 10.0.12.1 as-number 100 #R3上:
#ospf 1 router-id 10.0.3.3 area 0.0.0.0 network 10.0.3.3 0.0.0.0 network 10.0.34.0 0.0.0.255 #
bgp 200router-id 10.0.3.3peer 10.0.2.2 as-number 200 peer 10.0.2.2 connect-interface LoopBack0peer 10.0.4.4 as-number 200 peer 10.0.4.4 connect-interface LoopBack0peer 10.0.13.1 as-number 100 #R4上:
#
ospf 1 router-id 10.0.4.4 area 0.0.0.0 network 10.0.4.4 0.0.0.0 network 10.0.24.0 0.0.0.255 network 10.0.34.0 0.0.0.255 network 10.0.100.4 0.0.0.0 
#bgp 200router-id 10.0.4.4peer 10.0.2.2 as-number 200 peer 10.0.2.2 connect-interface LoopBack0peer 10.0.3.3 as-number 200 peer 10.0.3.3 connect-interface LoopBack0#ipv4-family unicastundo synchronizationnetwork 10.0.100.4 255.255.255.255 peer 10.0.2.2 enablepeer 10.0.3.3 enable
#

配置完成后,R1查看bgp 路由转发表:
在这里插入图片描述

R4:
在这里插入图片描述
去往10.0.100.1 有两条但都不是可用的(*)
查看IP 路由表:
在这里插入图片描述
看到里面并没有去往10.0.100.1 /32的路由,也没有去往10.0.12.1和10.0.13.1 的路由。虽然R4的BGP表中有去往10.0.100.1/32的路由,但是标记为无用的,说明R4认为这两条路由信息的下一跳为不可达的。

R2 R3上查看BGP表:

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

R1的路由信息10.0.100.1/32 的路由在传递EBGP对等体R2的过程中 Next Hop 属性会被自动修改为发送BGP报文的源地址,即10.0.12.1。R2在传递给IBGP对等体R4的时候,不会修改Next-Hop 属性,导致也为10.0.12.1 ,R3同上。

BGP Next-Hop属性:
EBGP邻居在传递路由时会修改下一跳地址为自己的更新源地址
IBGP邻居在传递路由时不会修改该属性

实现Next-Hop为可达的方法为两种:
1.将EBGP对等体之间的链路通告进IGP网路,
2.R2和R3将路由信息传递给IBGP对等体R4时,使用自己的源地址为BGP的下一跳路由。
在实际情况中,通常采用第二种,配置如下:

R2 R3 一样,这里以R2为例:

[R2]bgp 200
[R2-bgp]peer 10.0.3.3  next-hop-local 
[R2-bgp]peer 10.0.4.4 next-hop-local

之后在R4再次查看BGP路由表:
在这里插入图片描述
可以看到两条路由都已经可用,在R1上测试Loopback1 与R4的Loopback 1的联通性
在这里插入图片描述

Next-Hop属性对选路的影响:

在R1上使用tracert 命令验证从10.0.100.1/32去往10.0.100.4.32的报文所经过的路径:
在这里插入图片描述
看到数据经过R2传到R4上面,我们反过来测试从R4到R看一下:
在这里插入图片描述
看到数据经R3到R1上的,这就是上面所说的非对称现象。我们称为不对称路由,
BGP在选路规则时,其他条件相同的情况下,会比较两条路由信息去往Next-Hop 地址的IGP开销,优先选择小的路由开销,再次查看R4的IP路由表:
在这里插入图片描述
可以看待10.0.3.3 的开销为最小为1,,并选为最佳路由,解决办法:

R4去往R3的接口下:

ospf   cost 100

查看R4路由表:

在这里插入图片描述

再次查看BGP转发表:
在这里插入图片描述
R4上验证:
在这里插入图片描述
成功消除非对称现象。

晚安,我的宝,今天去输液了,什么液,想你的夜!!!

在这里插入图片描述

这篇关于BGP路径选择——第三选择 Next Hop 属性 解决非对称路由-看不懂请捶我系列的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/310042

相关文章

大数据小内存排序问题如何巧妙解决

《大数据小内存排序问题如何巧妙解决》文章介绍了大数据小内存排序的三种方法:数据库排序、分治法和位图法,数据库排序简单但速度慢,对设备要求高;分治法高效但实现复杂;位图法可读性差,但存储空间受限... 目录三种方法:方法概要数据库排序(http://www.chinasem.cn对数据库设备要求较高)分治法(常

Vue项目中Element UI组件未注册的问题原因及解决方法

《Vue项目中ElementUI组件未注册的问题原因及解决方法》在Vue项目中使用ElementUI组件库时,开发者可能会遇到一些常见问题,例如组件未正确注册导致的警告或错误,本文将详细探讨这些问题... 目录引言一、问题背景1.1 错误信息分析1.2 问题原因二、解决方法2.1 全局引入 Element

linux报错INFO:task xxxxxx:634 blocked for more than 120 seconds.三种解决方式

《linux报错INFO:taskxxxxxx:634blockedformorethan120seconds.三种解决方式》文章描述了一个Linux最小系统运行时出现的“hung_ta... 目录1.问题描述2.解决办法2.1 缩小文件系统缓存大小2.2 修改系统IO调度策略2.3 取消120秒时间限制3

C#使用HttpClient进行Post请求出现超时问题的解决及优化

《C#使用HttpClient进行Post请求出现超时问题的解决及优化》最近我的控制台程序发现有时候总是出现请求超时等问题,通常好几分钟最多只有3-4个请求,在使用apipost发现并发10个5分钟也... 目录优化结论单例HttpClient连接池耗尽和并发并发异步最终优化后优化结论我直接上优化结论吧,

解决systemctl reload nginx重启Nginx服务报错:Job for nginx.service invalid问题

《解决systemctlreloadnginx重启Nginx服务报错:Jobfornginx.serviceinvalid问题》文章描述了通过`systemctlstatusnginx.se... 目录systemctl reload nginx重启Nginx服务报错:Job for nginx.javas

Java如何通过反射机制获取数据类对象的属性及方法

《Java如何通过反射机制获取数据类对象的属性及方法》文章介绍了如何使用Java反射机制获取类对象的所有属性及其对应的get、set方法,以及如何通过反射机制实现类对象的实例化,感兴趣的朋友跟随小编一... 目录一、通过反射机制获取类对象的所有属性以及相应的get、set方法1.遍历类对象的所有属性2.获取

Mysql DATETIME 毫秒坑的解决

《MysqlDATETIME毫秒坑的解决》本文主要介绍了MysqlDATETIME毫秒坑的解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着... 今天写代码突发一个诡异的 bug,代码逻辑大概如下。1. 新增退款单记录boolean save = s

Python 中 requests 与 aiohttp 在实际项目中的选择策略详解

《Python中requests与aiohttp在实际项目中的选择策略详解》本文主要介绍了Python爬虫开发中常用的两个库requests和aiohttp的使用方法及其区别,通过实际项目案... 目录一、requests 库二、aiohttp 库三、requests 和 aiohttp 的比较四、requ

vue解决子组件样式覆盖问题scoped deep

《vue解决子组件样式覆盖问题scopeddeep》文章主要介绍了在Vue项目中处理全局样式和局部样式的方法,包括使用scoped属性和深度选择器(/deep/)来覆盖子组件的样式,作者建议所有组件... 目录前言scoped分析deep分析使用总结所有组件必须加scoped父组件覆盖子组件使用deep前言

解决Cron定时任务中Pytest脚本无法发送邮件的问题

《解决Cron定时任务中Pytest脚本无法发送邮件的问题》文章探讨解决在Cron定时任务中运行Pytest脚本时邮件发送失败的问题,先优化环境变量,再检查Pytest邮件配置,接着配置文件确保SMT... 目录引言1. 环境变量优化:确保Cron任务可以正确执行解决方案:1.1. 创建一个脚本1.2. 修