SDN还处于初期。云托管的控制平面正在生产网络中部署,但是我们才刚刚开始看到SDN在接入网络中正在试用,而可编程管道则用于引入新的数据平面功能。随着技术的成熟和API的稳定,我们希望看到更多的采用,但是可能仍在出现的新用例对SDN最终扮演的角色具有最大的影响。
可验证的网络
众所周知,很难使网络具有强大的可靠性和安全性,以防止出现故障,攻击和配置错误。尽管在应用程序级安全性方面取得了进展,但是几乎没有做任何工作来解决基础网络基础结构的安全性和健壮性。尽管在使计算机网络更具可编程性方面取得了进步,但是大多数网络仍使用封闭/专有软件和复杂/固定功能的硬件来构建,这些硬件的正确性难以证明,其设计来源也不明。
5G网络和应用的出现只会加剧这种情况。 5G网络不仅可以连接智能手机和人,还可以连接从门铃到照明,冰箱,自动驾驶汽车和无人机的所有内容。如果我们无法保护这些网络的安全,那么网络灾难的风险将比迄今为止所经历的任何事情都要严重得多。
确保Internet安全的最关键能力是可验证性:确保网络中的每个数据包都遵循运营商指定的路径,并且在运营商预期的每个设备内仅遇到一组转发规则的能力。一无所有。
在以组合(即分解)方式构建整个系统的环境中,验证效果最好。能够对小零件进行推理使验证变得容易,而将组件缝合在一起形成复合系统所需的推理也可以带来洞察力。以分解为基础,可验证性源自(1)陈述意图的能力,以及(2)以细粒度和实时观察行为的能力。正是这正是SDN所带来的价值,这使人们对可验证的闭环控制现在可以实现感到乐观。
上图说明了基本思想。 本文描述的软件堆栈增加了可验证闭环控制所需的测量,代码生成和验证元素。 可以使用INT(带内网络遥测)来实现细粒度的测量,它允许转发元素对每个数据包进行标记,以指示其所经过的路径,所经历的排队延迟以及所匹配的规则。 然后可以对这些度量进行分析,并将其反馈给代码生成和形式验证工具。 该闭环补充了分解的内在价值,这使得可以通过构造来推理正确性。
目的是使网络运营商能够自上而下地指定网络的行为,然后验证每个接口的正确性。在最低级别,P4程序指定如何处理数据包。这些程序被编译为在转发平面元素上运行。基于两个关键的见解,这种方法代表了常规设计中不可能实现的一项基本的新功能。
首先,尽管网络控制平面本来就很复杂,但是P4数据平面捕获了网络的基本事实(即,它如何转发数据包),因此是部署验证技术的有吸引力的平台。通过观察然后验证数据平面级别的行为,可以减少可信的计算基础:交换机操作系统,驱动程序和其他低级组件不需要可信。而且,尽管控制平面倾向于用通用语言编写并且相对复杂,但是数据平面必然很简单:它最终被编译为具有简单数据类型和有限状态的高效前馈管道体系结构。虽然在一般情况下无法验证通用软件,但数据平面验证既强大又实用。
这种实用性主张基于当前的最新技术水平。一旦定义并了解了转发行为,则转发表状态将定义转发行为。例如,如果已知所有内容都将转发IPv4,则所有路由器中的转发表状态足以定义网络行为。这种想法已被Veriflow和Header Space Analysis(HSA)等技术简化为实践,现已在市场上出售。知道此状态足以验证具有固定转发行为的网络,这意味着我们“仅”添加了一个新的自由度:允许网络运营商使用P4对转发行为进行编程(并随时间演变)。使用P4对数据平面进行编程是关键:该语言仔细排除了诸如循环和基于指针的数据结构之类的功能,这些功能通常会使分析变得不切实际。
第二个见解是,除了构建用于分析网络程序的工具外,重要的是还开发通过深度防御提供更高级别保证的技术。 这解决了当前网络验证方法的主要弱点之一-它们基于网络组件的数学模型,因此,当这些组件的行为方式与模型中捕获的方式不同时,它们可能会产生错误的答案。 通过利用P4数据平面收集丰富的遥测和其他监视数据的能力,可以开发将静态验证的组件与运行时验证相结合的网络验证工具。
Copyright © 2018.广州达芬奇网络有限公司. 保留所有权利 使用条款 客户隐私政策 粤ICP备19019099号-2