MPLS layer 3 VPN
- 由ISP提供的服务,以连接同1个公司的不同站点,主要2种方式
- 1种方式就是通过互联网
- 1种就是通过VPN
- 每一种都需要向ISP购买接入服务
- 互联网方式存在安全风险,稳定性较低,但是成本低
- VPN方式就是反过来
- 客户不需要知道ISP中间的复杂技术MPLS,或者VRF instance
- 客户只需要将他自己的CE 接入到 PE
- 为了支持不同的客户,PE上就需要跑 VRF(虚拟路由表),实现不同客户之间的隔离 —— P Router 上不跑VRF吗,不跑
- 不同客户内部可以使用相同的IP地址空间
- Layer3 VPN = MPLS + VRF
- CE和PE之间通过标准路由协议交换信息(RIP,OSPF,EIGRP,BGP)。因此从客户视角,PE就是1个标准的Router,另外其他的P Router 也是客户不可见的
- 一旦PE从CE上学到路由,PE就会将这些路由重分布进入MP-BGP(疑问:为什么是MP-BGP,而不是普通的IPv4 BGP),但是中间的P Router
- PE 之间建立的是 iBGP 关系,和标签转发没有关系
- 所以PE以及P之间需要先跑IGP,通常选择OSPF或者 IS-IS,然后PE之间的iBGP 可以跑起来交换路由
- MP-BGP 不跑VRF,只有1张路由表,为了支持不同客户拥有相同IP网段的场景,引入1个新的概念 VPNv4
- 传统ipv4 BGP 支持范围有限,只能交换ipv4地址,不支持VPNv4
- 更精确地讲,是MP-iBGP
VPNv4 Address
- VPNv4 Address = RD + IPv4 Address
- RD = route distinguisher ,每个客户分配不同的RD
- 64-bit RD + 32 bit IP addr = 96 bit VPNv4,有3种写法
- Type0:2-byte ASN + 4-byte Value
- Type1:4-byte IP + 2-byte Value
- Type2:4-byte ASN + 2-byte Value
- VPNv4 在MP-BGP 内部传递
BGP Free Core
- PE Router 之间跑bgp,没有和 P Router跑bgp
- 前面讲过,为了解决路由黑洞,引入几种解决方案
- BGP Sync
- Full Mesh
- Route Reflector
- Confederation
- 按照这个思路,PE和P之间的运维成本会非常高,所以引入MPLS来代替BGP协议,在ISP核心摆脱BGP
VPN Label
- RD的作用是,当PE向MPLS宣告路由时,可以支持来自不同客户的相同路由
- 每个VRF 可以配置不同的 RD,但是RD无法识别路由属于哪个VRF —— ?????
- 进和出是不一样的,进MPLS会被加上标识,出MPLS是没有标识的,所以不知道 ????
- 虽然Cisco的配置上,RD是在VRF下配置的,但是不存在1对1的绑定关系
- 所以在 egress PE 新增1个Label,通过vpnv4 (MP-BGP)路由交换传给远端
- PE 会为每个VRF的每条路由设置1个 VPN Label,只会传递给对端的PE,不会传递给 MPLS 中的P
MPLS Layer3 Labels
- 为了成功转发,1个数据包必须至少具备2个Label,1个LDR label,1个VPN Label
- LDP Label 也被称为 IGP label,Top Label,Transit Label
- 通过LDR 在 LSR 之间传播
- VPN Label 也被称为 Inner Label,Bottom label 在 egress PE上用来区分 无标签的数据包 要转发给哪个接口
- 通过MP-BGP 在PE之间