多模态网络裁决

多模态内生网络内生安全综合实践

来自学长的Tips:能够打通所有等级的学弟学妹,还犹豫什么,快来福大读研。
实践预览:需要通过自己的努力利用p4语言来一步一步实现一个多模态网络,并且实现一些内生安全功能。

1. 实践任务

Level 1 学习多模态网络

(1)实践内容

  • 直接看压缩包《多模态内生安全入门》的内生安全入门2.0.word,来看懂这个入门材料中关于多模态网络和内生安全机制的含义。
  • 在自己主机内利用wireshark抓取ipv4的数据包,抓完之后的数据包以pcap的形式进行保存,并传入到虚拟机,数据包不超过10MB。
  • 自己创建一个新文件夹,在虚拟机内利用mininet搭建一个如下图所示的拓扑。可以用l3函数对这些设备进行ip与mac地址自动赋值,其中两台主机请同学以自己的组名_数字进行命名,如XXX_1。
    示例拓扑

(2)实践要求

  • 提交一个压缩包,内包含三个文件,一个是本组对多模态网络的汇报ppt;两个Pcap数据文件;mininet拓扑文件。

Level 2 让多模态网络动起来

(1)实践内容

  • 学习向这几台设备中写入正确的路由表,当前路由路径只需要支持h1-S1-S2-S4-h2。在makerun之后,使用pingall测试网络是否可以正常运行。可以利用Json进行路由表写入,也可以通过集成度更高的P4runtime进行开发可以点击这里查看P4runtimeAPI的使用方法,来实现控制面的对数据平面进行控制的JSON文件编写。
  • 学会IPv6中有关义头部字段的定义与路由流程,学习自定义IPv6头部,并且掌握对应的解析规则,然后自己设计一个头部字段,介于以太层与IP层之间,名字以自己小组名字为命名,内涵字段包含每个小组成员的名字,要在解析阶段解析该头部字段。

(2)实践要求

  • 提交一个压缩包,内包含两个文件,一个是填充交换机表项的Json文件;二是本组内自定义头部字段可运行的p4文件。

Level 3 让多模态网络动都起来

(1)实践内容

  • 向拓扑中的S1,S3,S4的p4代码加入IPv6头部解析功能与转发功能。其中S3交换机只支持ipv6协议转发,S1与S4要支持IPv4与IPv6的双模态转发。
  • 学习数据包重放工具,如Tcpreplay等,先在h1重放ipv4数据包至h2证明ipv4网络可以运行(mininet中如何使用tcpreplay,可以点击这里mininet中使用Tcpreplay)。
  • 测试S1,S3,S4的p4代码是否正确并在h2重放IPv4数据包至h1,证明IPv6可行,在S3交换机进行抓包证明数据确实被封装为了IPv6数据包。

(2)实践要求

  • 提交一个压缩包,内包含所有设备的P4文件,请注明每个P4文件用于哪个设备;h1与h2接收到数据包的截图;S3抓取到的IPv6数据包截图。

Level 4 多模态裁决

  • 利用组播在S1中将ipv4数据包复制成ipv4模态与ipv6模态的两份,ipv4数据包走路径一传递给S2交换机,ipv6走路径二传递给S3交换机。最后在S4交换机进行裁决,将数据包的原有的数据包头进行hash。
  • 同理如果是h2传输至h1的数据包,将由S1进行裁决。
  • 将hash之后的值在S4 交换机中进行比较,如果hash值相同,证明数据包没有受到修改。不相同,证明数据包遭到修改,丢弃数据包并且将ipv6模态置信度置为10,ipv4模态置为5,继续选择IPv6 模态承载的数据包进行转发(要去掉封装的包头)。
    在这里插入图片描述

(2)实践要求

  • 上交S4与S1中的裁决P4代码。

Level 5 更多的模态

(1)实践内容

做到这一步的同学可以在已有的两个模态上进行进一步开发,没多一个模态需要在交换机S1与S4中嵌入更多的交换机,并且执行更加复杂的多模裁决,此时裁决算法请参考我们Level1中基于动态异构冗余机制的路由器拟态防御体系结构 去设计裁决算法(如何更好地判断数据包是否被更改的方法)来对这些不同模态的数据包进行裁决。

最低要求,加入一个源路由模态。
进阶内容加入更多的模态,得分更高。

(2)实践内容

上交多模态拓扑文件与对应的P4文件,并且给出一个中文的裁决方法的文档。并且设计前端,利用前端可以直接演示已完成的模态与裁决算法。
更多的模态拓扑

2. 实践过程与要求

  • 1)每实现一个level,提供要求中对应的截图或者是实现的代码。代码则需要提供源代码的Git链接(包括P4程序、控制面python程序、流规则、拓扑文件)和编译运行的结果。代码会查重,请大家每组完成自己的设计。
  • 2)每个成员的课程总结:
    • 查阅了哪些资料,在哪些平台学习了哪些相关知识;
    • 英文、文献资料调研、编码、网络基础等相关技能的综合掌握情况;
  • 3)团队成员的讨论照片,包括但不限于在线会议、在线群聊、线下讨论;
  • 4)综合实践组队(每队不超过5人)完成,组队完成必须按比例注明成员工作量(不注明就默认均分)

3. 项目报告要求

  • 1)每组撰写一份综合实践报告,作业最开头标注所有成员的学号和姓名,同时标注完成的设计等级
  • 2)关于提交:
    • 提交三个部分:1)文档,提交格式为pdf,采用Markdown撰写;2)源代码,整体打包;3)详细的背景介绍和项目演示视频

    • 命名方式:“组号+组长姓名+组长学号.zip”

    • 提交方式:在截止时间之前提交,由组长上传1份压缩包文件。

4. 实验镜像

  • **P4 Tutorial Development 2024-03-01 **
链接:https://pan.baidu.com/s/1KB5BQvYQDq82dLhn7g2E0w 
提取码:bwae 
--来自百度网盘超级会员V6的分享
  • 更多版本
https://github.com/jafingerhut/p4-guide/blob/master/bin/README-install-troubleshooting.md
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值