Prisma SD-WAN(Cloudgenix)
目录
SD-WAN 上线
设想,客户要将传统的边界路由器/防火墙替换为 SD-WAN 设备,需要什么前提条件?
管理侧:
- 云控制器:减少客户自行部署管理控制器带来的运维负担,借用云架构保证高可用和扩展性
Hub 侧:
- 在数据中心部署性能较高的 SD-WAN 设备,分支都和此设备连接,形成 hub-spoke 的架构
- 为了节省线路成本,可以利用廉价的 Internet 线路,为了保证高可用,可以用两条 Internet 线路;已有的 MPLS 可以利旧,这样便会有三个线路
分支侧:
- 使用性能较小的 SD-WAN 设备,替换传统的边界设备;为了保证高可用,可以部署两台,以 A/S 模式工作,这时候可能也需要 VRRP 之类的协议
- 1~2 根 Internet 线路,一条 MPLS 线路
ZTP 零接触部署
当涉及零接触部署时,需要考虑几个问题:
- 设备如何自动连接到控制器?
- 连接时的安全如何保证?
- 如何保证设备正确关联给用户的租户?
以上几个问题的答案比较简单:
- 设备通过 DHCP 获得 Internet 地址,然后通过 Internet 自动连接到云控制器
- 通过证书执行双向认证,避免中间人攻击,通过 TLS 加密会话(根证书为 Cloudgenix 所有)
- 通过序列号进行租户绑定,只有相应的租户管理员才能看到设备
完整的设备上线流程如下:
当分支人员收到设备后,按照公司规划进行线路连接,对于 Internet 线路,有可能前面有光猫,设备可以自动获取 IP 地址,对于 MPLS,则需要后期进行静态 IP 配置。
分支设备加电后,Controller 口获得 Internet IP 地址,即可与云端的控制器进行通信,通信时,先会有一个 mrl 进程连接一个固定的域名(locator fqdn)。
为了保证通信安全,双方会有共同 CA 签发的证书,执行双向证书检查(设备会内置名为 mic(Manufacturer installed Certificate)的证书)。
建立通信后,设备将会出现在相关用户的租户中(根据序列号来区分租户),处于 Unclaimed 状态。
管理员 Claim 设备,一旦 Claim 设备,设备会收到一个租户级别的 CIC 证书(Customer Installed Certificate),此证书会保证仅有此租户可以和设备连接。
管理员定义 Site,关联上面 Claim 的设备,进行接口、路由等配置。
接口配置完成后,设备自动与 Hub 站点建立 VPN 隧道。
VPN 隧道?
SD-WAN 在两个方面可以加速站点上线,一个是 ZTP 零接触部署,另一个则是尽量自动化建立站点间的网络连接,减少传统的路由配置。
因为 SD-WAN 会使用 Internet 线路,所以为了保证数据安全,需要用到 VPN 隧道。
Cloudgenix VPN 隧道建立规则如下:
- 默认 SD-WAN 会在所有 Internet (也就是 Public 线路)上建立 VPN 隧道。如果设备有多个 Internet 线路,则会建立 Full-mesh 的隧道,比如 Hub 和分支分别有 2 条 Internet,则一共会建立 4 条 VPN 隧道
- 默认如果有相同明明的 Private Circuit(比如 Chinanet MPLS),则会在此 Private CIrcuit 上建立 VPN 隧道
- 其余情况均不会建立 VPN 隧道
控制器连接
设备加电后,会和控制器建立四个 Session,用途分别如下:
- Control(mrl):所有的控制器到设备,以及设备到控制器的控制流量
- Logs:将设备的 syslog 发送给控制器,方便统一排错
- Stats - Flow:Flow 记录会被设备统计后发送给控制器
- Stats - Metrics:聚合的 metric 信息通过此 Session 发送给控制器
如何排错?
当设备上线时如何排查问题?此处需要用到一个叫 Toolkit 的工具(一个类似于 Cisco 设备的 CLI,可以进行基本的设备配置和排错),Console 或者 SSH 均可以访问到。
登录 tooklit 后,可以通过下列命令查看配置或者查看日志:
# 查看基本的状态、连接、配置信息
dump overview
# 查看与控制器通信的进程的日志
debug logs follow mrl_agent
# 查看 mic 证书相关的日志
debug logs dump micmac
# 手动添加 Hosts 记录
config static host add ip <IP-addr> names xx.yourdomain.com
# 查看静态配置的 hosts 记录
dump static host config
# 如果 vION 未正确注册到控制器,用下列命令查看错误日志
dump troubleshoot message
# 设备接口相关日志
dump interface config interface=<int>
dump interface status interface=<int>
inspect system arp interface=<int>
inspect ip-rules
更多 CLI 参考详见:
https://docs.paloaltonetworks.com/prisma/prisma-sd-wan/prisma-sd-wan-ion-cli-reference
虚拟化版本的 vION 如何上线?
虚拟化版本的 ION 和物理设备的不同在于,设备 SN 是初次开机时生成的,这就导致没有办法预先将其关联到租户下,所以此处需要使用 Access token 来区分设备。
具体步骤:
- 用户在 Controller 中创建 access token(Tenant 级别),可以是一次性使用的 token 或者多次使用的
- 在部署 vION 时,填写 token 以及 key
- vION 开机,使用上述 token 和 key 连接到云端控制器,获取 mic 证书
- 系统自动根据 key 将其关联到相应的租户(key 的第一段即为租户 ID)
策略
Path 策略
主要用于选路,可以针对不同的源、应用等信息进行策略配置,比如 Google 的访问使用 public VPN(构建于 Internet 等公开线路上的 VPN),Baidu 的访问使用 Direct Public(直接本地 SNAT 访问互联网)。
QoS 策略
基于比例进行 QoS Shaping:
假如线路是 100Mb,则 Platinum 优先级会获得 50M 的带宽保证,其中 Audio 会得到 10M 的带宽保证
在线路空闲时不会做带宽限制,比如仅有 Internet 流量时,Internet 流量会占用所有 100M 带宽,但是一旦有高优先级的应用,将会按照比例进行限速
策略共有四类优先级:
Platinum,Gold,Silver,Bronze
每个优先级会有四个队列,每个队列会有一定的比例,结合优先级,总共会有 16 个分片:
Security 策略
操作有三种:
Allow:允许
Deny:等同于 Drop,不会发送 RST
Reject:发送 RST
网络隔离
场景1:假如一个分支既有员工的网络,又有访客网络,需要隔离这两种流量。
- 员工网络使用默认的 Network context,path policy 指定使用 Private WAN;访客网络使用专用的 Network context,使用 Public Internet
场景2:零售场景下,每个分支仅需要让设备能访问互联网即可,不需要与 DC 网络通信
- 将每个分支的 LAN 设置为 Local(默认即为 Local),这样相关路由不会通告给 DC,相应的,path policy 使用 Public Internet 本地 NAT
场景3:每个分支可能有不同的部门,部门之间想要做到网络隔离
- 使用 VRF 功能,在网络层面上实现逻辑隔离
- 如果 VRF 间需要通信,可以使用路由泄露来实现
链路质量监控 LQM
主动的对于线路质量的探测,可以用于获取线路的一些 Metric。
默认会监控 Underlay 以及 Overlay 的 Jitter、RTT(延迟) 以及 Packet Loss。
默认高于下列值时认为线路质量为 Bad:
- RTT - round-trip latency - 150ms
- Jitter - 50ms
- Packet Loss - 3%
应用可访问性监控
针对每个应用在指定路径上的监控。默认使用被动检测,如果发现应用在某个路径上通信有问题,系统会先进行线路切换,然后执行主动探测,如果主动探测未来检测到线路恢复正常,则未来的应用流可能会经过此路径继续发送。
场景:外围设备设置了不合理的防火墙策略,将某些应用的流量 block 了。