Frenetic Python实验(一)

本文通过两个实验介绍Frenetic在网络编程中的应用:实验一模拟极限防火墙丢弃所有数据包;实验二模拟交换机MAC地址学习过程,展示如何根据学习到的MAC地址进行流量转发。

Follow:

Github-Frenetic

准备:

所有的实验,第一步都需要开启控制器,命令:

$ frenetic http-controller --verbosity debug

每一个实验,维护三个终端,一个控制器,一个mininet,还有一个用来跑你需要测试的应用。

实验1 drop_all

This application very simply drops all packets - the ultimate firewall!

目的:本次实验模拟极限防火墙,丢弃所有的包。

1.终端1:打开控制器:
885822-20161130174921177-1739788423.png

2.终端2:Mininet Command:

sudo mn --topo=single,2 --controller=remote

885822-20161130174957662-183247492.png

3.终端3:

$ python -m frenetic.examples.drop_all.py

885822-20161130175036943-651122342.png

4.在终端2 Mininet中pingall,结果全部丢包:

mininet> pingall

885822-20161130175120662-116346866.png

实验2 Mac learning

This application implements a single L2 switch with an abitrary number of ports. It'll learn MAC addresses and selectively route traffic for those it knows about.

目的:模拟交换机mac学习的过程。这个应用脚本执行了一个二层交换机,同时有很多任意的端口,它会不断的学习mac地址,并根据它所学习到的内容进行路由选择和流量转发。

1.终端1打开控制器。

2.终端2打开mininet:

sudo mn --topo=single,10 --controller=remote

885822-20161130175549818-876288085.png

刚刚开始的控制器:

885822-20161130175607318-908587430.png

3.终端3执行应用脚本:

$ python -m frenetic.examples.learning

885822-20161130175623552-930735374.png

控制器信息:

885822-20161130175956974-1195149046.png
885822-20161130180006631-1775067193.png

4.在终端2里面pingall:

mininet> pingall

第一次pingall全部失败:
885822-20161130175805959-250347762.png

但是查看控制器,发现控制器学习了路由信息,不断设置流表:
885822-20161130180056224-1337178646.png

终端3信息:
885822-20161130180127271-882404114.png

第二次pingall,交换机学习了部分路由信息:
885822-20161130180221568-885000453.png

第三次pingall,pingall成功率上升:
885822-20161130180245506-856955822.png

pingall in the Mininet window should yield 100% successfully sent packets. There will be a lot of Packet Out activity at first, but as MACs are learned the controller traffic should quiet down. Eventually the switch will handle all the traffic itself.

本实验模拟的是一个交换机不断学习mac的过程,因此,总有一天pingall会100%(摊手)。

2016/11/30

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值