NSP4——P4网络模拟器的使用

作者简介:汪培侨,福州大学数计学院2014级计算机科学与技术(实验班)本科生,目前针对软件定义网络SDN的P4语言进行研究。
陈翔,福州大学数计学院2015级计算机科学与技术(实验班)本科生 ,对软件定义网络SDN,特别是对P4语言感兴趣。
黄志文,福州大学数计学院2014级计算机科学与技术(实验班)本科生,研究侧重于数据平面可编程化。

一、前言

NSP4是一个网络模拟器,旨在为P4开发者创建一个可视化的P4流表管理及拓扑建立工具,帮助P4开发者更好的调试自己的程序。此开发工具是基于开源控制器Ryu中的开源应用gui_topology所改编的应用,并编写了可视化web界面,让开发者更直观地查看P4运行时的配置。

源码可查看github链接:https://github.com/Emil-501/NSP4

二、运行环境介绍

三、程序主要功能及程序架构

程序主要功能:

  • 动态生成底层拓扑
  • 查看底层拓扑视图
  • 查看指定P4交换机的table及table entry
  • 下发table entry
  • 删除table entry

程序架构:

图1

四、P4程序示例

注:参考源码请见:https://github.com/Emil-501/NSP4/tree/master/p4src。

此P4程序结构,需动态配置table结构,table配置如下:

table-name match-key action
smac ethernet.srcAddr mac_learn; _nop
mcast_src_pruning standard_metadata.instance_type _nop; _drop;
dmac ethernet.dstAddr forward; broadcast

五、实验过程

1.通过Ryu应用的启动命令,启动NSP4,并将P4程序放在NSP4/src下,如github链接:https://github.com/Emil-501/NSP4所示结构:

图2

该源码请查看:https://github.com/Emil-501/NSP4/tree/master/p4web。

2.进入浏览器,输入127.0.0.1:8080,进入web界面

图3

3.建立mininet P4 网络拓扑

输入对应的拓扑信息:

图4

在右侧可得得到相应的可视化拓扑信息:

图5

4.输入以下命令启动底层的mininet,通过net命令查看拓扑,拓扑建立正确:

图6

输入net命令

图7

5.点击指定交换机,如下图(a)所示;可以查看得到相应的table界面,如下图(b)所示,可得到与第四节 《四、P4程序示例》相符的table结构

图8

图(a)

图9

图(b)

6.下发Table entry

对S1的dmac表,下发如图所示的entry:

图10

可得到相应的流表信息已显示在web界面上:

图11

通过底层的P4运行时命令,也可查看到下发的entry信息:

图12

7.删除Table entry

删除刚刚下发Table entry:

图13

通过底层的P4运行时命令,也可查看到刚刚下发entry信息已被删除:

图14

六、存在及待优化问题

界面美观程度较为一般,功能仅仅包括上述所示,缺少查看counter之类的功能;获取代码后需要根据自身电脑的配置信息,修改源代码相关路径信息;建议使用火狐、谷歌浏览器。

七、参考材料

https://www.sdnlab.com/1785.html

http://www.cnblogs.com/qq952693358/p/6195385.html


  • 本站原创文章仅代表作者观点,不代表SDNLAB立场。所有原创内容版权均属SDNLAB,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用,转载须注明来自 SDNLAB并附上本文链接。 本站中所有编译类文章仅用于学习和交流目的,编译工作遵照 CC 协议,如果有侵犯到您权益的地方,请及时联系我们。
  • 本文链接https://www.sdnlab.com/19370.html
分享到:
相关文章
条评论

登录后才可以评论

考拉小无 发表于17-06-09
2