SDN第八次上机作业

实现IPV4 隧道转发

补充basic_tunnel代码
相关代码可在这里查看
make run


使用mininet命令打开h1,h2终端
xterm h1 h2

在h2中选择接收数据,h1中选择发送数据
./receive.py
./send.py 10.0.2.2 "it's cool"

接着,修改发送目的地址,且额外加上隧道
./send.py 10.0.3.3 "it's really cool" --dst_id 2
可观察到h2收到消息,因为编程中设置的是有隧道时候一定走隧道

进阶任务

补充mycontroller代码,代码可在这里
启动网络
make

尝试h1 ping h2和pingall,因为交换机没有规则,所有不能ping成功

打开另外一个终端,输入命令打开控制器,可以看到每两秒打印一次隧道入口和出口计数器

cd ~/tutorials/exercises/p4runtime
./mycontroller.py


在第一个终端再次尝试ping命令,发现ping通,并且终端2计数器发生变化增加5
h1 ping -c 5 h2

个人心得

之前make run一直报错,于是去官网copy了一下源代码,但还是报错。 make run 时会出现 mark_to_drop: Passing 1 arguments when 0 expected 的报错。后来查看同学的博客,发现只需要把参数去掉就可以了。实验过程由于都有源代码,其实run起来很简单,但是如果想要真正了解p4,就需要阅读源代码,了解其解析过程等。学会自己编写p4程序。

posted @ 2021-11-02 11:17  如梦的少年丶  阅读(58)  评论(0编辑  收藏  举报