1.Ubuntu16.04中配置p4编程环境(二)
2.谷歌翻译的源译mininet教程
3.SDN入门学习
Ubuntu16.04中配置p4编程环境(二)
在Ubuntu . LTS (内核4..0--generic)上搭建p4编程环境,耗时一周,码编经历了不少挑战。源译下面分享详细的码编安装步骤,供参考。源译
一、码编eclipse编译dubbo源码安装依赖项与gmock
首先,源译从源码下载gmock并编译。码编确保所有单元测试通过,源译完成后将gmock-1.7.0改名到gmock。码编
二、源译安装protobuf
protobuf是码编关键组件,下载稳定版本,源译解压后运行脚本。码编务必确保make check所有模块通过,源译解决错误后再继续。
三、安装p4c - 编译器核心
从源码下载p4c,如遇到问题可尝试git替代。编译过程中,cmac源码注意内存不足问题,可能需要创建swap分区。确保所有单元测试通过后,进行安装。
四、bmv2 - 软件交换机环境
下载bmv2源码,安装依赖并升级pip,编译并通过所有单元测试后安装,查看版本确认安装成功。
五、grpc - 通信框架
grpc用于透明通信,安装时确保所有测试通过。
六、安装PI - 控制平面实现
PI的安装相对简单,基本无问题。
七、mininet - 网络仿真器
mininet用于构建虚拟网络拓扑。
八、p4-tutorials - 官方教程与实验
完成所有基础组件后,gpstk源码可以开始学习和实践p4教程。
九、安装完成
最终的P4目录结构如下,工作主要在tutorials目录,其他为工具组件。至此,p4环境已经配置完毕,可以开始你的学习之旅了。
谷歌翻译的mininet教程
第1部分:日常Mininet使用
使用Mininet启动选项显示帮助消息,命令为:$ sudo mn -h。演练将涉及启动选项的典型用法。在后台打开Wireshark,输入过滤器 of,并在Wireshark中选择回送接口(lo)进行启动。确保Wireshark已安装在Mininet VM映像中,如未安装,可通过Mininet的install.sh脚本安装,使用命令:$ cd ~ $ git clone github.com/mininet/mini...。若Wireshark安装成功但无法运行,mprotect源码查阅FAQ: /mininet/mininet/wiki/FAQ#wiki-x-forwarding。正确设置X将允许运行GUI程序和xterm终端仿真器。
与主机和交换机交互:启动最小拓扑并输入CLI:$ sudo mn。显示节点、链接和所有节点信息的命令分别为:mininet> nodes、mininet> net、mininet> dump。在主机上运行命令:mininet> h1 ifconfig -a,查看主机h1-eth0和loopback(lo)接口。交换机命令:mininet> s1 ifconfig -a,显示交换机接口以及VM的连接输出(eth0)。突出显示主机已分离的网络状态,运行arp和route命令。将主机、交换机和控制器置于隔离网络名称空间,除非需要复制复杂的多控制器网络,Mininet支持此操作,通过--innamespace选项实现。
测试主机之间的movies源码连接:确认可以从主机0 ping到主机1。运行其他实例arp和route命令。Mininet CLI内置pingall命令执行全对操作ping。
运行Web服务器和客户端:在主机上启动简单HTTP服务器,并通过请求运行客户端,随后关闭Web服务器。退出CLI:mininet> exit。
清理:如果Mininet崩溃,使用$ sudo mn -c命令清理。
第2部分:高级启动选项
运行回归测试:$ sudo mn --test pingpair,创建最小拓扑,启动OpenFlow参考控制器,进行全对ping测试,并拆除拓扑和控制器。另一个测试是iperf:$ sudo mn --test iperf,创建相同的Mininet,在一台主机上运行一台iperf服务器,在第二台主机上运行一台iperf客户端,并解析带宽。
改变拓扑的大小和类型:使用--topo选项,创建其他拓扑。例如,验证一台交换机和三台主机的所有对ping连接:$ sudo mn --test pingall --topo single,3。线性拓扑示例:$ sudo mn --test pingall --topo linear,4。
参数化拓扑是Mininet最有用和最强大的功能之一。链接变化:使用--link选项设置链接参数。例如,$ sudo mn --link tc,bw=,delay=ms,启动内核交换机,运行iperf,使用命令:mininet> iperf,执行ping测试:mininet> h1 ping -c h2。延迟设置对RTT有影响。
可调详细度:默认详细级别为info,打印启动和拆卸期间的操作。使用-v参数比较debug输出。设置output可以仅显示CLI输出,其他几乎没有输出。在CLI外部,可以使用其他详细级别。
第3部分:Mininet命令行界面(CLI)命令显示选项
使用$ sudo mn -h命令查看CLI选项列表。在Python解释器中使用命令:运行python、dir()函数查看方法和属性、help()函数获取方法信息、评估变量方法。
第4部分:Python API示例
Mininet源代码树中的 examples目录包含Python API示例和潜在有用代码。示例包括在每个主机上运行SSH守护程序,允许从另一个终端进入并运行交互式命令,退出SSH示例mininet,以及openflow官网教程。在另一个shell中启动控制器,cd ~/pox,运行./pox.py log.level --DEBUG misc.of_tutorial命令,并使用tcpdump命令进行网络监控。
SDN入门学习
SDN入门学习
一、SDN概念理解
SDN(Software Defined Network)始于年斯坦福大学的Clean State研究课题,并于年由Mckeown教授正式提出。它是一种网络设计理念,强调网络硬件的集中式软件管理与可编程化,将控制与转发层面分开,以实现对网络的灵活控制。SDN并非单一技术或协议,而是一种思想、一种框架。其概念已延伸至SDN安全、SDN存储等。SDN席卷IT产业,正在改变网络工程师、运维人员的工作方式,促进网络部署从“手码”配置向“编程式”部署转变。
二、SDN组织
主要SDN组织包括:ONF(Open Networking Foundation)、ODL(Opendaylight)、ONOS(Open Network Operating System)和NFV(Network Function Virtualization)。这些组织分别关注网络标准化、开源平台框架、面向运营商的控制器开发以及网络功能的虚拟化,共同推动SDN技术发展。
三、SDN案例
Google的B4网络是SDN的成功案例,通过引入OpenFlow交换机与分布式控制器架构,显著提高了数据中心间WAN链路的利用率,展示了SDN在大规模流量管理中的优势。此项目展示了软件能力在SDN中的重要性。
四、SDN测试环境搭建
搭建SDN测试环境,可通过Ubuntu + Mininet + Opendaylight实现。首先安装Ubuntu ..1(位),接着安装Mininet和Opendaylight。安装步骤包括源码下载、配置、安装功能组件和访问ODL Web界面。通过Python自定义网络拓扑配置,关联ODL,实现网络实验。
五、SDN学习小结
学习SDN,了解SDN概念、组织、案例与测试环境搭建,掌握Mininet、Opendaylight、OpenFlow、NFV和VNF的基本知识。对于企业应用,了解SDN在SD-WAN和NFV领域的活跃,评估SDN是否适用于特定需求。学习SDN有助于提升自动化运维能力,提高运维效率。参考相关文档深入学习。