SDN ๋‹ค์ด์ œ์ŠคํŠธ - XNUMX๊ฐœ์˜ ์˜คํ”ˆ ์†Œ์Šค ์—๋ฎฌ๋ ˆ์ดํ„ฐ

์ง€๋‚œ๋ฒˆ์— ์šฐ๋ฆฌ๊ฐ€ ๊ทธ๋žฌ์–ด ๋‹ค์–‘ํ•œ ์˜คํ”ˆ ์†Œ์Šค SDN ์ปจํŠธ๋กค๋Ÿฌ. ์˜ค๋Š˜๋‚  ์˜คํ”ˆ ์†Œ์Šค SDN ๋„คํŠธ์›Œํฌ ์—๋ฎฌ๋ ˆ์ดํ„ฐ๊ฐ€ ๊ทธ ๋‹ค์Œ์ž…๋‹ˆ๋‹ค. ๊ณ ์–‘์ด ์•„๋ž˜์— ๊ด€์‹ฌ์ด ์žˆ์œผ์‹  ๋ชจ๋“  ๋ถ„๋“ค์„ ์ดˆ๋Œ€ํ•ฉ๋‹ˆ๋‹ค.

SDN ๋‹ค์ด์ œ์ŠคํŠธ - XNUMX๊ฐœ์˜ ์˜คํ”ˆ ์†Œ์Šค ์—๋ฎฌ๋ ˆ์ดํ„ฐ/ํ”Œ๋ฆฌ์ปค/ ๋ฐ๋‹ˆ์Šค ๋ฐ˜ ์ฃผ์ด๋ ˆ์ฝค / CC

๋ฏธ๋‹ˆ ๋„ท

์ด ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํ•˜๋‚˜์˜ ์ปดํ“จํ„ฐ(๊ฐ€์ƒ ๋˜๋Š” ๋ฌผ๋ฆฌ์ )์— ์†Œํ”„ํŠธ์›จ์–ด ๊ด€๋ฆฌ ๋„คํŠธ์›Œํฌ๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. $ sudo mn ๋ช…๋ น์„ ์ž…๋ ฅํ•˜์„ธ์š”. ๊ฐœ๋ฐœ์ž์— ๋”ฐ๋ฅด๋ฉด Mininet์€ ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ ๋ฐฐํฌ์— ๋งค์šฐ ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, Mininet์ด ๊ฐœ๋ฐœ๋œ Stanford์˜ ๊ต์‚ฌ๋“ค์€ ๋Œ€ํ•™์˜ ์‹ค์Šต ์ˆ˜์—… ์ค‘์— ์ด ์œ ํ‹ธ๋ฆฌํ‹ฐ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ํ•™์ƒ๋“ค์—๊ฒŒ ๋„คํŠธ์›Œํ‚น ๊ธฐ์ˆ ์„ ์‹ฌ์–ด์ฃผ๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค. ์ผ๋ถ€ ์ž‘์—…๊ณผ ๋ฐ๋ชจ๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ €์žฅ์†Œ์— ๊นƒํ—ˆ๋ธŒ์—์„œ.

Mininet์€ ๋งž์ถคํ˜• SDN ํ† ํด๋กœ์ง€๋ฅผ ํ…Œ์ŠคํŠธํ•˜๋Š” ๋ฐ์—๋„ ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€์ƒ ๋„คํŠธ์›Œํฌ๋Š” ๋ชจ๋“  ์Šค์œ„์น˜, ์ปจํŠธ๋กค๋Ÿฌ ๋ฐ ํ˜ธ์ŠคํŠธ์™€ ํ•จ๊ป˜ ๋ฐฐํฌ๋œ ํ›„ Python ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„ฑ๋Šฅ์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ์„ค์ •์ด Mininet์—์„œ ์‹ค์ œ ๋„คํŠธ์›Œํฌ๋กœ ์ „์†ก๋ฉ๋‹ˆ๋‹ค.

์†”๋ฃจ์…˜์˜ ๋‹จ์  ์ค‘ ์ „๋ฌธ๊ฐ€๋“ค์€ ๊ฐ•์กฐํ•œ๋‹ค Windows ์ง€์› ๋ถ€์กฑ. ๋˜ํ•œ Mininet์€ ์—๋ฎฌ๋ ˆ์ดํ„ฐ๊ฐ€ ํ•˜๋‚˜์˜ ์ปดํ“จํ„ฐ์—์„œ ์‹คํ–‰๋˜๋ฏ€๋กœ ํ•˜๋“œ์›จ์–ด ๋ฆฌ์†Œ์Šค๊ฐ€ ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๋Œ€๊ทœ๋ชจ ๋„คํŠธ์›Œํฌ ์ž‘์—…์—๋Š” ์ ํ•ฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

Mininet์€ BSD ์˜คํ”ˆ ์†Œ์Šค ๋ผ์ด์„ผ์Šค์— ๋”ฐ๋ผ ์ถœ์‹œ๋˜์—ˆ์œผ๋ฉฐ ํ™œ๋ฐœํžˆ ๊ฐœ๋ฐœ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋ˆ„๊ตฌ๋‚˜ ์ฐธ์—ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฐธ์—ฌ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ •๋ณด๋Š” ๋‹ค์Œ ํŽ˜์ด์ง€์— ์žˆ์Šต๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ ๊ณต์‹ ํ™ˆํŽ˜์ด์ง€ ะธ ์ €์žฅ์†Œ์—.

NS-3

์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ ์ด์‚ฐ ์‚ฌ๊ฑด ๋ชจ๋ธ๋ง ๋„คํŠธ์›Œํฌ. ์ด ๋„๊ตฌ๋Š” ์›๋ž˜ ๊ต์œก์šฉ ์œ ํ‹ธ๋ฆฌํ‹ฐ๋กœ ๋งŒ๋“ค์–ด์กŒ์ง€๋งŒ ํ˜„์žฌ๋Š” SDN ํ™˜๊ฒฝ์„ ํ…Œ์ŠคํŠธํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ns-3 ์ž‘์—…์— ๋Œ€ํ•œ ๊ฐ€์ด๋“œ๋Š” ๋‹ค์Œ์—์„œ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ ๋ฌธ์„œ๊ฐ€ ์žˆ๋Š” ์›น์‚ฌ์ดํŠธ.

์œ ํ‹ธ๋ฆฌํ‹ฐ์˜ ์žฅ์  ์ค‘์—๋Š” ์†Œ์ผ“ ๋ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ง€์›์ด ์žˆ์Šต๋‹ˆ๋‹ค. ํ”ผ์บก ๋‹ค๋ฅธ ๋„๊ตฌ(์˜ˆ: Wireshark) ๋ฐ ๋ฐ˜์‘ํ˜• ์ปค๋ฎค๋‹ˆํ‹ฐ์™€ ํ•จ๊ป˜ โ€‹โ€‹์ž‘์—…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹จ์ ์€ ์ƒ๋Œ€์ ์œผ๋กœ ์•ฝํ•œ ์‹œ๊ฐํ™”๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ํ† ํด๋กœ์ง€๋ฅผ ํ‘œ์‹œํ•˜๋Š” ๊ฒฝ์šฐ ์‘๋‹ตํ•˜๋‹ค ๋„ท์• ๋‹˜. ๋˜ํ•œ ns-3์€ ๋ชจ๋“  SDN ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋‹น์‚ฌ ๋ธ”๋กœ๊ทธ์—์„œ ํ•ด๋‹น ์ฃผ์ œ์— ๋Œ€ํ•ด ์ฝ์–ด๋ณด์„ธ์š”:

์˜คํ”ˆ๋„ท

์ด SDN ์—๋ฎฌ๋ ˆ์ดํ„ฐ๋Š” Mininet๊ณผ ns-3๋ผ๋Š” ๋‘ ๊ฐ€์ง€ ์ด์ „ ๋„๊ตฌ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตฌ์ถ•๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ๊ฐ๊ฐ์˜ ๊ฐ•์ ์„ ๊ฒฐํ•ฉํ•ฉ๋‹ˆ๋‹ค. ์†”๋ฃจ์…˜์ด ํ•จ๊ป˜ ์ž‘๋™ํ•˜๋„๋ก ํ•˜๊ธฐ ์œ„ํ•ด OpenNet์€ Python์˜ ๋ฐ”์ธ๋”ฉ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ OpenNet์˜ Mininet์€ OpenFlow ์Šค์œ„์น˜๋ฅผ ์—๋ฎฌ๋ ˆ์ด์…˜ํ•˜๊ณ  CLI ๋ฐ ๊ฐ€์ƒํ™”๋ฅผ ์ œ๊ณตํ•˜๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ns-3์˜ ๊ฒฝ์šฐ Mininet์— ์—†๋Š” ๋ชจ๋ธ์„ ์—๋ฎฌ๋ ˆ์ดํŠธํ•ฉ๋‹ˆ๋‹ค. ์ž‘๋™ ์ง€์นจ์„ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค GitHub์—์„œ.๋„ ์žˆ์Šต๋‹ˆ๋‹ค ์ถ”๊ฐ€ ๋งํฌ ์ฃผ์ œ์— ๊ด€ํ•œ ์ž๋ฃŒ.

SDN ๋‹ค์ด์ œ์ŠคํŠธ - XNUMX๊ฐœ์˜ ์˜คํ”ˆ ์†Œ์Šค ์—๋ฎฌ๋ ˆ์ดํ„ฐ
/ ํ”ฝ์…€ /PD

์ปจํ…Œ์ด๋„ˆ๋„ท

์ด๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ปจํ…Œ์ด๋„ˆ ์ž‘์—…์„ ์œ„ํ•œ Mininet ํฌํฌ์ž…๋‹ˆ๋‹ค. Docker ์ปจํ…Œ์ด๋„ˆ๋Š” ์—๋ฎฌ๋ ˆ์ดํŠธ๋œ ๋„คํŠธ์›Œํฌ์—์„œ ํ˜ธ์ŠคํŠธ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ์ด ์†”๋ฃจ์…˜์€ ๊ฐœ๋ฐœ์ž๊ฐ€ ํด๋ผ์šฐ๋“œ, ์—ฃ์ง€, ํฌ๊ทธ ๋ฐ NFV ์ปดํ“จํŒ…์„ ์‹คํ—˜ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“ค์–ด์กŒ์Šต๋‹ˆ๋‹ค. ์ด ์‹œ์Šคํ…œ์€ ์ด๋ฏธ SONATA NFV ์ž‘์„ฑ์ž๊ฐ€ ๊ฐ€์ƒํ™”๋œ 5G ๋„คํŠธ์›Œํฌ์—์„œ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ ์‹œ์Šคํ…œ์„ ๋งŒ๋“œ๋Š” ๋ฐ ์‚ฌ์šฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ปจํ…Œ์ด๋„ˆ๋„ท ~์„ ๋งŒ๋“ค์—ˆ๋‹ค. NFV ์—๋ฎฌ๋ ˆ์ด์…˜ ํ”Œ๋žซํผ์˜ ํ•ต์‹ฌ์ž…๋‹ˆ๋‹ค.

๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ Containernet์„ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. GitHub ๊ฐ€์ด๋“œ.

ํƒ€์ด๋‹ˆ๋„ท

SDN ๋„คํŠธ์›Œํฌ์˜ ํ”„๋กœํ† ํƒ€์ž…์„ ๋น ๋ฅด๊ฒŒ ์ƒ์„ฑํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” ๊ฒฝ๋Ÿ‰ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค. API ๋„๊ตฌGo๋กœ ์ž‘์„ฑ๋œ ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ชจ๋“  ๋„คํŠธ์›Œํฌ ํ† ํด๋กœ์ง€๋ฅผ ์—๋ฎฌ๋ ˆ์ดํŠธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ž์ฒด๋Š” "๋ฌด๊ฒŒ"๊ฐ€ ์ ๊ธฐ ๋•Œ๋ฌธ์— ์œ ์‚ฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ณด๋‹ค ์„ค์น˜ ๋ฐ ์ž‘๋™ ์†๋„๊ฐ€ ๋” ๋น ๋ฆ…๋‹ˆ๋‹ค. Tinynet์€ Docker ์ปจํ…Œ์ด๋„ˆ์™€ ํ†ตํ•ฉ๋  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๋„๊ตฌ๋Š” ์ œํ•œ๋œ ๊ธฐ๋Šฅ์œผ๋กœ ์ธํ•ด ๋Œ€๊ทœ๋ชจ ๋„คํŠธ์›Œํฌ๋ฅผ ์—๋ฎฌ๋ ˆ์ด์…˜ํ•˜๋Š” ๋ฐ ์ ํ•ฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์†Œ๊ทœ๋ชจ ๊ฐœ์ธ ํ”„๋กœ์ ํŠธ๋‚˜ ์‹ ์†ํ•œ ํ”„๋กœํ† ํƒ€์ดํ•‘ ์ž‘์—…์„ ํ•  ๋•Œ ์œ ์šฉํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

Tinynet ์„ค์น˜๋ฅผ ์œ„ํ•œ ์˜ˆ์ œ ๊ตฌํ˜„ ๋ฐ ๋ช…๋ น์€ ๋‹ค์Œ์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. GitHub ์ €์žฅ์†Œ.

๋งฅ์‹œ๋„ท

์ด ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์—ฌ๋Ÿฌ ๋ฌผ๋ฆฌ์  ์ปดํ“จํ„ฐ์—์„œ Mininet์„ ์‚ฌ์šฉํ•˜๊ณ  ๋Œ€๊ทœ๋ชจ SDN ๋„คํŠธ์›Œํฌ์—์„œ ์ž‘์—…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž๋™์ฐจ๋Š” ๊ฐ๊ฐ ๋…ธ๋™์ž โ€” Mininet์„ ์‹œ์ž‘ํ•˜๊ณ  ์ผ๋ฐ˜ ๋„คํŠธ์›Œํฌ์˜ ์ผ๋ถ€๋ฅผ ์—๋ฎฌ๋ ˆ์ดํŠธํ•ฉ๋‹ˆ๋‹ค. ์Šค์œ„์น˜์™€ ํ˜ธ์ŠคํŠธ๋Š” ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋กœ ํ†ต์‹ ํ•ฉ๋‹ˆ๋‹ค. GRE-ํ„ฐ๋„. ์ด๋Ÿฌํ•œ ๋„คํŠธ์›Œํฌ์˜ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ์ œ์–ดํ•˜๊ธฐ ์œ„ํ•ด MaxiNet์€ API๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

MaxiNet์€ ๋„คํŠธ์›Œํฌ๋ฅผ ๋น ๋ฅด๊ฒŒ ํ™•์žฅํ•˜๊ณ  ๋ฆฌ์†Œ์Šค ํ• ๋‹น์„ ์ตœ์ ํ™”ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค. MaxiNet์—๋Š” ๋ชจ๋‹ˆํ„ฐ๋ง ๊ธฐ๋Šฅ, ๋‚ด์žฅ CLI ๋ฐ Docker์™€์˜ ํ†ตํ•ฉ ๊ธฐ๋Šฅ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋„๊ตฌ๋Š” ์—ฌ๋Ÿฌ ๊ธฐ๊ณ„์— ๋Œ€ํ•œ ํ•˜๋‚˜์˜ ์Šค์œ„์น˜ ์ž‘๋™์„ ์—๋ฎฌ๋ ˆ์ดํŠธํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค GitHub์—์„œ. ์„ค์น˜ ๊ฐ€์ด๋“œ์™€ ํ€ต ์Šคํƒ€ํŠธ ๊ฐ€์ด๋“œ๋Š” ๊ณต์‹ ํ™ˆํŽ˜์ด์ง€์—์„œ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ŠคํŠธ๋ž˜๋‹ˆ์ฒด ํ”„๋กœํ…ํ„ฐ.

๋‹น์‚ฌ ๋ธ”๋กœ๊ทธ์—์„œ ํ•ด๋‹น ์ฃผ์ œ์— ๋Œ€ํ•ด ์ฝ์–ด๋ณด์„ธ์š”:

์ถœ์ฒ˜ : habr.com

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€