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

相关文章

Nginx 配置跨域的实现及常见问题解决

《Nginx配置跨域的实现及常见问题解决》本文主要介绍了Nginx配置跨域的实现及常见问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来... 目录1. 跨域1.1 同源策略1.2 跨域资源共享(CORS)2. Nginx 配置跨域的场景2.1

Python打印对象所有属性和值的方法小结

《Python打印对象所有属性和值的方法小结》在Python开发过程中,调试代码时经常需要查看对象的当前状态,也就是对象的所有属性和对应的值,然而,Python并没有像PHP的print_r那样直接提... 目录python中打印对象所有属性和值的方法实现步骤1. 使用vars()和pprint()2. 使

qt5cored.dll报错怎么解决? 电脑qt5cored.dll文件丢失修复技巧

《qt5cored.dll报错怎么解决?电脑qt5cored.dll文件丢失修复技巧》在进行软件安装或运行程序时,有时会遇到由于找不到qt5core.dll,无法继续执行代码,这个问题可能是由于该文... 遇到qt5cored.dll文件错误时,可能会导致基于 Qt 开发的应用程序无法正常运行或启动。这种错

SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志

《SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志》在SpringBoot项目中,使用logback-spring.xml配置屏蔽特定路径的日志有两种常用方式,文中的... 目录方案一:基础配置(直接关闭目标路径日志)方案二:结合 Spring Profile 按环境屏蔽关

SpringBoot排查和解决JSON解析错误(400 Bad Request)的方法

《SpringBoot排查和解决JSON解析错误(400BadRequest)的方法》在开发SpringBootRESTfulAPI时,客户端与服务端的数据交互通常使用JSON格式,然而,JSON... 目录问题背景1. 问题描述2. 错误分析解决方案1. 手动重新输入jsON2. 使用工具清理JSON3.

CSS3中的字体及相关属性详解

《CSS3中的字体及相关属性详解》:本文主要介绍了CSS3中的字体及相关属性,详细内容请阅读本文,希望能对你有所帮助... 字体网页字体的三个来源:用户机器上安装的字体,放心使用。保存在第三方网站上的字体,例如Typekit和Google,可以link标签链接到你的页面上。保存在你自己Web服务器上的字

MySQL 设置AUTO_INCREMENT 无效的问题解决

《MySQL设置AUTO_INCREMENT无效的问题解决》本文主要介绍了MySQL设置AUTO_INCREMENT无效的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参... 目录快速设置mysql的auto_increment参数一、修改 AUTO_INCREMENT 的值。

关于跨域无效的问题及解决(java后端方案)

《关于跨域无效的问题及解决(java后端方案)》:本文主要介绍关于跨域无效的问题及解决(java后端方案),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录通用后端跨域方法1、@CrossOrigin 注解2、springboot2.0 实现WebMvcConfig

Go语言中泄漏缓冲区的问题解决

《Go语言中泄漏缓冲区的问题解决》缓冲区是一种常见的数据结构,常被用于在不同的并发单元之间传递数据,然而,若缓冲区使用不当,就可能引发泄漏缓冲区问题,本文就来介绍一下问题的解决,感兴趣的可以了解一下... 目录引言泄漏缓冲区的基本概念代码示例:泄漏缓冲区的产生项目场景:Web 服务器中的请求缓冲场景描述代码

解决JSONField、JsonProperty不生效的问题

《解决JSONField、JsonProperty不生效的问题》:本文主要介绍解决JSONField、JsonProperty不生效的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录jsONField、JsonProperty不生效javascript问题排查总结JSONField