MPLS(多標籤協議交換)是一種在開放的通信網上利用標籤引導數據高速、高效傳輸的新技術。多協議的含義是指MPLS不但可以支持多種網絡層層面上的協議,還可以兼容第二層的多種數據鏈路層技術。
傳統交換技術:
進程轉發:基於數據包的轉發方式
快速轉發:基於流量的轉發方式
CEF轉發:基於拓撲的轉發方式
應用方面:
- 解決BGP的路由黑洞問題
- MPLS VPN
- MPLS TE(流量工程)
名詞:
FIB表------轉發信息數據庫
LIB表------標籤信息數據庫
LFIB表----標籤轉發信息數據庫 FIB和LIB表的結合
LSP-----標籤交換通道,數據所走的路徑
LSR-----MPLS網絡的核心交換機
LER-----在MPLS的網絡邊緣,進入到MPLS網絡的流量由LER分爲不同的FEC,並未這些FEC請求相應的標籤。它提供流量分類和標籤的映射、標籤的移除功能。
TDP ------cisco私有 基於TCP或UDP封裝,使用端口號711,廣播發送,255.255.255.255
LDP-------工業標準,基於TCP或UDP封裝,使用端口號646,組播發送,224.0.0.2
MPLS數據包格式:
標籤位:前20位存在16~2^20,爲標籤
EXP:3位,用於數據包中標籤中的優先級
S:棧底位,代表標籤是否是棧底,當S爲1時表明爲最內層標籤,S爲1時表明爲外層標籤。
TTL:生存時間---當標籤號被壓入時,將複製3層報頭的TTL值,然後每經過一個路由器減1,當標籤號彈出時,複製回IP報頭中; 防環
外層標籤爲17,內層標籤爲16
MPLS的四個動作:
PUSH:數據包有IP域進入到MPLS域時,LER根據標籤轉發表壓入標籤
SWAP:在MPLS域轉發數據包時,LSR根據標籤轉發表替換標籤
POP:當數據包離開MPLS域時,LER彈出標籤
UNtag:在最後一跳時,彈出所有標籤
LDP:標籤分發協議,是用來在LSR之間建立LDP session並交換label映射信息的協議
LDP的消息類型
- 發現消息:宣告和維護一個LSR的存在
- 會話消息:建立、維護和終止LDP對等體之間的會話
- 通告消息:生成、改變和刪除FEC的標籤映射
- 通知消息:宣告告警和錯誤信息
LDP分配原則:
- 路由器爲32位的主機路由分配標籤。
- 若通過多個鄰居收到一個FEC的標籤,設備會使用本FEC下一跳設備分配的標籤。
LDP建立鄰居的兩個階段:
- 發現鄰居階段:使用UDP報文
驗證是否收到LDP hello報文:show mpls ldp discovery
發現鄰居階段的目標:確認TCP階段主動發起方,傳輸地址大的一方作爲主動方,使用傳輸地址來進行TCP會話連接,默認情況下,transport address爲LSR的router-id。必須保證兩個transport address之間是路由可達的,負責考慮接口下的MPLS,將transport address配置爲直連接口下的IP地址
修改transport address:mpls ldp discovery transport-address 1.1.1.1
- 會話建立階段:
查看TCP會話建立情況:show mpls ldp neighbor
LDP狀態機:
VPN角色:
- CE:直連ISP的用戶設備
- PE:骨幹網上的邊緣路由器,主要負責VPN的接入
- P:骨幹網上的核心路由器,主要完成路由和快速轉發功能
VRF:虛擬路由轉發
每一個VRF可以看成虛擬的路由器,也可以看成一臺專用的PE設備,包含元素:
- 獨立的路由表
- 屬於VRF的接口集合
- 用於VRF的路由協議
RD:路由標識
作用:
- CE的IPv4路由進入全局的VPNv4地址簇時,在32位的IPv4路由前面增加一個8個字節的RD,變成VPNv4路由前綴。
- 即使客戶CE的路由時重疊的,但是可以通過添加唯一的RD,形成唯一的VPNv4 的路由前綴。
RT:
作用:將PE上接收到的VPNv4前綴通告給正確的CE設備
- export:本地VRF用於發送特定的VPNv4的路由前綴
- import:本地VRF用於接受特定的VPNv4的路由前綴
VPNv4地址結構:
RD格式:
16位自治系統號:32位用戶自定義數。例如:200:1
32位IP地址:16位用戶自定義數。例如:192.168.1.1
MPLS配置實例:
拓撲圖:
LDP配置
R2、R3、R4配置
R2(config)#mpls label range 200 299 限制標籤分發範圍
R2(config)#ip cef 思科的快速轉發技術
R2(config)#mpls ip 全局啓用MPLS
R2(config)#mpls label protocol ldp 定義MPLS標籤分發協議
R2(config)#mpls ldp router-id loopback 0 定義MPLS建立鄰居接口
R2(config)#interface FastEthernet0/1
R2(config-if)#mpls ip 接口啓用MPLS
查看LDP hello包收發情況
VRF:
ip vrf s1
rd 1:1 RD值1:1
route-target export 100:1 RT標記發送100:1
route-target import 200:1 RT標記接受100:1
interface FastEthernet0/0
ip vrf forwarding s1 該接口的所有數據轉發都會進入這個VRF中
PE到CE的路由協議:(此處使用的爲靜態)
PE設備:
R2: ip route vrf s1 100.1.1.1 255.255.255.0 12.1.1.1
R4: ip route vrf s1 200.1.5.5 255.255.255.0 45.1.1.5
CE設備:
ip route 0.0.0.0 0.0.0.0 12.1.1.2 靜態缺省指鄰居
配置MP-BGP協議
router bgp 100
bgp router-id 2.2.2.2 BGP的router-id
no bgp default ipv4-unicast 在全局BGP下禁止使用單播傳播,在地址簇中將其激活
neighbor 4.4.4.4 remote-as 100 鄰居AS號
neighbor 4.4.4.4 update-source Loopback0 鄰居更新源
address-family vpnv4 地址簇
neighbor 4.4.4.4 activate 激活鄰居
重發布:
router bgp 100
address-family ipv4 vrf s1
redistribute static 重發布靜態
no synchronization 關閉同步