MPLS:
MPLS位于TCP/IP协议栈中的数据链路层和网络层之间,可以向所有网络层提供服务。 通过在数据链路层和网络层之间增加额外的MPLS头部,基于MPLS头部实现数据快速转发
MPLS起源于IPv4(Internet Protocol version 4),其核心技术可扩展到多种网络协议,包括IPv6(Internet Protocol version 6)、IPX(Internet Packet Exchange)、Appletalk、DECnet、CLNP(Connectionless Network Protocol)等。MPLS中的“Multiprotocol”指的就是支持多种网络协议。 MPLS以标签交换替代IP转发。标签是一个短而定长的、只具有本地意义的标识符。
MPLS是一种根根据标签报文中携带的短而定长的标签来转发数据的技术。 MPLS的一个基本概念就是两台LSR必须对在它们之间转发的数据的标签使用上“达成共识”。
MPLS-ldp:
LSR之间可以运行标签分发协议(Label Distribution Protocol,LDP)来告知其他LSR本设备上的标签绑定信息,从而实现标签报文的正确转发。
LDP是MPLS的一种控制协议,相当于传统网络中的信令协议,负责FEC的分类、标签的分配以及LSP的建立和维护等操作。LDP规定了标签分发过程中的各种消息以及相关处理过程。
LDP的工作过程主要分为两部分:
LSR之间建立LDP会话。
LSR之间基于LDP会话动态交换标签与FEC的映射信息,并根据标签信息建立LSP。
LSR之间交互标签绑定消息之前必须建立LDP会话。LDP会话可以分为。
本地LDP会话(Local LDP Session):建立会话的两个LSR之间是直连的。
远程LDP会话(Remote LDP Session):建立会话的两个LSR之间可以是直连的,也可以是非直连的。
两台LSR之间交互Hello消息之后,即建立起邻接体(Adjacency)关系、
在建立邻接体关系的基础上,两台LSR之间交互LDP会话消息,建立起LDP会话,两台设备之间形成LDP对等体关系。
VPN(Virtual Private Network,虚拟专用网络):
指的是在一个公共网络中实现虚拟的专用网络,从而使得用户能够基于该专用网络实现通信的技术。这是一种被业界广泛使用的三层VPN。
BGP/MPLS IP VPN网络一般由运营商搭建,VPN用户购买VPN服务来实现用户网络之间的路由传递、数据互通等。 MPLS VPN使用BGP在运营商骨干网(IP网络)上发布VPN路由,使用MPLS在运营商骨干网上转发VPN报文。BGP/MPLS IP VPN又被简称为MPLS VPN,是一种常见的L3VPN(Layer 3 VPN)技术。
MPLS综合实验:
一 实验要求:
(设备CE 1与 设备PE 1之间为ospf协议:设备CE 3 与 设备PE 1Z 之间为bgp协议:
设备CE 2 与 设备PE 2之间为is-is协议:设备CE 4 与 设备PE 2 之间为静态)
1.通过MPLS-VPN,实现两个企业网的总部与分部的互通
2.企业网中,公司A与公司B为企业合作关系,所以两个总部之间需要建立互通
实验目的:
1.通过MPLS-VPN,实现两个企业网的总部与分部的互通
配置公司A总部与公司分部的互通
路由传递过程,观察路由条目变化
一 基本操作配置:
(1)在运营商网路(pe1-- p -- pe2 ),完成基本配置:
设备PE 1:
[PE 1]int Serial 2/0/0
[PE 1-Serial2/0/0]ip add 14.0.0.2 24
[PE 1-Serial2/0/0]q
[PE 1]int LoopBack 0 //:本地环回地址(1.这里要做后面的ldp的,
2.pe之间形成ip对等体,作为跟系源地址)
[PE 1-LoopBack0]ip add 2.2.2.2 24 //: (掩码24:ospf一般认为32位,所以可以无所谓。
而IS-IS中必须写32位 )
(ldp中默认下只给32位的分发标签)
[PE 1]ospf 1 router-id 2.2.2.2
[PE 1-ospf-1]area 0
[PE 1-ospf-1-area-0.0.0.0]net 14.0.0.0 0.0.0.255
[PE 1-ospf-1-area-0.0.0.0]net 2.2.2.0 0.0.0.255
设备P:
[P]int s2/0/1
[P-Serial2/0/1]ip add 14.0.0.1 24
[P-Serial2/0/1]int s2/0/0
[P-Serial2/0/0]ip add 17.0.0.1 24
[P-Serial2/0/0]q
[P]int LoopBack 0
[P-LoopBack0]ip add 1.1.1.1 24
[P]ospf 1 router-id 1.1.1.1
[P-ospf-1]area 0
[P-ospf-1-area-0.0.0.0]net 14.0.0.0 0.0.0.255
[P-ospf-1-area-0.0.0.0]net 1.1.1.0 0.0.0.255
[P-ospf-1-area-0.0.0.0]net 17.0.0.0 0.0.0.255
设备PE 2:
[PE 2]int s2/0/1
[PE 2-Serial2/0/1]ip add 17.0.0.3 24
[PE 2-Serial2/0/1]q
[PE 2]int LoopBack 0
[PE 2-LoopBack0]ip add 3.3.3.3 24
[PE 2-LoopBack0]q
[PE 2]ospf 1 router-id 3.3.3.3
[PE 2-ospf-1]area 0
[PE 2-ospf-1-area-0.0.0.0]net 17.0.0.0 0.0.0.255
[PE 2-ospf-1-area-0.0.0.0]net 3.3.3.0 0.0.0.255
[P-ospf-1]dis ospf peer brief //:查看ospf邻居是否建立成功(有两个邻居)
建立两个PE之间VPNv4对等体:
[PE 1]bgp 123
[PE 1-bgp]router-id 2.2.2.2
[PE 1-bgp]peer 3.3.3.3 as 123
[PE 1-bgp]peer 3.3.3.3 connect-interface LoopBack 0
[PE 1-bgp]ipv4-family v4
[PE 1-bgp-af-v4]peer 3.3.3.3 enable
[PE 2]bgp 123
[PE 2-bgp]router-id 3.3.3.3
[PE 2-bgp]peer 2.2.2.2 as 123
[PE 2-bgp]peer 2.2.2.2 connect-interface LoopBack 0
[PE 2-bgp]ipv4-family v4
[PE 2-bgp-af-v4]peer 2.2.2.2 enable
[PE 2]dis bgp peer//:查看bgp建立的对等体 ( State PrefRcv 为 Established状态)
二:配置运营商的stp和NPR
要求:
CE 1与PE 1之间用ospf,CE 2与PE 2 之间使用is-is,
CE 3与pe 1之间使用 bgp,CE 4与pe 2 之间使用静态。
[PE 1]ip -instance a
[PE 1--instance-a]route-distinguisher 123:1
[PE 1--instance-a-af-ipv4]-target 123:1
IVT Assignment result:
Info: VPN-Target assignment is successful.
EVT Assignment result:
Info: VPN-Target assignment is successful.
(出现两个提示,这里会形成两个值 export和import ,)
这里就会形成实例
[PE 1-GigabitEthernet0/0/0]ip binding -instance a
//:在接口下绑定实例 a
(注意:一般情况,操作是先帮定后配置,不然会替换掉)
[PE 1-GigabitEthernet0/0/0]ip add 12.0.0.2 24 //:重新加入IP地址
(原来的被覆盖了,需要重新加入IP地址)
要求:
(1)pe1 与ce 1起用ospf
[CE 1]int g0/0/0
[CE 1-GigabitEthernet0/0/0]ip add 12.0.0.4 24
[CE 1-GigabitEthernet0/0/0]int g0/0/1
[CE 1-GigabitEthernet0/0/1]ip add 172.16.1.254 24
[CE 1]ospf 1 router-id 4.4.4.4
[CE 1-ospf-1]area 0
[CE 1-ospf-1-area-0.0.0.0]net 172.16.1.0 0.0.0.255
[CE 1-ospf-1-area-0.0.0.0]net 12.0.0.0 0.0.0.255
[PE 1]ospf 2 router-id 1.1.1.1 -instance a //: 在进程绑定
项目中问题:(1)找到172.16.1.0/24路由条目
[PE 1]dis ip routing-table
(这里查看后没有172.16.1.0/24 的条目,
由于pe 1中物理接口有VPN实例a 绑定,路由条目无法在ip路由表现实)
[PE 1]dis ip routing-table -instance a //:查看vrf表(与全局表没有区别)
//:172.16.1.0/24存在这里
[PE 1]dis bgp v4 all routing-table //:查看VPNv4表
(这里没有路由,可以需要通过手工策略产生)
[PE 1]bgp 123
[PE 1-bgp]ipv4-family -instance a
[PE 1-bgp-a]import-route ospf 2
[PE 1-bgp-a]dis bgp v4 all routing-table
再查看就会显示VPNv4的路由条目等信息
[PE 2]dis bgp v4 all routing-table
在pe 2上查看不会出现,
(如果要接受到,需要VPN实例,)
写入VPN实例:
[PE 2]ip -instance a
[PE 2--instance-a]route-distinguisher 123:2 //:123:2为DR值
[PE 2--instance-a-af-ipv4]-target 123:1
(这里没有隧道迭代,所以无法显示,在第三部后面可以查看)
配置运营商MPLS协议:
(1)配置mpls-ldp
[PE 1]mpls lsr-id 2.2.2.2
[PE 1]mpls
[PE 1-mpls]q
[PE 1] mpls ldp
[PE 1-mpls-ldp]q
[PE 1]int s2/0/0
[PE 1-Serial2/0/0]mpls
[PE 1-Serial2/0/0]mpls ldp //:开启MPLS-ldp
[P]mpls lsr-id 1.1.1.1
[P]mpls
[P-mpls]mpls ldp //:开启MPLS-ldp
[P-mpls-ldp]int s2/0/1
[P-Serial2/0/1]mpls
[P-Serial2/0/1]mpls ldp
[P-Serial2/0/1]int s2/0/0 //:接口下启用ldp
[P-Serial2/0/0]mpls
[P-Serial2/0/0]mpls ldp //:接口下启用ldp
[PE 2]mpls ls
[PE 2]mpls lsr-id 3.3.3.3
[PE 2]mpls
[PE 2-mpls]mpls ldp
[PE 2-mpls-ldp]int s2/0/1
[PE 2-Serial2/0/1]mpls
[PE 2-Serial2/0/1]mpls ldp
[P]dis mpls ldp session
(如果配置没有问题,就会形成隧道迭代,形成后就能进行隧道迭代)
[PE 2]dis bgp v4 all routing-table
(以上中做完后在pe 2 中查看会出现路由信息)
要求:
(2)CE 2与PE 2 之间使用is-is,
[PE 2]int g0/0/0
[PE 2-GigabitEthernet0/0/0]ip binding -instance a
Info: All IPv4 related configurations on this interface are removed!
Info: All IPv6 related configurations on this interface are removed!
[PE 2-GigabitEthernet0/0/0]ip add 16.0.0.3 24
[PE 2]isis 1 -instance a
[PE 2-isis-1]network-entity 49.0001.0000.0000.0003.00
[PE 2-GigabitEthernet0/0/0]isis enable
[CE 2]isis
[CE 2-isis-1]network-entity 49.0001.0000.0000.0006.00
[CE 2-isis-1]int g0/0/0
[CE 2-GigabitEthernet0/0/0]isis enable
[CE 2-GigabitEthernet0/0/0]int g0/0/1
[CE 2-GigabitEthernet0/0/1]isis enable
[CE 2]dis isis peer//;查看ISIS建立的邻居表
[PE 2]dis ip routing-table -instance a
(这里的172.16.1.0/24 IBGP 是 bgp路由,
如果pe2路由要传给CE 2路由,就需要把bgp路由引入ISIS中)
[PE 2]isis
[PE 2-isis-1]import-route bgp //:bgp引入到ISIS中
[CE 2]dis ip routing-table //:此时查看后就会有路由条目
172.16.1.0/24 ISIS-L2 15 74 D 16.0.0.3 GigabitEthernet 0/0/0
[PE 2]dis ip routing-table -instance a
172.16.2.0/24 ISIS-L1 15 20 D 16.0.0.6 GigabitEthernet 0/0/0
做完后,pe2 上已经学习到172.16.2.0/24 的路由条目
(要让pe1学习到172.16.2.0/24 )
[PE 2]bgp 123
[PE 2-bgp]ipv4-family -instance a
[PE 2-bgp-a]import-route isis 1 //:把ISIS 1引入到VPNv4 a 中
(把路由条目变成VPNv4路由)
[PE 2-bgp-a]dis bgp v4 all routing-table
重新查看后会出现路由条目
*> 172.16.2.0/24 0.0.0.0 20 0 ?
数据抓包查看:查看有无label标签
[PE 1]dis bgp v4 all routing-table
查看后有路由条目
(要让CE1学习到172.16.2.0/24 )
[PE 1]ospf 2
[PE 1-ospf-2]import-route bgp //:把bgp引入到ospf中
[PE 1-ospf-2]dis ip routing-table -instance a
查看出现有路由条目
PC1中检测是否连通
PC>ping 172.16.2.1
[PE 1]dis mpls lsp
3.3.3.3/32 NULL/1025 -/S2/0/0
3.3.3.3/32 1027/1025 -/S2/0/0
注意:在以上配置中,p设备中没有过多设置,最后结果也会ping通
是因为路由条目是打上过标签(配置后设备自动打标签)
以上为路由传递过程
写入VPN实例B:
[PE 1]ip -instance B
[PE 1--instance-B]route-distinguisher 123:3
[PE 1--instance-B-af-ipv4]-target 123:4
[PE 1]int g0/0/1
[PE 1-GigabitEthernet0/0/1]ip binding -instance B
[PE 1-GigabitEthernet0/0/1]ip add 13.0.0.2 24
[PE 1]bgp 123
[PE 1-bgp]ipv4-family -instance B
[PE 1-bgp-B]peer 13.0.0.5 as 5
(如果CE1 和pe1 是EBGP对等体,就可以不需要引入动作,)
[CE 3]int g0/0/1
[CE 3-GigabitEthernet0/0/1]ip add 192.168.1.254 24
[CE 3-GigabitEthernet0/0/0]ip add 13.0.0.5 24
[CE 3-GigabitEthernet0/0/0]bgp 5
[CE 3-bgp]router-id 5.5.5.5
[CE 3-bgp]peer 13.0.0.2 as 123
[CE 3-bgp]net 192.168.1.0 24
[PE 1]dis bgp v4 all routing-table//:在pe1中可以查看条目 会出现路由条目
[PE 2]dis bgp v4 all routing-table//:在pe2 中这时没有路由条目
pe1与pe2 之间:
这里需要写入实例B:
[PE 2]ip -instance B
[PE 2--instance-B]route-distinguisher 123:5
[PE 2--instance-B-af-ipv4]-target 123:4 (123:4,要与上游的对应)
[PE 2--instance-B-af-ipv4]dis bgp v4 all routing-table
Total Number of Routes: 1
Network NextHop MED LocPrf PrefVal Path/Ogn
*>i 192.168.1.0 2.2.2.2 0 100 0 5i
写入后就会形成路由条目
(4)pe2与CE4之间(静态):
写入静态:
[PE 2]ip route-static -instance B 192.168.2.0 24 19.0.0.7
[PE 2-GigabitEthernet0/0/1]ip binding -instance B
[PE 2-GigabitEthernet0/0/1]ip add 19.0.0.3 24
[CE 4]int g0/0/0
[CE 4-GigabitEthernet0/0/0]ip add 19.0.0.7 24
[CE 4-GigabitEthernet0/0/0]int g0/0/1
[CE 4-GigabitEthernet0/0/1]ip add 192.168.2.254 24
[CE 4]ip route-static 192.168.1.0 24 19.0.0.3
[PE 2]dis bgp v4 all routing-table
//:这时的表里还没有192.168.2.0/24的路由条目
[PE 2]bgp 123
[PE 2-bgp]ipv4-family -instance B
[PE 2-bgp-B]import-route static //:引入直连
[PE 2]dis bgp v4 all routing-table
//:查看后就会形成192.168.2.0/24的路由条目
[CE 3]dis bgp routing-table
//:查看后就会形成192.168.2.0/24的路由条目
二 项目实验:
2.企业网中,公司A与公司B为企业合作关系,所以两个总部之间需要建立互通,
而不能访问分部。
操作配置:
建立私网路由交叉:
[PE 1]ip -instance B
[PE 1--instance-B]-target 123:1 import-extcommunity
[PE 1]IP -instance a
[PE 1--instance-a]-target 123:1 import-extcommunity
公司总部之间可以互通,但无法访问他公司的分部(没有rt值)