计算机网络-MPLS静态标签实验

前面我们学习了MPLS和标签的基础概念,但是单看概念肯定是不容易理解的,现在通过静态的标签分配深入学习下MPLS的转发原理。

一、网络拓扑

需要先完成相应的基础配置:

  • IP地址正确配置
  • R1、R2、R3、R4部署OSPF区域,确保192.168.1.0/24和172.16.1.0/24已经能够互访。
  • 通过配置MPLS静态标签分配使用MPLS标签进行转发。

二、配置

2.1 基础配置

ssh 复制代码
AR1:
interface GigabitEthernet0/0/0
 ip address 10.0.12.1 255.255.255.0 
#
interface LoopBack0
 ip address 1.1.1.1 255.255.255.255 
#
interface LoopBack1
 ip address 192.168.1.1 255.255.255.255 
# 配置OSPF
ospf 1 
 area 0.0.0.0 
  network 10.0.12.0 0.0.0.255 
  network 192.168.1.1 0.0.0.0

AR2:
interface GigabitEthernet0/0/0
 ip address 10.0.12.2 255.255.255.0 
#
interface GigabitEthernet0/0/1
 ip address 10.0.23.2 255.255.255.0 
#
interface LoopBack0
 ip address 2.2.2.2 255.255.255.255 
#
ospf 1 
 area 0.0.0.0 
  network 10.0.12.0 0.0.0.255 
  network 10.0.23.0 0.0.0.255
  
AR3:
interface GigabitEthernet0/0/1
 ip address 10.0.23.3 255.255.255.0 
#
interface GigabitEthernet0/0/2
 ip address 10.0.34.3 255.255.255.0 
#
interface LoopBack0
 ip address 3.3.3.3 255.255.255.255 
#
ospf 1 
 area 0.0.0.0 
  network 10.0.23.0 0.0.0.255 
  network 10.0.34.0 0.0.0.255
  
AR4:
interface GigabitEthernet0/0/2
 ip address 10.0.34.4 255.255.255.0 
#
interface LoopBack0
 ip address 4.4.4.4 255.255.255.255 
#
interface LoopBack1
 ip address 172.16.1.1 255.255.255.255 
#
ospf 1 
 area 0.0.0.0 
  network 10.0.34.0 0.0.0.255 
  network 172.16.1.1 0.0.0.0
  

完成基础的接口配置和OSPF的路由通告。

2.2 MPLS配置

前面基础概念我们知道FEC和LSP是单向的,如果是手工定义LSP需要双向配置LSP路径和标签,从拓扑图也能够看到。下面先配置从AR1到达AR4的标签路径。

ssh 复制代码
AR1:
# 全局配置MPLS lsr-id,在MPLS域内标识该LSR路由器,类似router id
mpls lsr-id 1.1.1.1
# 全局使能mpls功能
mpls
# 在接口使能mpls
interface GigabitEthernet0/0/0
 ip address 10.0.12.1 255.255.255.0 
 mpls

# 手工配置一天LSP,AR1类型为ingress ,LSP的名字为192->172,可以自定义,然后目的地址为172.16.1.1 32 ,出标签为100
static-lsp ingress 192->172 destination 172.16.1.1 32 nexthop 10.0.12.2 out-labe
l 100

AR2:
# 配置mpls lsr-id
mpls lsr-id 2.2.2.2
# 全局使能mpls功能
mpls
# 接口使能mpls功能
interface GigabitEthernet0/0/0
 ip address 10.0.12.2 255.255.255.0 
 mpls
#
interface GigabitEthernet0/0/1
 ip address 10.0.23.2 255.255.255.0 
 mpls
 
# AR2作为中间转发路由器transit,需要定义标签入接口和入标签、下一跳和出标签,表示从哪个接口进来,下一跳和出标签
static-lsp transit 192->172 incoming-interface GigabitEthernet0/0/0 in-label 100
 nexthop 10.0.23.3 out-label 200

AR3:
# 配置mpls lsr-id
mpls lsr-id 3.3.3.3
# 全局使能mpls功能
mpls
# 接口使能mpls功能
interface GigabitEthernet0/0/1
 ip address 10.0.23.3 255.255.255.0 
 mpls
#
interface GigabitEthernet0/0/2
 ip address 10.0.34.3 255.255.255.0 
 mpls
 
# AR3也是作为中间标签转发路由器配置为transit,和AR2一样定义入接口、入标签,下一跳和出标签
static-lsp transit 192->172 incoming-interface GigabitEthernet0/0/1 in-label 200
 nexthop 10.0.34.4 out-label 300

AR4:
# 配置mpls lsr-id
mpls lsr-id 4.4.4.4
# 全局使能mpls功能
mpls
# 接口使能mpls功能
interface GigabitEthernet0/0/2
 ip address 10.0.34.4 255.255.255.0 
 mpls

# AR4作为出节点egress,只需要定义入接口和入标签即可
static-lsp egress 192->172 incoming-interface GigabitEthernet0/0/2 in-label 300

现在从AR1->AR4的单向LSP已经建立了,可以通过display mpls lsp查看LSP信息。这里能够看到入标签和出标签以及接口信息等。

那怎样可以看到标签信息呢?通过tracert -v 172.16.1.1命令可以查看MPLS标签。

在AR1上查看到达172.16.1.1的标签信息。

也可以通过tracert lsp ip 172.16.1.1 32查看LSP定义的标签信息。

也可以通过抓包查看MPLS 标签,因为MPLS的一个倒数第二跳弹出因此需要在AR3之前进行抓包。

然后通过查看FIB转发表可以看到tunnel ID不为0x0的信息。

最后我们再来配置反向LSP来实现标签转发,注意LSR的角色是相反的。

ssh 复制代码
AR1:
static-lsp ingress 192->172 destination 172.16.1.1 32 nexthop 10.0.12.2 out-labe
l 100
static-lsp egress 172->192 incoming-interface GigabitEthernet0/0/0 in-label 600

AR2:
static-lsp transit 192->172 incoming-interface GigabitEthernet0/0/0 in-label 100
 nexthop 10.0.23.3 out-label 200
static-lsp transit 172->192 incoming-interface GigabitEthernet0/0/1 in-label 500
 nexthop 10.0.12.1 out-label 600
 
AR3:
static-lsp transit 192->172 incoming-interface GigabitEthernet0/0/1 in-label 200
 nexthop 10.0.34.4 out-label 300
static-lsp transit 172->192 incoming-interface GigabitEthernet0/0/2 in-label 400
 nexthop 10.0.23.2 out-label 500

AR4:
static-lsp egress 192->172 incoming-interface GigabitEthernet0/0/2 in-label 300
static-lsp ingress 172->192 destination 192.168.1.1 32 nexthop 10.0.34.3 out-lab
el 400

tunnel id不为0表示隧道转发,其它的都是正常的IP路由转发,然后在转包上也能看到对应的标签。整个过程就差不多是这样了,不过这里有几个点需要注意:

  • mpls lsr-id命令用来配置LSR的ID。LSR ID用来在网络中唯一标识一个LSR。LSR没有缺省的LSR ID,必须手工配置。
  • in-label 占用的是当前LSR的标签空间,采用静态LSP时,标签空间为16~1023。
    -** out-label** 占用的是下游LSR的标签空间,而下游空间采用的标签分发方式不确定,所以out-label的标签空间为16~1048575。
  • LSP如果想要实现正常通信需要双向进行配置
  • 缺省情况下MPLS有一个倒数第二跳弹出也就是在AR3的G2口或者AR2的G0口就会进行弹出,可能无法观察到现象

三、MPLS配置命令

基础配置命令:

ssh 复制代码
# 配置LSR ID
[Huawei] mpls lsr-id lsr-id

# 使能MPLS
[Huawei] mpls

# 在接口视图下,使能当前接口的MPLS功能。需先使能全局MPLS能力后才能执行接口下的MPLS使能命令。
[Huawei-GigabitEthernet0/0/0] mpls

# Ingress LSR配置
[Huawei] static-lsp ingress lsp-name destination ip-address { mask-length | mask } { nexthop next-hop-address | outgoing-interface interface-type interface-number } * out-label out-label

static-lsp ingress命令用来为入口节点配置静态LSP。
推荐采用指定next-hop的方式配置静态LSP,确保本地路由表中存在与指定目的IP地址精确匹配的路由项,包括目的IP地址和下一跳IP地址。

# Transit LSR配置,static-lsp transit命令用来为中间转发节点配置静态LSP。
[Huawei] static-lsp transit lsp-name [ incoming-interface interface-type interface-number ] in-label in-label { nexthop next-hop-address | outgoing-interface interface-type interface-number }* out-label out-label

# Egress LSR配置
[Huawei] static-lsp egress lsp-name [ incoming-interface interface-type interface-number ] in-label in-label 
static-lsp egress命令用来在出口节点配置静态LSP。

# 查看静态LSP配置
[Huawei] display mpls static-lsp [ lsp-name ] [ { include | exclude } ip-address mask-length ] [ verbose ]

# 追踪MPLS标签路径
tracert -v 192.168.1.1

# 查看转发表项
dis fib

总结:通过静态配置LSP的方式观察标签的转发现象,但是总体来说手工配置LSP是比较繁琐的。

相关推荐
伤心男孩拯救世界(Code King)2 分钟前
Linux网络:多路转接 epoll
linux·运维·网络
lisanmengmeng11 分钟前
正向代理与反向代理
运维·服务器·网络
羊锦磊5 小时前
[ java 网络 ] TPC与UDP协议
java·网络·网络协议
明月看潮生9 小时前
编程与数学 03-002 计算机网络 18_物联网与网络
物联网·计算机网络·青少年编程·编程与数学
cpsvps9 小时前
文件系统完整性校验工具在美服安全审计中的关键作用与实施步骤
服务器·网络·架构
♤SF♤9 小时前
SSL 剥离漏洞
网络·安全·https
猫头虎9 小时前
新手小白如何快速检测IP 的好坏?
网络·人工智能·网络协议·tcp/ip·开源·github·php
hhj123k10 小时前
渗透作业3
网络·学习
心一信息10 小时前
HCIE学习之路:一个NAT实验
学习·计算机网络·智能路由器
SKYDROID云卓小助手10 小时前
无人设备遥控器之多设备协同技术篇
网络·人工智能·嵌入式硬件·算法·信号处理