OpenFlow Switch ์™€ MongoDB ์—ฐ๋™ ๊ด€๋ จ ์งˆ๋ฌธ ์ž…๋‹ˆ๋‹ค.

45 views
Skip to first unread message

Adonis Ahn

unread,
Oct 22, 2014, 2:58:26โ€ฏAM10/22/14
to open...@googlegroups.com
StaticFlowEntryStorage.java ์—ย 

๋Œ€๋žต Line No. 123

public void loadFlowModsFromDB() {
Collection<Map<String, Object>> entries = null;

entries = getAllDBEntries (
manager.getDB(),ย 
manager.getDbName(),ย 
manager.getCollectionName() );
// Load rules to memory from DB.
for (Map<String, Object> entry : entries) {
getFlowModMap().put((String) entry.get("name"), entry);
}

buildIndices();
}

์ด ๋ถ€๋ถ„์— ์„ค๋ช…์œผ๋กœ ์ดˆ๊ธฐ ๋ถ€ํŒ…์‹œ ์ผ๊ด€์„ฑ์„ ์œ„ํ•ด์„œ ์˜๊ตฌ์ €์žฅ์†Œ(MongoDB)๋กœ ๋ถ€ํ„ฐ
๋ฉ”๋ชจ๋ฆฌ๋กœ ๋ชจ๋“  Static ํ•ญ๋ชฉ์„ ๋‹ค์‹œ ๋กœ๋“œํ•œ๋‹ค ๋ง์”€ํ•œ๋“ฏ ํ•œ๋ฐ.

MongoDB์— Flow๋ฅผ ๋„ฃ์–ด๋‘๊ณ  Switch์˜ FlowTable์„ ์‚ญ์ œํ•œ ํ›„ย 
์žฌ๋ถ€ํŒ…? ์„ ํ•ด๋ณด๋ฉด ์˜ฌ๋ผ ์˜ค์งˆ ์•Š์Šต๋‹ˆ๋‹ค.

์ œ๊ฐ€ ์„ค์ •์„ ์ž˜๋ชปํ•œ๊ฑด์ง€.. ์•„๋‹ˆ๋ฉด ์–ด๋–ค ๋ถ€๋ถ„์„ ์ˆ˜์ •ํ•˜๋ฉด ๋˜๋Š”์ง€ ๋‹ต๋ณ€ ์ข€ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

์š”์•ฝ..

OVS๊ฐ™์€ ์Šค์œ„์น˜๋“ค์˜ FlowTable(FlowEntry)์„ Controller์— ์ €์žฅํ•ด ๋‘๊ณ  ์žฌ๋ถ€ํŒ…์‹œ ์ƒˆ๋กœ ์„ธํŒ…ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.







Message has been deleted
Message has been deleted

์ด๋ณ‘์ค€

unread,
Oct 22, 2014, 6:07:00โ€ฏAM10/22/14
to open...@googlegroups.com

๋‹ด๋‹น์ž ํ™•์ธํ›„ ๋‚ด์ผ ๋‹ต๋ณ€ ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค ^^

2014. 10. 22. ์˜คํ›„ 3:58์— "Adonis Ahn" <lori...@gmail.com>๋‹˜์ด ์ž‘์„ฑ:
--
You received this message because you are subscribed to the Google Groups "openiris" group.
To unsubscribe from this group and stop receiving emails from it, send an email to openiris+u...@googlegroups.com.
Visit this group at http://groups.google.com/group/openiris.
For more options, visit https://groups.google.com/d/optout.

Adonis Ahn

unread,
Oct 22, 2014, 6:51:24โ€ฏAM10/22/14
to open...@googlegroups.com
๋น ๋ฅธ ๋‹ต๋ณ€ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค^^

Jisoo Shin

unread,
Oct 23, 2014, 2:54:44โ€ฏAM10/23/14
to open...@googlegroups.com
์•ˆ๋…•ํ•˜์„ธ์š”.
StaticFlowEntryManager์˜ ๋‹ด๋‹น์ž(?) ์ž…๋‹ˆ๋‹ค.^^

loadFlowModsFromDB ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๊ณณ์€ OFMStaticFlowEntryManager.initialize ๋ฐ–์— ์—†์Šต๋‹ˆ๋‹ค.
์ฆ‰, ์•„์‹œ๋‹ค์‹œํ”ผ ์ด ๋ฉ”์„œ๋“œ๋Š” ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ์‹œ์ž‘(๋ถ€ํŒ…)๋  ๋•Œ DB์— ์ €์žฅ๋˜์–ด ์žˆ๋˜ static rule๋“ค์„ ๋ฉ”๋ชจ๋ฆฌ๋กœ ๋ถˆ๋Ÿฌ์˜ค๋Š” ๊ธฐ๋Šฅ์„ ํ•ฉ๋‹ˆ๋‹ค.
์ด์ œ๋ถ€ํ„ฐ๋Š” mininet์„ ์˜ˆ๋กœ ์„ค๋ช…๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.
์ดˆ๊ธฐํ™” ๋‹จ๊ณ„์—์„œ ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์ด์œ ๋Š” mininet ์ƒ์˜ ์Šค์œ„์น˜, ํ˜ธ์ŠคํŠธ๊ฐ€ ์ƒ์„ฑ๋˜๊ณ  rule์„ ๋‚ด๋ ค ๋†“์•˜๋Š”๋ฐ...
์˜๋„ํ–ˆ๋“  ์˜๋„์น˜ ์•Š์•˜๋“  ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ์žฌ๋ถ€ํŒ… ๋œ ๊ฒฝ์šฐ ์Šค์œ„์น˜์— ์ด๋ฏธ ๊น”๋ฆฐ rule๊ณผ ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ๊ฐ€์ง„ rule์˜ ์ผ๊ด€์„ฑ์„ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด์„œ์ž…๋‹ˆ๋‹ค.
๋งŒ์•ฝ ์˜๊ตฌ์ €์žฅ์†Œ ์—†์ด IRIS๋ฅผ ๋™์ž‘์‹œํ‚จ๋‹ค๋ฉด ์ปจํŠธ๋กค๋Ÿฌ๋งŒ ์žฌ๋ถ€ํŒ…๋˜๋Š” ๊ฒฝ์šฐ๋ผ๋ฉด ์ผ๊ด€์„ฑ์ด ๊นจ์ง‘๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ..
DB๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๋ฉด ์ปจํŠธ๋กค๋Ÿฌ๋งŒ ์žฌ๋ถ€ํŒ…๋˜๋Š” ๊ฒฝ์šฐ ์ž๋™์œผ๋กœ DB->memory๋กœ rule๋“ค์„ ์ฝ์–ด์˜ต๋‹ˆ๋‹ค.
๋ฐ˜๋ฉด, ์ปจํŠธ๋กค๋Ÿฌ๋Š” ๊ทธ๋Œ€๋กœ ์žˆ๋Š”๋ฐ mininet์˜ ํ† ํด๋กœ์ง€๋งŒ ์žฌ์ƒ์„ฑํ•œ ๊ฒฝ์šฐย 
์ด๋•Œ๋Š” ๋ฌผ๋ก  ์Šค์œ„์น˜์— ๊น”๋ ค์žˆ๋˜ rule๋“ค์€ ๋‹ค ์‚ญ์ œ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ DB์™€ memory์—๋Š” rule๋“ค์ด ๋‚จ์•„์žˆ์ง€์š”.
์ด rule ๋“ค์„ ํ•˜๋‚˜์”ฉ ๋‹ค์‹œ ์ž…๋ ฅํ•ด๋„ ๋˜์ง€๋งŒ... ๋…ธ๊ฐ€๋‹ค๋ฅผ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด 'reload' REST API๋ฅผ ๋งŒ๋“ค์–ด ๋†“์•˜์Šต๋‹ˆ๋‹ค.
๋ฌผ๋ก  ์ด rule ๋“ค์„ ๋”์ด์ƒ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ฒ ๋‹ค๋ฉด 'clear' REST API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ DB๊นŒ์ง€ ๋ชจ๋‘ ์‚ญ์ œํ•ด์•ผ ์ผ๊ด€์„ฑ์ด ์œ ์ง€๋ฉ๋‹ˆ๋‹ค.

์งˆ๋ฌธ์˜ ๋‚ด์šฉ์„ ๋ณด๋ฉด "MongoDB์— Flow๋ฅผ ๋„ฃ์–ด๋‘๊ณ  Switch์˜ FlowTable์„ ์‚ญ์ œํ•œ ํ›„ ์žฌ๋ถ€ํŒ…? ์„ ํ•ด๋ณด๋ฉด ์˜ฌ๋ผ ์˜ค์งˆ ์•Š์Šต๋‹ˆ๋‹ค." ๋ผ๊ณ  ๋˜์–ด ์žˆ๋„ค์š”.
์ด๋Š” Switch์˜ FlowTable์„ REST API๋กœ ์ง€์šฐ์…จ์„ ๊ฒƒ ๊ฐ™์€๋ฐ
์ด ๋•Œ DB์˜ rule๋„ ๊ฐ™์ด ์‚ญ์ œ๋ฉ๋‹ˆ๋‹ค.

์ถ”๊ฐ€ ์งˆ๋ฌธ์—์„œ๋„ ์ข€ ๋” ์ž์„ธํ•œ ์ž…๋ ฅ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
๊ธฐ๋ณธ์ ์œผ๋กœ static flow entry๋Š” ํ‚ค๊ฐ’์„ name์œผ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
๋”ฐ๋ผ์„œ entry ๋‚ด์šฉ ์ค‘ 'dpid'๋งŒ ๋ณ€๊ฒฝํ•˜์—ฌ ๋‚ด๋ฆฐ๋‹ค๋ฉด ๊ธฐ์กด์˜ ๋™์ผํ•œ name์„ ๊ฐ€์ง€๋Š” entry๋Š” ์‚ญ์ œ๋ฉ๋‹ˆ๋‹ค.

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.
๋•๋ถ„์— reload REST API์™€ ๊ด€๋ จ๋œ ๋ฒ„๊ทธ ํ•˜๋‚˜ ๋” ๊ณ ์ณค๋„ค์š”.

Adonis Ahn

unread,
Oct 23, 2014, 4:57:28โ€ฏAM10/23/14
to open...@googlegroups.com
๋„ค ์ผ๋‹จ ๋‹ต๋ณ€ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

์ €๋„ ์†Œ์Šค ์ˆ˜์ •์ค‘์ธ๋ฐ..

ย "MongoDB์— Flow๋ฅผ ๋„ฃ์–ด๋‘๊ณ  Switch์˜ FlowTable์„ ์‚ญ์ œํ•œ ํ›„ ์žฌ๋ถ€ํŒ…? ์„ ํ•ด๋ณด๋ฉด ์˜ฌ๋ผ ์˜ค์งˆ ์•Š์Šต๋‹ˆ๋‹ค."

์ด ๋ถ€๋ถ„์—์„œ "FlowTable์„ ์‚ญ์ œ"๋Š” Switch์—์„œ ์ง์ ‘ ๋ฃฐ(REST API ์•„๋‹˜)์„ ํ†ตํ•ด์„œ ์‚ญ์ œ ํ–ˆ์Šต๋‹ˆ๋‹ค.

REST API๋ฅผ ํ†ตํ•ด์„œ ์‚ญ์ œํ•˜๋Š” ๊ฒƒ์€ ์ด๋ฏธ ์ฒดํฌํ–ˆ๊ตฌ์š” ๋‘˜๋‹ค ๊ฐ™์ด ์ง€์›Œ์ง„๋‹ค๋Š” ๊ฒƒ.. ์€...ย 
๋‹น์—ฐํžˆ ์†Œ์Šค ๋ถ„์„์„ ํ†ตํ•ด์„œ ํŒŒ์•…ํ–ˆ๊ตฌ์š”..

๋‹ค์‹œ ์š”์•ฝํ•ด ๋“œ๋ฆฌ๋ฉด..

DB์—๋Š” FlowEntry๊ฐ€ ์žˆ๋Š”๋ฐ...
์˜ฌ๋ผ์˜ค๋ฉด์„œ ๊ฐ Switch์— ๋กœ๋“œ๋ฅผ ๋ชปํ•˜๋”๋ผ๊ตฌ์š”..
๊ทธ๋ž˜์„œ ํ˜„์žฌ ์†Œ์Šค ์ˆ˜์ •์ค‘์— ์žˆ๊ตฌ์š”

ํ˜น์‹œ ์ œ๊ฐ€ ์ž˜๋ชป ์•Œ๊ณ  ์žˆ๋Š” ๋ฌด์–ธ๊ฐ€๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธ ํ•˜๋Š” ์ฐจ์›์ธ๋ฐ..
์˜ค๋Š˜ ์™ ์ข…์ผ ์ฐพ์•„๋ด๋„ ์—†๋”๊ตฐ์š”.ย 

buildIndices() <<< ์—ฌ๊ธฐ์„œ

๋งˆ์ง€๋ง‰ ๋ถ€๋ถ„์— OpenFlow Message๋กœ Rule์„ ๋‚ด๋ ค์ค˜์•ผ ํ• ๋“ฏ ํ•œ๋ฐ..
ํ˜น์‹œ๋‚˜ ํ•ด์„œ์š”..

๋˜ ํ•˜๋‚˜๋Š” ๊ฐœ๋ฐœํ•˜๋ฉด์„œ ์˜๋ฌธ์‚ฌํ•ญ์ด ์ƒ๊ฒผ๋Š”๋ฐ..

๋“ฑ๋ก๋œ DB์—์„œ Switch๋กœ ๋‚ด๋ ค์ค„ ๊ฒฝ์šฐ Rule์ด ์ ์šฉ ๋˜๋ ค๋ฉด ์Šค์œ„์น˜๊ฐ€
๋ถ™์–ด ์žˆ์–ด์•ผ ์•„๋‹˜ ๋จผ์ € ์ผœ์ €์žˆ์–ด์•ผ ์ ์šฉ ๋˜๋”๋ผ๊ตฌ์š”..

์ด๋ถ€๋ถ„์€ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ• ์ง€ ๊ณ ๋ฏผ ์ค‘์ž…๋‹ˆ๋‹ค.


Adonis Ahn

unread,
Oct 23, 2014, 5:02:26โ€ฏAM10/23/14
to open...@googlegroups.com
์•„.. name์— ๋Œ€ํ•ด์„œ ์œ ๋‹ˆํฌ๋กœ ๊ด€๋ฆฌํ•˜๋Š” ๊ฑด ์ฐพ์•„๋‚ด์„œ ์ง€์› ์Šต๋‹ˆ๋‹ค.

์œ„์— curl ์˜ˆ๋ฌธ์— Switch ๋ช…์ด ๊ฐ™์ด ํ‘œ๊ธฐ๊ฐ€ ๋˜์–ด ์žˆ์–ด์„œ ํ…Œ์ŠคํŠธ ๋„์ค‘์— ์ด์ƒํ•ด์„œ ์“ด ๊ธ€ ์ด๊ตฌ์š”..
์™œ ์•ˆ๋˜๋Š”์ง€ ์›์ธ์€ ํŒŒ์•…ํ–ˆ๊ตฌ ์ด์ƒ์ด ์—†๋”๋ผ๊ตฌ์š”..

/*
ย * ADD example
ย * OF1.0,1.3: curl http://{controller_ip}:{rest_api_port}/wm/staticflowentry/list/all/json
ย *ย curl -d '{"switch":"00:00:00:00:00:00:00:01","name":"s1","priority":"101".../wm/staticflowentry/json
ย * curl -d '{"switch":"00:00:00:00:00:00:00:02","name":"s20","priority":"1001".../wm/staticflowentry/json
ย * curl -d '{"switch":"00:00:00:00:00:00:00:01","name":"s1","priority":"1001",.../wm/staticflowentry/json
*/

Adonis Ahn

unread,
Oct 23, 2014, 5:04:13โ€ฏAM10/23/14
to open...@googlegroups.com
๋งˆ์ง€๋ง‰์œผ๋กœ ์ˆ˜์ •๋œ ๋ถ€๋ถ„ ๋‹ต๋ณ€์œผ๋กœ ๋‹ฌ์•„์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค^^
๊ณ ์ƒ ๋งŽ์œผ์‹ญ๋‹ˆ๋‹ค. ์‹ ๋ฐ•์‚ฌ๋‹˜..

Jisoo Shin

unread,
Oct 23, 2014, 5:11:46โ€ฏAM10/23/14
to open...@googlegroups.com
์ด์ œ ์˜๋„๋ฅผ ์ž˜ ํŒŒ์•…ํ–ˆ์Šต๋‹ˆ๋‹ค.
DB์— entry๊ฐ€ ๋‚จ์•„ ์žˆ๊ณ  ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ์žฌ๋ถ€ํŒ…๋˜๋ฉด memory์—๋งŒ entry๋ฅผ ๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค.(์Šค์œ„์น˜๋กœ๋Š” ๋‹ค์‹œ flowmod๋ฅผ ๋‚ด๋ฆฌ์ง€ ์•Š์•„์š”.)
REST API๊ฐ€ ์•„๋‹Œ ๋ฐฉ๋ฒ•์œผ๋กœ entry๋ฅผ ์‚ญ์ œํ•˜์…จ๋‹ค๋ฉด ์ผ๊ด€์„ฑ์ด ๊นจ์ง€๋Š” ๊ฒŒ ๋งž์Šต๋‹ˆ๋‹ค.
์ด ๋ถ€๋ถ„์„ ์˜๋„๋Œ€๋กœ ์ˆ˜์ •ํ•˜์‹œ๋ ค๋ฉด OFMStaticFlowEntryManager.initialize์—์„œ
loadFlowModsFromDB ํ˜ธ์ถœ ํ›„
reloadFlowsToSwitch๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด ํ•ด๊ฒฐ๋  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค๋งŒ...
์ฐธ๊ณ ํ•˜์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.^^
Reply all
Reply to author
Forward
0 new messages