๐Ÿ—บ๏ธ ๋ผ์šฐํŒ…: ์ตœ์ ์˜ ๊ฒฝ๋กœ๋ฅผ ์ฐพ์•„์„œ

๋„คํŠธ์›Œํฌ์˜ ํ•ต์‹ฌ์€ ๋ฐ”๋กœ ๋ผ์šฐํŒ…(Routing) ์ด๋‹ค. ์ถœ๋ฐœ์ง€์—์„œ ๋ชฉ์ ์ง€๊นŒ์ง€ ๋ฐ์ดํ„ฐ๋ฅผ ์–ด๋–ค ๊ฒฝ๋กœ๋กœ ๋ณด๋‚ผ์ง€ ๊ฒฐ์ •ํ•˜๋Š” ๊ณผ์ •์œผ๋กœ, ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ(Control Plane)์—์„œ ์ผ์–ด๋‚œ๋‹ค. ๋ผ์šฐํŒ… ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ โ€˜์ข‹์€โ€™ ๊ฒฝ๋กœ, ์ฆ‰ ๋น„์šฉ์ด ์ ๊ฑฐ๋‚˜, ๊ฐ€์žฅ ๋น ๋ฅด๊ฑฐ๋‚˜, ๋œ ํ˜ผ์žกํ•œ ๊ฒฝ๋กœ๋ฅผ ์ฐพ๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•œ๋‹ค.

๋ผ์šฐํŒ… ๊ฒฝ๋กœ๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ์„ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ์‹์€ ํฌ๊ฒŒ ๋‘ ๊ฐ€์ง€๋กœ ๋‚˜๋‰œ๋‹ค.

  • ๋ผ์šฐํ„ฐ๋ณ„ ์ปจํŠธ๋กค (Per-router control): ๊ฐ ๋ผ์šฐํ„ฐ๊ฐ€ ์„œ๋กœ ์ •๋ณด๋ฅผ ๊ตํ™˜ํ•˜๋ฉฐ ๋…์ž์ ์œผ๋กœ ๋ผ์šฐํŒ… ํ…Œ์ด๋ธ”์„ ๊ณ„์‚ฐํ•œ๋‹ค. ๋ถ„์‚ฐ ๋ฐฉ์‹์ด๋ผ ์œ ์—ฐํ•˜์ง€๋งŒ, ๋ผ์šฐํ„ฐ ๊ฐ„ ์ •๋ณด ๋™๊ธฐํ™”๊ฐ€ ์™„๋ฒฝํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ๋‹ค. ๊ฐ€์žฅ ๋„๋ฆฌ ์“ฐ์ด๋Š” ๋ฐฉ์‹!
  • ์ค‘์•™ ์ง‘์ค‘ํ˜• ์ปจํŠธ๋กค (Logically centralized control): SDN(Software-Defined Networking) ์ปจํŠธ๋กค๋Ÿฌ๋ผ๋Š” ์ค‘์•™ ์ง€ํœ˜์†Œ์—์„œ ๋ชจ๋“  ๋ผ์šฐํ„ฐ์˜ ํ…Œ์ด๋ธ”์„ ๊ณ„์‚ฐํ•˜๊ณ  ๋ฐฐํฌํ•œ๋‹ค. ์ผ๊ด€์„ฑ์ด ๋ณด์žฅ๋œ๋‹ค๋Š” ํฐ ์žฅ์ ์ด ์žˆ๋‹ค.

Untitled

1. ๋ผ์šฐํŒ… ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์–‘๋Œ€ ์‚ฐ๋งฅ: LS vs DV

๋ผ์šฐํŒ… ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ํฌ๊ฒŒ ๋งํฌ ์ƒํƒœ(Link State, LS) ์™€ ๊ฑฐ๋ฆฌ ๋ฒกํ„ฐ(Distance Vector, DV) ๋ฐฉ์‹์œผ๋กœ ๋‚˜๋‰œ๋‹ค.

  • ๊ธ€๋กœ๋ฒŒ ์ •๋ณด: ๋ชจ๋“  ๋ผ์šฐํ„ฐ๊ฐ€ ์ „์ฒด ๋„คํŠธ์›Œํฌ์˜ ํ† ํด๋กœ์ง€(์ง€๋„)๋ฅผ ๋‹ค ์•Œ๊ณ  ์žˆ๋‹ค.
  • ์•Œ๊ณ ๋ฆฌ์ฆ˜: ๊ฐ ๋ผ์šฐํ„ฐ๋Š” ์ด ์ „์ฒด ์ง€๋„๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ๋‹ค์ต์ŠคํŠธ๋ผ(Dijkstra) ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‹คํ–‰ํ•ด ์ž๊ธฐ ์ž์‹ ์œผ๋กœ๋ถ€ํ„ฐ ๋‹ค๋ฅธ ๋ชจ๋“  ๋…ธ๋“œ๊นŒ์ง€์˜ ์ตœ๋‹จ ๊ฒฝ๋กœ๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค.
  • ๋Œ€ํ‘œ ์ฃผ์ž: OSPF

LS ๋ฐฉ์‹์€ ๋ชจ๋“  ๋ผ์šฐํ„ฐ๊ฐ€ ์™„์ „ํ•œ ์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  ๊ณ„์‚ฐํ•˜๋ฏ€๋กœ ๋น„๊ต์  ์•ˆ์ •์ ์ด์ง€๋งŒ, ๋งํฌ ๋น„์šฉ์ด ํŠธ๋ž˜ํ”ฝ ์–‘์— ๋”ฐ๋ผ ๊ณ„์† ๋ณ€ํ•˜๋ฉด ๊ฒฝ๋กœ๊ฐ€ ๊ณ„์† ๋ฐ”๋€Œ๋Š” ์ง„๋™(oscillation) ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.

Untitled

Distance-Vector (DV) ์•Œ๊ณ ๋ฆฌ์ฆ˜

  • ํƒˆ์ค‘์•™ํ™” ์ •๋ณด: ๊ฐ ๋ผ์šฐํ„ฐ๋Š” ์ž์‹ ๊ณผ ์ง์ ‘ ์—ฐ๊ฒฐ๋œ ์ด์›ƒ ๋ผ์šฐํ„ฐํ•˜๊ณ ๋งŒ ์ •๋ณด๋ฅผ ๊ตํ™˜ํ•œ๋‹ค.
  • โ€œ์ด์›ƒ ๋ง๋งŒ ๋ฏฟ๊ธฐโ€: ๋ผ์šฐํ„ฐ๋Š” ์ด์›ƒ์ด ์•Œ๋ ค์ฃผ๋Š” โ€œ๋ชฉ์ ์ง€๊นŒ์ง€ ์ด๋งŒํผ ๊ฑธ๋ คโ€๋ผ๋Š” ๊ฑฐ๋ฆฌ ๋ฒกํ„ฐ(distance vector) ์ •๋ณด๋ฅผ ์ „์ ์œผ๋กœ ์‹ ๋ขฐํ•˜๊ณ , ์ด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์ž์‹ ์˜ ๋ผ์šฐํŒ… ํ…Œ์ด๋ธ”์„ ๊ฐฑ์‹ ํ•œ๋‹ค.
  • ์•Œ๊ณ ๋ฆฌ์ฆ˜: ๋ฒจ๋งŒ-ํฌ๋“œ(Bellman-Ford) ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๊ธฐ๋ฐ˜ํ•œ๋‹ค.
  • ๋Œ€ํ‘œ ์ฃผ์ž: RIP, EIGRP

DV ๋ฐฉ์‹์€ ๊ตฌ์กฐ๊ฐ€ ๊ฐ„๋‹จํ•˜๊ณ  ๋ถ„์‚ฐ์ ์ด์ง€๋งŒ, โ€œ๋‚˜์œ ์†Œ์‹โ€์ด ๋А๋ฆฌ๊ฒŒ ์ „ํŒŒ๋˜๋Š” Count-to-Infinity ๋ฌธ์ œ์— ์ทจ์•ฝํ•˜๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ํŠน์ • ๊ฒฝ๋กœ์˜ ๋น„์šฉ์ด ๊ธ‰์ฆํ–ˆ์„ ๋•Œ, ๋ผ์šฐํ„ฐ๋“ค์ด ์„œ๋กœ ์ž˜๋ชป๋œ ์ •๋ณด๋ฅผ ๊ณ„์† ์ฃผ๊ณ ๋ฐ›์œผ๋ฉฐ ์ตœ์  ๊ฒฝ๋กœ๋ฅผ ์ฐพ๋Š” ๋ฐ ์•„์ฃผ ์˜ค๋žœ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆด ์ˆ˜ ์žˆ๋‹ค. ๐Ÿ˜ญ

2. ์ธํ„ฐ๋„ท์˜ ๋ผ์šฐํŒ…: AS์˜ ๋“ฑ์žฅ

์‹ค์ œ ์ธํ„ฐ๋„ท์€ ์ˆ˜์‹ญ์–ต ๊ฐœ์˜ ์žฅ์น˜๊ฐ€ ์—ฐ๊ฒฐ๋œ ๊ฑฐ๋Œ€ํ•œ ๋„คํŠธ์›Œํฌ๋ผ, ์œ„์—์„œ ์„ค๋ช…ํ•œ ๋ฐฉ์‹ ๊ทธ๋Œ€๋กœ๋ฅผ ์ ์šฉํ•˜๊ธฐ ์–ด๋ ต๋‹ค. ๊ทธ๋ž˜์„œ ์ธํ„ฐ๋„ท์€ ์ž์œจ ์‹œ์Šคํ…œ(Autonomous System, AS) ์ด๋ผ๋Š” ๋‹จ์œ„๋กœ ๋ฌถ์–ด์„œ ๊ณ„์ธต์ ์œผ๋กœ ๊ด€๋ฆฌํ•œ๋‹ค.

  • AS (Autonomous System): ํ•˜๋‚˜์˜ ๊ด€๋ฆฌ ์ฃผ์ฒด๊ฐ€ ์šด์˜ํ•˜๋Š” ๋ผ์šฐํ„ฐ๋“ค์˜ ์ง‘ํ•ฉ. (ํ•˜๋‚˜์˜ โ€˜๋„๋ฉ”์ธโ€™์ฒ˜๋Ÿผ ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ๋‹ค)
  • ๋‚ด๋ถ€ ๋ผ์šฐํŒ… (Intra-AS Routing): AS ๋‚ด์—์„œ ๊ฒฝ๋กœ๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ๊ฒƒ. (e.g., OSPF, RIP)
  • ์™ธ๋ถ€ ๋ผ์šฐํŒ… (Inter-AS Routing): AS ๊ฐ„์˜ ๊ฒฝ๋กœ๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ๊ฒƒ. (e.g., BGP)

Untitled

OSPF: ๊ฐ€์žฅ ๋„๋ฆฌ ์“ฐ์ด๋Š” ๋‚ด๋ถ€ ๋ผ์šฐํŒ… ํ”„๋กœํ† ์ฝœ

OSPF(Open Shortest Path First) ๋Š” ํ˜„์žฌ ๊ฐ€์žฅ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” LS ๊ธฐ๋ฐ˜์˜ ๋‚ด๋ถ€ ๋ผ์šฐํŒ… ํ”„๋กœํ† ์ฝœ์ด๋‹ค.

  • Open: ๊ณต๊ณต์žฌ๋กœ ๊ฐœ๋ฐœ๋˜์–ด ๋ˆ„๊ตฌ๋‚˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ๋™์ž‘ ๋ฐฉ์‹: ๊ฐ ๋ผ์šฐํ„ฐ๊ฐ€ ์ž์‹ ์˜ ๋งํฌ ์ƒํƒœ(LS) ์ •๋ณด๋ฅผ AS ๋‚ด ๋ชจ๋“  ๋ผ์šฐํ„ฐ์—๊ฒŒ ์•Œ๋ฆฌ๊ณ (flooding), ์ „์ฒด ํ† ํด๋กœ์ง€ ๋งต์„ ๋งŒ๋“  ๋’ค ๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ์ตœ๋‹จ ๊ฒฝ๋กœ๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค.
  • ๊ณ„์ธต ๊ตฌ์กฐ: OSPF๋Š” AS๋ฅผ ์—ฌ๋Ÿฌ area๋กœ ๋‚˜๋ˆ„์–ด ๊ด€๋ฆฌํ•œ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด LS ์ •๋ณด๊ฐ€ ๋„˜์ณ๋‚˜๋Š” ๊ฒƒ์„ ๋ง‰๊ณ (flooding ๋ฒ”์œ„๋ฅผ area๋กœ ์ œํ•œ), ๋ผ์šฐํŒ… ๊ณ„์‚ฐ์˜ ๋ถ€๋‹ด์„ ์ค„์—ฌ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚จ๋‹ค. ๐Ÿ‘

BGP: AS๋“ค์„ ์—ฐ๊ฒฐํ•˜๋Š” ์™ธ๋ถ€ ๋ผ์šฐํŒ… ํ”„๋กœํ† ์ฝœ

BGP(Border Gateway Protocol) ๋Š” AS์™€ AS๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ์ธํ„ฐ๋„ท์˜ ์‚ฌ์‹ค์ƒ ํ‘œ์ค€ ์™ธ๋ถ€ ๋ผ์šฐํŒ… ํ”„๋กœํ† ์ฝœ์ด๋‹ค.

  • eBGP & iBGP: ์ด์›ƒ AS๋กœ๋ถ€ํ„ฐ ๊ฒฝ๋กœ ์ •๋ณด๋ฅผ ๋ฐ›๋Š” eBGP์™€, ๊ทธ ์ •๋ณด๋ฅผ AS ๋‚ด๋ถ€ ๋ผ์šฐํ„ฐ๋“ค์—๊ฒŒ ์ „ํŒŒํ•˜๋Š” iBGP๋กœ ๋‚˜๋‰œ๋‹ค.
  • ๊ฒฝ๋กœ ๋ฒกํ„ฐ (Path Vector): BGP๋Š” ๋‹จ์ˆœํžˆ ๋น„์šฉ๋งŒ ๋”ฐ์ง€๋Š” ๊ฒŒ ์•„๋‹ˆ๋ผ, ๋ชฉ์ ์ง€๊นŒ์ง€ ๊ฑฐ์ณ๊ฐ€์•ผ ํ•  AS๋“ค์˜ ๋ชฉ๋ก(AS-PATH) ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฒฝ๋กœ๋ฅผ ๊ฒฐ์ •ํ•œ๋‹ค.
  • ์ •์ฑ… ๊ธฐ๋ฐ˜ ๋ผ์šฐํŒ…: BGP์˜ ๊ฐ€์žฅ ํฐ ํŠน์ง•์€ ์ •์ฑ…(policy) ์ด ์„ฑ๋Šฅ๋ณด๋‹ค ์šฐ์„ ๋  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, โ€œA๋ผ๋Š” ํšŒ์‚ฌ์˜ AS๋Š” ์ ˆ๋Œ€ ๊ฑฐ์น˜์ง€ ์•Š๊ฒ ๋‹คโ€์™€ ๊ฐ™์€ ์ •์ฑ…์„ ์„ค์ •ํ•˜์—ฌ ๋ผ์šฐํŒ… ๊ฒฝ๋กœ๋ฅผ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋‹ค.

Untitled

3. SDN: ๋„คํŠธ์›Œํฌ๋ฅผ ํ”„๋กœ๊ทธ๋ž˜๋ฐํ•˜๋‹ค

SDN(Software-Defined Networking) ์€ ๋„คํŠธ์›Œํฌ ์ œ์–ด ๋ฐฉ์‹์„ ํ˜์‹ ํ•˜๋Š” ์ƒˆ๋กœ์šด ํŒจ๋Ÿฌ๋‹ค์ž„์ด๋‹ค. ๊ธฐ์กด์—๋Š” ๊ฐ ๋ผ์šฐํ„ฐ๊ฐ€ ์•Œ์•„์„œ ๊ฒฝ๋กœ๋ฅผ ๊ณ„์‚ฐํ–ˆ์ง€๋งŒ, SDN์—์„œ๋Š” ์ค‘์•™ ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ๋„คํŠธ์›Œํฌ ์ „์ฒด๋ฅผ ์ง€ํœ˜ํ•œ๋‹ค.

  • Control/Data Plane ๋ถ„๋ฆฌ: ๋ผ์šฐํ„ฐ๋Š” ๋ฐ์ดํ„ฐ ์ „๋‹ฌ(Data Plane)๋งŒ ๋‹ด๋‹นํ•˜๋Š” ๋‹จ์ˆœํ•œ ์Šค์œ„์น˜๊ฐ€ ๋˜๊ณ , ๋ผ์šฐํŒ… ๊ณ„์‚ฐ ๋“ฑ ์ง€๋Šฅ์ ์ธ ์—ญํ• (Control Plane)์€ SDN ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ๋งก๋Š”๋‹ค.
  • ์ค‘์•™ ์ง‘์ค‘ ์ œ์–ด: ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ์ „์ฒด ๋„คํŠธ์›Œํฌ ์ƒํ™ฉ์„ ๋ณด๊ณ  ๊ฐ ์Šค์œ„์น˜์˜ ๋™์ž‘ ๊ทœ์น™(flow table)์„ ํ•œ ๋ฒˆ์— ๊ฒฐ์ •ํ•˜๊ณ  ๋‚ด๋ ค๋ณด๋‚ธ๋‹ค.
  • ํ”„๋กœ๊ทธ๋ž˜๋จธ๋ธ”: ๊ฐœ๋ฐœ์ž๋Š” ์ปจํŠธ๋กค๋Ÿฌ์˜ API๋ฅผ ํ†ตํ•ด ๋ผ์šฐํŒ…, ๋ถ€ํ•˜ ๋ถ„์‚ฐ, ์ ‘๊ทผ ์ œ์–ด ๋“ฑ ๋„คํŠธ์›Œํฌ ๋™์ž‘์„ ๋งˆ์Œ๋Œ€๋กœ ํ”„๋กœ๊ทธ๋ž˜๋ฐํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค! ๐Ÿ’ป

Untitled

OpenFlow: SDN์˜ ํ•ต์‹ฌ ํ”„๋กœํ† ์ฝœ

OpenFlow๋Š” SDN ์ปจํŠธ๋กค๋Ÿฌ์™€ ์Šค์œ„์น˜(๋ผ์šฐํ„ฐ)๊ฐ€ ์„œ๋กœ ํ†ต์‹ ํ•˜๋Š” ํ‘œ์ค€ ๋ฐฉ๋ฒ•์„ ์ •์˜ํ•œ ํ”„๋กœํ† ์ฝœ์ด๋‹ค. ์ปจํŠธ๋กค๋Ÿฌ๋Š” OpenFlow๋ฅผ ํ†ตํ•ด ์Šค์œ„์น˜์˜ Flow Table์„ ์ˆ˜์ •ํ•˜์—ฌ ํŒจํ‚ท์„ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ• ์ง€(์ „๋‹ฌ, ํ๊ธฐ, ์ˆ˜์ • ๋“ฑ) ์ง€์‹œํ•œ๋‹ค.

4. ICMP: ๋„คํŠธ์›Œํฌ์˜ ์กฐ์šฉํ•œ ์กฐ๋ ฅ์ž

ICMP(Internet Control Message Protocol) ๋Š” ๋„คํŠธ์›Œํฌ ์žฅ์น˜๋“ค์ด ์„œ๋กœ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋‚˜ ์ œ์–ด ๋ฉ”์‹œ์ง€๋ฅผ ์ฃผ๊ณ ๋ฐ›๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœํ† ์ฝœ์ด๋‹ค. IP ๊ณ„์ธต ๋ฐ”๋กœ ์œ„์—์„œ ๋™์ž‘ํ•˜๋ฉฐ, IP ๋ฐ์ดํ„ฐ๊ทธ๋žจ์— ๋‹ด๊ฒจ ์ „๋‹ฌ๋œ๋‹ค.

  • ์˜ค๋ฅ˜ ๋ณด๊ณ : โ€œ๋ชฉ์ ์ง€์— ๋„๋‹ฌํ•  ์ˆ˜ ์—†์Œโ€, โ€œTTL ๋งŒ๋ฃŒโ€ ๋“ฑ ๋ผ์šฐํŒ… ๊ณผ์ •์—์„œ ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ๋ฅผ ์•Œ๋ ค์ค€๋‹ค.
  • ๋„คํŠธ์›Œํฌ ์ง„๋‹จ: ping ๋ช…๋ น์–ด๊ฐ€ ICMP๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŠน์ • ํ˜ธ์ŠคํŠธ๊ฐ€ ์‚ด์•„์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ณ , Traceroute๋Š” ICMP์˜ TTL ๋งŒ๋ฃŒ ๋ฉ”์‹œ์ง€๋ฅผ ์ด์šฉํ•ด ๋ชฉ์ ์ง€๊นŒ์ง€์˜ ๊ฒฝ๋กœ๋ฅผ ์ถ”์ ํ•œ๋‹ค.

๋ผ์šฐํŒ…์˜ ์„ธ๊ณ„๋Š” ์ •๋ง ๋ณต์žกํ•˜์ง€๋งŒ, ๋•๋ถ„์— ์šฐ๋ฆฌ๊ฐ€ ๋งค์ผ๊ฐ™์ด ์ธํ„ฐ๋„ท์„ ์•ˆ์ •์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์‚ฌ์‹ค์ด ์ƒˆ์‚ผ ๋†€๋ž๋‹ค.