P4——basic练习笔记

basic.p4文件包含了一个骨架P4程序,其中关键逻辑部分被TODO注释替换。你的实现应该遵循这个文件中给出的结构——用逻辑来替换每个TODO,实现缺失的部分。

一个完整的basic.p4将包含以下组件:

  • 以太网(ethernet_t)和IPv4(ipv4_t)的头部类型定义。
  • TODO:解析器,用于填充ethernet_tipv4_t字段。
  • 一个使用mark_to_drop()来丢弃数据包的动作。
  • TODO:一个名为ipv4_forward的动作,它应该:
    • 设置下一跳的出口端口。
    • 更新以太网目的地址为下一跳的地址。
    • 更新以太网源地址为交换机的地址。
    • 减少TTL。
  • 一个控制块,其中包括:
    • 定义一个表,用于读取IPv4目标地址,并调用dropipv4_forward
    • 一个应用块,应用该表。
  • TODO:一个解封装器,选择插入到传出数据包中的字段的顺序。
  • 一个包实例,包含解析器、控制和解封装器。

通常,一个包还需要校验和验证和重新计算控制的实例。但这些对于本教程来说不是必需的,并且被空控制的实例所替换。

Step 3: Run your solution

按照第一步的指示操作。这一次,你应该能够成功地在拓扑中的任意两个主机之间进行ping。

思考
你的解决方案的“测试套件”——在拓扑中的主机之间发送ping包——不够健壮。你还应该测试什么才能确保你的实现是正确的呢?

虽然Python的scapy库超出了本教程的范围,但它可以用于生成测试用的数据包。send.py文件展示了如何使用它。

其他需要考虑的问题:

如何改进你的程序来响应ARP请求?
如何改进你的程序以支持traceroute?
如何改进你的程序以支持下一跳?
这个程序足以替代路由器吗?还缺少什么?
故障排除
在开发过程中可能会出现几个问题:

basic.p4可能无法编译。在这种情况下,make run将报告编译器发出的错误并停止。
basic.p4可能会编译通过,但不能支持make run尝试使用P4Runtime安装的s1-runtime.json到s3-runtime.json文件中的控制平面规则。在这种情况下,如果无法安装控制平面规则,make run将报告错误。使用这些错误消息来修复你的basic.p4实现。
basic.p4可能会编译通过,并且控制平面规则可能已经安装,但交换机可能无法以期望的方式处理数据包。logs/sX.log文件包含了每个交换机如何处理每个数据包的详细日志。输出是详细的,可以帮助确定你的实现中的逻辑错误。
清理Mininet
在上述后两种情况下,make run可能会留下一个正在后台运行的Mininet实例。使用以下命令清理这些实例:

   make stop

The Use of Gateway (gw) and ARP Commands in topology.json

网关(gw)命令:route add default gw命令用于为主机设置默认网关。这告诉主机,如果目标IP不在同一个子网上,应该将数据包发送到哪个IP地址。对于主机来说,了解其默认网关对于与本地网络外的设备通信非常重要。

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数网络安全工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。

img

img

img

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上网络安全知识点!真正的体系化!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

opics/618653875)

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

  • 21
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值