? ? ? ?MPLS(Multi-Protocol Label Switching,多協議標簽交換技術)技術的出現,極大地推動了互聯網的發展和應用。例如:利用MPLS技術,可以有效而靈活地部署VPN(Virtual Private Network,虛擬專用網),TE(Traffic Engineering,流量工程)和Qos(Quality of Service,服務質量)。目前,MPLS技術主要應用于運營商網絡之中。
? ? ? ?在MPLS網絡中,位于網絡邊緣的路由稱為LER(Label Edge Router),網絡內部路由器稱為LSR(Label Switch Router),MPLS報文經過的路徑稱為LSP(Label Switch Path)。一條LSP總是起于一臺被稱為Ingress的LER,止于另一臺被稱為Egress的LER,中間經過若干臺被被稱為Transit的LSR。LSP具有單向性,且由靜態LSP和動態LSP之分。靜態LSP需要人工進行固定的標簽分配,動態LSP需要利用諸如LDP(Label Distribution Protocol,標簽分發協議)這樣的協議進行動態標簽分配。
傳統的IP轉發中,物理層從交換機的一個端口收到一個報文,上送到數據鏈路層。數據鏈路層去掉鏈路層封裝,根據報文的協議上送給相應的網絡層。網絡層首先看報文是不是發送給本機的,若是,去掉網路層封裝,上送給它的上層協議。若不是,則根據報文的目的地址查找路由表,若找到路由,將報文送給相應端口的數據鏈路層,數據鏈路層封裝后,發送報文。若找不到路由,將報文丟棄。傳統的IP轉發采用的時逐條轉發,數據報文經過每一臺交換機,都要執行上訴過程。由于傳統IP轉發時面向無連接的,所以無法提供更好的Qos保證。
MPLS 基本概念
標簽(Label):是一個定長的,比較短的,只有本地意義的標識,4字節(0-3)
FEC(轉發等價類):是一組或一類數據,這組數據分配的標簽相同
LSP(標簽交換通道):一個FEC的數據流,在不同的節點被賦予確定的標簽,數據轉發按照這些標簽進行。數據流所走的路徑就是LSP?
LSR (Label Switch Router) :LSR是MPLS中的網絡核心交換機,它提供標簽交換和標簽分發功能。
LER (Label Switch Edge Router) :在MPLS的網絡邊緣,進入到MPLS網絡的流量由LER分為不同的FEC,并且為這些FEC請求相應的標簽。它提供流量分類和標簽的映射、標簽的移除功能。
控制平面:負責產生和維護路由信息以及標簽信息。
? ? ? 1.路由信息RIB(Routing Information Base):由IP路由協議生產,用于選擇路由
? ? ? 2.標簽分發協議LDP(Label Distribution protocol) :負責標簽的分配、標簽轉發信息表的建立、標簽交換路徑的建立、拆除等工作。
? ? ? 3.標簽信息表LIB(Label Information Base):由標簽分發協議生成,負責管理標簽信息。
轉發平面:即數據平面(Data Plane),負責普通IP報文的轉發以及MPLS標簽報文的轉發
? ? ? 1.轉達信息表FIB(Forwarding Information Base) :從RIB提取必要的路由信息生成,負責普通IP報文的轉發。
? ? ? 2.標簽轉發信息表LFIB(Label Forwarding Information Base) :簡稱標簽轉發表,由表換轉發協議建立LFIB,負責帶MPLS標簽報文的轉發。
? ? ? MPLS 路由器上,報文的轉發過程:
1. 當收到普通IP報文時,查找FIB,如果Tunnel ID為0X0,則進行普通IP報文轉發;如果查找FIB表,Tunnel ID 為非0X0 ,則進行MPLS轉發。
2.當收到帶標簽的報文時,查找LFIB表,如果對應的出標簽是普通標簽,則驚醒MPLS轉發;查找LFIB,如果對應的出標簽是特殊標簽,如標簽3 ,則將報文的標簽去掉,進行IP轉發。
實驗:
基礎配置:
配置ospf協議和接口ip 略
R1 :
:配置MPLS協議:
首先配置LSR ID
[R1]mpls lsr-id 1.1.1.1
全局啟用MPLS
[R1]mpls
Info: Mpls starting, please wait... OK!
在全局啟用MPLS之后,還需要再轉發MPLS報文的接口上使用MPLS命令使能接口的MPLS功能
[R1-mpls]int g0/0/0
[R1-GigabitEthernet0/0/0]mpls
[R1-GigabitEthernet0/0/0]qu
配置完成后,再R1上查看LSP的信息
[R1]dis mpls lsp?
配置靜態LSP
在R1上配置從R1到R3的靜態LSP的Ingress,并進行標簽的分配
[R1]static-lsp ingress 1t3 destination 10.0.3.3 32 nexthop 10.0.12.2 out-label 102
在R2上配置從R1到R3的靜態LSP的Transit,并進行標簽的分配
[R2]mpls lsr-id 2.2.2.2
[R2]mpls
Info: Mpls starting, please wait... OK!
[R2-mpls]int g0/0/0
[R2-GigabitEthernet0/0/0]mpls
[R2-GigabitEthernet0/0/0]int g0/0/1
[R2-GigabitEthernet0/0/1]mpls
[R2-GigabitEthernet0/0/1]qu
[R2]static-lsp transit 1t3?incoming-interface g0/0/0 in-label 200 nexthop 10.0.23.3 out-label 300
在R3上配置從R1到R3的靜態LSP的Egress,并進行標簽的分配
[R3]mpls lsr-id 3.3.3.3
[R3]mpls
Info: Mpls starting, please wait... OK!
[R3-mpls]int g0/0/1
[R3-GigabitEthernet0/0/1]mpls
[R3-GigabitEthernet0/0/1]qu
[R3]static-lsp egress 1t3 incoming-interface g0/0/0 in-label 200
配置完成后,在R1上查看LSP信息
可以看到,R1上已經擁有了去往R3(3.3.3.3/32)的靜態LSP,且在本地的In標簽為NULL,說明R1是該LSP的Ingress。
在R1 上 ping -a 1.1.1.1 3.3.3.3
通過抓包獲取,是通過標簽轉發的,是單向的
配置動態LDP協議:
[R1]undo static-lsp ingress 1t3 xuyao?
[R1]mpls ldp?
[R1-mpls-ldp]quit
[R1]int g0/0/0?
[R1-GigabitEthernet0/0/0]mpls ldp?
[R2]undo static-lsp transit 1t3?
[R2]mpls ldp?
[R2-mpls-ldp]quit
[R2]int g0/0/0?
[R2-GigabitEthernet0/0/0]mpls ldp?
[R2-GigabitEthernet0/0/0]int g0/0/1
[R2-GigabitEthernet0/0/1]mpls ldp?
[R2-GigabitEthernet0/0/1]
[R3]undo static-lsp egress 1t3?
[R3]mpls ldp?
[R3-mpls-ldp]int g0/0/1
[R3-GigabitEthernet0/0/1]mpls ldp?
[R3-GigabitEthernet0/0/1]
R1、R2和R3的接口啟動了LDP。并且標簽分發方式為DU模式
R1和R2、R2和R3之間的LDP會話狀態為operrational,表示會話已經建立
R1驗證去往3.3.3.3 /32 的MPLS報文所經過的路徑
可以看到,報文在R3上出發時被賦予標簽1024,經過R2時,標簽被替換為3
分別 在R1和R3上測試連通性
測試聯通正常。