设为首页收藏本站language→→ 语言切换

鸿鹄论坛

 找回密码
 论坛注册

QQ登录

先注册再绑定QQ

查看: 640|回复: 1
收起左侧

MPLS 高级应用 sham-link

[复制链接]
发表于 2021-2-24 10:07:31 | 显示全部楼层 |阅读模式
本帖最后由 闫辉 于 2021-2-24 10:07 编辑

实验目的: 理解sham-link使用场景

sham-link命令用来配置伪连接,并配置伪连接的参数

使用场景:本命令仅在VPN场景下使用。

使用sham-link命令创建伪连接,使VPN流量优先经过VPN骨干区域的路由,避免在同一个OSPF区域内属于同一个VPN之间的通信总是通过OSPF区域内路由转发。

配置影响

在VPN PE间配置伪连接后,伪连接将被视为OSPF区域内路由。用于使经过MPLS VPN骨干网的路由成为OSPF区域内路由,避免VPN流量经这条路由转发。伪连接的源地址和目的地址使用32位掩码的Loopback接口地址,该Loopback接口需要绑定到VPN实例中,并通过BGP发布。

注意事项

配置伪连接时,伪连接端点地址的路由不能通过私网的OSPF进程发布到对端PE上。如果伪连接端点地址的路由通过私网的OSPF进程发布到对端PE上,则对端PE将同时存在两条到该伪连接端点地址的路由。其中一条是通过私网OSPF学习到的,另一条是通过MP-BGP学习到的。OSPF路由比BGP路由优先级高,对端PE错误地选择了OSPF路由,所以伪连接无法建立成功。

实验环境:


1.png

如图:基础环境配置:

R1-2-3-4-5, R1和R5 是CE, R2和R4 是PE,R2-R3-R4 之间运行MPLS+LDP,

PE和CE之间运行EBGP,R2 和R4 之间运行IBGP,AS号100, MPLS域内运行OSPF 1, 这个OSPF 1 是用作底层路由的, 其中R1 和R5 之间连接一根后门链路, 也宣告进OSPF 110 area  0

需求:

正常的数据转发, 走MPLS 链路, 当MPLS链路不可用, 再走后门链路。

分析原因:

由于R2 把OSPF100的路由引入到BGP100 ,传递到R4 ,再从R4 的BGP进程中引入到OSPF100, 同理, 反过来的路由也是一样,而MPLS在OSPF中是看做超级骨干区域的,当R1-2之家的OSPF进程号和R4-5 之间的进程号一样, 就看作是传递额3类LSA,两边进程号不一样, 就看作是5类LSA,这样导致两边的路由类型是区域间路由, 而R1-5之间是宣告进同一个区域的, 是1/2类路由,是区域内路由,由于区域内路由优于区域间路由, 导致所有的流量全部走后门链路, 不走MPLS区域,

配置环境

首先R2-3-4之间的OSPF 邻居没有问题,

PE2-4 之间建立IBGP邻居关系, R3 不需要启用BGP

配置:基础配置过程省略

----------------------------------------------------------------------------

配置vpn instance

首先配置vpn instance 并且关联到与CE相连的PE 接口上:

在R2 上:

ip vpn-instance 1

ipv4-family

route-distinguisher 100:100

vpn-target 200:400 export-extcommunity

vpn-target 400:200 import-extcommunity

interface GigabitEthernet0/0/0

ip binding vpn-instance 1

ip address 12.1.1.2 255.255.255.0  

#

在R4 上:

#

ip vpn-instance 1

ipv4-family

route-distinguisher 100:100

vpn-target 400:200 export-extcommunity

vpn-target 200:400 import-extcommunity

interface GigabitEthernet0/0/1

ip binding vpn-instance 1

ip address 45.1.1.4 255.255.255.0

--------------------------------------------------------------------------

CE-PE 之间运行OSPF

接下来在R1 和R2 之间运行OSPF

[R1-ospf-100]display this  

[V200R003C00]

#

ospf 100 router-id 1.1.1.1  

area 0.0.0.0  

network 12.1.1.1 0.0.0.0

[R2-ospf-100]display this  

[V200R003C00]

#

ospf 100 vpn-instance 1

area 0.0.0.0  

network 12.1.1.2 0.0.0.0  

#

R4 :

ospf 100 router-id 4.4.4.4 vpn-instance 1

area 0.0.0.0  

network 45.1.1.4 0.0.0.0

R5:

[R5-ospf-100]display  this  

[V200R003C00]

#

ospf 100 router-id 5.5.5.5  

area 0.0.0.0  

network 45.1.1.5 0.0.0.0  

#

----------------------------------------------------------------------------------

BGP部分:PE 上BGP中导入OSPF路由

R2

[R2]bgp 100

ipv4-family vpn-instance 1  

import-route ospf 100

R4

[R4]bgp 100

ipv4-family vpn-instance 1  

import-route ospf 100

----------------------------------------------------------------------------------

OSPF 部分,PE上OSPF中导入BGP路由

在R2和R4 的OSPF 100 中分别引入BGP

[R2]ospf 100

[R2-ospf-100]import-route bgp

[R4]ospf 100

[R4-ospf-100]import-route bgp

首先关闭后门链路, 查看R1 路由表,

可以看到R1 已经收到了所有路由, 同理,R5 也收到了对应的路由

2.png

3.png

测试没有问题, 连通性问题解决了

----------------------------------------------------------------------

查看R1 收到的OSPF路由更新中携带的属性

接下来在R1 上抓包, 在R5 上把5.5.5.5/32 先撤销, 再重新宣告一下,

R5 上操作:

[R5-ospf-100-area-0.0.0.0]undo network 5.5.5.5 0.0.0.0

[R5-ospf-100-area-0.0.0.0]network 5.5.5.5 0.0.0.0

4.png

从这张图中可以看到, OSPF 撤销路由使用的是LS age=3600 的更新,这条需要撤销的路由是3类LSA, 前缀是5.5.5.5/32, ADV router 是12.1.1.2, DN 位已经置位,这个位是用来防环的。

5.png

可以看到撤销后, LSA的更新报文中LS age字段是1,这是一条路由通告

-------------------------------------------------------------------------------

查看BGP 报文更新中携带的路由属性

由于OSPF 进程ID不同可以建立邻居,还有很多场景, 开销值如何携带,OSPF 有很多的区域规则, 防环机制,

我们再在R2 0/0/1 口抓包

6.png

------------------------------------------------------------------------------------

分析路由流向

接下来我们分析一下。

在这个环境中, 中间运行的是MPLS, 右边LSA1/2传递给左边的LSA, 左边收到后是几类LSA,

7.png

思科认为是3类LSA,华为认为是5类的,

因为在PE上, 需要把OSPF 路由重分发进BGP, 把BGP中的路由重分发进OSPF,重分发后相当于是外部路由,就是一个5类LSA,华为认为是3类LSA,只有ABR 会产生3类LSA,这里PE可以看成是ABR,中间这个MPLS 可以看成是一个超级骨干区域,虽然左边也是area 0 , 但是等级要比area 0 等级高一点,

比如在这个环境中, 左边进程1 , 右边进程2, 进程不影响邻居建立,但是影响路由的类型, 影响区域的概念,

8.png

今天我们这里讨论的是两边区域ID 相同的情景。

       如图, 两个CE, 如果启用后门链路, 左右区域号一致, 后门链路传递1/2类LSA,流量不走MPLS 区域,如果区域号不一致, 传递3类LSA,由于MPLS 传递的也是3类LSA, 这个时候就需要比较cost,

对于左右区域相同的,情况, 流量不会走MPLS, 会全部走后门链路, 对于这种情况, 需要在PE1-2之间启用sham-link,sham-link 可以在两个PE之间建立一条逻辑隧道, 这条隧道, 可以把3类LSA 以1/2类LSA 传递过去。

接下来我们把后门链路启用,宣告进OSPF 100 area  0. 验证一下

-----------------------------------------------------------------

配置sham-link

9.png

在新添加的这条线两端配置15.1.1.0/24地址,并测试连通性

分别在R1和R5上将这个链路宣告进OSPF  100 area 0 查看邻居, 没有问题。

10.png

现在邻居起来了, 我们看一下路由

11.png

通过查看路由表, 发现R1 上去往R5 下一跳直接是G0/0/1, 去往R5

因为这条R1 上的5.5.5.5 是1类LSA,

我们查看OSPF LSDB, 发现这个5.5.5.5/32 是1类LSA,

12.png

这个时候, 我们把R1 g0/0/1接口关闭, 发现R1 上关于R5 5.5.5.5/32

13.png

可以看到通过走MPLS, 这个5.5.5.5 的LSA 是3类的,可以看到, 当R1-5之间的邻居起来后, 直接把从MPLS 过来的3类LSA 覆盖了, 没有了。

----------------------------------------------------------------------

配置sham-link

接下来我们配置sham-link,位置在PE上, R2 和R5 , 要单独创建一个loopback, 而且必须是32位掩码, 关联vpn 实例, 并且这个环回口要在BGP的vpn 实例中通告出去

R2 :

interface LoopBack1

ip binding vpn-instance 1-----建立sham-link的环回口要和vpn instance 关联

ip address 22.22.22.22 255.255.255.255

bgp 100

#

ipv4-family vpn-instance 1  --------要在vpn instance中操作

network 22.22.22.22 255.255.255.255 在BGP中通告建立sham-link的环回口

import-route ospf 100--------------重分发OSPF 100

ospf 100 vpn-instance 1-----建立关联vpn instance 的ospf

import-route bgp----------重分发BGP

area 0.0.0.0  ---都宣告进area 0,如果两边宣告的区域ID不一样, 会导致问题

network 12.1.1.2 0.0.0.0  

sham-link 22.22.22.22 44.44.44.44  启用shamlink

R4:

interface LoopBack1

ip binding vpn-instance 1

ip address 44.44.44.44 255.255.255.255

bgp 100

ipv4-family vpn-instance 1  

network 44.44.44.44 255.255.255.255

ospf 100 router-id 4.4.4.4 vpn-instance 1

import-route bgp

area 0.0.0.0  

network 45.1.1.4 0.0.0.0  

sham-link 44.44.44.44 22.22.22.22

14.png

查看R1 路由表, 发现R1 去往R5 5.5.5.5 还是走下边, 因为出接口是g0/0/1,

15.png

我们现在分析一下, R1 现在可以收到MPLS 和下边的OSPF 的LSA 都是1/2类的,而上下的带宽都是一样的, 开销都一样, 但是上边比下边跨越的路由器多一些, 所以选择了,下边, 现在我们在R1/5的G0/0/1口增加ospf  cost,

[R1-GigabitEthernet0/0/1]ospf cost 10

[R5-GigabitEthernet0/0/1]ospf cost 10 16.png

17.png

可以看到R1 可以收到关于这个网络5.5.5.5 的1/3类LSA,通过查看这个3类LSA, 发现option中的字段DN位是置位的。

18.png

如果把sham-link去掉, 可以看到, 还是走下边路径的

[R2-ospf-100-area-0.0.0.0]undo sham-link 22.22.22.22 44.44.44.44

19.png

20.png

验证了sham-link  的作用, 是在R2 和R4 之间建立了一条逻辑隧道, 实现了把R5 上的一类LSA 5.5.5.5从R4 传递到R2 上, 是以1/2类LSA传递的。


获取最新免费学习视频、华为思科全套题库、项目实战视频、听课笔记等资料,请添加:Tigerlab666666 113244h87ybyllbilzhb16.jpg


您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2024-4-25 02:11 , Processed in 0.071168 second(s), 9 queries , Redis On.  

  Powered by Discuz!

  © 2001-2024 HH010.COM

快速回复 返回顶部 返回列表