多协议:可以基于多种不同的3层协议来生成2.5层的标签信息;
包交换—包为网络层的PDU,故包交换是基于IP地址进行数据转发;就是路由器的路由行为;
原始的包交换:数据包进入路由器后,路由器需要查询本地的路由表(RIB-路由信息数据库),再基于下一跳或者目标ip查询本地的ARP表,才能进行数据的转发;
最初在包交换仅支持原始交换时,标签的意义在于更快的查询;但随着包交换的加速,使用标签交换失去了快速查表的优势;
当下MPLS存在的意义:
1、解决BGP的路由黑洞 2、MPLS VPN 3、MPLS TE 流量工程
另外:随着包交换的加速,使得今天的MPLS技术也开始基于FIB表工作;来提高MPLS的工作效率;
下面用一个实验来告诉大家怎么实现1 , 2的
R2-R4扮演着运营商的角色
先来讲讲我的实验思路。
第一步:
配置IP地址。(注意:这里划入VRF空间的接口先不着急,主要是现在配了后面还是要配)
第二步:
在R2,R3,R4之间起一个OSPF,让其内部可以互相访问。
第三步:
建立MP-BGP邻居关系(R2,R3,R4之间) MP-bgp就是BGP的升级版。
[r2]bgp 2
[r2-bgp]router-id 2.2.2.2
先和对端建立正常BGP邻居关系,可用于传递正常的公网路由
[r2-bgp]pe 4.4.4.4 as-number 2
[r2-bgp]pe 4.4.4.4 connect-interface LoopBack 0
[r2-bgp]pe 4.4.4.4 next-hop-local
同时还需要再在IPV4的家族模式中,与对端建立一个VPNV4的关系,用于传递VPNV4路由
[r2-bgp]ipv4-family vpnv4
[r2-bgp-af-vpnv4]peer 4.4.4.4 enable
[r2-bgp]display bgp vpnv4 all peer 查看mp-bgp邻居关系
第四步:
建立MPLS邻居(因为R3没有配置BGP,为了解决黑洞)
[r2]mpls lsr-id 2.2.2.2 必须先定义mpls的router-id,要为本地设备的真实ip地址,且邻居可达,因为该地址将用于建立TCP会话,建议使用环回地址
[r2]mpls 再开启mpls协议
[r2-mpls]mpls ldp 再激活LDP协议
[r2-mpls-ldp]q
之后需要在所有标签经过的接口上开启协议
[r2]interface GigabitEthernet 0/0/1
[r2-GigabitEthernet0/0/1]mpls 先开启MPLS
[r2-GigabitEthernet0/0/1]mpls ldp 再激活LDP协议
display fib 查看FIB表
display mpls ldp lsp 查看LIB表,装载本地和邻居为各条路由分配的标签号
display mpls lsp 查看LFIB表
display mpls ldp peer 查看邻居表
第五步:
配置MPLS VPN
[r2]ip vpn-instance a 创建名为a的vrf空间
[r2-vpn-instance-a]ipv4-family 进入IPV4的配置模式下
[r2-vpn-instance-a-af-ipv4]route-distinguisher 1:1 RD值
[r2-vpn-instance-a-af-ipv4]vpn-target 1:1 RT值 必须对端的PE端一致
[r2]interface GigabitEthernet 0/0/0 进入链接CE端的接口
[r2-GigabitEthernet0/0/0]ip binding vpn-instance a 关联到vrf空间
[r2-GigabitEthernet0/0/0]ip address 192.168.2.2 24 配置私有ip地址
注:在关联到vrf空间前不能配置接口ip,否则该地址的直连路由将进入公有路由表;
[r2]display ip routing-table vpn-instance a 查看空间内的私有路由表
另外:RD是用来区分来源(可以理解为房间号,每个房间都是不同的路由),RT是用来区分去处
R2上还需配置R6的空间,以及划入接口。R4一样配置5,7
第六步:
R2获取R1,R6的路由。题目要求是R1用静态,R6用rip
静态
CE(R1)端直接编写静态路由即可;
PE(R2)端编写到VRF空间内的静态路由
[r2]ip route-static vpn-instance a 192.168.1.0 24 192.168.2.1
RIP
CE端正常启动RIP即可
PE端,启动VPNV4专用的RIP协议
rip 1 vpn-instance a(如果直接rip 1 ,那么获取到的路由不会进入VRF空间,会进入公网)
version 2
network 1.0.0.0
OSPF,R4会用到
CE端正常启动OSPF即可
PE端,启动VPNV4专用的ospf协议
[r4]ospf 2 vpn-instance a
[r4-ospf-2]area 0
[r4-ospf-2-area-0.0.0.0]network 192.168.3.1 0.0.0.
第七步:
将两边的路由重发布进去,这样R2就可以接收到R5的路由,R5也能接受到R1,这样r1,r5就可以互相访问了(注意:导入的是空间内部的,而不是公网)
直连或静态:
将本地vrf空间内的静态和直连路由重发布到BGP协议传递到对端的PE
[r2]bgp 2
[r2-bgp]ipv4 vpn-instance a
[r2-bgp-a]import-route direct
[r2-bgp-a]import-route static
OSPF
[r4]bgp 2
[r4-bgp]ipv4-family vpn-instance a
[r4-bgp-a]import-route ospf 2
[r4]ospf 2 vpn-instance a
[r4-ospf-2]import-route bgp
rip
bgp 2
ipv4-family vpn-instance a
import-route rip 1
rip1 vpn-instance a
[import-route bgp
最后一步:
配置acl ,然后nat在出接口,实现访问公网
实验注意点:如果上面的操作都没问题时,想想路由可不可达。R6,R7要写静态。
实验结果:
R1访问R5
R6访问R7
R7访问外网: