前言導(dǎo)入
MPLS:多協(xié)議標(biāo)簽交換
多協(xié)議
- 可以基于多種不同的3層協(xié)議來生成2.5層的標(biāo)簽信息
包交換
- 包為網(wǎng)絡(luò)層的PDU,故包交換就是基于IP地址進(jìn)行數(shù)據(jù)轉(zhuǎn)發(fā);也就是路由器的路由行為。(路由器和終端基于3層的IP地址數(shù)據(jù)轉(zhuǎn)發(fā)的路由行為)
原始包交換
查兩張表
在包交換過程中,數(shù)據(jù)包每經(jīng)過一個(gè)路由器,路由器需要查兩張表:路由表(RIB)+ARP表
快速包交換
第一次查兩張表,之后的每一次查一張表
一次路由,多次交換(一個(gè)數(shù)據(jù)流的第一個(gè)數(shù)據(jù)包進(jìn)行原始交換,過程中生成轉(zhuǎn)發(fā)規(guī)則緩存,該數(shù)據(jù)流剩余的數(shù)據(jù)包全部基于緩存中的規(guī)則進(jìn)行轉(zhuǎn)發(fā))
特快交換,F(xiàn)IB表
查一張表
無需路由,直接交換(路由表RIB----->FIB表,ARP表---->ADJ表;其中FIB表是已經(jīng)遞歸好的路由表并且是純二進(jìn)制表格,可以被物理硬件直接讀取,不需要編譯)
CEF:Cisco特快交換,為Cisco私有技術(shù);非Cisco廠商設(shè)備均存在和CEF轉(zhuǎn)發(fā)機(jī)制相同的技術(shù)
路由表轉(zhuǎn)換為FIB(轉(zhuǎn)發(fā)信息數(shù)據(jù)庫)表,流量轉(zhuǎn)發(fā)過程中僅查詢FIB表即可
FIB表和特點(diǎn):
在將路由器表轉(zhuǎn)換過程中,存儲(chǔ)遞歸查詢結(jié)果,同時(shí)將新封裝的二層地址進(jìn)行綁定
IP fast0/0 172.16.20.115(7)
(遞歸后的出接口) 0 packets, 0 bytes
epoch 0
sourced in sev-epoch 357
Encap length 14
701CE7662A9768EFBD1D24C50800 新的二層封裝
目標(biāo)MAC 源MAC 類型號(hào)
標(biāo)簽交換
- 路由器基于2.5層的標(biāo)簽號(hào)進(jìn)行路由行為
在數(shù)據(jù)包的2.5層壓入標(biāo)簽號(hào),路由器基于2.5的標(biāo)簽號(hào)查詢本地的LFIB表,即可進(jìn)行數(shù)據(jù)轉(zhuǎn)發(fā)。(第一跳路由器壓入標(biāo)簽號(hào),最后一跳彈出標(biāo)簽)
數(shù)據(jù)包在進(jìn)入到的MPLS的域內(nèi)后,將在第2層和3層中間壓入標(biāo)簽號(hào),使得域內(nèi)的路由器在轉(zhuǎn)發(fā)該數(shù)據(jù)包時(shí),基于2.5層的標(biāo)簽號(hào)僅需要查詢本地的一張LFIB表(標(biāo)簽轉(zhuǎn)發(fā)信息數(shù)據(jù)庫)
FIB+LIB=LFIB;LFIB表的信息齊全:標(biāo)簽號(hào),MAC地址等等
最初在包交換僅支持原始交換時(shí),標(biāo)簽的意義在于更快的查詢;但隨著包交換的加速,使用標(biāo)簽交換失去了快速查表得優(yōu)勢(shì)
MPLS存在的意義
- 解決BGP的路由黑洞
- MPLS VPN
- MPLS TE 流量工程
另外:隨著包交換的加速,使得今天的MPLS技術(shù)也開始基于FIB表工作,來提高M(jìn)PLS的工作效率(FIB表允許存標(biāo)簽號(hào),這就是LFIB表要和FIB合作的原因)
MPLS的工作過程
控制層面:路由協(xié)議工作,生成RIB,RIB再生成FIB表,流量的方向即為控制流量
數(shù)據(jù)層面:設(shè)備基于路由表訪問目標(biāo),產(chǎn)生數(shù)據(jù)流量,與控制層面方向相反
控制層面工作過程
1.在沒有MPLS時(shí)控制層面僅生成RIB(路由表)和FIB(轉(zhuǎn)發(fā)信息數(shù)據(jù)庫),F(xiàn)IB是基于RIB生成的
2.MPLS協(xié)議會(huì)啟動(dòng)TDP(Cisco)或LDP(公有),直連設(shè)備間建立鄰居關(guān)系 (LDP要為FIB表中的每一條路由分配一個(gè)標(biāo)簽號(hào),每一個(gè)目標(biāo)網(wǎng)段分配一個(gè)標(biāo)簽號(hào))
這個(gè)LIB表是要上下傳遞的,只上下鄰居傳遞
- LDP:基于UDP和TCP的646端口工作,先使用UDP發(fā)送組播hello包發(fā)現(xiàn)鄰居,獲取鄰居的IP地址,再和該直連鄰居建立TCP會(huì)話,鄰居關(guān)系建立后,為鄰居關(guān)系間的穩(wěn)定,一般使用設(shè)備的環(huán)回地址來建立TCP會(huì)話,建議設(shè)備環(huán)回地址為MPLS協(xié)議的router-id,該router-id值將攜帶在組播收發(fā)的hello報(bào)文中,之后自動(dòng)進(jìn)行TCP會(huì)話建立(UDP可以組播)
總結(jié):MPLS協(xié)議需要在直連鄰居間使用router-id地址來進(jìn)行TCP會(huì)話,故前提條件為:router-id必須為設(shè)備真實(shí)使用的IP地址,建議為環(huán)回地址(因?yàn)榉€(wěn)定),組播hello包在直連的物理接口上收發(fā)來獲取對(duì)端的router-id,自然也要求router-id值間路由可達(dá)
因此正常在建立LDP的鄰居關(guān)系前,路由協(xié)議已經(jīng)收斂完成,RIB和FIB表已經(jīng)生成。
3.MPLS在建立鄰居關(guān)系后,生成鄰居表;LDP協(xié)議再基于FIB表中學(xué)習(xí)到的路由條目生成標(biāo)簽號(hào)
- Cisco設(shè)備默認(rèn)基于FIB表中所有學(xué)習(xí)到的路由條目生成標(biāo)簽號(hào),華為設(shè)備默認(rèn)僅基于FIB表中32位掩碼的主機(jī)路由生成標(biāo)簽號(hào);原因在于正常32位主機(jī)路由為ospf學(xué)習(xí)的環(huán)回接口,正常工程中只有BGP和MPLS VPN才會(huì)基于環(huán)回通訊,使用標(biāo)簽轉(zhuǎn)發(fā);其他普通流量還是基于特快包交換來進(jìn)行;反觀Cisco在啟動(dòng)MPLS以后,所有流量都將基于標(biāo)簽轉(zhuǎn)發(fā),降低了轉(zhuǎn)發(fā)效率(前提為默認(rèn))
4.標(biāo)簽號(hào)生成后,將存儲(chǔ)于本地的LIB表(標(biāo)簽信息數(shù)據(jù)庫);且LIB表將在上下鄰居間共享;LIB表中裝載本地以及鄰居為每條路由分發(fā)的標(biāo)簽號(hào)
5.運(yùn)行MPLS協(xié)議的設(shè)備,將LIB表和FIB表進(jìn)行結(jié)合,將標(biāo)簽號(hào)和最佳路徑的關(guān)系映射生成LFIB表(標(biāo)簽轉(zhuǎn)發(fā)信息數(shù)據(jù)庫)
注:RIB—>FIB—>LIB—>LFIB (前兩張表為路由協(xié)議工作后生成,后兩張表為MPLS的LDP協(xié)議生成)
數(shù)據(jù)層面?zhèn)鬏斶^程
1.沒有MPLS協(xié)議,基于FIB表正常轉(zhuǎn)發(fā)即可
2.名詞解析
- MPLS domain:MPLS的工作半徑
- edge LSR(PE):邊界標(biāo)簽交換路由器,工作MPLS域的邊緣,連接域外設(shè)備 (運(yùn)行MPLS的第一臺(tái)設(shè)備)
- LSR(P):標(biāo)簽交換路由器,整體工作MPLS域內(nèi)
3.當(dāng)流量進(jìn)入到第一臺(tái)PE設(shè)備時(shí),在沒有特快交換之前,路由器基于目標(biāo)IP地址查詢本地的RIB;之后還要在LIB表中對(duì)應(yīng)才能確定流量是否應(yīng)該壓入標(biāo)簽,需要兩張表的查詢;在存在特快交換時(shí),流量進(jìn)入第一臺(tái)PE時(shí),直接查詢FIB表,若表中關(guān)聯(lián)標(biāo)簽號(hào),將直接確定是否壓入標(biāo)簽;流量再到P路由器上,接收到的流量中若存在標(biāo)簽則基于LFIB表轉(zhuǎn)發(fā),若沒有標(biāo)簽則基于FIB表轉(zhuǎn)發(fā)即可;流量從最后一臺(tái)邊界離開MPLS域時(shí)將彈出標(biāo)簽
注:存在標(biāo)簽號(hào)的流量,進(jìn)入路由器時(shí),入標(biāo)簽表應(yīng)該為本地路由器分配的編號(hào),出標(biāo)簽為本地的下一游(下一跳)設(shè)備分配的標(biāo)簽號(hào),上下游的概念基于數(shù)據(jù)層面進(jìn)行標(biāo)定
MPLS標(biāo)簽號(hào)
標(biāo)簽被壓入2層3層之間,稱為2.5層
標(biāo)簽的格式:32位,4個(gè)字節(jié)
- 前20位為標(biāo)簽號(hào),2^20個(gè)標(biāo)簽號(hào);其中數(shù)值1-15為保留,用作特殊編號(hào)
- 第21-23位exp,3位二進(jìn)制,為優(yōu)先級(jí),用于QOS策略使用
- 第24位為棧底位,該位為1標(biāo)識(shí)該標(biāo)簽為最后一層標(biāo)簽;MPLS最大可以在一個(gè)數(shù)據(jù)包中封裝3次標(biāo)簽,(普通的MPLS一層標(biāo)簽,MPLS VPN兩層標(biāo)簽,MPLS TE三層標(biāo)簽)
- TTL:生存時(shí)間,在第一次壓入標(biāo)簽時(shí),將當(dāng)前數(shù)據(jù)包中的3層TTL復(fù)制到標(biāo)簽中,之后查詢一次標(biāo)簽TTL減1,在最后一跳設(shè)備彈出標(biāo)簽時(shí)將2.5層的TTL復(fù)制到3層報(bào)頭中
MPLS的次末跳
倒數(shù)第二跳 (默認(rèn)執(zhí)行)
- 邊界LSR(PE:運(yùn)行MPLS的第一臺(tái)設(shè)備)將本地的直連網(wǎng)段宣告后傳遞給MPLS域內(nèi)鄰居后,LDP分配標(biāo)簽號(hào)為3, 告知倒數(shù)第二跳設(shè)備它的身份;導(dǎo)致倒數(shù)第二跳設(shè)備在查詢LFIB表后,在已知轉(zhuǎn)發(fā)路徑的前提下提前彈出標(biāo)簽,使得最后一跳路由器均只需要查詢FIB表,否則最后一跳路由器在查詢LFIB表后,彈出標(biāo)簽還需要查詢FIB
注:FIB表存儲(chǔ)標(biāo)簽號(hào),這就是FIB和LFIB合作的原因
MPLS的配置
1.IP可達(dá):使用路由協(xié)議全網(wǎng)可達(dá)
2.配置MPLS-LDP
[R2]mpls lsr-id 2.2.2.2 必須先定義mpls的router-id,為本地設(shè)備的真實(shí)IP地址,且鄰居可達(dá),因?yàn)樵摰刂穼⒂糜诮CP會(huì)話,建議使用環(huán)回地址
[R2]mpls 再開啟mpls協(xié)議
[R2-mpls]mpls ldp 再激活LDP協(xié)議
[R2-mpls-ldp]q
之后需要在所有標(biāo)簽經(jīng)過的接口上開啟協(xié)議
[R2]interface g0/0/0
[R2-GigabitEthernet0/0/0]mpls 先開啟mpls
[R2-GigabitEthernet0/0/1]mpls ldp 再激活LDP協(xié)議
當(dāng)啟動(dòng)配置完成后,鄰居間使用UDP報(bào)文組播收發(fā)hello包,之后基于hello包中的router-id地址進(jìn)行TCP會(huì)話的建立
[R2]display tcp status
TCPCB Tid/Soid Local Add:port Foreign Add:port VPNID State
b4cf3d64 167/6 3.3.3.3:646 4.4.4.4:50858 0 Established
b4cf3adc 167/3 3.3.3.3:50806 2.2.2.2:646 0 Established
當(dāng)TCP會(huì)話建立后,鄰居間基于TCP會(huì)話再建立鄰居關(guān)系,生成鄰居表
[R2]display mpls ldp peer
再然后基于本地的FIB表,默認(rèn)華為僅針對(duì)32位的主機(jī)路由生成標(biāo)簽號(hào),存儲(chǔ)于LIB表中,之后鄰居間共享LIB表
[R2]display fib 查看FIB表
[R2]display mpls ldp lsp 查看LIB表,裝載本地和鄰居為各條路由分配的標(biāo)簽號(hào)
最后路由器將LIB和FIB集合,生成最佳路徑的標(biāo)簽轉(zhuǎn)發(fā)規(guī)則-LFIB表
[R2]display mpls lsp 查看LFIB表
注:默認(rèn)華為僅針對(duì)32位主機(jī)路由分配標(biāo)簽
[R2]mpls
[R2-mpls]lsp-trigger all 開啟功能,將針對(duì)FIB表中所有路由進(jìn)行標(biāo)簽號(hào)的分配
[R2]tracert -v -a 2.2.2.2 56.1.1.2
MPLS解決BGP的路由黑洞
MPLS協(xié)議并不會(huì)為通過BGP協(xié)議學(xué)習(xí)的路由條目分配標(biāo)簽號(hào);
而是在訪問這些BGP路由目標(biāo)網(wǎng)段時(shí),在流量中壓入到達(dá)這些網(wǎng)段的BGP下一跳設(shè)備地址的標(biāo)簽號(hào);
- eg:R2從BGP鄰居5.5.5.5學(xué)習(xí)到6.6.6.0網(wǎng)段的路由,R2在訪問6.6.6.0時(shí),將在數(shù)據(jù)包中壓入到達(dá)5.5.5.5IP地址的標(biāo)簽號(hào),來穿越中間沒有運(yùn)行BGP協(xié)議的設(shè)備,實(shí)現(xiàn)打破路由黑洞;
注:華為設(shè)備默認(rèn)不為BGP協(xié)議執(zhí)行下一跳標(biāo)簽機(jī)制,Cisco默認(rèn)執(zhí)行;
華為設(shè)備需要開啟
[R2]route recursive-lookup tunnel 路由基于隧道進(jìn)行遞歸查找
MPLS VPN
- CE將私有路由傳遞到PE端
- PE端在收到不同CE端發(fā)送過來的相同網(wǎng)段路由時(shí),使用RD值進(jìn)行區(qū)分(格式 X:X 32位,16進(jìn)制)
- PE端將附上RD的私有路由且不能直接裝載于本地公有路由表中,需要放置到對(duì)應(yīng)的VRF(虛擬路由轉(zhuǎn)發(fā))空間內(nèi);之后再在路由上付RT值,用于傳遞到對(duì)端PE設(shè)備上,對(duì)端區(qū)分信息
- VPNV4路由=普通IPV4路由+RD+RT
- VPNV4路由需要MP-BGP來進(jìn)行傳遞;對(duì)端基于RT值,將路由裝載到對(duì)應(yīng)的VRF空間內(nèi),再共享給對(duì)應(yīng)的CE
- 控制層面工作完成后,數(shù)據(jù)層面需要基于MPLS來工作,由于數(shù)據(jù)層面不能攜帶RD/RT值,故MPLS將在數(shù)據(jù)包中壓入兩層標(biāo)簽,外層標(biāo)簽用于穿越中間設(shè)備,打破BGP路由黑洞;內(nèi)層標(biāo)簽用于對(duì)應(yīng)VRF空間
MPLS VPN配置
1.ISP 部分
2.IGP路由
3.MPLS域
4.配置MPLS VPN
[r2]ip vpn-instance a1 創(chuàng)建名為a1的VRF空間
[r2-vpn-instance-a1]ipv4-family 進(jìn)入IPV4的配置模式下
[r2-vpn-instance-a1-af-ipv4]route-distinguisher 1:1 RD值
[r2-vpn-instance-a1-af-ipv4]vpn-target 1:1 RT值,必須和對(duì)端的PE值一致
[r2]interface g0/0/0 進(jìn)入鏈接CE端的接口
[r2-GigabitEthernet0/0/0]ip binding vpn-instance a1 關(guān)聯(lián)到VRF空間
[r2-GigabitEthernet0/0/0]ip address 192.168.2.2 24 配置私有IP地址
注:在關(guān)聯(lián)到VRF空間前不能配置接口IP,否則該地址的直連路由將進(jìn)入公有路由表
[r2]display ip routing-table vpn-instance a1 查看空間內(nèi)的私有路由表
[r2]ping -vpn-instance a1 192.168.2.1 正常測(cè)試(不帶-vpn-instance a1)將在公有路由表中查詢記錄,該命令為基于VRF空間a1進(jìn)行路由查詢
5.PE與PE間建立MP-BGP鄰居關(guān)系
[r2]bgp 2
[r2-bgp]router-id 2.2.2.2 先和對(duì)端建立BGP鄰居關(guān)系,可用于傳遞正常的公網(wǎng)路由
[r2-bgp]peer 4.4.4.4 as-number 2
[r2-bgp]peer 4.4.4.4 connect-interface loopback 0
[r2-bgp]peer 4.4.4.4 next-hop-local
同時(shí)還需要再在IPV4的家族模式中,與對(duì)端建立一個(gè)VPNV4的關(guān)系,用于傳遞VPNV4路由
[r2-bgp]ipv4-family vpnv4
[r2-bgp-af-vpnv4]peer 4.4.4.4 enable
[r2-bgp]display bgp vpnv4 all peer 查看MP-BGP鄰居關(guān)系
6.CE端與PE端交互路由
如果是靜態(tài)路由
CE端直接編寫正常靜態(tài)路由即可
PE端編寫到VRF空間內(nèi)的靜態(tài)路由
[r2]ip route-static vpn-instance a1 192.168.1.0 24 192.168.2.1
將本地VRF空間內(nèi)的靜態(tài)和直連路由重發(fā)布到BGP協(xié)議中,傳遞到對(duì)端的PE上
[r2]bgp 2
[r2-bgp]ipv4-family vpn-instance a1
[r2-bgp-a1]import-route direct
[r2-bgp-a1]import-route static
[r2]display bgp vpnv4 vpn-instance a1 routing-table 查看MP-BGP的BGP表
如果是動(dòng)態(tài)路由文章來源:http://www.zghlxwxcb.cn/news/detail-837168.html
CE端正常啟動(dòng)OSPF即可
PE端,啟動(dòng)vpnv4專用的ospf協(xié)議
[r2]ospf 2 vpn-instance a1
[r2-ospf]area 0
[r2-ospf-2-area-0.0.0.0]network 192.168.3.1 0.0.0.0
之后使用雙向重發(fā)布,實(shí)現(xiàn)路由共享
[r2]bgp 2
[r2-bgp]ipv4-family vpn-instance a1
[r2-bgp-a1]import-route ospf 2
[r2]ospf 2 vpn-instance a1
[r2-ospf-2]import-route bgp
[r2]display mpls lsp vpn-instance a1 查看雙層標(biāo)記的內(nèi)層標(biāo)簽號(hào)
[r2]rip 1 vpn-instance a1
[r2-rip-1]version 2
[r2-rip-1]network 192.168.2.0
文章來源地址http://www.zghlxwxcb.cn/news/detail-837168.html
bt下載
到了這里,關(guān)于一篇帶你精通MPLS的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!