05-2
SDN : Software Defined Networking
monolithic router : HW์ SW๊ฐ ํฉ์ณ์ ธ ์๋ ๋ผ์ฐํฐ
proprietary router OS : OS๋ฅผ router ํ์ฌ์์ ์ผ์ฒดํ์ผ๋ก ํ๋งค
์์ ์ router ์์ฅ์ ๊ฑฐ์ Cisco์ ๋
์ ์ฒด์ ์๋ค.
์ด์ ๊ฐ ๋ฌด์์ผ๊น?
๋ฐ๋ก per-router ์์๋ monolithic router์ ํ๋งคํ๊ณ , proprietary router OS ์๊ธฐ ๋๋ฌธ์ด๋ค.
์ด๋ฌํ ๊ฒฝ์ฐ ๋คํธ์ํน์ ๋ฐฉ๋ฒ์ ์กฐ๊ธ๋ง ๋ค๋ฅด๊ฒ ๋ฐ๊พธ๋ ค๊ณ ํ๋ฉด ์ฐ๊ณ ์๋ ๋ผ์ฐํฐ๋ค์ ๋ชจ๋ ํ๊ธฐํ๊ณ ์ฌ๊ตฌ๋งค๋ฅผ ํด์ผํ๋ค.
์ฆ HW์ SW๊ฐ ์ผ์ฒดํ์ผ๋ก ๋ถ์ด์์๊ธฐ์ SW๋ง ๋ณ๊ฒฝํ๋ ๊ฒ์ ๋ถ๊ฐ๋ฅํ๋ค.
ํ์ง๋ง ๊ธฐ์ ์ด ๋ฐ์ ํ์ฌ ์ฌ๋ฌ ์ ํ์ด ๋์ค๋ฉฐ ์ํ๋์๋ค.
์ด๋ป๊ฒ ์ํ๋์์๊น?
์์ ์ ๋ผ์ฐํฐ๋ control plane ๊ณผ data plane์ด ์ผ์ฒดํ์ผ๋ก ๋ถ์ด์์๋ค๋ฉด
์๋ ์ค๋ช
์ control plane๊ณผ data plane์ด ๋
๋ฆฝ๋์ด์๋ค.
CA : Control Agent, data plane๊ณผ control plane์ ์ํต์ํจ๋ค.
์๋ ์ ์ผ์ฒดํ ๋ผ์ฐํฐ๋ ํ๋์ ๋ผ์ฐํฐ์ flow table์ด ์๋ชป๋์์ ๋ ์ด๋์๋ถํฐ ์๋ชป๋ ๊ฒ์ธ์ง ์ฐพ๊ธฐ ํ๋ค๋ค๋ ๋จ์ ์ด ์๋ค.
์ด์ ๋ ํ ๋ผ์ฐํฐ์ flow table์ด ์๋ชป๋๋ฉด ๊ทธ ์๋ชป๋ ์ ๋ณด๋ฅผ ์ฃผ๋ณ์ ์ ๋ฌํ๊ณ ,
์ ๋ฌ๋ฐ์ ์ฃผ๋ณ์ ์๋ชป๋ ์ ๋ณด๋ฅผ ๊ฐ๊ณ ์๊ธฐ ์์ ์ ์
๋ฐ์ดํธ ํ,
๊ทธ ์๋ชป๋ ์ ๋ณด๋ฅผ ์ด์ฉํ ์๋ชป๋ ์
๋ฐ์ดํธ๋ฅผ ๋ ์ฃผ๋ณ์ ์ ํ์ํค๊ธฐ ๋๋ฌธ์ด๋ค.
ํ์ง๋ง data plane๊ณผ control plane์ด ๋
๋ฆฝ๋์ด์์ผ๋ฉด ๋ค๋ฅด๋ค.
๊ฐ๊ฐ์ flow table์ control plane์ remote controller์์ ์ฐ์ฐํ๊ณ ๋ง๋ค์ด์ง๋ค.
๊ทธ ํ ๋ง๋ค์ด์ง flow table์ control Agent(CA)๋ฅผ ํตํ์ฌ data plane์ผ๋ก ์ ๋ฌ๋๋ค.
๐ Why a logically centralized control plane ?
๊ธฐ์กด์ per-routing ๋ฐฉ์์ HW์ SW๊ฐ ์ผ์ฒดํ ๋์ด์์ด control plane์ ๋
์ ํ์ฌ์ ๊ฒ์ด์๋ค.
์ฆ, ๋ ํจ๊ณผ์ ์ธ ๋ฐฉ๋ฒ์ด ์์ด๋ ํ์ฌ์ control plane policy์ ๋ฐ๋ฅผ ๋ฟ, ํ์ฌ๊ฐ ์๋ ์ธ๋ถ์ธ์ ์์ ๋ถ๊ฐํ๋ค.
์ค๋ น ๊ทธ๊ฒ์ด ๋ ํจ์จ์ ์ธ ๋ฐฉ๋ฒ์์๋
๋ง์ฝ u์ traffic์ด ๋๋ฌด ๋ชฐ๋ ค ๋ ๊ฐ์ง ๊ธธ๋ก ๋๋ ์ ํ ๋นํ๊ณ ์ถ๋คํ์.
ํ์ง๋ง ์ผ์ฒดํ๋ router๋ ๋ ์ ์ cost๋ฅผ ๊ฐ์ง ์ชฝ์ผ๋ก ๊ฐ๊ธฐ ๋๋ฌธ์ ์ฐ๋ฆฌ๊ฐ ์กฐ์ ํ ์ ์๋ค.
traffic์ด ๋๋ฌด ๋ชฐ๋ ค์ ๊ณผ๋ถํ๊ฐ ์ค๋๋ผ๋
๋ง์ฝ ์ด๊ฒ์ ๊ณ ์น๊ธฐ ์ํด ๋ค๋ฅธ ์๊ณ ๋ฆฌ์ฆ์ ์ด์ฉํ๊ธฐ ์ํด์๋ ๊ธฐ์กด์ ๋ผ์ฐํฐ๋ค์ ๋ชจ๋ ํ๊ธฐํด์ผํ๋ค.
๊ทธ๋ ๋ค๋ฉด ์ฐ๋ฆฌ๋ ๊ธฐ์กด์ ์๊ณ ๋ฆฌ์ฆ๊ณผ๋ ๋ค๋ฅธ ์๊ณ ๋ฆฌ์ฆ์ ์ ์ฉ์ํค๊ธฐ ์ํด์๋ ์ ๋ฐ ๋นํจ์จ์ ์ธ ๋ฐฉ๋ฒ๋ฐ์ ์๋๊ฑธ๊น?
๋ต์ SDN์ ์๋ค.
SDN์ data plane๊ณผ control plane์ด ๋ถ๋ฆฌ๋์ด์๊ธฐ ๋๋ฌธ์ ๊ต์ฒดํ ์๊ณ ๋ฆฌ์ฆ ์ฑ๋ง ์๋ก ๊น์์ฃผ๋ฉด ๋๋ค.
์ ์ฌ์ง์ ๋ณด๋ฉด ์ ์ ์๋ฏ, control plane์ application๊ณผ๋ ์ํตํ๊ณ ์๋๋ก๋ switches์๋ ์ํตํ๋ค.
์ด๋ ์ค์์น์ ๋ผ์ฐํฐ๋ OpenFlow protocol์ ์ด์ฉํ์ฌ controller์ ์ํตํ๋ค.
์๋์ data plane ์น๊ตฌ๋ค๊ณผ ์ํตํ ๋๋ southbound API๋ฅผ ์ด์ฉํ๋ค.
๐ ์ค์ ๋ก control plane์ ์ฌ๋ฌ๋์ ๋ถ์ฐ๋ controller๋ค์ ๊ฐ๊ณ ์๋ค.
ํธ์๋ฅผ ์ํค ํ๋๋ก ๊ทธ๋ฆด๋ฟ์ด๋ค.
routing : end-to-end pahts via ๋ค์ต์คํธ๋ผ ์๊ณ ๋ฆฌ์ฆ using node-state and link state information from SDN
access control : ์ค์์น์์ ์ด๋คpacket์ ๋ธ๋ฝํ ๊ฒ์ธ์ง ๊ฒฐ์ ํ๋ค. ex) firewall
load balancing : blance traffic between switches
Modify-State : flow table์ ์ ๋ณด๊ฐ ๋ฐ๋๊ฒฝ์ฐ ๋ฐ๋์๋ค๊ณ ์๋ ค์ค๋ค.
Read-State : count values๋ฅผ ์ฝ์ด์ค๊ณ ์ถ์ ๋ ์ฌ์ฉํ๋ค.
Port-Status : port status๊ฐ ๋ฐ๋์์๋ ์ ๋ณด๋ฅผ ์ค๋ค.
ex) link has gone down
๋ง์ฝ ๋งํฌ๊ฐ ๋ค์ด๋ ๊ฒฝ์ฐ Port-Status (์ค์์น -> ์ปจํธ๋กค๋ฌ)๋ก ๋งํฌ๊ฐ ๋ค์ด๋์์์ ์๋ฆฐ๋ค.
๊ทธ๋ผ ์ปจํธ๋กค๋ฌ๋ ๋ค๋ฅธ ๋ฐฉ์์ ์ฐพ์ flow table์ ์
๋ฐ์ดํธ ํ ํ ์ค์์น์๊ฒ update flow table์ ์ ํด์ค๋ค(Modify-State). (์ปจํธ๋กค๋ฌ -> ์ค์์น)
๊ณตํต์ : ๋ค์ต์คํธ๋ผ ์๊ณ ๋ฆฌ์ฆ ์ฌ์ฉ
์ฐจ์ด์
Per router : Link State routing
๋ค์ต์คํธ๋ผ ์๊ณ ๋ฆฌ์ฆ์ด ๋ชจ๋ ๋ผ์ฐํฐ์์ ์คํ๋๋ค.
link state update๊ฐ ๋ชจ๋ ๋คํธ์ํฌ ๋ผ์ฐํฐ๋ค์๊ฒ ๋ฐฉ์ก๋๋ค.
Centralized control : SDN
๋ค์ต์คํธ๋ผ ์๊ณ ๋ฆฌ์ฆ์ packet switches ๋ฐ์์ ์ดํ๋ฆฌ์ผ์ด์
์ผ๋ก ๋ฐ๋ก ์คํ๋๋ค.
Packet Switches๊ฐ link update๊ฐ ์์ ์ ๋ชจ๋ ๋คํธ์ํฌ์ ๋ฐฉ์กํ๋ ๊ฒ์ด ์๋ SDN Controller์๋ง ์๋ ค์ค๋ค.
S1์ด link failure๊ฐ ์ผ์ด๋ฌ๋ค๋ฉด OpenFlow port status ๋ฉ์ธ์ง๋ฅผ modify controller์ ์ค๋ค.
SDN controller๊ฐ ๋ฉ์ธ์ง๋ฅผ ๋ฐ๊ณ OpenFlow ๋ฉ์ธ์ง๋ฅผ ํตํด link satae info๋ฅผ ์ ๋ฐ์ดํธํ๋ค.
๋ฐ๋ link state์ผ๋ก ๋ค์ต์คํธ๋ผ ์๊ณ ๋ฆฌ์ฆ์ ์ํํ๋ค.
new least-cost๊ฐ ๋ง๋ค์ด์ง๋ค.
new least-cost๋ก ๊ฐ์์ flow table์ ๋ง๋ค์ด์ค๋ค.
Controller๊ฐ OpenFlow modify-state ๋ฉ์ธ์ง๋ฅผ ํตํด ์ค์์น์ ์๋ก์ด ํ ์ด๋ธ์ ๋ค์ด์ํค๊ณ ์ ๋ฐ์ดํธํด์ค๋ค.
๐ ์ง๋ฌธ
Q1. ๊ธฐ์กด์ ์ ํต์ ์ธ ๋ผ์ฐํ
๊ณผ ๋ค๋ฅธ ์ ์?
๊ธฐ์กด์ ๋ผ์ฐํฐ๊ฐ ๋ค์ต์คํธ๋ผ๋ฅผ ์ํํ๋ค. ํ์ง๋ง SDN์ application์ด ์ํํ๋ค.
๊ณ ๋ก ๋ผ์ฐํฐ์ ๊ณ์ฐ์ด ์ค์๋ค.
Q2. ๋ผ์ฐํ
ํ๋กํ ์ฝ์ ๋ฐ๊พธ๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผํ ๊น?
per-router์๋ ๋ชจ๋ ๋ผ์ฐํฐ๋ฅผ ์ ๋ผ์ฐํฐ๋ก ๋ฐ๊ฟ์ผํ๋ค.
ํ์ง๋ง SDN์ ์ฑ์ ํ๋๋ง ๊น๋ฉด ๋๋ค.
Q3. ๋ง์ฝ SDN์์ link status๊ฐ ๋ฐ๋๋ฉด ์ด๋ป๊ฒ ๋๋?
1. controller ์์๋ linkstate info๋ฅผ ๋ฐ๊พผ๋ค
2. networl graph๊ฐ ๋ฐ๋๋ค.
3. flow table์ด ๋ฐ๋๋ค (update ๋ info๋ก)