网络遥测之 INTCollector 部署与验证

作者信息:谭立状,北京交通大学,lzhtan@bjtu.edu.cn

网络遥测是目前网络测量领域的一个热点研究内容。ONOS控制器在1.15版本便支持了带内网络遥测In-band Network Telemetry应用,但在实际使用过程中,由于作者并未继续更新相关组件版本,部署成功率较低。本文详细介绍了基于 INTCollector的带内网络遥测部署与演示过程。

INTCollector是在ONOS的INT APP基础上拓展的网络监测工具,源码可参考:https://gitlab.com/tunv_ebpf/BPFCollector

INTCollector是一个用于处理INT遥测报告的高性能收集器,并将数据发送到Prometheus和InfluxDB等数据库服务器(本文以InfluxDB数据库为例说明)。INTCollector支持INT遥测规范v1.0(目前,INT遥测规范已更新到v2.0)。

基础环境:

  • Ubuntu 18.04(内核版本=v4.15,更高内核版本可能不支持,作者并未验证)
  • ONOS(版本号=2.2,ONOS 1.15版本以后均支持INT,读者可以选用其他版本)
  • Python 2.7, python-pip, mininet, InfluxDB, Grafana, Cython

实验说明:

如图1所示,利用ONOS自带的bmv2-demo环境(包括H1、H2、S11、S12、S21、S22),中间交换机利用H1发送给H2的ping包(或iperf包)逐条封装需采集的遥测数据,由S12导出遥测数据至遥测服务器。

第一步:部署P4开发环境

方法一:可以直接执行/onos/tools/dev/bin/onos-setup-p4-dev一键部署。
方法二:根据教程自行部署。

*部署过程极慢,建议北京时间清晨部署或翻墙部署。

第二步:安装BCC

(1)下载https://github.com/iovisor/bcc/tree/tag_v0.7.0,重命名文件夹名称为bcc,推荐放在home文件夹下
(2)安装llvm-3.9和clang3.9,执行下列命令

安装完成后,执行下列命令补充clang

(3)完成llvm-3.9和clang3.9,执行下列命令

*参考资料:https://github.com/iovisor/bcc,需要安装旧版本,如0.7

第三步:下载BPFCollector

第四步:配置并测试

(1)依次执行

(2)在/BPFCollector文件夹中运行

可以验证Python环境对InfluxDB和网口的支持情况。

若结果显示:

则表示通过检查。

第五步:配置INT环境

修改拓扑,找到$ONOS_ROOT/tools/test/topos/bmv2-demo.py

(1)将from mininet.link import TCLink替换为from mininet.link import TCLink, Intf
(2)在net.build()后另起一行插入collectorIntf = Intf( ‘veth_1’, node=net.nameToNode[ “s12” ] )

*注意虚拟网卡编号veth_1

第六步:启动ONOS和Mininet

(1)打开新终端1(启动ONOS控制器):

(2)打开新终端2:

ONOS Web UI登陆地址:http://localhost:8181/onos/ui,默认用户名密码:karaf。

(3)打开新终端3(启动Mininet):

(4)打开新终端4:

*最后一个参数4代表虚拟网卡veth_1在mininet中s12交换机上的端口编号,本例中为4,也可能是其他数字,根据实际情况配置

第七步:配置遥测参数

在ONOS Web中配置INT服务器和遥测参数:
(1)遥测服务器IPv4地址为127.0.0.1,端口号为54321,并应用。
(2)配置流IP地址和端口号,根据实际情况来,iperf UDP选5001端口。其中遥测项目必选Switch Id和Egress timestamp,其他可选。
(3)生成流量: 在mininet中执行

生成流量。

第八步:查看遥测结果

打开Grafana,地址为http://localhost:3000" target="_blank">http://localhost:3000
配置Grafana的步骤可以自行百度。
可以通过Influxdb客户端查看数据库INTdatabase里的数据表名称,绑定到Grafana上。

最终效果可以参看视频演示


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

登录后才可以评论

tanlizhuang 发表于20-07-09
2