文章目录

  • ospf-为pin-instance联动MPLS解决CE间的流量互访
  • 实验拓扑
  • 配置思路
  • 检查邻居建立
  • 路由分析
  • 控制平面
  • 路由
  • label
  • 数据层面
  • 总结


ospf-为pin-instance联动MPLS解决CE间的流量互访

PE连接CE处,可以通过静态,动态的方式将CE与PE的路由打通,然后PE将学到的路由,本实验采用动态路由协议OSPF来进行打通

实验拓扑

排查ospf使用md5认证问题 ospf mpls_bgp


说明:

1、中间的灰色部分是MPLS-domain,其中采用LDP的方式动态分配标签

2、左右两侧的CE均采用OSPF的方式将自己的路由发给PE

3、注意PE与CE对接处采用的是为pin-instance,所以OSPF也需要采用vpn-instance的方式进行宣告

配置思路

MPLS的使能与vpnv4邻居与参考阅读中的实验相同,此处不做过多赘述

1、PE处采用为pin-instance的方式宣告OSPF,CE还是正常的OSPF宣告方式
2、PE测进行双点双向重发布

[R2]dis cu con ospf
[V200R003C00]
#
ospf 1 router-id 10.1.2.2 
 area 0.0.0.0 
  network 10.1.2.2 0.0.0.0 
  network 10.1.23.2 0.0.0.0 
#
ospf 100 router-id 22.22.22.22 vpn-instance a
 import-route bgp
 area 0.0.0.0 
  network 172.16.12.2 0.0.0.0 
#
return
[R2-bgp]di th
[V200R003C00]
#
bgp 234
 undo default ipv4-unicast
 peer 10.1.4.4 as-number 234 
 peer 10.1.4.4 connect-interface LoopBack0
 #
 ipv4-family unicast
  undo synchronization
  undo peer 10.1.4.4 enable
 # 
 ipv4-family vpnv4
  policy vpn-target
  peer 10.1.4.4 enable
 #
 ipv4-family vpn-instance a 
  import-route ospf 100
#
return


[R4]dis cu con ospf
[V200R003C00]
#
ospf 1 router-id 10.1.4.4 
 area 0.0.0.0 
  network 10.1.4.4 0.0.0.0 
  network 10.1.34.4 0.0.0.0 
#
ospf 100 router-id 44.44.44.44 vpn-instance b
 import-route bgp
 area 0.0.0.0 
  network 172.16.45.4 0.0.0.0 
#
return
[R4-bgp]di th
[V200R003C00]
#
bgp 234
 peer 10.1.2.2 as-number 234 
 peer 10.1.2.2 connect-interface LoopBack0
 #
 ipv4-family unicast
  undo synchronization
  undo peer 10.1.2.2 enable
 # 
 ipv4-family vpnv4
  policy vpn-target
  peer 10.1.2.2 enable
 #
 ipv4-family vpn-instance b 
  import-route ospf 100
#
return

检查邻居建立

分别检查两个PE与对端CE的OSPF邻居

排查ospf使用md5认证问题 ospf mpls_bgp_02


排查ospf使用md5认证问题 ospf mpls_网络_03

路由分析

控制平面

分析172.16.5.5/24的路由的学习、标签的分发

路由

如下首先分析路由的学习与发布

1、R5将这条路由通过OSPF宣告出去,R4就会从OSPF-为pin-instance学习到

排查ospf使用md5认证问题 ospf mpls_排查ospf使用md5认证问题_04


2、R4通过import的方式将OSPF的路由引入到BGP中,且多了一些扩展的属性(这个后面再说)

排查ospf使用md5认证问题 ospf mpls_网络_05


3、此为pin的路由就来到了R4的为pin邻居R2上,注意一下,R2收到了原本的扩展的属性;R2将这条路由发布到OSPF中,R1就会学习到

排查ospf使用md5认证问题 ospf mpls_排查ospf使用md5认证问题_06


4、R1查看这条路由,可以发现是一个OIA,即三类LSA,正常来说,外部引入进来的应该是5类的才对

排查ospf使用md5认证问题 ospf mpls_ospf_07

分析三类LSA的原因

排查ospf使用md5认证问题 ospf mpls_bgp_08


R2收到R4的bgp extended community进行如下操作:

排查ospf使用md5认证问题 ospf mpls_bgp_09


这样就将中间的MPLS-domain看作为一个OSPF的骨干域;尝试再R2上更改domain-id后检查OSPF的lsdb

排查ospf使用md5认证问题 ospf mpls_网络_10

R1上检查

排查ospf使用md5认证问题 ospf mpls_ospf_11


为什么172.16.45.0/24网段是O_ASE ?
因为这个再R4上本身就是自己产生的路由(并没有OSPF那样的扩展属性),所以从bgp发布出来就是5类的LSA

label

下面分析标签的分发

1、私网路由,私网标签

R4上将OSPF引入到BGP中,BGP将RD+ipv4组成一个为pin的96bit且携带RT传给自己的vpnv4邻居R2,压入一个1028这个私网label

排查ospf使用md5认证问题 ospf mpls_网络_12


R2就会收到这个私网label为1028的标签包

排查ospf使用md5认证问题 ospf mpls_bgp_13


2、公网路由,公网标签

R4给作为egress给自己的in打上3的label,即告诉R3要进行PHP

排查ospf使用md5认证问题 ospf mpls_bgp_14

3、R3打上1025传递给R2

排查ospf使用md5认证问题 ospf mpls_网络_15


R2就收到了1025的label

排查ospf使用md5认证问题 ospf mpls_网络_16


至此,R2收到这个公网路由10.1.4.4/32 下一跳是10.1.23.3 label为1025 是由R3的mpls ldp分配

至此就可以判断出对于172.16.5.5/24这个路由再进行标签转发是,私网的label为1028、公网的label为1025

数据层面

1、R1查看FIB,转发到R2

2、R2查询FIB的verbose,需要push一个1028的私网label,再查询tunnel-info,进入到mpls-domain还需要再push一个公网的label1025

排查ospf使用md5认证问题 ospf mpls_bgp_17


此时的数据就变成了

sip 172.16.1.1 dip 172.16.5.5 | 私网label 1028 |公网label 1025 | ppp

R3的入接口抓包也可以看到两层label

排查ospf使用md5认证问题 ospf mpls_排查ospf使用md5认证问题_18


3、R3收到一个表现包直接查看LFIB,弹出外层的公网标签给到R4

排查ospf使用md5认证问题 ospf mpls_bgp_19


R3的出接口抓包,可以看出公网的label被弹出,就可以看到内层的label

排查ospf使用md5认证问题 ospf mpls_OSPF_20

4、R4查看LFIB,将私网的label做POP操作,然后继续查询FIB,将数据给到R5

排查ospf使用md5认证问题 ospf mpls_网络_21

排查ospf使用md5认证问题 ospf mpls_bgp_22

R4的出口抓包,可见这是一个普通的IP包

总结

此实验重点在于MPLS与OSPF联动时的扩展属性对于OSPF的LSDB的影响,双层标签的分析参考阅读里的实验有更详细的版本