阅读笔记|SIMPLE-fying Middlebox Policy Enforcement Using SDN
warning: 这篇文章距离上次修改已过390天,其中的内容可能已经有所变动。
info: Qazi, Zafar Ayyub, Rui Miao, Cheng-Chun Tu, Vyas Sekar, Luis Chiang, and Minlan Yu. “SIMPLE-Fying Middlebox Policy Enforcement Using SDN,” n.d.
背景
- 中间设备(middleboxes)在企业网络中起着关键的性能、安全和政策合规性的作用。但是手工设置中间设备的部署拓扑和路由非常复杂和容易出错。
- SDN为中间设备策略实施提供了一个有前景的替代方案。但是中间设备也为SDN带来了新的挑战,例如政策组合、资源管理、数据包修改等,这些都超出了SDN目前支持的传统二层/三层功能。
主要问题
- 组合(Composition):网络政策通常要求数据包经过一系列中间设备(例如防火墙、IDS、代理)。如果仅仅使用基于流的转发规则,会导致TCAM利用效率低下,也会造成转发决策错误。
- 负载均衡(Load balancing):由于中间设备需要进行复杂的包处理,均衡中间设备的负载非常重要。SDN可以实现负载均衡算法,但受限于交换机TCAM空间,生成这些规则在理论和实际上都是不可行的。
- 动态报文变化(Dynamic traffic transformation):许多中间设备会主动修改流量的头信息和内容。如果SDN控制器对这些变换没有可见性,将很难设置正确的转发规则。但由于中间设备是封闭的,控制器很难知道这些内部处理逻辑。
方法
- 高效的数据平面支持组合:使用两种机制 - 在交换机之间建立隧道;为报文添加标签来标识报文的处理状态。
- 实用的统一资源管理:将难以求解的优化问题分解为一个离线整数规划求解阶段和一个高效的在线负载均衡阶段。
- 学习报文变换:利用SDN交换机的报告功能,设计轻量级的流关联机制,推断大多数常见的中间设备导致的报文变换。
评估实验
- 使用Emulab仿真和Mininet仿真评估SIMPLE系统。
- 与当前部署相比,SIMPLE提高了中间设备负载均衡6倍,接近新型中间设备架构的最优性能。
- 在11节点拓扑中,SIMPLE需要约100ms进行引导和应对网络动态。
- 在重新均衡中间设备负载时,SIMPLE只需要约1.3秒,比稻草人优化方案快4个数量级。
- 在proxy场景中,SIMPLE的流关联可以达到95%的匹配准确率。
结论
- SIMPLE系统通过高效的数据平面设计、联合的资源管理和动态报文推断,使用SDN管理现有中间设备部署,提供了一个切实可行的方案。
- SIMPLE解决了行业关于SDN集成现有基础设施和支持四层到七层功能的担忧。
- SIMPLE采取了一种务实的立场,在不改变交换机和中间设备的情况下,实现SDN在中间设备领域的价值。
其他
POX Controller
- POX是开源的SDN控制器软件,使用Python语言开发。
- 为开发者提供了SDN控制器的基本框架和编程接口。
- 开发者可以通过编写Python代码,基于POX实现自己的SDN控制器。
- SIMPLE系统就是基于POX Controller实现的,通过扩展POX的代码来添加SIMPLE的功能。
Emulab
- Emulab是一个网络测试平台,由犹他大学开发。
- 它可以通过软件模拟不同的网络拓扑结构。
- 模拟出来的虚拟网络就像真实网络一样,可以在上面运行实验。
- 文章中就是在Emulab上模拟出不同的测试网络,在这些虚拟网络上评估SIMPLE系统。
- 和完全物理环境相比,Emulab提供了更灵活方便的测试手段。