MPLS 原理的基本实现

 
首先,我们需要 5 台路由器( 4 台也可以),因为 MPLS 是主要运用于大型的网络之中的一种快速转发协议,例 ISP 的网络基本采用 MPLS 来提高数据包的转发速度。
分别编号 R1-R5 ,接口地址见 topology ,全网起 OSPF 协议, AREA 0 ,目的是达到全网互通,以便于 LABEL 信息的传递。
 
MPLS 在网络中的实现很简单(因为是简单的配置嘛):
1、  把属于 MPLS 网络的接口划入 MPLS 网络
2、  启用 MPLS
 
 
下面简单说一下具体配置,首先,进入 R1 s1/3 端口,做如下命令:
R1(config)#int s1/2
R1(config-if)#mpls ip      把接口划入 MPLS 网络
R1(config-if)#exi
 
 
至于 R2-R4 S1/2 S1/3 ,以及 R5 s1/3 在这里不一一赘述,原理和上面的一样。
 
这时,我们会看到如下提示:
*Mar  1 00:13:37.163: %LDP-5-NBRCHG: LDP Neighbor 23.0.0.1:0 (1) is UP
说明 MPLS 邻居建立成功,可以相互发送 LABEL 信息。
 
我们查看一下目前路由器的 LABEL 转发表,也就是和每条路由一一对应的标签编号。
R1#sh mpls forwarding-table
Local  Outgoing    Prefix            Bytes tag  Outgoing   Next Hop   
tag    tag or VC   or Tunnel Id      switched   interface             
16     16          34.0.0.0/24       0          Se1/2      point2point 
17     Pop tag     23.0.0.0/24       0          Se1/2      point2point 
18     18          192.168.1.1/32    0          Se1/2      point2point 
19     19          45.0.0.0/24       0          Se1/2      point2point 
R1#
我们可以看到, LOCAL 列,表示这条路由条目在本路由器的 label 编号,也是它通告给邻居 LSR 的编号。
OUTGOING 列,表示送往邻居 LSR 时应该打上的标签编号,也就是说,在把包交给邻居 LSR 之前,已经打上的 TAG 其实是对方 LSR 转发表里关于这条路由的 TAG 编号。 Pop tag 表示拆除 TAG ,因为目的网络是下一条的直连网络,所以不用 TAG 继续进行转发。
我们注意到, bytes tag switched 这一列全部为 0 ,这是因为我们还没有进行任何的数据包交换。
下面做如下操作: R1#p 192.168.1.1 sou
R1#ping 192.168.1.1 source 10.1.1.1
 
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.1.1, timeout is 2 seconds:
Packet sent with a source address of 10.1.1.1
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 104/198/304 ms
R1#sh mpls forwarding-table       
Local  Outgoing    Prefix            Bytes tag  Outgoing   Next Hop   
tag    tag or VC   or Tunnel Id      switched   interface             
16     16          34.0.0.0/24       0          Se1/2      point2point 
17     Pop tag     23.0.0.0/24       0          Se1/2      point2point 
18     18          192.168.1.1/32    0          Se1/2      point2point 
19     19          45.0.0.0/24       0          Se1/2      point2point
 
我们发现, PING 过以后 R1 上依然没有交换标签的 BYTE 流量,这是因为 MPLS 是不会对自己的直连网络打上 TAG 标签的,粗浅的理解就是直连网络直接转发就可以了,打上 TAG 不是更麻烦了吗?嘿嘿。
好,我们看 R2-R4 的转发表:
R2#sh mpls forwarding-table
Local  Outgoing    Prefix            Bytes tag  Outgoing   Next Hop   
tag    tag or VC   or Tunnel Id      switched   interface             
16     Pop tag     34.0.0.0/24       0          Se1/2      point2point 
17     Untagged    10.1.1.1/32       520        Se1/3      point2point 
18     18          192.168.1.1/32    540        Se1/2      point2point 
19     19          45.0.0.0/24       0          Se1/2      point2point 
 
注意中间两行的标签字节交换数量已经出现变化,说明在 R2 上进行了标签交换。
此现象在 R3,R4 上基本相同,说明在 R3,R4 上同样进行着标签的交换。
再看 R4 R5 的情况:
R4#sh mpls forwarding-table
Local  Outgoing    Prefix            Bytes tag  Outgoing   Next Hop   
tag    tag or VC   or Tunnel Id      switched   interface             
16     Pop tag     23.0.0.0/24       0          Se1/3      point2point 
17     16          10.1.1.1/32       540        Se1/3      point2point 
18     17          12.0.0.0/24       0          Se1/3      point2point 
19     Untagged    192.168.1.1/32    520        Se1/2      point2point 
R5#sh mpls forwarding-table
Local  Outgoing    Prefix            Bytes tag  Outgoing   Next Hop   
tag    tag or VC   or Tunnel Id      switched   interface             
16     Pop tag     34.0.0.0/24       0          Se1/3      point2point 
17     16          23.0.0.0/24       0          Se1/3      point2point 
18     17          10.1.1.1/32       0          Se1/3      point2point 
19     18          12.0.0.0/24       0          Se1/3      point2point 
 
没有 TAG 交换!因为目标网络是自己的直连,所以在 R4 路由器把包交给 R5 之前,已经拆除 TAG (看看 R4 的信息就可发现,在 R4 中去往 192.168 网段的 outgoing untagged ,就是去往这个网络不应该带有标签的意思),在 R4 交给 R5 以后, IP 包直接进行路由转发,而不是继续经由 MPLS 进行 TAG 交换。
以上只是简单的说了说 MPLS 的标签交换过程,下面我总结一下流程:
首先, PING 包源: 10.1.1.1 目的: 192.168.1.1
进入 RI 以后,查找 forwarding-table ,发现去往 R2 ,出接口时,打上 R2 可以正确判断的 18 号标签 ---------- 包进入 R2 后,查找 forwarding-table ,发现包应该交给 R3 ,也应该打上 R3 识别的 19 号标签(即 outgoing 对应的出标签) ----------- 接着,给了 R3 R3 照旧给了 R4 ,此时 R4 查询 forwarding-table ,发现 outgoing 对应的是 Untagged ,即转发到 192.168.1.0 这个网络的数据包此时不应该继续打上 TAG ,而是以正常的 IP 数据包格式进行路由转发。 Then ,数据包到达 R5 ,路由成功。
 
附上路由器配置。
 
 
本人不才,如有错误还需大家多多指正。
 

你可能感兴趣的:(职场,路由,休闲,MPLS)