《Cloud Native Data Center Networking》(云原生数据中心网络设计)读书笔记 -- 03 云原生网络操作系统

本章要回答的问题:

  • 云原生网络操作系统的主要需求是什么?
  • 什么是 OpenFlow 和软件定义网络? 它们适用什么样的场景?
  • 网络解耦中网络操作系统有哪些可能的选择?
  • 这些模型与云原生 NOS 的需求相比是怎样的?

网络设备的新需求

云原生时代中网络设备需要满足以下要求:

  • 设备具有可编程性
  • 提供运行第三方应用程序的能力
  • 提供使用同等功能的组件替换供应商提供的组件的能力
  • 提供运营人员修复代码错误的能力

换句话说,网络设备不再是长期以来的嵌入式设备或专用设备,而应更像是一个服务器平台。

软件定义网络和Openflow的兴起

how to perform useful research with a vertically integrated switch made up of proprietary switching silicon and a NOS that was not designed to be a platform?

Openflow论文

  • 使用大多数数据转发芯片上可用的流表(flow tables)用于决定数据包的处理。研究人员通过流表能够指定新的数据包转发行为。

  • 对流表进行分片,运营人员就可以在相同的设备上运行生产和研究数据。这将使研究人员能够在真实网络上测试新的想法,而不会扰乱生产流量。

  • 定义一个新协议,允许远程运行的软件对流表进行编程并交换不同信息。这将允许研究人员远程编程流表,无需在交换机本身上运行软件,从而避开了最新的交换机网络操作系统的非平台模型。

    thereby sidestepping the nonplatform model of the then-current switch network operating systems.

流表(在大多数交换机文献中通常称为访问控制列表)是在其查找键中至少使用以下字段的查找表(lookup tables)

源和目的IP地址、四层协议类型(传输控制协议 [TCP]、用户数据报协议 [UDP] 等)以及四层源端口和目标端口(TCP/UDP 端口)。

查找的结果可能是以下操作之一:

  • 将数据包转发到不同的目的地址,替代IP路由或桥接提供的目的地址
  • 丢弃数据包
  • 执行其他操作,例如计数、网络地址转换 (NAT, Network Address Translation)等

远程对流表控制的节点称为控制器(controller)。控制器上运行的软件决定了如何对流表进行编程,实现了对Openflow节点的编程。

例如,控制器可以运行传统的路由协议,并将流表设置为仅使用数据包中的目标 IP 地址,从而使单个 OpenFlow 节点像传统路由器一样运行。但是,由于路由协议不是一个分布式应用程序,即在多个节点上运行的应用程序,每个节点独立决定本地路由表的内容,因此研究人员可以在没有交换机供应商支持的情况下创建新的路径转发算法。此外,研究人员还可以尝试与传统IP路由截然不同的全新数据包转发行为。

决定数据包转发行为的数据平面与控制数据包转发的流表的控制平面之间的分离,允许研究人员在服务器操作系统中对控制平面进行更改。网络操作系统NOS 将仅管理设备的本地资源。根据控制平面程序发送的协议命令,本地网络设备上的 NOS 将更新流表。

这种集中式控制平面和分布式数据平面的网络模型称为软件定义网络(sofware-defined networking, SDN)

流表是内置在交换芯片硬件上的通用的软件抽象的转发行为。这是一种打破网络特定于供应商的新方法。

SDN 和 OpenFlow 更多详细信息

image-20240626231607996

图 4-1 展示使用 SDN 的交换机的两个核心组件。

图(a)展示了Openflow如何管理网络设备,图(b)展示了流表控制数据包转发行为的网络设备

图 4-1(a)展示中央控制平面对网络设备进行配置和监控。网络运营人员通过控制平面可以管理整个网络。

图4-1(b)展示使用 OpenFlow 的交换芯片是相当简单。最初的流表仅包含很少几个字段。为了满足一些需求,OpenFlow 倡导者提出流表的查找键要非常通用:取数据包头部所有字段到特定长度作为查找键,例如:前 40 或 80 个字节。这种方法可以自动支持新的数据包头,例如:新的隧道协议的数据包头部。隧道协议的数据包头部是在原有的数据包头部(IP头部) 之前插人了新的数据包头。因为查找键包含数据包头部所有字节,且保持某个长度,只要编写程序识别这些字节,流表查找就能够处理隧道协议的数据包头部或其他新协议的数据包头部。

与路由表或桥接表相比,内置在传统交换芯片上的流表是非常小的。如果流表非常大,交换芯片的制造费用会非常昂贵。因此,OpenFlow 论文中不建议预填写流表而是将流表当缓存一样使用。如果在流表中没有找到与数据包匹配的转发规则,则会将数据包发送至控制器。中央控制器将参考本地的软件表项来决定数据包的转发行为,并生成转发流表,以便这

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值