You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
p2l5wexnu/data/appendix/fast.tex

250 lines
15 KiB

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

%# -*- coding: utf-8-unix -*-
\chapter{FAST平台介绍与操作说明手册}
\label{app:openbox}
\subsection{FAST简介}
针对近年来关于工业控制网络创新技术、创新网络结构、时间敏感网络、SDN网络、FPGA硬件加速技术及下一代网络技术的研究需求由国防科大与湖南新实共同发起的开源项目——FASTFPGA Accelerated Switcing plaTform于2016年创建。截止到目前该开源项目已经服务全国多所高校和科研院所的网络教学实验建设和科研项目。
FAST开源项目的诞生与发展深受斯坦福大学Nick Mckeown教授在NetFPGA项目、OpenFlow项目和P4等项目的影响其目标是为计算机网络的科研与教学提供一个开源和开放的软硬件全功能可编程交换平台。其主要特点如下
\begin{enumerate}
\item \textbf{FPGA}FAST实现的核心载体是可编程FPGA是用Verilog语言编程实现的硬件功能。FPGA的现场可编程特性为实现用户创新的网络架构、算法、实现机制提供了极大的灵活性而且可以获得较高的性能支持在实际网络中部署运行
\item \textbf{Accelerated}PGA实现的不是网络处理的全部功能而是部分需要硬件加速的分组处理功能。FAST的核心是一套软硬件协同的分组处理模型用户可以通过Verilog编程实现的硬件功能的加速也可以在现有的FAST硬件平台的CPU上编程实现特定的分组处理功能
\item \textbf{Switching}AST面向的领域是网络交换领域支持各种新型交换技术如软件定义网络SDN、时间敏感网络TSN、网络安全一体化网络甚至是智能网卡的实现研究而不是支持以人工智能AI为代表的应用加速
\item \textbf{plaTform}与目前其他开源项目一样FAST提供的是一个硬件平台无关的支持用户通过软硬件编程实现其特定分组处理功能的环境。FAST通过提供标准的规范、开源的平台软硬件实现代码和demo应用支持用户基于平台进行创新的应用开发和设备原型的快速实现。
\end{enumerate}
\subsection{FAST架构}
FAST平台的架构是一种通用多核CPU加FPGA形态的网络处理架构。通常对处理性能要求较高的分组处理功能由FPGA实现对处理性能要求较低实现复杂的功能可由CPU实现。用户既可通过扩展FPGA硬件流水线功能也可以通过CPU上编程实现对分组交换功能的扩充。该平台架构主要由硬件逻辑和软件逻辑两部分组成实现软硬件耦合通信与支持软硬件可编程的网络创新实验系统。其中硬件包括平台相关的数据IO和FAST硬件逻辑。软件部分包括通用操作系统与FAST软件逻辑。FAST软件逻辑包括软件开发环境和UA程序。该平台不仅支持FAST的UA编程开发同时也支持通用Socket APP的开发与运行。
FAST交换平台的实现不依赖特定的CPU与FPGA型号但为了更好地提供交换功能扩充能力保证软硬件协同分组处理的基本性能FAST的交换平台必须具有如下两个特点
\begin{enumerate}
\item \textbf{所有网络接口均与FPGA相连}
进入交换平台的分组首先送FPGA处理离开交换平台的分组最后由FPGA发出。这样有两个优点。一是交换平台可精确获取分组接收时间以及控制发送时间实现类似1588透明时钟的控制支持时间敏感交换二是平台可以支持各种新型的分组格式支持内容中心网络ICN等非IP交换。
\item \textbf{FPGA通过高带宽总线与CPU连接。}
与传统交换芯片通过低带宽的SPI总线、以太网或是单Lane的PCIE总线与控制CPU连接不同FAST平台中FPGA通过高带宽的总线与CPU连接提升软硬件协同分组处理的性能支持通过CPU软件对数据平面处理功能进行扩展。
\end{enumerate}
FAST交换平台的实现架构如图\ref{fig:a:ob_FAST-Ac}所示。
\begin{figure}[!ht]
\centering
\includegraphics[width=11cm]{FAST-Ac}
\caption{FAST平台实现架构图}
\label{fig:a:ob_FAST-Ac}
\end{figure}
平台硬件逻辑分为两部分一部分是平台相关的外围接口和与平台CPU互联的高速总线接口逻辑统称为FPGA OS。其主要实现平台相关,交换功能无关的分组处理如网络接口的接收与发送、CPU的DMA引擎以及FPGA片外或片内实现的TCAM查表功能等另一部分是用户模块逻辑UM其主要实现交换相关的网络功能每一个小的流水线模块称为硬件应用HA如分组解析、关键字提取、转发查表、动作执行和输出控制等。用户可在UM模块中扩展HA流水线实现不同的分组处理功能。
平台软件逻辑分为三部分一是平台相关驱动由厂商实现其具体平台的硬件数据IO驱动一般包含PCIe驱动、DMA驱动和以太网驱动二是FAST分组分派模块主要实现内核应用模块、协议栈模块和用户应用UA和底层驱动的数据分派功能三是FAST分组应用主要包括在通过标准内核协议栈支持的通用SOCKET应用CA、内核编程开发的内核应用KA和基于FAST快速IO编程开发的用户应用。
FAST平台的分组处理功能分布在硬件HA和软件的KA、CA及UA各功能模块之间的转发和连接关系可由模块的ID号与下一组模块ID号关联配置实现分组数据在FAST平台的处理流水线模块排列如图\ref{fig:a:ob_FAST-Pkt-Proc}所示效果。
\begin{figure}[!ht]
\centering
\includegraphics[width=11cm]{FAST-Pkt-Proc}
\caption{FAST分组处理流水线排列图}
\label{fig:a:ob_FAST-Pkt-Proc}
\end{figure}
\subsection{平台应用}
由于FAST平台架构的特征其应用开发可以是软件开发、硬件开发或软硬件结合开发具体根据平台应用场景和用户具体需求而定。
FAST项目自创立至今已经在传统网络应用、工业互联网和创新网络架构设计等方面得到了广泛应用。通过在不同领域的应用积累了大量网络教学实验案例如网络协议分析与编程、协议攻击与防护、路由器系统设计与实现、SDN交换机设计与实现、网络高精度测量、时间敏感网络设计与实现、高性能网络IO和网络应用的硬件卸载加速等。
\subsection{平台使用}
FAST是一个与平台无关的开源架构根据FAST原理和规范实现的CPUFPGA异构网络设备形态都属于FAST平台。FAST平台的CPU支持国产与非国产多种型号FPGA也可以支持国产和非国产的多种型号。下面以下湖南新实的一款专业网络实验教学设备型号OpenBox-S4为例说明如何使用FAST平台。
\subsubsection{搭建环境}
使用FAST平台开发和验证网络功能需要搭建FAST环境。FAST环境包括以下三个部分
\begin{enumerate}
\item \textbf{用户操作设备:}一般是一台标准的电脑可以是台式机或笔记本除了基本操作IO设备外电脑还要求至少拥有一个网口或一个USB口。该设备供用户编辑和编译软硬件逻辑代码通过网口或串口上传和下载逻辑程序和运行结果
\item \textbf{FAST平台设备}一台符合FAST规范的可编程网络开发平台。平台支持FAST开源示例应用可供用户基于平台进行软硬件逻辑功能的二次开发。平台至少提供一个串口和一个管理网口用于支持用户网络远程或本地串口线登录平台进行操作
\item \textbf{网络测试主机:}测试主机一般为支持网络功能的主机或嵌入式小型设备,如笔记本或树莓派。根据实验内容的不同,需要的网络测试主机数量及主机网络配置各不相同,具体参考相应的实验案例内容要求。
\end{enumerate}
\subsubsection{FAST平台设备}
OpenBox-S4设备是一款严格遵照FAST原理与架构设计的通用多核CPUFPGA的软硬件全功能可编程网络开发平台。适合本科和研究生的计算机网络教学和新型网络交换机制的验证。
该设备采用Zynq-7000 SOC芯片内嵌双核Cortex-A9 处理器512MB DDR3内存支持4个千兆以太网数据接口1个千兆管理以太网接口和一个管理串口。设备外观与接口说明如图\ref{fig:a:ob_f01}和图\ref{fig:a:ob_f02}所示:
\begin{figure}[!ht]
\centering
\includegraphics[width=10cm]{f01}
\caption{OpenBox-S4设备前端图}
\label{fig:a:ob_f01}
\end{figure}
\begin{figure}[!ht]
\centering
\includegraphics[width=10cm]{f02}
\caption{OpenBox-S4设备后端图}
\label{fig:a:ob_f02}
\end{figure}
在实验过程中,测试主机设备通常连接在设备的数据接口位置,用户操作管理设备时通过管理网口或串口连接。
\subsubsection{登录设备平台}
\begin{enumerate}
\item 串口方式
\begin{enumerate}
\item 连接串口线;
设备使用标准USB口和Micro USB接口的线作为串口连接线标准USB口连接在用户操作设备上Mirco USB接口与设备对应串口连接。
\item 打开并配置串口工具。
在用户操作设备上打开串口工具配置好相应串口参数后打开串口即可通过串口管理设备。以putty为例其配置参数如图\ref{fig:a:ob_f11}所示:
\begin{figure}[!ht]
\centering
\includegraphics[width=7cm]{f11}
\caption{串口工具参数配置图}
\label{fig:a:ob_f11}
\end{figure}
\end{enumerate}
\item 管理网口方式
\begin{enumerate}
\item 连接网线;
使用一根RJ45端口的网线分别连接在用户操作主机端与设备的管理网口MGMT网口出现指示灯闪烁说明连接正常。
\item 配置主机端IP信息。
通过网连接连接设备必须确保用户操作主机与设备管理网口在相同的网段如不记得管理网口的IP可以通过串口方式查看。设备默认网段为192.168.50.0网段故用户操作主机的IP地址配置信息参考如图\ref{fig:a:ob_f12}所示:
\begin{figure}[!ht]
\centering
\includegraphics[width=10cm]{f12}
\caption{网口连接的主机IP配置图}
\label{fig:a:ob_f12}
\end{figure}
\end{enumerate}
\end{enumerate}
\subsubsection{测试二层交换功能}
\begin{enumerate}
\item 搭建二层交换拓扑
二层交换实验的两台测试主机可以随意连接到设备的数据接口位置网口0到网口4均可。测试主机的IP地址配置及连接拓扑如图\ref{fig:c:router-ob_switch-topo}所示:
\item 在OpenBox-S4上运行二层交换程序
 用串口或网线连接用户操作主机与设备通过串口登录界面或网络登录界面控制设备在界面终端输入命令l2switch如图\ref{fig:a:ob_f16}所示:
\begin{figure}[!ht]
\centering
\includegraphics[width=10cm]{f16}
\caption{二层交换命令启动输出图}
\label{fig:a:ob_f16}
\end{figure}
\item 在PC两端进行PING测试
在主机B的CMD (命令提示符) 程序中。输入并执行命令ping 192.168.1.111 即可测试两台主机之间的联通性。测试结果如图\ref{fig:a:ob_f17}所示:
\begin{figure}[!ht]
\centering
\includegraphics[width=10cm]{f17}
\caption{二端主机PING通结果图二层交换}
\label{fig:a:ob_f17}
\end{figure}
\end{enumerate}
\subsubsection{测试三层路由功能}
\begin{enumerate}
\item 搭建三层路由拓扑
三层路由实验的两台测试主机要根据主机端IP地址配置和网关配置分别连接到主机对应网关的接口上。连错线会导致实现失败。测试主机的IP地址配置及连接拓扑如图\ref{fig:c:router-ob_router-topo}所示:
\item OpenBox-S4上运行三层路由程序
 用串口或网线连接用户操作主机与设备通过串口登录界面或网络登录界面控制设备在界面终端输入命令l3router如图\ref{fig:a:ob_f19}所示:
\begin{figure}[!ht]
\centering
\includegraphics[width=10cm]{f19}
\caption{运行三层路由程序}
\label{fig:a:ob_f19}
\end{figure}
\item 在PC两端进行PING测试
在主机A的CMD (命令提示符) 程序中。输入并执行命令ping 192.168.2.119 即可测试跨路由功能。测试结果如图\ref{fig:a:ob_f20}所示:
\begin{figure}[!ht]
\centering
\includegraphics[width=9cm]{f20}
\caption{端主机PING通结果图三层路由}
\label{fig:a:ob_f20}
\end{figure}
\end{enumerate}
\subsubsection{测试SDN交换功能}
\begin{enumerate}
\item 搭建SDN交换拓扑
SDN交换实验的两台测试主机可以随意连接到设备的数据接口位置网口0到网口4均可SDN控制器主机的网线一定要连接在设备的管理网口MGMT。控制器主机和测试主机的IP地址配置及连接拓扑如图\ref{fig:c:sdn-ob_sdn-topo}所示:
\item 在SDN控制器主机中启动SDN控制器
 在终端命令行下输入 java jar target/floodlight.jar即启动floodlight控制器。如图\ref{fig:a:ob_f22}所示:
\begin{figure}[!ht]
\centering
\includegraphics[width=8cm]{f22}
\caption{启动floodlight控制器}
\label{fig:a:ob_f22}
\end{figure}
\item 在设备平台上运行SDN交换程序
 在串口登录界面或网络登录界面输入命令xofp -4 192.168.1.3 i obx0,obx1,obx2,obx3 连接Floodlight控制器。如图\ref{fig:a:ob_f23}所示:
\begin{figure}[!ht]
\centering
\includegraphics[width=8cm]{f23}
\caption{运行SDN交换程序}
\label{fig:a:ob_f23}
\end{figure}
\item 访问floodlight控制器首页
 在控制器主机打开浏览器在浏览器地址栏输入127.0.0.1:8080/ui/index.html 访问floodlight控制器首页。界面如图\ref{fig:a:ob_f24}所示:
\begin{figure}[!ht]
\centering
\includegraphics[width=10cm]{f24}
\caption{访问floodlight控制器首页}
\label{fig:a:ob_f24}
\end{figure}
\item 在PC两端进行PING测试
在主机A的CMD (命令提示符) 程序中。输入并执行命令ping 192.168.2.119 即可测试两台主机之间的联通性。测试结果如图\ref{fig:a:ob_f25}所示:
\begin{figure}[!ht]
\centering
\includegraphics[width=7cm]{f25}
\caption{端主机PING通结果图SDN交换}
\label{fig:a:ob_f25}
\end{figure}
\end{enumerate}
\subsection{FAST开源社区}
由于FAST架构设计的独特优势用户无需关心平台的分组网络IO、存储和加速方法只专注于创新架构的设计和核心技术研究极大的加快网络创新技术的落地与应用。来自全国的近100家的高校、科研院所和设备厂商单位都加入的FAST开源社区。FAST开源社区致力于网络领域的基础网络技术分析与实现热门网络技术跟踪研究与原型实现和未来网络技术探索与研究。更多的网络前沿技术及FAST的实现方法以及FAST的编程开发方法请关注FAST社区公众号及\href{http://www.fastswitch.org}{FAST官方网站}
\begin{figure}[ht!]
\centering
\includegraphics[width=4cm]{fast-w}
% \caption{FAST公众号}
\label{fig:a:ob_fast-w}
\end{figure}