MPLSVPN学习笔记之令狐采学创编.docx
《MPLSVPN学习笔记之令狐采学创编.docx》由会员分享,可在线阅读,更多相关《MPLSVPN学习笔记之令狐采学创编.docx(16页珍藏版)》请在冰豆网上搜索。
MPLSVPN学习笔记之令狐采学创编
欧阳光明(2021.03.07)
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的路由器上报文格式:
位于2.5层
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方向):
Static-lspingress名字destinationx.x.x.x32nexthopx.x.x.xout-lable标签号;
P(transit):
Static-lsptransit名字incoming-interface接口号in-label标签号nexthopx.x.x.xout-label标签号;
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并发现邻居
使用组播地址:
224.0.0.2(只有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
1.1.1.1/32
GigabitEthernet0/0/0
12.12.12.1/24
R2
LoopBack0
2.2.2.2/32
GigabitEthernet0/0/0
12.12.12.2/24
GigabitEthernet0/0/1
23.23.23.2/24
GigabitEthernet0/0/2
26.26.26.2/24
R3
LoopBack0
3.3.3.3/32
GigabitEthernet0/0/0
34.34.34.3/24
GigabitEthernet0/0/1
23.23.23.3/24
R4
LoopBack0
4.4.4.4/32
GigabitEthernet0/0/0
34.34.34.4/24
GigabitEthernet0/0/1
45.45.45.4/24
R5
LoopBack0
5.5.5.5/32
GigabitEthernet0/0/0
56.56.56.5/24
GigabitEthernet0/0/1
45.45.45.5/24
GigabitEthernet0/0/2
57.57.57.5/24
R6
LoopBack0
6.6.6.6/32
GigabitEthernet0/0/0
56.56.56.6/24
GigabitEthernet0/0/2
26.26.26.6/24
R7
LoopBack0
7.7.7.7/32
GigabitEthernet0/0/2
57.57.57.7/24
配置命令:
Step1:
配置各设备的接口IP;(配置过程省略);
Step2:
配置单播路由协议;(我这里采用OSPF,配置过程省略)
Step3:
使能MPLS:
R2:
全局模式下:
mplslsr-id2.2.2.2
//这里的lsr-id一般指定为环回口地址;否则会带来麻烦;跟OSPF和BGP的RID不太一样;
mpls
mplsldp
接口模式下:
interfaceGigabitEthernet0/0/1
ipaddress23.23.23.2255.255.255.0
mpls
mplsldp
#
interfaceGigabitEthernet0/0/2
ipaddress26.26.26.2255.255.255.0
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
------------------------------------------------------------------------------
3.3.3.3:
0OperationalDUPassive0000:
00:
45183/183
6.6.6.6:
0OperationalDUPassive0000:
00:
45182/182
------------------------------------------------------------------------------
TOTAL:
2session(s)Found.
如:
注:
一定要看到Status为“Operational”才说明会话建立成功;
查看LDP邻居表:
displaymplsldppeer
[R2]displaymplsldppeer
LDPPeerInformationinPublicnetwork
A'*'beforeapeermeansthepeerisbeingdeleted.
------------------------------------------------------------------------------
PeerIDTransportAddressDiscoverySource
------------------------------------------------------------------------------
3.3.3.3:
03.3.3.3GigabitEthernet0/0/1
6.6.6.6:
06.6.6.6GigabitEthernet0/0/2
------------------------------------------------------------------------------
TOTAL:
2Peer(s)Found.
如:
查看LDP的LSP表:
displaymplsldplsp
[R2]displaymplsldplsp
LDPLSPInformation
-------------------------------------------------------------------------------
DestAddress/MaskIn/OutLabelUpstreamPeerNextHopOutInterface
-------------------------------------------------------------------------------
2.2.2.2/323/NULL3.3.3.3127.0.0.1InLoop0
2.2.2.2/323/NULL6.6.6.6127.0.0.1InLoop0
*2.2.2.2/32Liberal/1024DS/3.3.3.3
*2.2.2.2/32Liberal/1024DS/6.6.6.6
3.3.3.3/32NULL/3-23.23.23.3GE0/0/1
3.3.3.3/321024/33.3.3.323.23.23.3GE0/0/1
3.3.3.3/321024/36.6.6.623.23.23.3GE0/0/1
*3.3.3.3/32Liberal/1025DS/6.6.6.6
4.4.4.4/32NULL/1025-23.23.23.3GE0/0/1
4.4.4.4/321025/10253.3.3.323.23.23.3GE0/0/1
4.4.4.4/321025/10256.6.6.623.23.23.3GE0/0/1
*4.4.4.4/32Liberal/1026DS/6.6.6.6
5.5.5.5/32NULL/1027-26.26.26.6GE0/0/2
5.5.5.5/321026/10273.3.3.326.26.26.6GE0/0/2
5.5.5.5/321026/10276.6.6.626.26.26.6GE0/0/2
*5.5.5.5/32Liberal/1026DS/3.3.3.3
6.6.6.6/32NULL/3-26.26.26.6GE0/0/2
6.6.6.6/321027/33.3.3.326.26.26.6GE0/0/2
6.6.6.6/321027/36.6.6.626.26.26.6GE0/0/2
*6.6.6.6/32Liberal/1027DS/3.3.3.3
-------------------------------------------------------------------------------
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
2.2.2.2/323/NULL-/-
3.3.3.3/32NULL/3-/GE0/0/1
3.3.3.3/321024/3-/GE0/0/1
4.4.4.4/32NULL/1025-/GE0/0/1
4.4.4.4/321025/1025-/GE0/0/1
5.5.5.5/32NULL/1027-/GE0/0/2
5.5.5.5/321026/1027-/GE0/0/2
6.6.6.6/32NULL/3-/GE0/0/2
6.6.6.6/321027/3-/GE0/0/2
查看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
6.6.6.6/3226.26.26.6DGHUt[197]GE0/0/20xb
1.1.1.1/3212.12.12.1DGHUt[197]GE0/0/00x0
5.5.5.5/3226.26.26.6DGHUt[197]GE0/0/20x9
7.7.7.7/3226.26.26.6DGHUt[197]GE0/0/20x0
4.4.4.4/3223.23.23.3DGHUt[186]GE0/0/10x3
3.3.3.3/3223.23.23.3DGHUt[169]GE0/0/10x1
12.12.12.255/32127.0.0.1HUt[146]InLoop00x0
12.12.12.2/32127.0.0.1HUt[146]InLoop00x0
26.26.26.255/32127.0.0.1HUt[141]InLoop00x0
26.26.26.2/32127.0.0.1HUt[141]InLoop00x0
23.23.23.255/32127.0.0.1HUt[119]InLoop00x0
23.23.23.2/32127.0.0.1HUt[119]InLoop00x0
2.2.2.2/32127.0.0.1HUt[96]InLoop00x0
255.255.255.255/32127.0.0.1HUt[84]InLoop00x0
127.255.255.255/32127.0.0.1HUt[84]InLoop00x0
127.0.0.1/32127.0.0.1HUt[84]InLoop00x0
127.0.0.0/8127.0.0.1Ut[84]InLoop00x0
23.23.23.0/2423.23.23.2Ut[119]GE0/0/10x0
26.26.26.0/2426.26.26.2Ut[141]GE0/0/20x0
12.12.12.0/2412.12.12.2Ut[146]GE0/0/00x0
34.34.34.0/2423.23.23.3DGUt[182]GE0/0/10x0
57.57.57.0/2426.26.26.6DGUt[197]GE0/0/20x0
56.56.56.0/2426.26.26.6DGUt[197]GE0/0/20x0
45.45.45.0/2423.23.23.3DGUt[197]GE0/0/10x0
45.45.45.0/2426.26.26.6DGUt[197]GE0/0/20x0
数据包在进行转发的时候就以据这张表来决定是采用标签方式转发还是用使用传统的IP转发;
如:
从R1去访问R7的7.7.7.7这个地址,以据FIB表项中的TunnelID来决定,如果TunnelID为0x0表示采用传统的IP路由转发数据包;
如果从R1去访问R5的5.5.5.5这个地址,路由器发现TunnelID为0x9(即非0值),则路由器采用标签转发方式,并在R2上PUSH标签1027转发给R6,R6在自己的LSR表中发现5.5.5.5的下一跳标签值为3(PHP),此时POP标签以IP路由形式转发到R5中,R5收到没有标签的数据包则跟据IP路由表进行转发;
因为R2上有冗余链路,以据5.5.5.5的可达的Next-Hop原则所以R2选择了R6为转发路由器;(因为OSPF选择了最优路径Next-Hop为26.26.26.6)
LDP分配原则:
1)路由器LDP会为/32主机路由分配标签;(前提:
设备从/32路由的下一跳设备得到了标签)
2)如果通过多个邻居收到一个FEC的标签,设备会使用本FEC(前缀)下一跳设备分配的标签;
配置实例:
MPLS-VPN
网络拓扑:
IP地址分配表:
设备名
接口
IP
PEA
LoopBack0
1.1.1.1/32
GigabitEthernet0/0/0
12.12.12.1/24
GigabitEthernet0/0/1
15.15.15.1/24
P1
LoopBack0
2.2.2.2/32
GigabitEthernet0/0/0
12.12.12.2/24
Serial1/0/0
23.23.23.2/24
P2
LoopBack0
3.3.3.3/32
GigabitEthernet0/0/0
34.34.34.3/24
Serial1/0/0
23.23.23.3/24
PEB
LoopBack0
4.4.4.4/32
GigabitEthernet0/0/0
34.34.34.4/24
GigabitEthernet0/0/1
46.46.46.4/24
CEA
LoopBack0
10.5.5.5/32
GigabitEthernet0/0/0
10.10.5.5/24
GigabitEthernet0/0/1
15.15.15.5/24
CEB
LoopBack0
10.6.6.6/32
GigabitEthernet0/0/0
10.20.6.6/24
GigabitEthernet0/0/1
46.46.46.6/24
SWA
Vlanif10
192.168.10.1/24
Vlanif100
10.10.5.1/24
SWB
Vlanif20
192.168.20.1/24
Vlanif100
10.20.6.1/24
配置命令:
Step1:
配置各设备的接口IP;(配置过程省略);
Step2:
配置单播路由协议;(我们这里采用OSPF,配置过程省略)
Step3:
使能MPLS:
PEA:
全局模式下:
mplslsr-id1.1.1.1
mpls
mplsldp
接口模式下:
interfaceGigabitEthernet0/0/0
ipaddress12.12.12.1255.255.255.0
mpls
mplsldp
P1、P2、