MPLS是多协议标签交换的简称,它用短而定长的标签来封装网络层分组。MPLS最初是为提高路由器的转发速度而提出一个协议。
GRE协议是对某些网络层协议的数据报进行封装,使这些被封装的数据报能够在另一个网络层协议中传输。GRE是×××的第三层隧道协议,在协议层之间采用了一种被称之为Tunnel的技术。
MPLS在×××中的应用,用MPLS为转发通道运行私网流量,使一个运营商的网络可以同时支撑多个不同客户的IP ×××,这样就要求运营商的网络全程支持MPLS转发。但是在实际运用中,有时由于网络规划的原因,运营商网络的中间设备并不支持MPLS功能,而基本的BGP/MPLS ×××是要求所用到的运营商设备全程支持MPLS功能才可以,这样采用基本的BGP/MPLS ×××方法就行不通了,此时GRE的应用很好的解决了这个问题,只需要运营商边缘设备支持MPLS转发就能实现功能。而且GRE只需要保证两端网络类型相同,中间可以穿越其他类型的网络,也降低了对运营商网络的要求。
下面通过实验来看MPLS ××× overGRE和普通的MPLS×××的区别
一、普通MPLS ×××
实验拓扑
运营商内运行ISIS,宣告环回口;两个PE分别和CE运行OSPF;两个PE之间建立MP-iBGP邻居;PE1、P、PE2之间建立LDP邻居。
基本配置
CE1:
interface FastEthernet0/0
ip address 10.10.11.2255.255.255.252
duplex auto
speed auto
!
router ospf 100
router-id4.4.4.4
log-adjacency-changes
network 10.10.11.20.0.0.0 area 0
CE2:
interface Loopback100
ip address10.10.10.100 255.255.255.255
ip ospf 100 area0
!
interface FastEthernet3/0
ip address 10.10.22.2255.255.255.252
duplex auto
speed auto
!
router ospf 100
router-id5.5.5.5
log-adjacency-changes
network 10.10.22.20.0.0.0 area 0
PE1:
ip cef
!
ip vrf ×××A
rd 100:100
route-target export100:100
route-target import100:100
!
interface Loopback0
ip address 10.10.0.1255.255.255.255
ip router isis1
!
interface FastEthernet0/0
ip vrf forwarding×××A
ip address 10.10.11.1255.255.255.252
duplex auto
speed auto
!
interface FastEthernet1/0
ip address 10.10.12.1255.255.255.252
ip router isis1
duplex auto
speed auto
mpls label protocolldp
mpls ip
isis circuit-typelevel-2-only
!
interface FastEthernet2/0
no ipaddress
shutdown
duplex auto
speed auto
!
router ospf 100 vrf ×××A
router-id1.1.1.1
log-adjacency-changes
redistribute bgp 100subnets
network 10.10.11.10.0.0.0 area 0
!
router isis 1
net49.0001.1111.1111.00
is-typelevel-2-only
!
router bgp 100
bgp router-id1.1.1.1
no bgp defaultipv4-unicast
bgplog-neighbor-changes
neighbor 10.10.0.3remote-as 100
neighbor 10.10.0.3update-source Loopback0
!
address-family***v4
neighbor 10.10.0.3activate
neighbor 10.10.0.3send-community extended
exit-address-family
!
address-family ipv4vrf ×××A
redistribute ospf 100vrf ×××A match internal external 1 external 2
nosynchronization
exit-address-family
PE2:
ip vrf ×××A
rd 100:100
route-target export100:100
route-target import100:100
!
interface Loopback0
ip address 10.10.0.3255.255.255.255
ip router isis1
!
interface FastEthernet2/0
ip address 10.10.23.1255.255.255.252
ip router isis1
duplex auto
speed auto
mpls label protocolldp
mpls ip
!
interface FastEthernet3/0
ip vrf forwarding×××A
ip address 10.10.22.1255.255.255.252
duplex auto
speed auto
!
router ospf 100 vrf ×××A
router-id3.3.3.3
log-adjacency-changes
redistribute bgp 100subnets
network 10.10.22.10.0.0.0 area 0
!
router isis 1
net49.0003.3333.3333.00
is-typelevel-2-only
!
router bgp 100
bgp router-id3.3.3.3
no bgp defaultipv4-unicast
bgplog-neighbor-changes
neighbor 10.10.0.1remote-as 100
neighbor 10.10.0.1update-source Loopback0
!
address-family***v4
neighbor 10.10.0.1activate
neighbor 10.10.0.1send-community extended
exit-address-family
!
address-family ipv4vrf ×××A
redistribute ospf 100vrf ×××A match internal external 1 external 2
nosynchronization
exit-address-family
P:
interface Loopback0
ip address 10.10.0.2255.255.255.255
ip router isis1
!
interface FastEthernet1/0
ip address 10.10.12.2255.255.255.252
ip router isis1
duplex auto
speed auto
mpls label protocolldp
mpls ip
!
interface FastEthernet2/0
ip address 10.10.23.2255.255.255.252
ip router isis1
duplex auto
speed auto
mpls label protocolldp
mpls ip
!
router isis 1
net49.0002.2222.2222.00
is-typelevel-2-only
实验结果
1.控制平面
PE1上的标签转发表
2.转发平面
抓包结果:
实验拓扑
运营商内运行ISIS,宣告环回口;两个PE分别和CE运行OSPF;两个PE之间建立MP-iBGP邻居;PE1、PE2之间建立GRE隧道,并在隧道口上建立LDP邻居。
基本配置
PE1:
interface Tunnel0
ip address 10.10.13.1255.255.255.252
mpls label protocolldp
mpls ip
tunnel source10.10.12.1
tunnel destination10.10.23.1
ip route 10.10.0.3 255.255.255.25510.10.13.2
PE2:
interface Tunnel0
ip address 10.10.13.2255.255.255.252
mpls label protocolldp
mpls ip
tunnel source10.10.23.1
tunnel destination10.10.12.1
ip route 10.10.0.1 255.255.255.25510.10.13.1
注:建立LDP邻居的transport ip的路由必须又隧道口学到!!!
实验结果
1.控制平面
PE1的标签转发表
P由器不支持MPLS,从PE1到PE2通过GRE隧道只有一跳,所以PE2分给PE1关于10.10.0.3这条路由的公网标签为3,即PE1倒数第二跳弹出。
2.转发平面
抓包结果
数据包在转发时,MPLS数据包被封装在GRE头部里面,且由于通过隧道,数据包在转发过程中只有一层私标签。