侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 130562 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

假装网络工程师21——利用MPLS解决BGP路由黑洞

2023-04-06 星期四 / 0 评论 / 0 点赞 / 72 阅读 / 5916 字

一、背景说明在bgp网络中为了防止路由环路,采取了ibgp水平分割法则,这要求一个as内部的bgp speaker需要两两建立对等体或使用路由反射器(后续介绍),否则就会出现路由黑洞。本文介通过mpl

.

一、背景说明

在bgp网络中为了防止路由环路,采取了ibgp水平分割法则,这要求一个as内部的bgp speaker需要两两建立对等体或使用路由反射器(后续介绍),否则就会出现路由黑洞。本文介通过mpls标签转发路径的方式进行传递BGP路由。

二、实验拓扑

本次实验拓扑如下图所示:

  • ip地址如图所示,路由器底层运行ospf协议
  • 路由器的lo0接口地址为x.x.x.x/32(x为路由器编号),该地址也是route-id、lsr-id,作为ospf邻居,bgp对等体,ldp邻居之间的通信地址
  • R1和R4上的lo1接口模拟客户端路由,不宣告进as1234,R1与R4之间通过lo0接口建立ibgp连接,R2、R3上不运行bgp,11.11.11.11/24与44.44.44.44/24在R1和R4的bgp中起源
  • 各接口ip地址配置步骤省略

    三、实验步骤

    1.建立ospf与bgp邻居关系

  • R1上的配置
#建立ospf邻居[R1]ospf 1 router-id 1.1.1.1[R1-ospf-1]area 0[R1-ospf-1-area-0.0.0.0]network 12.0.0.1 0.0.0.0[R1-ospf-1-area-0.0.0.0]network 1.1.1.1 0.0.0.0#建立bgp对等体[R1]bgp 1234[R1-bgp]router-id 1.1.1.1[R1-bgp]peer 4.4.4.4 as 1234[R1-bgp]peer 4.4.4.4 connect-interface lo0
  • R2上的配置
    #建立ospf邻居[R2]ospf 1 router-id 2.2.2.2[R2-ospf-1]area 0[R2-ospf-1-area-0.0.0.0]network 12.0.0.2 0.0.0.0[R2-ospf-1-area-0.0.0.0]network 23.0.0.2 0.0.0.0[R2-ospf-1-area-0.0.0.0]network 2.2.2.2 0.0.0.0
  • R3上的配置
    #建立ospf邻居[R3]ospf 1 router-id 3.3.3.3[R3-ospf-1]area 0[R3-ospf-1-area-0.0.0.0]network 23.0.0.3 0.0.0.0[R3-ospf-1-area-0.0.0.0]network 34.0.0.3 0.0.0.0[R3-ospf-1-area-0.0.0.0]network 3.3.3.3 0.0.0.0
  • R4上的配置
#建立ospf邻居[R4]ospf 1 router-id 4.4.4.4[R4-ospf-1]area 0[R4-ospf-1-area-0.0.0.0]network 34.0.0.4 0.0.0.0[R4-ospf-1-area-0.0.0.0]network 4.4.4.4 0.0.0.0#建立bgp对等体[R4]bgp 1234[R4-bgp]router-id 4.4.4.4[R4-bgp]peer 1.1.1.1 as 1234[R4-bgp]peer 1.1.1.1 connect-interface lo0

2.bgp路由黑洞的产生

  • 在R1和R4上起源lo1接口地址
[R1]bgp 1234[R1-bgp]network 11.11.11.0 24[R4]bgp 1234[R4-bgp]network 44.44.44.0 24
  • 确认R4已收到R1发来的lo1接口路由,并将该路由已加载到路由表中
  • 此时bgp路由已相互学习到,但无法通信

    [R1]ping -a 11.11.11.11 44.44.44.44PING 44.44.44.44: 56  data bytes, press CTRL_C to breakRequest time outRequest time outRequest time outRequest time outRequest time out--- 44.44.44.44 ping statistics ---5 packet(s) transmitted0 packet(s) received100.00% packet loss

    3.路由黑洞根因定位

  • 路由传输层面
    首先,从路由传输层面进行分析。R1通过ibgp将11.11.11.11/24路由传给R4

    尽管R2、R3没有运行bgp,但R1与R4底层用于建立bgp对等体的lo0接口之间路由层能够正常通信,所以bgp路由表会通过update报文将11.11.11.11/24路由传递给对方
  • 数据传输层面

    看完了路由层面,现在来看数据传输层面,R4要将数据包发到对等体R1,但R4不能直接把数据包扔给R1,必须是一跳一跳的到达R1,这一点在R4的路由表中可以看到,尽管下一跳是1.1.1.1,但是需要经过递归下一跳(RelayNextHop: 34.0.0.3 )R3

    此时R3上并没有目的地址是11.11.11.11/24的路由,所以直接丢弃,造成通信失败

    4.使用mlps解决bgp路由黑洞

  • R1上启用mpls,构建ldp邻居(其余路由器做同样动作此处省略)

    至此,mpls配置完成,但此时发现,仍然无法通信,检查R4去往11.11.11.11/24信息发现“TunnelID: 0x0”,说明并没有进入lsp路径转发,仍然是ip报文转发,原因是华为设备默认不去隧内做递归
  • 开启隧道内递归,发现它走0x1隧道

    查看0x1隧道,可以到看数据包被压上R3给他分的值为1024的label,而此时的目的ip地址也由ip报文转发时的11.11.11.11/24变成了1.1.1.1

    因为R1~R4都运行了ldp所以每个路由器都为1.1.1.1/32这个fec分配了label,通过tracert可以查看变迁转发路径

    所以此时数据传输如下图所示,其中R2、R3给1.1.1.1/32分配的label都为1024
.

广告 广告

评论区