MPLS
MPLS(多协议标签交换协议)打标签于二层与三层之间
MPLS域利用标签进行转发数据,接到数据包后利用提前分发好的标签表查看标签号进行转发,直到域内最后一个路由器上撕掉标签查看目标地址后进行正常转发(POP),一般在倒数第二跳时就弹出标签(PHP),便于最后一跳路由器上能够直接查看目标地址快速转发。
RIB表(路由表) 路由信息库,通过各种路由协议获取路由
LIB表 标签信息库,根据标签协议获取标签值
FIB表 转发信息库,根据RIB表生成,用于指导IP报文的转发
LFIB表 标签转发表,根据(FIB、LIB)表生成,用于在MPLS域内转发
LDP协议(标签分发协议)LDP建立邻居分为两个阶段:
发现邻居阶段(基于UDP)
会话建立阶段(基于TCP)
LDP的协议报文除Hello报文基于UDP外,其它报文都是在TCP之上,端口号为646。
MPLS转发过程
①数据包由IP域进入到MPLS 域,LER根据标签转发表压入标签(PUSH)。
②在MPLS域转发数据包时,LSR根据标签转发表替换标签(SWAP)。
③当数据包离开MPLS域时,LER是弹出标签(POP)。PHP:倒数第二跳弹出。
④在最后一跳将所有标签移除(Untag)。
CE(可以是三层交换机、路由器或PC客户端):与PE之间进行普通数据包的传递,可用动态协议或静态路由,与服务提供商直接相连
PE(MPLS边界路由器):进行数据包加标签的动作使之能够在MPLS域内利用标签转发数据,到达目标路由前于P设备进行PHP动作,到达出口PE时进行普通路由表查询然后转发数据包,负责VPN业务的接入
P(MPLS核心路由器):对加标签的数据包进行转发
MPLS运行的条件:需先利用IGP路由协议进行对域内路由的学习,建立域内完整的路由条目后,可利用MPLS进行数据包贴标签转发(打标签后转发比普通查路由表转发快)
PE如何判断是否为MPLS报文:根据二层协议字段
以太网:0x8847(单播)
0x8848(组播)
PPP:0x8281
MPLSCP,一种新的NCP协议。
L3 MPLS/VPN模型需要解决的问题:
如何做到同一台PE设备的不同客户CE设备之间的隔离? VRF
如何在PE设备与CE设备之间维护路由信息? RT值
如何在公网上传递客户私有路由? MP-BGP传递VPNV4路由实现
如何容许重叠的客户私有路由? RD值
如何在公网上转发客户数据? 标签传递
PE设备VRF
PE-CE间路由协议及PE设备路由重发布
骨干网络P与PE间IGP
骨干网络P与PE间LDP
PE设备之间MP-BGP
普通MPLSVPN环境:
PE-CE:用静态或者动态路由协议进行学习路由(这里用了OSPF)
PE-PE:用BGP利用环回建立邻居关系,更为稳定;
MPLS域内作为提供服务的运营商端,设备需存储并运行大量路由条目,普通的动态路由协议无法承载,这里用IS-IS,并运行LDP协议;
R1环回模拟主机1,R6环回模拟主机2;
R12之间为12网段,以此类推;
R2至R5各建立一个环回,R1环回为192.168.1.1/24,R6为192.168.2.1/24
CE1(R1)配置:
interface Loopback0
ip address 192.168.1.1 255.255.255.0
interface Ethernet0/1
ip address 12.1.1.1 255.255.255.0
router ospf 1
router-id 1.1.1.1
network 12.1.1.0 0.0.0.255 area 0
network 192.168.1.0 0.0.0.255 area 0
PE1(R2)配置:
ip vrf r2-r5
rd 1:1
route-target export 1:1
route-target import 1:1
interface Loopback0
ip address 2.2.2.2 255.255.255.255
ip router isis 1
interface Ethernet0/0
ip vrf forwarding r2-r5
ip address 12.1.1.2 255.255.255.0
interface Ethernet0/1
ip address 23.1.1.1 255.255.255.0
ip router isis 1
mpls label protocol ldp #将标签协议更改为公有LDP协议
mpls ip
router ospf 1 vrf r2-r5 #与CE间启用OSPF协议,需要加表到VRF空间上
router-id 2.2.2.2
redistribute bgp 1 subnets #将BGP路由条目(也就是主机2的路由)重发布进OSPF中,让CE1学习到
network 12.1.1.0 0.0.0.255 area 0
router isis 1 #MPLS域内启用IS-IS
net 49.0001.2222.2222.2222.00
router bgp 1
bgp router-id 2.2.2.2
bgp log-neighbor-changes
no bgp default ipv4-unicast #关闭默认传递IPV4路由
neighbor 5.5.5.5 remote-as 1
neighbor 5.5.5.5 update-source Loopback0
address-family v4 #进入VPNV4家族模式下
neighbor 5.5.5.5 activate
neighbor 5.5.5.5 send-community both #具备给5.5.5.5发送VPN路由能力
exit-address-family
address-family ipv4 vrf r2-r5
redistribute ospf 1 #进入VRF下将OSPF路由导入
exit-address-family
此时查看R1路由表路由条目
此时R1学到了56网段和主机2的路由
查看PE1的标签转发表和路由表以及VRF空间下的路由表