一、 MPLS
1.什么是MPLS
- 全称:多协议标签交换
2.MPLS作用
- 在骨干网中,提高数据转发性能
3.MPLS原理
- 在骨干网,路由表规模大,通常情况下转发时会将所有路由条目全部查找一遍,然后根据优先级选择一条最合适的,这样增加了延迟
- MPLS是给数据加上标签,标签上定义如何转发,不需要将路由表全部查一遍,较低了延迟
4.MPLS转发表
- 不一定存在路由标目,可以根据标签(编号和接口号对应)转发。
5.MPLS封装
- mpls封装位置:二层和三层之间
6.MPLS报文
- label→20bit,标签值域
- exp→3bit,由于扩展。
通常用作Cos(class of service),当设备阻塞时,优先发送优先级高的报文。 - S→1bit,栈底标识。MPLS支持多层标签,即标签嵌套,S值为1表示为最底层标签。
- TTL→8bit,表示生命值。
二、MPLS网络架构
1.路由角色
- LSR:可以进行MPLS标记交换和报文转发的设备。
- LER:位于MPLS域边缘,连接其他网络的LSR。
LSP的入口LER称为入节点(打标签)
LSP的出口LER称为出节点(撤标签) - 核心LSR:所有接口都在MPLS区域内的设备。
2.FEC (Forwarding Equivalent Class)
- 转发处理方式相同的报文,在MPLS网络中,到达同一目的地址的所有报文就是一个FEC
3.LSP(Label Switched Path)
- 标签交换路径,即到达同一目的地址的报文在MPLS网络中经过的路径
三、LSP如何建立
- 建立LSP的过程,就是给一个FEC创建标签的过程
1.静态建立LSP
- 拓扑
- 在MPLS域的入节点LER
#mpls lsr-id id(1.1.1.1) // 指定LSR-ID号
#mpls //启动MPLS
#static-lsp ingress 标签名字(test) destination 目标网址(3.3.3.3) 掩码(32) outgoing-interface 出接口号(g0/0/1) nexthop 下一跳网址(12.12.12.2) out-lable 加标签号(20) //设置静态的LSP 定义FEC(test)、指定走的接口、打上标签
#进入接口
#mpls //启动接口mpls
- 在MPLS域的中间节点LSR
#mpls lsr-id id(2.2.2.2) // 指定LSR-ID号
#mpls //启动MPLS
#static-lsp transit 标签名字(test) incoming-interface 进接口号(g0/0/1) in-lable 加标签号(20) outing-interface 出接口号(g0/0/2) nexthop 下一跳网址(23.23.23.3) out-lable 加标签号(30) //设置静态的LSP 定义FEC(test)、指定进的接口和标签、指定出的接口、下一跳地址和出的标签。
#进入接口
#mpls //启动接口mpls
- 在MPLS域的出节点LER
#mpls lsr-id id(3.3.3.3) // 指定LSR-ID号
#mpls //启动MPLS
#static-lsp egress 标签名字(test) incoming-interface 出接口号(g0/0/2) in-lable 加标签号(30) //设置静态的LSP 定义FEC(test)、指定进的接口、打掉标签
#进入接口
#mpls //启动接口mpls
2.动态建立LSP
- 动态LSP:动态LSP通过标签发布协议动态建立
LDP
MP-BCP
- LDP工作过程(分配标签时,会依赖路由表)
3.LDP工作过程四步走
- 1.通过Hello包发现ldp邻居(udp 组播)
- 2.建立ldp会话
tcp三次握手
IP大的主动方
协商ldp参数
标签分发方式:Du、DoD,华为默认Du
Keppalive时间:发送45秒没收到keppalive算失效,发送周期是15秒。
参数一致,回复keppalive,周期性发送keepalive
- 3.分发标签
- 4.MPLS-LDP配置命令
#mpls lsr-id id号(1.1.1.1) // 创建lsr-id
#mpls //使能MPLS
#mpls ldp // 启动MPLS LDP
#进入接口
#mpls ldp //在接口上启动ldp
四、 VPN
1.作用
- 虚拟专用网,在公网上构建虚拟的专网。
2.解决总部和分支通信,两个网络中间的通信
- gre vpn
优点:兼容性好,配置简单
缺点:安全性差,明文
- IPSec vpn
优点:安全性高,一整套安全解决方案
缺点:配置复杂,不支持组播
- gre over ipsec vpn
优点:结合gre和ipsec优点,先用gre建立隧道,承载ospf等组播报文,再用ipsec进行安全保护
缺点:配置复杂
3.解决员工通过Internet访问公司内网
- ssl vpn(常用)
优点:终端简单,只需要账号登陆,安全强度高(旧版本有心脏滴血漏洞)
缺点:特殊终端不支持(药店刷卡机)
- IPSec vpn
优点:安全
缺点:配置复杂
- l2tp vpn
优点:新老终端都支持
缺点:本身安全性差,需要另外解决安全问题
4.在一个专线网络中,实现线路服用与灵活配置
- mpls vpn
五、MPLS VPN
1.网络架构
- 拓扑
- CE:用户网络边缘设备,接口直接与服务网络相连。CE感知“不到vpn的存在,也不需要支持mpls。”
- PE:服务提供网络边缘设备,与CE相连,在MPLS网络中,对VPN的所有处理都发生在PE上,对PE性能要求高。
- P:服务提供商网络中的骨干设备,不与CE直接相连,P设备只需要具备基本MPLS转发能力,不维护VPN信息。
2.解决三个关键问题
- 不同CE,可能存在相同的地址空间,就会导致PE的路由表冲突。
解决方法:建立多个独立的VRF路由表,各个站点的路由表信息隔离,不会互相影响。
- PE1将路由表,发送到PE2,PE2如何决定传给那个CE
解决方法:通过RT属性
- PE收到1个数据包,只看目标IP,无法判断该把数据包交给哪个CE
解决方法:通过mpls标签确定从那个口发出,PE会给不同VPN实例的报文,打上不同的标签,标签可以指导正确转发。
3.原理
- CE和PE之间的路由传递
- PE将CE的路由,注入MP-BGP路由表
PE和CE相连的接口,关联VPN实例(比如 site1),所以知道一个CE属于哪个VPN实例,也知道这个CE发来的路由,应该属于哪个VPN实例。
PE在BGP中引入CE的路由,并且按VPN实例的配置,给路由条目打上RD和RT和标签。
- 公网标签分配
两边PE之间,路由可达,然后LDP协议来分配PE之间通信用的标签。
- CE的路由注入对端PE的vrf
业务数据转发
4.配置
- 拓扑
- 1. P、PE之间配置OSPF,实现骨干网的IP连通性
- 2. 在PE、P上设置MPLS-LDP,建立MPLS LDP公网隧道,传输VPN数据。
- 3. PE1和PE2上配置VPN实例,其中,alibaba使用的VPN-target属性为1:1,tencent使用的VPN-target属性为2:2,以实现相同VPN间互通,不同VPN间隔离。同时,与CE相连的接口和相应的VPN实例绑定,以接入VPN用户。
[PE1] ip vpn-instance Alibaba //创建一个VPN实例,用于路由找到VPN实例
[PE1-vpn-instance-vpna-af-ipv4] route-distinguisher 1:1 //设置属于这个VPN实例的DR,所有带1:1的路由,都是这个公司的路由。各个公司的地址都一样,但是标记不一样。
[PE1-vpn-instance-vpna-af-ipv4] vpn-target 100:100 //RT和RD不一样,RT是用于限制1条路由发给对面PE后,对面PE用RT来判断应该发给那个VPN实例。 左PE,发出路由条目,RT值100:100 右PE 设置那些RT,应该发给那些VPN实例
[PE1-vpn-instance-vpna-af-ipv4] quit
[PE1-vpn-instance-vpna] quit
[PE1] ip vpn-instance tencnent
[PE1-vpn-instance-vpnb] ipv4-family
[PE1-vpn-instance-vpnb-af-ipv4] route-distinguisher 2 :2
[PE1-vpn-instance-vpnb-af-ipv4] vpn-target 200:200
[PE1-vpn-instance-vpna-af-ipv4] quit
[PE1-vpn-instance-vpnb] quit
- 4. 接口关联VPN实例
[PE1] interface gigabitethernet 0/0/1
[PE1-GigabitEthernet1/0/0] ip binding vpn-instance Alibaba
[PE1-GigabitEthernet1/0/0] ip address 13.13.13.3 24
[PE1-GigabitEthernet1/0/0] quit
[PE1] interface gigabitethernet 2/0/0
[PE1-GigabitEthernet2/0/0] ip binding vpn-instance tencent
[PE1-GigabitEthernet2/0/0] ip address 23.23.23.3 24
[PE1-GigabitEthernet2/0/0] quit
- 5. PE1和PE2之间配置MP-IBGP,交换VPN路由信息。
[PE1] bgp 500
[PE1-bgp] peer 5.5.5.5 as-number 500
[PE1-bgp] peer 5.5.5.5 connect-interface loopback 0
[PE1-bgp] ipv4-family vpnv4 //bgp 将携带VPN实例的属性
[PE1-bgp-af-vpnv4] peer 5.5.5.5 enable
[PE1-bgp-af-vpnv4] quit
[PE1-bgp] quit
[PE1]bgp 500
[PE1-bgp] ipv4-family vpn-instance Alibaba
[PE1-bgp-vpna] peer 13.13.13.1 as-number 100
[PE1-bgp-vpna] import-route direct
[PE1-bgp-vpna] quit
- 6. CE与PE之间配置EBGP,交换VPN路由信息。
[CE1] bgp 100
[CE1-bgp] peer 13.13.13.3 as-number 500
[CE1-bgp] import-route direct
[CE1-bgp] quit