下一跳
路由器将BGP路由更新给ibgp邻居,下一跳默认是不变的,可以通过next-hop-self修改
路由器将bgp路由更新给ebgp邻居,下一跳自动更新为本路由器的更新源地址
第三方下一跳(重定向)

r1#traceroute 4.4.4.4                        
                                             
Type escape sequence to abort.               
Tracing the route to 4.4.4.4                 
                                             
  1 12.1.1.2 40 msec 40 msec 28 msec         
  2 100.1.1.4 [AS 100] 84 msec *  84 msec          (R2对路径进行重定向)

r2#show ip bgp                                                                 
BGP table version is 10, local router ID is 2.2.2.2                            
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale                                           
Origin codes: i - IGP, e - EGP, ? - incomplete

Network          Next Hop            Metric LocPrf Weight Path
r> 1.1.1.1/32       1.1.1.1                  0             0 1 i 
*> 2.2.2.2/32       0.0.0.0                  0         32768 i   
r>i3.3.3.3/32       3.3.3.3                  0    100      0 i   
r>i4.4.4.4/32       3.3.3.3                  0    100      0 4 i (但是BGP表中仍然是显示为3.3.3.3邻居地址)
*> 12.1.1.0/24      0.0.0.0                  0         32768 i   
* i100.1.1.0/24     3.3.3.3                  0    100      0 i   
*>                  0.0.0.0                  0         32768 i   
路由器利用重定向,自动将到R4的下一跳定义为R2的红色接口

Next-Hop
这个属性定义了某条前缀的下一跳IP地址
所以下一跳必须是路由表中的某条前缀(包括默认路由0.0.0.0/0)!下一跳属性通常在 3 个地方被设置
前缀一开始注入BGP时,下一跳依赖于注入方式
aggregate-address——-0.0.0.0(本路由器)
network/redistribute——原路由的下一跳地址,如果原路由的下一跳地址不存在(指向null)本路由器将成为该BGP路由的下一跳!即0.0.0.0

该为公认必选属性,描述了到公布目的地的路径下一跳路由器的IP地址。由BGP NEXT_HOP属性所描述的IP地址不经常是邻居路由器的IP地址,要遵循下面的规则:
如果正在进行路由宣告的路由器和接收的路由器在不同的自治系统中,NEXT_HOP是正在宣告路由器接口的IP地址,如下图所示。

如果正在进行路由宣告的路由器和接收的路由器在同一个AS内,并且更新消息的NLRI指明的目的地也在同一个AS内,那么NExT_HOP就是宣告路由的邻居的IP地址。如下图所示。

如果正在宣告的路由器和接收的路由器是内部对等体,并且更新消息的NLRI指明目的地在不同的AS,则NEXT_HOP就是学习到路由的外部对等实体的IP地址。如下图所示。

从上面图可以知道,在去往192.168.5.0的网段中会出现路径不可达的情况,解决这个问题的方法是保证内部路由器知道与两处自治系统相连的外部网络,可以使用静态路由的办法,但实际的做法是在外部端口上以被动模式运行IGP。但在某种情况下,该方法并不理想。
第二种方法是采用配置选项来做,这个配置选项被称做next-hop-self。
下面具体详述了下一跳的不可达的解决方法:
解决下一跳不可达的方法:
1,静态路由
2,在IBGP邻居所处的IGP中宣告
3,将与EBGP直连的网络重分布进IGP
4,neighbor x.x.x.x next-hop-self(将指向EBGP邻居更新源的地址变为自己的更新源地址)(RR有的版本会将下一跳改变)
一般情况下,在本路由器上将直连的网络引入BGP,下一跳为0.0.0.0,本路由器聚合的路由的下一跳也为0.0.0.0。
在本路由器上将从IGP学来的路由引入BGP时,在本路由器上看BGP的转发表,下一跳为IGP路由的下一跳。在多访问网络环境中,用直连接口建立邻居关系,会产生第三方下一跳。
实例说明:如下图所示,

R2与R1是IBGP邻居,R1与R3是EBGP邻居,当用直连接口建邻居时,R2引入BGP的前缀172.16.2.0/24,在R3的bgp转发表里,将显示为R2的多访问网络接口地址(如:10.1.1.2)。产生第三方下一跳的现象。
-如果R1、R2、R3全部用直连接口建邻居时会产生第三方下一跳。
-如果R1、 R2用环回口而R1、R3用直连建立邻居时,会产生第三方下一跳。
-如果R1、R2用直连而R1、R3用回环口时,不会产生第三方下一跳,如下所示配置。
-如果R1、R2、R3都用环回口建立邻居,则不会产生第三方下一跳,如下配置所示。
R3#show ip bgp
BGP table version is 4, local router ID is 172.16.3.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*> 172.16.1.0/24 10.1.1.1 0 0 100 i
*> 172.16.2.0/24 10.1.1.2 0 100 i
*> 172.16.3.0/24 0.0.0.0 0 32768 i

R1
router bgp 100
no synchronization
bgp log-neighbor-changes
network 172.16.1.0 mask 255.255.255.0
neighbor 3.3.3.3 remote-as 200
neighbor 3.3.3.3 ebgp-multihop 2
neighbor 3.3.3.3 update-source Loopback1
neighbor 10.1.1.2 remote-as 100
no auto-summary
R3
router bgp 200
no synchronization
bgp log-neighbor-changes
network 172.16.3.0 mask 255.255.255.0
neighbor 1.1.1.1 remote-as 100
neighbor 1.1.1.1 ebgp-multihop 2
neighbor 1.1.1.1 update-source Loopback1
no auto-summary
R3#sh ip bgp
BGP table version is 8, local router ID is 172.16.3.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*> 172.16.1.0/24 1.1.1.1 0 0 100 i
*> 172.16.2.0/24 1.1.1.1 0 100 i
*> 172.16.3.0/24 0.0.0.0 0 32768 i

R1
router bgp 100
no synchronization
bgp log-neighbor-changes
network 172.16.1.0 mask 255.255.255.0
neighbor 2.2.2.2 remote-as 100
neighbor 2.2.2.2 update-source Loopback1
neighbor 3.3.3.3 remote-as 200
neighbor 3.3.3.3 ebgp-multihop 2
neighbor 3.3.3.3 update-source Loopback1
no auto-summary
R2
router bgp 100
no synchronization
bgp log-neighbor-changes
network 172.16.2.0 mask 255.255.255.0
neighbor 1.1.1.1 remote-as 100
neighbor 1.1.1.1 update-source Loopback1
no auto-summary
R3
router bgp 200
no synchronization
bgp log-neighbor-changes
network 172.16.3.0 mask 255.255.255.0
neighbor 1.1.1.1 remote-as 100
neighbor 1.1.1.1 ebgp-multihop 2
neighbor 1.1.1.1 update-source Loopback1
no auto-summary
R3#sh ip bgp
BGP table version is 10, local router ID is 172.16.3.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*> 172.16.1.0/24 1.1.1.1 0 0 100 i
*> 172.16.2.0/24 1.1.1.1 0 100 i
*> 172.16.3.0/24 0.0.0.0 0 32768 i
第三方下一跳:收到路由更新的源地址与将要发出去的接口地址在同一网段的时候,路由的下一跳不改变,为原来路由更新的源地址。
有时虽然路由的下一跳可达,但会出现访问网络出现环路的现象。
实例说明:

R5-R3,R1-R2为EBGP邻居关系,R1-R3为IBGP邻居关系。那么R5通过BGP传给R3的路由(如10.1.1.0/24),R3通过IBGP传给R1,R1通过EBGP传给R2,这时R2访问10.1.1.0/24这个网络的下一跳就在R1上。这时R2去访问R5的时候,就会产生环路。
则R2(走下一跳)——R1(走物理链路)——R2,这样环路产生了。
解决方法:
neighbor x.x.x.x next-hop-unchanged?(此命令只能用在EBGP多跳的环境下,将路由的下一跳,从自己的更新源地址改变为从IBGP学来的下一跳地址)(这时路由的下一跳在路由表里将改变。)
neighbor x.x.x.x route-map XX {in|out}然后在route-map里面set ip next-hop来改变前缀的下一跳。(在路由表里下一跳会改变。)
策略路由PBR,强制命令R2到10.1.1.0/24的时候走R3。(路由表里下一跳不会改变)

BGP 下一跳的理解和实验相关推荐

  1. CCIE-LAB-第九篇-BGP下一跳+EBGP防环+伪装AS+通过标签过滤路由

    CCIE-LAB-第九篇-BGP下一跳+EBGP防环+伪装AS+通过标签过滤路由 实际中,思科只会给你5个小时去做下面的全部配置 这个是CCIE-LAB的拓扑图 问题 翻译: 2根据这些要求:在HQ ...

  2. CCNP精粹系列之三十二--BGP下一跳问题,推荐

                       Bgp的下一跳 R1:<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:off ...

  3. 网工知识角|如何理解网络拓扑中的下一跳地址

    [下一跳地址] "下一跳"是一个路由专业术语,是指IP路由表中去往目的地址的下一个站点(IP地址),它告诉路由器应该向哪一个设备的IP地址发送该数据包. 如上图所示,共有5台设备, ...

  4. BGP邻居特性及下一跳如何建立 学习笔记

    两台路由器运行bgp建立任何邻居之前,会先交互tcp的三个报文 ,三次握手做完之后建成一个基于tcp的 信道,基于信道就开始邻居关系建立,只用交互一个open报文 .主要包括路由信的身份标识 ,rou ...

  5. 【数通网络交换基础梳理2】三层设备、网关、ARP表、VLAN、路由表及跨网段路由下一跳转发原理

    一.不同网段如何通讯 同网段可以依靠二层交换机通讯,网络中存在多个网段192.168.1.1/24 172.16.1.1/24 173.73.1.1/24情况下如何互相通讯?上节留一下的问题,这节继续 ...

  6. 路由器下一跳地址怎么判断_CCNP-路由器工作原理

    好物要写,我们的文章也不能断更,赚钱重要,学习新知识更重要,今天就是进入NP阶段的内容了,我们会深入理解每个动态路由协议的工作原理,以及一些策略方面的配置,至此你就能随心所欲控制路由的走向,让他走你所 ...

  7. Route-Map个人理解及实验解析

    Route-Map:功能性非常强的策略列表,可以用来过滤路由也可以调整路由的属性,自身具备过滤功能. Route-Map的作用: 1.在重发布的过程中做route-map,重发布过程中可以改变路由的属 ...

  8. 配置静态路由使用出站接口和下一跳IP的差别

    在配置静态路由时,下一跳可以使用下一路由器的IP地址,也可以使用本路由器的出站接口.在点对点的网络中,两者可能没有什么差别,但在以太网中,两者有很大差别.         在以太网中,两个相邻接口之间 ...

  9. 配置静态路由下一跳为本地出战接口和IP地址的区别

    配置静态路由下一跳为本地出战接口和IP地址的区别 在配置静态路由时,下一跳可以使用下一路由器的IP地址,也可以使用本路由器的出站接口.在点对点的网络中,两者可能没有什么差别,但在以太网中或者NBMA网 ...

  10. 视频理解论文实验笔记2014-2022

    视频理解论文实验笔记 看了李沐团队的视频,其中关于视频理解的串讲(上集 下集)讲的太好了,按照他的顺序看了这些论文,并做了重点针对实验部分的笔记 文章目录 视频理解论文实验笔记 2D Base cvp ...

最新文章

  1. IDEA提升研发效能—高效定位篇
  2. python 写文件 换行_Python学习16:读写文件
  3. 皮一皮:当和对象一家人一起看到羞羞电影对象却去上厕所时...
  4. Linux查看进程和终止进程的技巧
  5. 今晚8点:基于强化学习的关系抽取和文本分类 | PhD Talk #18
  6. 基类成员的public访问权限在派生类中变为_C++ 派生类的构造函数举例:继承+组合(学习笔记:第7章 07)...
  7. Vue---从后台获取数据vue-resource的使用方法
  8. 密码可逆不可逆选择_膝关节损伤不可逆!跑步要注意!
  9. NanUI文档 - 如何实现C#与Javascript的相互通信
  10. 就业阶段-java语言进价_day05
  11. 树的结构 数据结构_段树| 数据结构
  12. ubuntu16.04下ROS操作系统学习笔记(六 )机器视觉-摄像头标定-ROS+OpenCv-人脸识别-物体跟踪-二维码识别
  13. linux没有启用的仓库_在RHEL/CentOS 4-6中安装并启用RPMForge仓库
  14. Kubernetes 集群安全机制详解
  15. 宝妈每天一小时,在家用手机做情感励志短视频,收益稳定200多
  16. 什么时候用多线程什么时候用多进程呢?GUL
  17. 亚马逊云科技风力发电厂在福勒岭启动了!
  18. ac1412. 邮政货车(插头DP)
  19. www与m站间的转换
  20. [附源码]Python计算机毕业设计JAVA高校田径运动会管理

热门文章

  1. WPS标题编号级别,根据上一级自动编号
  2. 坚果nuts 加速 官网_坚果 R2 发布:骁龙 865、1 亿像素、双曲面屏,售价 4499 元...
  3. 拳王公社:最新虚拟资源项目赚钱成交系统,1.2W字干货大揭秘!
  4. Collecting stars
  5. 微信小程序实现微信企业付款到零钱功能的流程
  6. DGUS组态软件中图标旋转显示如何使用
  7. ​DOCX 文档解析及隐藏信息提取算法
  8. Android 获取经纬度处理
  9. Python数据挖掘学习6卡方检验
  10. EPIC/Steam 手柄没反应问题解决办法