Mininet仿真实验——防火墙的配置

防火墙配置中采用RYU自带的防火墙程序(rest_firewall.py)来实现,rest_firewall.py本身不需要配置,可通过手动为其配置防火墙规则。

先打开防火墙,使用命令:

ryu-manager rest_firewall.py

如下图

或者打开防火墙监听特定的端口:

ryu-manager rest_firewall.py --ofp-tcp-listen-port=6634

可以通过以下方式为其配置防火墙规则:

配置之前可以在Ubuntu的浏览器上查看交换机的运行状态:

http://localhost:8080/firewall/module/status

如图

手动打开交换机S4,使其进入enable状态:

curl -X PUT  http://localhost:8080/firewall/module/enable/0000000000000004

一:手动配置

(1)配置过滤规则,使一些特殊的报文可以通过交换机

比如说让源地址为192.168.2.1/32 目的地址为 192.168.1.1/32的报文通过交换机S4

和源地址为192.168.1.1/32 目的地址为 192.168.2.1/32的报文通过交换机S4

curl -X POST -d '{"nw_src":"192.168.2.1/32","nw_dst":"192.168.1.1/32"}' http://127.0.0.1:8080/firewall/rules/0000000000000004

curl -X POST -d '{"nw_src":"192.168.1.1/32","nw_dst":"192.168.2.1/32"}' http://127.0.0.1:8080/firewall/rules/0000000000000004

(2)查看交换机的流表规则

sudo ovs-ofctl -O openflow13 dump-flows s1

(3)阻塞数据包

curl -X POST -d ’{"nw_src": "10.0.0.3/32", "nw_dst": "10.0.0.2/32", "nw_proto": "ICMP", "actions": "DENY", "priority": "10"}’

(4)查看已经下发的规则

如查看交换机0000000000000004的配置情况

curl http://localhost:8080/firewall/rules/0000000000000004

 如下图:

(5)删除某个交换机中某个配置好的规则

curl -X DELETE -d ’{"rule_id": "5"}’ http://localhost:8080/firewall/rules
/0000000000000001

二:通过编写py文件来配置交换机过滤规则

文件名firewall.py

import requests
 
data1='{"nw_src":"192.168.1.1","nw_dst":"192.168.2.1"}'
 
data2='{"nw_src":"192.168.2.1","nw_dst":"192.168.1.1"}'
 
data3='{"nw_src":"192.168.2.2","nw_dst":"192.168.1.1"}'
 
data4='{"nw_src":"192.168.1.1","nw_dst":"192.168.2.2"}'
 
def firewall():
 
    # set rules for switch by ryu/ryu.app/rest_firewall.py
 
    # data1-data4 is the rule by myself)
 
    response = requests.put('http://localhost:8080/firewall/module/enable/0000
000000000004')
 
    response=requests.post('http://127.0.0.1:8080/firewall/rules/0000000000000004',
data=data1)
 
    response = requests.post('http://127.0.0.1:8080/firewall/rules/0000000000000004', data=data2)
 
    response = requests.post('http://127.0.0.1:8080/firewall/rules/0000000000000004', data=data3)
 
    response = requests.post('http://127.0.0.1:8080/firewall/rules/0000000000000004', data=data4)

 
firewall()

手动打开交换机S4,使其进入enable状态之后,使用命令

python firewall.py

执行该firewall.py文件自动设置配置好的过滤规则。

配置结束!

文章参考:小型网络仿真搭建(防火墙功能)-SDN/Mininet/Ryu/OVS_mininet防火墙功能-CSDN博客

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值