🔧BGP基础实验1

type
status
date
slug
summary
tags
category
icon
password
notion image
 
 
 
 
 
一些问题:

案例中最后一步next-hop-local的作用

这个案例中的最后一步提到的是在R2、R4上修改BGP下一跳地址,这一步是为了确保通过BGP传播的路由信息中的下一跳地址是可以到达的,并且符合网络设计需求。

具体解释:

  1. 发布 Loopback1 路由
    1. R1R5 上,分别配置了 Loopback1 接口,模拟用户网段(如 1.1.1.1/325.5.5.5/32)。这些路由通过 BGP向其他路由器进行发布。目标是让网络中的其他设备能够通过 BGP学习到这些网段。
  1. BGP的默认行为
      • eBGP 环境中,默认情况下,路由器会将接收到的路由的下一跳地址保留为对端设备的地址。例如,如果 R11.1.1.1/32 路由通过 eBGP 发布给 R2,那么 R2 在学习到这个路由时,下一跳会是 R1 的接口地址 10.0.12.1
      • iBGP 环境中,默认情况下,路由器不会修改路由的下一跳。如果 R2 将这个路由通过 iBGP 传递给 R3R4,下一跳依然是 10.0.12.1R1 的地址)。这可能导致路由器 R3R4 无法找到到达 10.0.12.1 的路径,尤其是当 iBGP 路由器间没有直接相连时。
  1. 修改 BGP 下一跳的目的: 为了解决上述问题,需要修改下一跳地址,确保网络中所有的路由器都能正确地解析和到达下一跳。
    1. R2R4 上,可以通过 BGP 命令修改下一跳地址。具体操作包括:
      • iBGP 中使用 next-hop-self 命令,强制将发布出去的路由的下一跳修改为本地的地址(即 R2R4 各自的接口地址)。
      • 这样,R3 在学习到这些路由时,看到的下一跳就是 R2 的地址,而不是 R1 的地址。同样,R4 可以在传播这些路由时,修改为自己的地址。

最后一步操作的意义:

  • R2R4 上,修改 BGP 的下一跳地址(使用 next-hop-local),确保:
      1. 路由的可达性:内部路由器(如 R3R4)能正确地解析下一跳地址,避免由于下一跳不可达而导致的路由问题。
      1. 统一管理和优化流量路径:将下一跳设置为本地路由器的接口,可以确保网络内部的流量走向更符合网络设计,减少不必要的跨网络跳转。
 

案例中使用的next-hop-local的作用

这个案例中的最后一步提到的是在R2、R4上修改BGP下一跳地址,这一步是为了确保通过BGP传播的路由信息中的下一跳地址是可以到达的,并且符合网络设计需求。

具体解释:

  1. 发布 Loopback1 路由
    1. R1R5 上,分别配置了 Loopback1 接口,模拟用户网段(如 1.1.1.1/325.5.5.5/32)。这些路由通过 BGP向其他路由器进行发布。目标是让网络中的其他设备能够通过 BGP学习到这些网段。
  1. BGP的默认行为
      • eBGP 环境中,默认情况下,路由器会将接收到的路由的下一跳地址保留为对端设备的地址。例如,如果 R11.1.1.1/32 路由通过 eBGP 发布给 R2,那么 R2 在学习到这个路由时,下一跳会是 R1 的接口地址 10.0.12.1
      • iBGP 环境中,默认情况下,路由器不会修改路由的下一跳。如果 R2 将这个路由通过 iBGP 传递给 R3R4,下一跳依然是 10.0.12.1R1 的地址)。这可能导致路由器 R3R4 无法找到到达 10.0.12.1 的路径,尤其是当 iBGP 路由器间没有直接相连时。
  1. 修改 BGP 下一跳的目的: 为了解决上述问题,需要修改下一跳地址,确保网络中所有的路由器都能正确地解析和到达下一跳。
    1. R2R4 上,可以通过 BGP 命令修改下一跳地址。具体操作包括:
      • iBGP 中使用 next-hop-local 命令,强制将发布出去的路由的下一跳修改为本地的地址(即 R2R4 各自的接口地址)。
      • 这样,R3 在学习到这些路由时,看到的下一跳就是 R2 的地址,而不是 R1 的地址。同样,R4 可以在传播这些路由时,修改为自己的地址。

最后一步操作的意义:

  • R2R4 上,修改 BGP 的下一跳地址(使用 next-hop-local),确保:
      1. 路由的可达性:内部路由器(如 R3R4)能正确地解析下一跳地址,避免由于下一跳不可达而导致的路由问题。
      1. 统一管理和优化流量路径:将下一跳设置为本地路由器的接口,可以确保网络内部的流量走向更符合网络设计,减少不必要的跨网络跳转。

具体的配置命令(基于华为设备):

R2R4 上执行 next-hop-local 来修改 iBGP 路由的下一跳:

R2上配置:

R4上配置:

这样,R2R4 都会将从 eBGP 或 iBGP 学习到的路由的下一跳修改为自己本地的地址,从而确保网络中的路由器能够正确地到达这些路由。

什么情况下使用ebgp-max-hop

eBGP的默认行为

  • eBGP 通常用于不同自治系统(AS)之间的连接,默认情况下,eBGP 邻居之间要求 直连,即两个路由器必须直接通过一个物理或逻辑链路相连。eBGP 的默认 TTL 值是 1,这意味着它只会接受来自直接相邻的路由器的 BGP 会话请求。

ebgp-max-hop 的作用

  • ebgp-max-hop 允许配置超过1跳的 BGP 邻居关系,即 非直连的 eBGP 邻居。如果 eBGP 邻居之间的连接需要经过多个路由器(例如通过多跳路径),需要手动配置 ebgp-max-hop,并设置允许的最大跳数。

根据你的网络拓扑判断:

从你的拓扑图中,eBGP 邻居之间是直接相连的,例如:
  • R1R2 之间是直接通过接口连接的(10.0.12.0/24)。
  • R4R5 之间也是直接相连的(10.0.45.0/24)。
在这种 eBGP 邻居直连的场景下,通常不需要配置 ebgp-max-hop,因为 BGP 的默认 TTL 值(1)已经足够处理直接相连的邻居关系。

什么时候需要配置 ebgp-max-hop

  • 如果 eBGP 邻居 不是直接相连,而是通过多跳路由才能相互到达,才需要配置 ebgp-max-hop。例如,如果 R1R2 之间没有直接物理连接,而是需要通过其他中间路由器跳转才能建立 eBGP 邻居关系,那么就需要配置 ebgp-max-hop

结论:

  • 当前场景中(eBGP 邻居是直连的),不需要配置 ebgp-max-hop。默认的 TTL=1 就足够处理 eBGP 邻居关系。
  • 如果未来拓扑发生变化,需要通过多跳路由建立 eBGP 邻居关系,可以根据实际跳数来配置 ebgp-max-hop,例如:
    这样配置的目的是允许 eBGP 邻居关系通过2跳的路由器建立。

    如果EBGP邻居之间使用的是Loopback接口而不是物理接口

    由于 eBGP 邻居使用的是 Loopback接口 而不是物理接口直接相连,因此需要配置 ebgp-max-hop

    原因:

    • eBGP默认的TTL值为1,即 eBGP 邻居之间默认要求是直接相连的(通过物理接口或者二层网络),而当使用 Loopback接口 作为 BGP 对等体时,邻居关系不再是直接相连,而是需要经过多跳才能到达对方的 Loopback 地址。
    • 因此,为了能够建立基于 Loopback 接口的 eBGP 邻居关系,必须配置 ebgp-max-hop,并将允许的最大跳数设置为超过1跳的值。

    具体场景分析:

    • R1 和 R2:它们之间通过接口 10.0.12.0/24 直接相连,但如果使用 Loopback0 接口(10.0.1.110.0.2.2)建立 eBGP 对等体关系,R2 到 R1 的 Loopback0 会经过至少1跳(R2 接口到 R1 Loopback0),因此需要配置 ebgp-max-hop
    • R4 和 R5:它们之间通过接口 10.0.45.0/24 直接相连,但若使用 Loopback0 接口(10.0.4.410.0.5.5)建立 eBGP 对等体关系,也会面临类似问题。

    配置方法:

    假设你需要允许 eBGP 邻居通过多跳路径建立 BGP 邻居关系,通常配置的 ebgp-max-hop 值可以根据实际的跳数来确定(这里一般可以设置为2或更多),这样允许通过多跳访问 Loopback接口。

    在 R1 上配置与 R2 的 eBGP:

    在 R2 上配置与 R1 的 eBGP:

    在 R4 上配置与 R5 的 eBGP:

    在 R5 上配置与 R4 的 eBGP:

    iBGP之间不需要配置 ebgp-max-hop,原因主要是 iBGP 和 eBGP 的工作机制不同。

    iBGP 和 eBGP 的区别:
    1. iBGP (内部 BGP):
    iBGP 是在同一个自治系统(AS)内部的 BGP邻居之间建立的。
    在 iBGP 中,BGP 邻居之间可以不要求直接相连,即它们可以通过自治系统内部的任何路由跳转到对方,只要它们在同一个 AS 中。
    iBGP 默认不限制跳数,它会根据 IGP(如 OSPF、IS-IS 或静态路由)来决定如何到达对端的 BGP邻居。因此,iBGP 邻居可以通过网络中的任何路径进行通信,无需手动调整 TTL 或配置 max-hop。
    1. eBGP (外部 BGP):
    eBGP 是在不同自治系统(AS)之间的 BGP 邻居。
    eBGP 默认要求邻居之间直接相连,并且 BGP 报文的 TTL 默认是1,意味着只接受一跳内的邻居。因此,eBGP 邻居之间通常需要通过物理接口直接相连。
    如果 eBGP 邻居之间不是直接相连,或者使用 Loopback 接口建立邻居关系时,需要通过 ebgp-max-hop 来手动调整 TTL,使得 BGP 报文能够跨越多跳到达对端邻居。
    iBGP不需要 ebgp-max-hop 的原因:
    无需限制 TTL:iBGP 默认可以通过网络中的任何路径到达对端的 BGP 邻居,不受 TTL 限制,跳数多少都可以,因此不需要像 eBGP 那样去调整 TTL 或设置 ebgp-max-hop。
    依赖 IGP 路由:iBGP 邻居通过 IGP(如 OSPF)学习和选择路径,因此只要 iBGP 邻居之间的路由可达,iBGP 邻居关系就可以建立,无论中间有多少跳。
    场景中的解释:
    在你的网络拓扑中,R2、R3 和 R4 属于同一个 AS (AS 64512),它们之间运行 iBGP。
    iBGP 邻居关系不需要 ebgp-max-hop,即使它们使用 Loopback 接口建立邻居关系,因为 iBGP 不限制跳数,只要通过 OSPF 学习到对方的 Loopback 地址,它们就可以通过多跳到达对方,建立 BGP 邻居关系。
    iBGP 邻居配置示例(不需要 ebgp-max-hop):
    在 R2 上配置与 R3 的 iBGP:
    bgp 64512 peer 10.0.3.3 as-number 64512
    在 R3 上配置与 R4 的 iBGP:
    bgp 64512 peer 10.0.4.4 as-number 64512
    总结:
    iBGP 邻居不需要 ebgp-max-hop,因为它没有 TTL 限制,允许邻居通过多跳路径建立连接。
    eBGP 邻居默认需要直连,如果要通过多跳建立邻居关系(如使用 Loopback),则必须使用 ebgp-max-hop 来调整 TTL 允许多跳连接。
     
    IS-IS配置实验综合案例一
    Loading...
    目录
    文章列表
    数通技术高级
    数通高级实验
    数通高级命令操作
    数通技术基础
    数通基础实验
    数通基础命令操作