广播风暴对比实验部署

编者按:环路广播风暴,如果有环路,数据帧将会在环路中来回传递,大量增生数据帧,形成广播风暴。在SDN中部分控制器可以抑制环路广播风暴的产生,如Floodlight,而像POX控制器,就不能很好的解决广播风暴的问题。

接下来将对Floodlight和POX控制器进行广播风暴实验的对比。

物理连接上OF1、OF2、OF3形成环路,使用Flowvisor(192.168.20.6:6634)隔离成两个虚网。VM1和VM3在一个虚网中,由POX(192.168.20.6:6635)控制,VM2和VM3在另一个虚网中,由Floodlight(192.168.20.6:6636)控制。

POX安装与配置

安装:

git clonehttp://github.com/noxrepo/pox

启动:

./pox.py forwarding.l2_learning openflow.of_01 --port=6635

Floodlight安装与安装

安装:

apt-get install build-essential default-jdk ant python-dev

git clone git://github.com/floodlight/floodlight.git

ant;

端口配置:

vi ./src/main/resources/floodlightdefault.properties

启动:

nohup java -jar target/floodlight.jar > /dev/null &

Flowvisor安装与配置

安装:

sudo apt-get install ant

sudo apt-get install openjdk-6-jdk

wget https://github.com/OPENNETWORKINGLAB/flowvisor/archive/1.2-MAINT.zip

make && make install

端口配置

vi /etc/flowvisor/config.json(目前使用监听端口6634)

普通用户下启动:

nohup  flowvisor /etc/flowvisor/config.json >/dev/null &

OvS安装与配置

OvS在之前已经写过,详情可查看《Open vSwitch2.3.0版本安装部署及基本操作》。

创建虚网

创建两个slice,分别指定到POX和Floodlight上:

fvctl -p 8181 add-slice s1 tcp:127.0.0.1:6635 1@1

fvctl -p 8181 add-slice s2 tcp:127.0.0.1:6636 2@2

修改OvS的dpid:

192.168.20.3:ovs-vsctl set bridge br0 other_config:datapath-id=1000000000000001

192.168.20.4:ovs-vsctl set bridge br0 other_config:datapath-id=1000000000000002

192.168.20.5:ovs-vsctl set bridge br0 other_config:datapath-id=1000000000000003

root@fnic8:~# ovs-vsctl list bridge br0

_uuid               : 9a7f1e47-b5f1-410f-9a63-0393acf1a651

controller          : [1ab5ceec-3965-47c4-89ab-1f1f408470bb]

datapath_id         : "1000000000000001"

查看端口号:

root@fnic8:~# ovs-ofctl show br0

OFPT_FEATURES_REPLY (xid=0x2): dpid:1000000000000001

n_tables:254, n_buffers:256

capabilities: FLOW_STATS TABLE_STATS PORT_STATS QUEUE_STATS ARP_MATCH_IP

actions: OUTPUT SET_VLAN_VID SET_VLAN_PCP STRIP_VLAN SET_DL_SRC SET_DL_DST SET_NW_SRC SET_NW_DST SET_NW_TOS SET_TP_SRC SET_TP_DST ENQUEUE

1(vnet0): addr:fe:54:00:d4:fa:b1

config:     0

state:      0

current:    10MB-FD COPPER

speed: 10 Mbps now, 0 Mbps max

2(eth1): addr:74:86:7a:d7:65:65

config:     0

state:      0

current:    100MB-FD COPPER AUTO_NEG

advertised: 10MB-HD 10MB-FD 100MB-HD 100MB-FD 1GB-HD 1GB-FD COPPER AUTO_NEG AUTO_PAUSE

supported:  10MB-HD 10MB-FD 100MB-HD 100MB-FD 1GB-HD 1GB-FD COPPER AUTO_NEG

speed: 100 Mbps now, 1000 Mbps max

3(eth2): addr:74:86:7a:d7:65:66

config:     0

state:      0

current:    1GB-FD COPPER AUTO_NEG

advertised: 10MB-HD 10MB-FD 100MB-HD 100MB-FD 1GB-HD 1GB-FD COPPER AUTO_NEG AUTO_PAUSE

supported:  10MB-HD 10MB-FD 100MB-HD 100MB-FD 1GB-HD 1GB-FD COPPER AUTO_NEG

speed: 1000 Mbps now, 1000 Mbps max

LOCAL(br0): addr:74:86:7a:d7:65:65

config:     0

state:      0

speed: 0 Mbps now, 0 Mbps max

OFPT_GET_CONFIG_REPLY (xid=0x4): frags=normal miss_send_len=0

虚网隔离创建

执行以下脚本,创建flowspace:

DP1=1000000000000001

DP2=1000000000000002

DP3=1000000000000003

#s1-dpid1

fvctl -p 8181 add-flowspace -f 1 space1 $DP1 1 in_port=1,nw_dst=10.0.0.1 s1=7

fvctl -p 8181 add-flowspace -f 1 space1 $DP1 1 in_port=1,nw_src=10.0.0.1 s1=7

fvctl -p 8181 add-flowspace -f 1 space1 $DP1 1 in_port=2,nw_dst=10.0.0.1 s1=7

fvctl -p 8181 add-flowspace -f 1 space1 $DP1 1 in_port=2,nw_src=10.0.0.1 s1=7

fvctl -p 8181 add-flowspace -f 1 space1 $DP1 1 in_port=3,nw_dst=10.0.0.1 s1=7

fvctl -p 8181 add-flowspace -f 1 space1 $DP1 1 in_port=3,nw_src=10.0.0.1 s1=7

#s1-dpid2

fvctl -p 8181 add-flowspace -f 1 space1 $DP2 1 in_port=2,nw_dst=10.0.0.1 s1=7

fvctl -p 8181 add-flowspace -f 1 space1 $DP2 1 in_port=2,nw_src=10.0.0.1 s1=7

fvctl -p 8181 add-flowspace -f 1 space1 $DP2 1 in_port=3,nw_dst=10.0.0.1 s1=7

fvctl -p 8181 add-flowspace -f 1 space1 $DP2 1 in_port=3,nw_src=10.0.0.1 s1=7

#s1-dpid3

fvctl -p 8181 add-flowspace -f 1 space1 $DP3 1 in_port=1,nw_dst=10.0.0.1 s1=7

fvctl -p 8181 add-flowspace -f 1 space1 $DP3 1 in_port=1,nw_src=10.0.0.1 s1=7

fvctl -p 8181 add-flowspace -f 1 space1 $DP3 1 in_port=2,nw_dst=10.0.0.1 s1=7

fvctl -p 8181 add-flowspace -f 1 space1 $DP3 1 in_port=2,nw_src=10.0.0.1 s1=7

fvctl -p 8181 add-flowspace -f 1 space1 $DP3 1 in_port=3,nw_dst=10.0.0.1 s1=7

fvctl -p 8181 add-flowspace -f 1 space1 $DP3 1 in_port=3,nw_src=10.0.0.1 s1=7

#s2-dpid1

fvctl -p 8181 add-flowspace -f 2 space1 $DP1 1 in_port=2,nw_dst=10.0.0.2 s2=7

fvctl -p 8181 add-flowspace -f 2 space1 $DP1 1 in_port=2,nw_src=10.0.0.2 s2=7

fvctl -p 8181 add-flowspace -f 2 space1 $DP1 1 in_port=3,nw_dst=10.0.0.2 s2=7

fvctl -p 8181 add-flowspace -f 2 space1 $DP1 1 in_port=3,nw_src=10.0.0.2 s2=7

#s2-dpid2

fvctl -p 8181 add-flowspace -f 2 space1 $DP2 1 in_port=1,nw_dst=10.0.0.2 s2=7

fvctl -p 8181 add-flowspace -f 2 space1 $DP2 1 in_port=1,nw_src=10.0.0.2 s2=7

fvctl -p 8181 add-flowspace -f 2 space1 $DP2 1 in_port=2,nw_dst=10.0.0.2 s2=7

fvctl -p 8181 add-flowspace -f 2 space1 $DP2 1 in_port=2,nw_src=10.0.0.2 s2=7

fvctl -p 8181 add-flowspace -f 2 space1 $DP2 1 in_port=3,nw_dst=10.0.0.2 s2=7

fvctl -p 8181 add-flowspace -f 2 space1 $DP2 1 in_port=3,nw_src=10.0.0.2 s2=7

#s2-dpid3

fvctl -p 8181 add-flowspace -f 2 space1 $DP3 1 in_port=1,nw_dst=10.0.0.2 s2=7

fvctl -p 8181 add-flowspace -f 2 space1 $DP3 1 in_port=1,nw_src=10.0.0.2 s2=7

fvctl -p 8181 add-flowspace -f 2 space1 $DP3 1 in_port=2,nw_dst=10.0.0.2 s2=7

fvctl -p 8181 add-flowspace -f 2 space1 $DP3 1 in_port=2,nw_src=10.0.0.2 s2=7

fvctl -p 8181 add-flowspace -f 2 space1 $DP3 1 in_port=3,nw_dst=10.0.0.2 s2=7

fvctl -p 8181 add-flowspace -f 2 space1 $DP3 1 in_port=3,nw_src=10.0.0.2 s2=7

设置队列

OvS1设置队列,流量隔离

执行以下脚本设置队列:

#!/bin/bash

#clear config

ovs-vsctl del-br br0

ovs-vsctl -- --all destroy qos

ovs-vsctl -- --all destroy queue

ovs-vsctl add-br br0 -- set bridge br0 other_config:datapath-id=1000000000000001

ovs-vsctl set-controller br0 tcp:192.168.20.6:6634

ovs-vsctl set bridge br0 fail_mode=secure

virsh destroy vm3 //vm3为VM名称

sleep 5

virsh start vm3

sleep 5

ovs-vsctl add-port br0 eth1

ovs-vsctl add-port br0 eth2

#qos

ovs-vsctl set port eth1 qos=@newqos -- --id=@newqos create qos type=linux-htb\

queues=1=@q1,2=@q2 other_config:max-rate=`ovs-vsctl get interface eth1 link-speed`\

-- --id=@q1 create queue other_config:min-rate=10000000\

-- --id=@q2 create queue other_config:min-rate=10000000

ovs-vsctl set port eth2 qos=@newqos -- --id=@newqos create qos type=linux-htb\

queues=1=@q1,2=@q2 other_config:max-rate=`ovs-vsctl get interface eth2 link-speed`\

-- --id=@q1 create queue other_config:min-rate=10000000\

-- --id=@q2 create queue other_config:min-rate=10000000

OvS2设置队列,流量隔离

执行以下脚本设置队列:

#!/bin/bash

#clear config

ovs-vsctl del-br br0

ovs-vsctl -- --all destroy qos

ovs-vsctl -- --all destroy queue

ovs-vsctl add-br br0 -- set bridge br0 other_config:datapath-id=1000000000000002

ovs-vsctl set-controller br0 tcp:192.168.20.6:6634

ovs-vsctl set bridge br0 fail_mode=secure

virsh destroy vm4

sleep 5

virsh start vm4

sleep 5

ovs-vsctl add-port br0 eth1

ovs-vsctl add-port br0 eth2

#qos

ovs-vsctl set port eth1 qos=@newqos -- --id=@newqos create qos type=linux-htb\

queues=1=@q1,2=@q2 other_config:max-rate=`ovs-vsctl get interface eth1 link-speed`\

-- --id=@q1 create queue other_config:min-rate=10000000\

-- --id=@q2 create queue other_config:min-rate=10000000

ovs-vsctl set port eth2 qos=@newqos -- --id=@newqos create qos type=linux-htb\

queues=1=@q1,2=@q2 other_config:max-rate=`ovs-vsctl get interface eth2 link-speed`\

-- --id=@q1 create queue other_config:min-rate=10000000\

-- --id=@q2 create queue other_config:min-rate=10000000

OvS3设置队列,流量隔离

执行以下脚本设置队列:

#!/bin/bash

#clear config

ovs-vsctl del-br br0

ovs-vsctl -- --all destroy qos

ovs-vsctl -- --all destroy queue

ovs-vsctl add-br br0 -- set bridge br0 other_config:datapath-id=1000000000000003

ovs-vsctl set-controller br0 tcp:192.168.20.6:6634

ovs-vsctl set bridge br0 fail_mode=secure

virsh destroy vm5

sleep 5

virsh start vm5

sleep 5

ovs-vsctl add-port br0 eth1

ovs-vsctl add-port br0 eth2

#qos

ovs-vsctl set port eth1 qos=@newqos -- --id=@newqos create qos type=linux-htb\

queues=1=@q1,2=@q2 other_config:max-rate=`ovs-vsctl get interface eth1 link-speed`\

-- --id=@q1 create queue other_config:min-rate=10000000\

-- --id=@q2 create queue other_config:min-rate=10000000

ovs-vsctl set port eth2 qos=@newqos -- --id=@newqos create qos type=linux-htb\

queues=1=@q1,2=@q2 other_config:max-rate=`ovs-vsctl get interface eth2 link-speed`\

-- --id=@q1 create queue other_config:min-rate=10000000\

-- --id=@q2 create queue other_config:min-rate=10000000

实验结果

VM1与VM3形成广播风暴;

VM2与VM3可以ping通,Floodlight的最小生成树协议成功抑制了广播风暴;

VM1与VM2由于在不同的flowspace中ping不通。

本文转载自SDNLAB,更多SDN相关技术文章请关注SDNLAB

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,524评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,869评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,813评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,210评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,085评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,117评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,533评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,219评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,487评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,582评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,362评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,218评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,589评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,899评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,176评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,503评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,707评论 2 335

推荐阅读更多精彩内容

  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 10,802评论 6 13
  • 我们可以把因特网看成由许多主干网络组成,而这些主干网络由一些国际的、国家的和地区的ISP来运营。主干网通过一些连接...
    Zhang21阅读 3,092评论 0 6
  • 12.1 引言 在第1章中我们提到有三种IP地址:单播地址、广播地址和多播地址。本章将更详细地介绍广播和多播。 广...
    张芳涛阅读 767评论 0 4
  • 上一章 第八章:她恋爱了 倪一坐在寝室的桌前,搅动着杯里的咖啡,回忆着这些过往。 “倪一,倪一。” “嗯!谁在叫我...
    乔安小姐阅读 397评论 0 0
  • 昨天在餐厅值班,看见在地上有两根学生不小心掉在地上的筷子。掉筷子的同学义无反顾的走了,同学们在筷子旁边走来走去。我...
    盖金辉教育碎思阅读 345评论 2 3