此編文章我就不說明MPLS基本知識,以LAB方式來說明交換過程及封裝過程。
現在以lab來感受一下mpls在交換的時候,與之前我們熟悉的ip交換有何不同之處
LAB環境說明:
IGP:OSPF均己建立
MPLS:己建立完成
每個mpls路由器都有針對lable range做分配,以利lab驗證,例r1:100~199
mpls
label range 100 199
我們針對r6的loopback0來驗證交換過程ip address為66.1.1.1/32
我們先看一下r5的路由表
R5#show ip
route | s 66.1.1.1
O 66.1.1.1 [110/6] via 15.1.1.1,
00:02:30, FastEthernet0/0
其實我們可以看到,在r5上本來就有路由,到達66.1.1.1/32,是透過我們的igp ospf學習到的路由,那能通嗎?當然可以。
R5#ping
66.1.1.1
Type escape
sequence to abort.
Sending 5,
100-byte ICMP Echos to 66.1.1.1, timeout is 2 seconds:
!!!!!
Success rate
is 100 percent (5/5), round-trip min/avg/max = 48/80/120 ms
那我們怎麼知道是利用mpls lable交換還是用ip交換呢?我們來traceroute一下就可以看到變化。
R5#traceroute
66.1.1.1
Type escape
sequence to abort.
Tracing the
route to 66.1.1.1
VRF info:
(vrf in name/id, vrf out name/id)
1 15.1.1.1 [MPLS:
Label 107 Exp 0] 84 msec 60 msec 52 msec
2 12.1.1.2 [MPLS: Label 207 Exp 0] 88 msec 52
msec 68 msec
3 23.1.1.3 [MPLS: Label 307 Exp 0] 64 msec 68
msec 52 msec
4 34.1.1.4 [MPLS: Label 407 Exp 0] 60 msec 60
msec 64 msec
5 46.1.1.6 56 msec 64 msec 56 msec
可以看到結果了吧!雖然中間路由器都是有路由,但交換卻是使用mpls來交換。
但是明明有路由,為何一定要用mpls來交換呢?其實在這個環境,表現不出mpls強大的能力,但是在早期路由器還沒有硬件轉發的時候,每一個封包都需要經過cup來計算並轉發,對於mpls來說就是一個很大的優勢,因為無需要到cup計算,在硬件的LFIB表就可以由data plan直接轉發,提高轉發效率。但目前cisco的路由器都有ip
cef配合TACM表來做硬件轉發,所以差別己經不大。
中間的轉發過程我就不說了,我們來說一下POP的機制。
為何需要有POP的機制呢?還是為了效率的問題,試想一下,如果剛剛r5 ping r6的66.1.1.1/32的封包到了r6後,還是帶上一個mpls的lable,那r6是不是需要查二次表呢?一個帶了lable的數據包到了路由器,首先要先查LFIB表,發現這個數據是給我自己的,移除lable後,還需要在查一次FIB表來找到出接口,在做二層封裝。是不是太沒有效率。這才會延申出POP的機制,如果一個目的地為我本身的直連網路,我在分配lable給neighbor的時候,會發送一個3的隱式空標籤,來告知我的上一跳路由器,需要將標籤移除,到我這個路由器時,就是一個純的ip包,只需要查詢FIB表則可。
我們來看一下在我們這個環境中66.1.1.1/32,為r6的直連網路,所以他會發送一個3的隱式空的標籤給r4對吧!我們來抓包看一下。我們可以看到r6送給r4的lable mapping message裡計對66.1.1.1/32發送了一個3的標籤。這時r4就會記錄出的lable為POP lable
R4#show mpls
forwarding-table
Local Outgoing
Prefix Bytes Label Outgoing
Next Hop
Label Label
or Tunnel Id Switched interface
400 300 55.1.1.1/32 1310 Fa1/0 34.1.1.3
401 Pop Label 33.1.1.1/32 0 Fa1/0 34.1.1.3
402 301 22.1.1.1/32 0 Fa1/0 34.1.1.3
403 302 11.1.1.1/32 0 Fa1/0 34.1.1.3
404 303 15.1.1.0/24 2486 Fa1/0 34.1.1.3
405 304 12.1.1.0/24 0 Fa1/0 34.1.1.3
406 Pop Label 23.1.1.0/24 0 Fa1/0 34.1.1.3
407 Pop Label
66.1.1.1/32 2334 Fa0/0 46.1.1.6
那r4是查次表呢?還是查二次表呢?其實是查一次表!
R4#show mpls
forwarding-table 66.1.1.1 32 detail
Local Outgoing
Prefix Bytes Label Outgoing
Next Hop
Label Label
or Tunnel Id Switched interface
407 Pop Label 66.1.1.1/32 2334 Fa0/0 46.1.1.6
MAC/Encaps=14/14, MRU=1504, Label
Stack{}
CA061C3C0000CA041BDC00008847
No output feature configured
R4#show arp
Protocol Address Age (min) Hardware Addr Type
Interface
Internet 34.1.1.3 49 ca03.1ce4.001c ARPA
FastEthernet1/0
Internet 34.1.1.4 - ca04.1bdc.001c ARPA
FastEthernet1/0
Internet 46.1.1.4 - ca04.1bdc.0000 ARPA
FastEthernet0/0
Internet 46.1.1.6 26 ca06.1c3c.0000 ARPA
FastEthernet0/0
CA061C3C0000 目前mac
CA041BDC0000 來源mac
8847 mpls封裝
這些是不是就是我們二層封裝需要用到的資料。
沒有留言:
張貼留言