MPLS Network Designs – USCom
心得:大家可以把MPLS VPN(包括TE及其他相关技术)看成是一个由多种技术拼凑而成的一种解决方案。作者把几种流行的技术放在不同场景中进行了逐一介绍,所以每个场景中介绍的技术不仅限于书中介绍的,这要看客户的实际应用需求。
物理层
根据上面的Topology,USCom位于美国,核心链路以OC-192和OC-48为主,由DWDM和SONET组成,部分SONET采用BLSR四路光纤双向线路切换还(BLSR/4),而DWDM没有实施保护。
BLSR/4:在SONET中,可以通过多种保护机制,如APS技术用于P2P。或通过BLSR自愈环技术,BLSR类似APS,只不过它不是P2P,而是环形,环形技术有UPSR,BLSR/4,BLSR/2。下面是BLSR/4示意图:
DWDM:中间没有ADM等复用设备,在单独光光纤上承载多路不同波长的光路,升级方便,如果应用IP over DWDM的LC,就省去了transponder。在光通信中的一些基础知识,正行光传输为850/1310nm,而适合放大的波长在1550左右的C波段,所以transponder可以把不可放大的光转化为C波段,下面是根据目前理解总结的图:
3层骨干网
1. 全网使用LDP,VPN流量走标签;而上网流量走正常的IPV4,不进行标签交换,因为如果internet流量走标签,会有一些挑战,如netflow如何工作,及如何有效的防止DDOS攻击,在第5章的案例中,internet和VPN都走标签,详细后面再说。
如何分离internet流量和VPN流量?
可以在PE上设置两个loopback,分别针对internet和VPN;LDP加限制,只给VPN的loopback分配标签!
2. IGP用ISIS,由于网络规模不是很大(IGP不会超过1k),所以只用level 2
3. 出于对未来并购的考虑,选择IGP用global地址,23.49.0.0/16是整个UScom的地址块资源
4. 对于internet的RR部署,用的是多层次RR(正好补充了之前对层次RR理解的不充分),并且遵循物理拓扑,如果不遵循,那么会有环路风险,如下图所示:
关于RR部署的方法及优化,可以看我之前总结的《BGP设计与实现》读后感及总结之3
在1级POP中,两个RR,跟所有其他1级POP中的RR建立全互联
在2级POP中,两个RR,他们是1级POP的客户端,所有2级POP和3级POP中的设备都跟其建立Peer
下面是常规部署,也有些特殊的,在此不列出
5. 对于VPN的RR部署
由于VPN流量基于标签,这些标签都是PE的换回口。对于P来说是透明的,P不用起VPNv4的BGP关系,直接根据IGP转发就可以了,所以在部署VPN RR的时候可以不用遵循物理拓扑,下面是常规部署,另外还有物理拓扑:
6. 安全设计
在核心禁用TTL传播(no mpls ip propagate-ttl forwarded),保护VPNv4的核心
在PE上过滤核心地址块,用于防止internet流量访问
对于CE-PE这段路,如果CE是可管理的,在CE不向客户发布CE-PE这段地址;如果CE是非管理的,那么在PE上做限制,除了上面说的过滤核心地址块,还要限制ICMP和BGP的接入,详细看书。
服务质量
由于USCom网络是轻载网络,不发生失效的利用率在40%,发生失效时所有链路的利用率为70%。所以核心选择的QOS模型是1/1/0,而对于PE-CE段,使用的QOS模型是3/1/0。也就是说核心没有任何QOS,只在PE和CE处部署了QOS策略。
流量工程
1. USCom利用MPLS TE的FRR(与SRLG配合使用)来给没有保护的DWDM线路提供快速重路由服务
什么是SRLG?
用通俗的话说就是一条船上的“蚂蚱”,可以说这条链路上承载了多种业务,且没有备份,或者说多条链路经过同一个设备,如上图所示,如果链路或中间设备down了,所有业务都会中断。SRLG的信息可以通过OSPF/ISIS进行分发,为了减少复杂度,USCom使每个需要提供备份的路由器成为PLR,使用auto-tunnel和SRLG来自动建立NHOP备份链路,下面是一个简单的例子:
R1的3条link都跟一个传输设备连接,所以把这3条link放到同一个SRLG组中,所以在计算backup的tunnel时,会发现找不到可用的backup隧道:
R1#sh mpls traffic-eng tunnels brief
Signalling Summary:
LSP Tunnels Process: running
Passive LSP Listener: running
RSVP Process: running
Forwarding: enabled
auto-tunnel:
backup Enabled (3 ), id-range:1100-1199
onehop Enabled (3 ), id-range:1000-1099
mesh Disabled (0 ), id-range:64336-65335
Periodic reoptimization: every 3600 seconds, next in 3335 seconds
Periodic FRR Promotion: Not Running
Periodic auto-tunnel:
primary establish scan: every 10 seconds, next in 4 seconds
primary rm active scan: disabled
backup notinuse scan: every 3600 seconds, next in 3537 seconds
Periodic auto-bw collection: every 300 seconds, next in 35 seconds
TUNNEL NAME DESTINATION UP IF DOWN IF STATE/PROT
R1_t1000 2.2.2.2 - Et0/0 up/up
R1_t1001 3.3.3.3 - Et0/1 up/up
R1_t1002 6.6.6.6 - Et0/2 up/up
R1_t1100 2.2.2.2 - unknown up/down
R1_t1101 3.3.3.3 - unknown up/down
R1_t1102 6.6.6.6 - unknown up/down
Displayed 6 (of 6) heads, 0 (of 0) midpoints, 0 (of 0) tails
R1#sh run | i mpls traffic-eng auto
mpls traffic-eng auto-tunnel backup nhop-only
mpls traffic-eng auto-tunnel backup tunnel-num min 1100 max 1199
mpls traffic-eng auto-tunnel backup srlg exclude force
mpls traffic-eng auto-tunnel primary onehop
mpls traffic-eng auto-tunnel primary tunnel-num min 1000 max 1099
2. 如何避免临时环路
为什么会产生临时环路?
因为FRR和IGP收敛是分开进行的,所以在一个比较短的时间内可能会有环路,如下图所示:
T0为正常时的LSP,从R1 -> R2
T1为R1和R2链路中断,触发FRR的时间,50ms内切换到R1 -> R6 -> R2
T2为IGP的数据库完成同步的时间
在IGP还没同步但FRR触发这段时间内(T2-T1),对于R1来说,走T1到R2;而对于R6来说,到R2最优的路径仍然是到R1,这样就会有临时环路,LSDB同步后,R6会切换到0/1这条路上
如何解决这种临时的环路?
可以用TE的FA(forwarding address,不同于OSPF的FA)特性,这样Tunnel就被发布到IGP中了,在这里R1到R2即使断了,LSP仍然可以通过R6到达,那么IGP就不会发现路径有问题,虽然这可以解决临时环路的问题,但是IGP就无法检测到中间的故障,只能通过其他方法判断,如SNMP等。
注意:我没找到当使用auto-tunnle时,如何使用FA……FA特性是要在某个tunnel下启动的“tunnel mpls traffic-eng forwarding-adjacency”,所以书上写的有些矛盾。