MPLSVPN学习笔记.docx
《MPLSVPN学习笔记.docx》由会员分享,可在线阅读,更多相关《MPLSVPN学习笔记.docx(12页珍藏版)》请在冰豆网上搜索。
MPLSVPN学习笔记
MPLSVPN学习笔记2
MPLS(多协议标签交换)2
帧模式报文格式:
2
标签格式:
2
MPLS原理:
4
MPLS网络模型:
4
MPLS结构:
4
转发过程:
5
MPLS标签分发方式:
6
配置实例:
LDP8
配置实例:
MPLS-VPN15
MPLSVPN学习笔记
MPLS(多协议标签交换)
MPLS标签报文独立于二层报头与三层报头之间,可插入多个MPLS头部,这种标签模式也被成为帧模式(FrameMode),这也是最常用的一种模式。
还有一种叫信元模式,用于ATM网络,现在基本已经淘汰了。
帧模式报文格式:
二层报头
MPLS报头1
MPLS报头2
MPLS报头3
IP报头
数据
ICMP数据包如图所示:
上图为ICMP数据包在运行MPLS的路由器上报文格式:
位于层
1.首先二层报头为:
帧头部、以太网头部;
2.然后是MPLS报头:
图中是两层标签,外层标签为1025,内层标签为1031(栈底位S=1);
3.然后是IP报头:
源IP与目标IP等信息;
4.最后是数据:
ICMP;
标签格式:
Label
EXP
S
TTL
Label:
MPLS标签值;
EXP:
用于QoS;
S:
值为“1”用于标识最内层标签,为“0”表示为外层标签;
TTL:
用于表示MPLS报文的在转发过程中的最大跳数,即防环;
如图所示:
MPLS原理:
MPLS网络模型:
MPLS结构:
转发过程:
MPLS标签分发方式:
特殊固定标签值:
标签值
含义
描述
0
IPv4ExplicitNullLabel
表示该标签必须弹出,且报文转发必须基于IPv4;
1
RouterAlertLabel
2
IPv6ExplicitNullLabel
表示该标签必须弹出,且报文转发必须基于IPv6;
3
ImplicitNULLLabel
倒数第二跳LSR进行标签交换时,如果发现交换后的标签值为3,则将标签弹出;
4~1315
保留
14
OAMRouterAlertLabel
16~1023
静态LSP
1024以上
LDP、RSVP-TE、MP-BGP
静态分发(不常用)
全局模式下:
PE(ingress方向):
P(transit):
PE(egress方向):
Static-lsptransit名字incoming-interface接口号in-label标签号;
查看静态LSP:
displaymplsstatic-lsp;
静态LSP的标签值范围:
16~1023;
动态分发:
(LDP)
LDP:
标签分发协议,是用来在LSR之间建立LDPSession并交换Label/FEC映射信息的协议。
FEC:
转发等价类,即设备上的路由前缀,不同的路由前缀就是一个FEC;
LDP消息类型:
Discoverymessage:
宣告和维护网中一个LSR的存在;
Sessionmessage:
建立、维护和终止LDPPeers之间LDPSession;
Advertisementmessage:
生成、改变、和删除FEC的标签映射;
Notificationmessage:
宣告告警和错误信息;
消息类型
消息实体
作用
Discoverymessage
Hello
LDP发现机制中宣告本LSR并发现邻居
(只有Hello才用组播,其它消息都是用单播)
Sessionmessage
Initialization
在LDPSession建立过程中协商参数
KeepAlive
监控LDPSession的TCP连接的完整性
Advertisementmessage
Address
宣告接口地址
AddressWithdraw
撤消接口地址
LabelMapping
宣告FEC/Label映射信息
LabelRequest
请求FEC的标签映射
LabelAbortRequest
终止未完成的LabelRequestMessage
LabelWithdraw
撤消FEC/Label映射
LabelRelease
释放标签
Notificationmessage
Notification
通知LDPPeer错误信息
这些消息实体被封装在TCP/UDP报文里面;
LDP状态机:
配置实例:
LDP
网络拓扑:
IP地址分配表:
设备名
接口
IP
R1
LoopBack0
GigabitEthernet0/0/0
R2
LoopBack0
GigabitEthernet0/0/0
GigabitEthernet0/0/1
GigabitEthernet0/0/2
R3
LoopBack0
GigabitEthernet0/0/0
GigabitEthernet0/0/1
R4
LoopBack0
GigabitEthernet0/0/0
GigabitEthernet0/0/1
R5
LoopBack0
GigabitEthernet0/0/0
GigabitEthernet0/0/1
GigabitEthernet0/0/2
R6
LoopBack0
GigabitEthernet0/0/0
GigabitEthernet0/0/2
R7
LoopBack0
GigabitEthernet0/0/2
配置命令:
Step1:
配置各设备的接口IP;(配置过程省略);
Step2:
配置单播路由协议;(我这里采用OSPF,配置过程省略)
Step3:
使能MPLS:
R2:
全局模式下:
//这里的lsr-id一般指定为环回口地址;否则会带来麻烦;跟OSPF和BGP的RID不太一样;
mpls
mplsldp
接口模式下:
interfaceGigabitEthernet0/0/1
mpls
mplsldp
#
interfaceGigabitEthernet0/0/2
ospfldp-sync//因为存在冗余链路,为了防止高级应用如MPLS-VPN丢包,这里需要配置IGP同步;主要在主链路上配置;
mpls
mplsldp
R3、R4、R5、R6以此类推;(配置过程省略)
注:
环回口不需要使能MPLS;
查看MPLS表项:
查看LDPSession:
displaymplsldpsession
[R2]displaymplsldpsession
LDPSession(s)inPublicNetwork
Codes:
LAM(LabelAdvertisementMode),SsnAgeUnit(DDDD:
HH:
MM)
A'*'beforeasessionmeansthesessionisbeingdeleted.
------------------------------------------------------------------------------
PeerIDStatusLAMSsnRoleSsnAgeKASent/Rcv
------------------------------------------------------------------------------
OperationalDUPassive0000:
00:
45183/183
OperationalDUPassive0000:
00:
45182/182
------------------------------------------------------------------------------
TOTAL:
2session(s)Found.
如:
注:
一定要看到Status为“Operational”才说明会话建立成功;
查看LDP邻居表:
displaymplsldppeer
[R2]displaymplsldppeer
LDPPeerInformationinPublicnetwork
A'*'beforeapeermeansthepeerisbeingdeleted.
------------------------------------------------------------------------------
PeerIDTransportAddressDiscoverySource
------------------------------------------------------------------------------
------------------------------------------------------------------------------
TOTAL:
2Peer(s)Found.
如:
查看LDP的LSP表:
displaymplsldplsp
[R2]displaymplsldplsp
LDPLSPInformation
-------------------------------------------------------------------------------
DestAddress/MaskIn/OutLabelUpstreamPeerNextHopOutInterface
-------------------------------------------------------------------------------
*Liberal
*Liberal
*Liberal
*Liberal
*Liberal
*Liberal
-------------------------------------------------------------------------------
TOTAL:
14NormalLSP(s)Found.
TOTAL:
6LiberalLSP(s)Found.
TOTAL:
0FrrLSP(s)Found.
A'*'beforeanLSPmeanstheLSPisnotestablished
A'*'beforeaLabelmeanstheUSCBorDSCBisstale
A'*'beforeaUpstreamPeermeansthesessionisstale
A'*'beforeaDSmeansthesessionisstale
A'*'beforeaNextHopmeanstheLSPisFRRLSP
注:
该表并不是用来转发的数据库,它只是保存了所有生成的标签表,凡是带*号的条目表示不是最优的,LDP将不会放到转发信息数据库中;
[R2]displaymplslsp
-------------------------------------------------------------------------------
LSPInformation:
LDPLSP
-------------------------------------------------------------------------------
FECIn/OutLabelIn/OutIFVrfName
查看LSP标签表:
displaymplslsp
该表中的标签将会放入FIB表中进行转发;
查看FIB(转发信息数据库)表:
displayfib
[R2]displayFIB
RouteFlags:
G-GatewayRoute,H-HostRoute,U-UpRoute
S-StaticRoute,D-DynamicRoute,B-BlackHoleRoute
L-VlinkRoute
--------------------------------------------------------------------------------
FIBTable:
TotalnumberofRoutes:
25
Destination/MaskNexthopFlagTimeStampInterfaceTunnelID
数据包在进行转发的时候就以据这张表来决定是采用标签方式转发还是用使用传统的IP转发;
TunnelID来决定,如果TunnelID为0x0表示采用传统的IP路由转发数据包;
如果从R1去访问R5的这个地址,路由器发现TunnelID为0x9(即非0值),则路由器采用标签转发方式,并在R2上PUSH标签3(PHP),此时POP标签以IP路由形式转发到R5中,R5收到没有标签的数据包则跟据IP路由表进行转发;
因为R2上有冗余链路,以据可达的Next-Hop原则所以R2选择了R6为转发路由器;(因为OSPF选择了最优路径Next-Hop为)
LDP分配原则:
1)路由器LDP会为/32主机路由分配标签;(前提:
设备从/32路由的下一跳设备得到了标签)
2)如果通过多个邻居收到一个FEC的标签,设备会使用本FEC(前缀)下一跳设备分配的标签;
配置实例:
MPLS-VPN
网络拓扑:
IP地址分配表:
设备名
接口
IP
PEA
LoopBack0
GigabitEthernet0/0/0
GigabitEthernet0/0/1
P1
LoopBack0
/32
GigabitEthernet0/0/0
/24
Serial1/0/0
/24
P2
LoopBack0
GigabitEthernet0/0/0
Serial1/0/0
PEB
LoopBack0
GigabitEthernet0/0/0
GigabitEthernet0/0/1
CEA
LoopBack0
GigabitEthernet0/0/0
GigabitEthernet0/0/1
CEB
LoopBack0
GigabitEthernet0/0/0
GigabitEthernet0/0/1
SWA
Vlanif10
Vlanif100
SWB
Vlanif20
Vlanif100
配置命令:
Step1:
配置各设备的接口IP;(配置过程省略);
Step2:
配置单播路由协议;(我们这里采用OSPF,配置过程省略)
Step3:
使能MPLS:
PEA:
全局模式下:
mplslsr-id
mpls
mplsldp
接口模式下:
interfaceGigabitEthernet0/0/0
mpls
mplsldp
P1、P2、PEB以此类推;(配置过程省略)
Step4:
配置VPN实例:
在PE路由器全局模式下:
Ipvpn-instancexh
ipv4-family
route-distinguisher100:
10//配置路由区分器
vpn-target100:
14export-extcommunity//配置出向RT值
vpn-target100:
14import-extcommunity//配置进向RT值
接口模式下:
把连接CE路由的接口加入到实例当中;
interfaceGigabitEthernet0/0/1
ipbindingvpn-instancexh
Step5:
配置MP-BGP:
在PE路由器全局模式下:
PEA:
PEB类似;
bgp100
undodefaultipv4-unicast
peerconnect-interfaceLoopBack0
ipv4-familyunicast
undosynchronization
ipv4-familyvpnv4
policyvpn-target
Step5:
配置实例的路由协议:
PEA:
PEB类似
ospf10vpn-instancexh
bandwidth-reference10000
Step6:
路由引入:
PEA:
PEB类似
//在虚拟路由器中引入BGP路由
ospf10vpn-instancexh
import-routebgp//引入MP-BGP中的路由
//在路由器中引入虚拟路由器中的路由
bgp100
ipv4-familyvpn-instancexh
import-routeospf10
数据转发原理:
例如:
我们用PCA主机去PingPCB主机的地址;
0/24的TunnelID,发现其值为非0值,比如我这里是0x5(disfibvpn-instancexh),此时压上内层标签1035(dismplslspvpn-instancexh)并将S位置“1”,然后跟据TunnelID0x5去查找MPLS的外层转发表项FIB(disfib的表FEC的TunnelID为0x5,此时压上外层标签1026(dismplslsp当转到P2-Label-Label正好为1035,并且Out-Label为NULL(即0,显示空标签),此时将底层标签弹出,并根据虚拟路由器的IP路由表将ICMP的报文转发出去,并最终到达主机PCB;
注:
如果CE路由器也使用的是BGP协议,那么引入路由的命令如下:
PEA:
bgp100
ipv4-familyvpn-instancexh
peeras-number65410
bgp65410
peeras-number100
这是一种比常见的方式;