Computer Network Chapter 05

Jeong-yun Leeยท2025๋…„ 5์›” 14์ผ

Computer Network

๋ชฉ๋ก ๋ณด๊ธฐ
4/4

๐ŸŒ Chapter 5: Network Layer - The Control Plane

์ฐธ๊ณ  ์ž๋ฃŒ

๐Ÿ“Œ 5.1 Introduction

**๋„คํŠธ์›Œํฌ ๊ณ„์ธต(Network Layer)**์€ ๋ฐ์ดํ„ฐ๋ฅผ ์†ก์‹ ์ž์—์„œ ์ˆ˜์‹ ์ž๊นŒ์ง€ ์ „๋‹ฌํ•˜๋Š” ์—ญํ• ์„ ๋‹ด๋‹นํ•˜๋ฉฐ, ํฌ๊ฒŒ ๋‘ ๊ฐ€์ง€ ํ•ต์‹ฌ ๊ธฐ๋Šฅ์ด ์žˆ์Œ:

  • ๐Ÿ“ฌ ํฌ์›Œ๋”ฉ(Forwarding)

    • ๋ผ์šฐํ„ฐ(Router)์˜ ์ž…๋ ฅ(input)์— ๋„์ฐฉํ•œ ํŒจํ‚ท(packet)์„ ์ ์ ˆํ•œ ์ถœ๋ ฅ(output) ์ธํ„ฐํŽ˜์ด์Šค๋กœ ์ „๋‹ฌํ•˜๋Š” ๊ณผ์ •
    • ๋ฐ์ดํ„ฐ ํ‰๋ฉด(Data Plane)์˜ ๊ด€ํ• 
  • ๐Ÿ—บ๏ธ ๋ผ์šฐํŒ…(Routing)

    • ํŒจํ‚ท์„ ์†ก์‹  ์ธก์—์„œ ์ˆ˜์‹  ์ธก์œผ๋กœ ์ „๋‹ฌํ•˜๋Š” ์ตœ์  ๊ฒฝ๋กœ๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ๊ณผ์ •
    • ์ œ์–ด ํ‰๋ฉด(Control Plane)์˜ ๊ด€ํ• 

๋„คํŠธ์›Œํฌ์˜ ์ œ์–ด ํ‰๋ฉด(Control Plane)์„ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ์‹์€ ํฌ๊ฒŒ ๋‘ ๊ฐ€์ง€ ์ ‘๊ทผ๋ฒ•์œผ๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ์Œ:

  • โš™๏ธ ๋ผ์šฐํ„ฐ๋ณ„ ์ œ์–ด(Per-Router Control, ์ „ํ†ต์  ์ ‘๊ทผ๋ฒ•)
  • ๐ŸŽ›๏ธ ๋…ผ๋ฆฌ์  ์ค‘์•™ ์ง‘์ค‘ํ˜• ์ œ์–ด(Logically Centralized Control, Software Defined Networking: SDN)

โš™๏ธ ๋ผ์šฐํ„ฐ๋ณ„ ์ œ์–ด (Per-Router Control)

๊ฐœ๋ณ„ ๋ผ์šฐํ„ฐ(Router) ๊ฐ๊ฐ์— ํƒ‘์žฌ๋œ ๋ผ์šฐํŒ… ์•Œ๊ณ ๋ฆฌ์ฆ˜(Routing Algorithm)์ด ์„œ๋กœ ์ƒํ˜ธ์ž‘์šฉํ•˜์—ฌ ํฌ์›Œ๋”ฉ ํ…Œ์ด๋ธ”(Forwarding Table)์„ ๋…๋ฆฝ์ ์œผ๋กœ ๊ณ„์‚ฐํ•˜๊ณ  ๊ด€๋ฆฌํ•จ. ๋ผ์šฐํ„ฐ๊ฐ€ ๋ถ„์‚ฐ๋œ ํ˜•ํƒœ๋กœ ๋™์ž‘ํ•˜๋ฏ€๋กœ ๋ถ„์‚ฐ ์ œ์–ด(Distributed Control) ๋ฐฉ์‹์ด๋ผ๊ณ ๋„ ๋ถ€๋ฆ„.

๋ผ์šฐํ„ฐ๋ณ„ ์ œ์–ด

๐Ÿ“ ํŠน์ง•

  • ๊ฐ ๋ผ์šฐํ„ฐ๊ฐ€ ๋…๋ฆฝ์ ์œผ๋กœ ๋™์ž‘ํ•˜์—ฌ ์žฅ์•  ๋ฐœ์ƒ ์‹œ ๊ตญ์ง€์ ์œผ๋กœ๋งŒ ์˜ํ–ฅ
  • ๋ณต์žกํ•œ ๋„คํŠธ์›Œํฌ์—์„œ๋Š” ์„ค์ • ๋ฐ ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ์–ด๋ ค์šธ ์ˆ˜ ์žˆ์Œ

๐ŸŽ›๏ธ ๋…ผ๋ฆฌ์  ์ค‘์•™ ์ง‘์ค‘ํ˜• ์ œ์–ด (Software Defined Networking: SDN)

๋…ผ๋ฆฌ์  ์ค‘์•™ ์ง‘์ค‘ํ˜• ์ œ์–ด๋Š” ๋ผ์šฐํ„ฐ์—์„œ ๋ถ„๋ฆฌ๋œ **๋…ผ๋ฆฌ์  ์ค‘์•™ ์ปจํŠธ๋กค๋Ÿฌ(Logical Central Controller)**๊ฐ€ ์ „์ฒด ๋„คํŠธ์›Œํฌ ์ƒํƒœ๋ฅผ ํŒŒ์•…ํ•˜๊ณ , ๋ผ์šฐํ„ฐ์— ์กด์žฌํ•˜๋Š” ๋กœ์ปฌ ์ œ์–ด ์—์ด์ „ํŠธ(Control Agents, CAs)์™€ ์ƒํ˜ธ์ž‘์šฉํ•˜์—ฌ ํฌ์›Œ๋”ฉ ํ…Œ์ด๋ธ”์„ ๊ณ„์‚ฐํ•˜๋Š” ๋ฐฉ์‹์ž„.

์ผ๋ฐ˜์ ์œผ๋กœ SDN ์ปจํŠธ๋กค๋Ÿฌ๋Š” ๋„คํŠธ์›Œํฌ ์™ธ๋ถ€์— ๋ฐฐ์น˜๋˜์–ด ์›๊ฒฉ์œผ๋กœ ๊ด€๋ฆฌ๋˜๋ฉฐ, ๊ฐœ๋ฐฉํ˜• ์†Œํ”„ํŠธ์›จ์–ด(Open Source Software)๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตฌ์„ฑ๋จ.

๋…ผ๋ฆฌ์  ์ค‘์•™ ์ง‘์ค‘ํ˜• ์ œ์–ด (SDN)

๐Ÿ“ ํŠน์ง•

  • ์ค‘์•™์—์„œ ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ฉ์ ์œผ๋กœ ๊ด€๋ฆฌ ๊ฐ€๋Šฅ
  • ๋„คํŠธ์›Œํฌ์˜ ์šด์˜ ํšจ์œจ์„ฑ์„ ๋†’์ด๊ณ , ๋ณต์žกํ•œ ์ •์ฑ…์„ ์‰ฝ๊ฒŒ ์ ์šฉํ•  ์ˆ˜ ์žˆ์Œ
  • ์ปจํŠธ๋กค๋Ÿฌ ์žฅ์•  ์‹œ ์ „์ฒด ๋„คํŠธ์›Œํฌ๊ฐ€ ์˜ํ–ฅ๋ฐ›์„ ๊ฐ€๋Šฅ์„ฑ ์žˆ์Œ

๐Ÿšฆ 5.2 Routing Protocols

๐Ÿ“Œ ๋ผ์šฐํŒ… ํ”„๋กœํ† ์ฝœ(Routing Protocol)์˜ ๋ชฉํ‘œ:

  • ์†ก์‹  ์ธก์—์„œ ์ˆ˜์‹  ์ธก์œผ๋กœ ํŒจํ‚ท์„ ์ „์†กํ•˜๊ธฐ ์œ„ํ•œ "์ข‹์€(good)" ๊ฒฝ๋กœ๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ๊ฒƒ

๐Ÿ“Œ ๊ฒฝ๋กœ(Path)์˜ ์ •์˜:)

  • ํŒจํ‚ท์ด ์†ก์‹  ์ธก์—์„œ ์ตœ์ข… ์ˆ˜์‹  ์ธก๊นŒ์ง€ ์ด๋™ํ•˜๋ฉด์„œ ๊ฑฐ์ณ๊ฐ€๊ฒŒ ๋  ๋ผ์šฐํ„ฐ์˜ ์ผ๋ จ์˜ ์ˆœ์„œ

๐Ÿ“Œ "์ข‹๋‹ค(Good)"์˜ ์˜๋ฏธ:

  • ์ตœ์†Œ ๋น„์šฉ(Minimum cost)
  • ์ตœ๊ณ  ์†๋„(Highest speed)
  • ์ตœ์†Œ ๋ฒˆ์žก๋„(Minimum congestion)

๐Ÿ“Š ๋„คํŠธ์›Œํฌ์˜ ๊ทธ๋ž˜ํ”„ ๋ชจ๋ธ(Graph Model of Networks)

๋„คํŠธ์›Œํฌ์—์„œ์˜ ๊ทธ๋ž˜ํ”„ ๋ชจ๋ธ

  • ๊ทธ๋ž˜ํ”„(Graph): G = (N, E)
  • ๋…ธ๋“œ(Node): N (๋ผ์šฐํ„ฐ(Router)์˜ ์ง‘ํ•ฉ)
  • ์—ฃ์ง€(Edge): E (๋งํฌ(Link)์˜ ์ง‘ํ•ฉ)

๐Ÿ’ฐ ๊ทธ๋ž˜ํ”„์˜ ๋น„์šฉ(Cost in Graphs)

๐Ÿ“Œ ๋งํฌ ๋น„์šฉ(Link Cost):

  • c(X, Y): ๋งํฌ (X, Y)์˜ ๋น„์šฉ
  • ๋งํฌ์˜ ๋Œ€์—ญํญ(Bandwidth)๊ณผ ํ˜ผ์žก๋„(Congestion)์— ์˜ํ–ฅ์„ ๋ฐ›์Œ

๐Ÿ“Œ ๊ฒฝ๋กœ ๋น„์šฉ(Path Cost):

  • ๊ฒฝ๋กœ๊ฐ€ ๊ฑฐ์ณ๊ฐ€๋Š” ๋ชจ๋“  ๋งํฌ์˜ ๋น„์šฉ์„ ํ•ฉ์‚ฐํ•œ ๊ฐ’
  • ๋ผ์šฐํŒ… ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์ตœ์†Œ ๋น„์šฉ์˜ ๊ฒฝ๋กœ๋ฅผ ์ฐพ์•„๋‚ด๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•จ

๐Ÿงฉ ๋ผ์šฐํŒ… ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๋ถ„๋ฅ˜ (Classification of Routing Algorithms)

๐ŸŒ Global (Centralized)

  • ๋ชจ๋“  ๋ผ์šฐํ„ฐ๊ฐ€ ๋„คํŠธ์›Œํฌ์˜ ์™„์ „ํ•œ ํ† ํด๋กœ์ง€(Topology)๋ฅผ ์•Œ๊ณ  ์žˆ์Œ
  • ๋งํฌ ์ƒํƒœ(Link State) ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ฑ„ํƒ

๐ŸŒ Decentralized

  • ๋ผ์šฐํ„ฐ๋Š” ๋ฌผ๋ฆฌ์ ์œผ๋กœ ์ง์ ‘ ์—ฐ๊ฒฐ๋œ ์ด์›ƒ ๋ผ์šฐํ„ฐ์˜ ๋งํฌ ๋น„์šฉ๋งŒ์„ ์•Œ๊ณ  ์žˆ์Œ
  • ์ •๋ณด ๊ตํ™˜๊ณผ ๋ฐ˜๋ณต์ ์ธ ๋น„์šฉ ์—ฐ์‚ฐ์„ ํ†ตํ•ด ์ตœ์†Œ ๋น„์šฉ ๊ฒฝ๋กœ๋ฅผ ๊ฒฐ์ •
  • ๊ฑฐ๋ฆฌ ๋ฒกํ„ฐ(Distance Vector) ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ฑ„ํƒ

๐Ÿ“ˆ ์ •์ (Static) vs ๋™์ (Dynamic)

โš™๏ธ ์ •์ (Static):

  • ๋ผ์šฐํ„ฐ๊ฐ€ ์ •๋ณด๋ฅผ ์ฒœ์ฒœํžˆ ๊ฐฑ์‹  ๋ฐ ๋ฐ˜์˜

โšก๏ธ ๋™์ (Dynamic):

  • ๊ฒฝ๋กœ ์ •๋ณด๊ฐ€ ๋น ๋ฅด๊ฒŒ ๋ณ€ํ™”
  • ์ฃผ๊ธฐ์ ์ธ ์—…๋ฐ์ดํŠธ ๋ฐ ๋งํฌ ๋น„์šฉ ๋ณ€ํ™”์— ์ ๊ทน ๋Œ€์‘

๐Ÿ“Œ ๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜(Dijkstra's Algorithm)

๐Ÿ“ ํ•ต์‹ฌ ๊ฐœ๋…:

  • ๋งํฌ ์ƒํƒœ ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธ(Link state broadcast)๋ฅผ ํ†ตํ•ด ๋ชจ๋“  ๋งํฌ์˜ ๋น„์šฉ์„ ๋ชจ๋“  ๋…ธ๋“œ๊ฐ€ ๊ณต์œ 
  • ๋ชจ๋“  ๋…ธ๋“œ๊ฐ€ ๋™์ผํ•œ ์ •๋ณด๋ฅผ ๊ฐ€์ง
  • ํ•œ ๋…ธ๋“œ์—์„œ ๋‹ค๋ฅธ ๋ชจ๋“  ๋…ธ๋“œ๋กœ ๊ฐ€๋Š” ์ตœ์†Œ ๋น„์šฉ ๊ฒฝ๋กœ๋ฅผ ๊ณ„์‚ฐํ•˜์—ฌ ํฌ์›Œ๋”ฉ ํ…Œ์ด๋ธ”(Forwarding Table) ์ƒ์„ฑ

๐Ÿ“ ๋ฐ˜๋ณต ์ˆ˜ํ–‰:

  • ๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ k๋ฒˆ ๋ฐ˜๋ณตํ•˜๋ฉด k๊ฐœ์˜ ๋ชฉ์ ์ง€์— ๋Œ€ํ•œ ์ตœ์†Œ ๋น„์šฉ ๊ฒฝ๋กœ ๊ณ„์‚ฐ ๊ฐ€๋Šฅ

๐Ÿ“ ๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ‘œ๊ธฐ๋ฒ•(Notation):

  • c(X, Y): ๋…ธ๋“œ X์—์„œ ๋…ธ๋“œ Y๋กœ ์ด๋™ํ•˜๊ธฐ ์œ„ํ•œ ๋งํฌ ๋น„์šฉ (์ง์ ‘ ์—ฐ๊ฒฐ๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ โˆž)
  • D(v): ์†ก์‹ ์ธก์œผ๋กœ๋ถ€ํ„ฐ ๋ชฉ์ ์ง€ ๋…ธ๋“œ v๋กœ ์ด๋™ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ํ˜„์žฌ ๋น„์šฉ
  • p(v): ์†ก์‹ ์ธก์œผ๋กœ๋ถ€ํ„ฐ ๋…ธ๋“œ v๊นŒ์ง€์˜ ๊ฒฝ๋กœ์—์„œ ์ง์ „ ๋ฐฉ๋ฌธ ๋…ธ๋“œ
  • N': ์ตœ์†Œ ๋น„์šฉ ๊ฒฝ๋กœ๋ฅผ ๊ณ„์‚ฐ ์™„๋ฃŒํ•œ ๋…ธ๋“œ์˜ ์ง‘ํ•ฉ

๐Ÿ“ ๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์˜์‚ฌ ์ฝ”๋“œ(Pseudo Code):

Initialization:
N' = {u}
for all nodes v
  if v is a neighbor of u
    then D(v) = c(u, v)
  else
    D(v) = โˆž

Loop:
find w not in N' such that D(w) is a minimum
add w to N'

update D(v) for each neighbor v of w and not in N': 
  D(v) = min(D(v), D(w) + c(w, v))

until all nodes are in N'

๐Ÿ“ ๊ทธ๋ž˜ํ”„ ์˜ˆ์‹œ(Graph Example):

Graph for Dijkstra

๐Ÿ“ ๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ˆ˜ํ–‰ ์˜ˆ์‹œ:

Dijkstra Example

๐Ÿ“ ๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๋ณต์žก๋„(Complexity):

  • ๋…ธ๋“œ๊ฐ€ ์ด n๊ฐœ์ผ ๋•Œ, ๊ฐ ๋‹จ๊ณ„์—์„œ ๋‚จ์•„์žˆ๋Š” ๋ชจ๋“  ๋…ธ๋“œ๋ฅผ ๊ฒ€์‚ฌ
  • ์ด ๊ฒ€์‚ฌ ํšŸ์ˆ˜๋Š” n(n+1)/2์ด๋ฏ€๋กœ ์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” O(nยฒ)
  • ํž™(heap) ๊ตฌ์กฐ ๋“ฑ์„ ์ด์šฉํ•œ ์ตœ์ ํ™”๋ฅผ ํ†ตํ•ด ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ O(nlogn)๊นŒ์ง€ ๊ฐœ์„  ๊ฐ€๋Šฅ

๐Ÿ“Œ Oscillation ๋ฌธ์ œ ๐Ÿ”„

  • ๋งํฌ ๋น„์šฉ์ด ํŠธ๋ž˜ํ”ฝ ์–‘์— ๋”ฐ๋ผ ๊ณ„์† ๋ณ€ํ™”ํ•˜์—ฌ ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ
  • ๋น„์šฉ๊ณผ ๊ฒฝ๋กœ๊ฐ€ ๋ฐ˜๋ณต์ ์œผ๋กœ ๋ฐ”๋€Œ๋ฉฐ ๋„คํŠธ์›Œํฌ ์ƒํƒœ๊ฐ€ ๋ถˆ์•ˆ์ •ํ•ด์งˆ ์ˆ˜ ์žˆ์Œ

Oscillation a

Oscillation b

Oscillation c

Oscillation d


๐Ÿ“ Distance Vector Routing Algorithm

๐Ÿ“Œ ํŠน์ง•

๊ตฌ๋ถ„์„ค๋ช…
๐Ÿ”„ ๋ฐ˜๋ณต์ (iterative)์ด์›ƒ๋ผ๋ฆฌ ๋” ์ด์ƒ ์ •๋ณด๋ฅผ ๊ตํ™˜ํ•˜์ง€ ์•Š์„ ๋•Œ๊นŒ์ง€ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ง€์†.
โฐ ๋น„๋™๊ธฐ์ (asynchronous)๋ชจ๋“  ๋…ธ๋“œ๊ฐ€ ์„œ๋กœ ์ •ํ™•ํžˆ ๋งž๋ฌผ๋ ค ๋™์ž‘ํ•  ํ•„์š”๊ฐ€ ์—†์Œ.
๐ŸŒ ๋ถ„์‚ฐ์ (distributed)๊ฐ ๋…ธ๋“œ๋Š” ์ง์ ‘ ์—ฐ๊ฒฐ๋œ ์ด์›ƒ์œผ๋กœ๋ถ€ํ„ฐ ์ •๋ณด๋ฅผ ๋ฐ›์•„ ๊ณ„์‚ฐํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋‹ค์‹œ ์ด์›ƒ๋“ค์—๊ฒŒ ๋ฐฐํฌ.

๐Ÿ“Œ ๋ฒจ๋งŒ-ํฌ๋“œ ๋ฐฉ์ •์‹(Bellman-Ford Equation)

๐Ÿ“– ์ •์˜

dx(y)=minโกv{c(x,v)+dv(y)}d_x(y) = \min_v \{ c(x, v) + d_v(y) \}

์—ฌ๊ธฐ์„œ dx(y)d_x(y)๋Š” ๋…ธ๋“œ xx์—์„œ ๋…ธ๋“œ yy๋กœ ์ด๋™ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ๋กœ์˜ ์ตœ์†Œ ๋น„์šฉ์ด๊ณ , c(x,v)c(x,v)๋Š” ๋…ธ๋“œ xx์™€ ์ด์›ƒ ๋…ธ๋“œ vv ์‚ฌ์ด์˜ ๋งํฌ ๋น„์šฉ์ด๋‹ค.

๐Ÿ“Œ ์˜ˆ์‹œ

Graph for Bellman-Ford

du(z)=minโก{c(u,v)+dv(z),โ€…โ€Šc(u,x)+dx(z),โ€…โ€Šc(u,w)+dw(z)}d_u(z) = \min\{ c(u, v)+d_v(z),\; c(u, x)+d_x(z),\; c(u, w)+d_w(z) \}
=minโก{2+5,1+3,5+3}=4= \min\{2+5, 1+3, 5+3\} = 4


๐Ÿ“Œ Distance Vector Algorithm ํ•ต์‹ฌ ์•„์ด๋””์–ด

๐Ÿ“– ๊ฐ ๋…ธ๋“œ๋Š” ์ž์‹ ์˜ ๊ฑฐ๋ฆฌ ๋ฒกํ„ฐ ์ถ”์ •์น˜๋ฅผ ์ด์›ƒ์—๊ฒŒ ์ „์†ก. ์ƒˆ๋กœ์šด ๊ฑฐ๋ฆฌ ๋ฒกํ„ฐ๋ฅผ ๋ฐ›์œผ๋ฉด Bellman-Ford ๋ฐฉ์ •์‹์„ ์ด์šฉํ•ด ๊ฐฑ์‹ . ๋ชจ๋“  ๋…ธ๋“œ๊ฐ€ ์ง€์†์ ์œผ๋กœ ๊ฑฐ๋ฆฌ ๋ฒกํ„ฐ๋ฅผ ๊ตํ™˜ํ•˜๋ฉด ์ตœ์†Œ ๋น„์šฉ ๊ฒฝ๋กœ์˜ ์‹ค์ œ ๋น„์šฉ์œผ๋กœ ์ˆ˜๋ ด.


๐Ÿ“Œ Distance Vector Algorithm ์˜์‚ฌ ์ฝ”๋“œ

Initialization:
  for all destinations y in N:
    D(y) = c(x, y)  // ์ด์›ƒ์ด ์•„๋‹ˆ๋ฉด ๋น„์šฉ์€ ๋ฌดํ•œ๋Œ€
  for each neighbor w:
    send distance vector D = [D(y): y in N] to w

Loop:
  wait (link cost change or distance vector received)
  for each y in N:
    D(y) = min {c(x, v) + D(v)}
  if D(y) changed for any destination y:
    send updated distance vector D to all neighbors
forever

DV ์—ฐ์‚ฐ


๐Ÿ“Œ ๋งํฌ ๋น„์šฉ ๋ณ€ํ™” ์‹œ ๋™์ž‘

์ƒํ™ฉ์„ค๋ช…
๐Ÿ“‰ ๋งํฌ ๋น„์šฉ ๊ฐ์†Œ (Good News)๋น ๋ฅด๊ฒŒ ์ „ํŒŒ๋จ
๐Ÿ“ˆ ๋งํฌ ๋น„์šฉ ์ฆ๊ฐ€ (Bad News)๋А๋ฆฌ๊ฒŒ ์ „ํŒŒ๋จ. count-to-infinity ๋ฌธ์ œ ๋ฐœ์ƒ
  • ๐Ÿ”„ ๋งํฌ ๋น„์šฉ ๊ฐ์†Œ ์˜ˆ์‹œ

    • ๋น ๋ฅธ ์ „ํŒŒ์™€ ์—…๋ฐ์ดํŠธ๋กœ ํšจ์œจ์ ์ธ ๊ฒฝ๋กœ ๊ฐฑ์‹ 

๋งํฌ ๋น„์šฉ ๊ฐ์†Œ

  • ๐Ÿ”„ ๋งํฌ ๋น„์šฉ ์ฆ๊ฐ€ ์˜ˆ์‹œ (count-to-infinity)

    • routing loop ๋ฐœ์ƒ ๊ฐ€๋Šฅ, ์•ˆ์ •ํ™”์— ๊ธด ์‹œ๊ฐ„ ์†Œ์š”

๋งํฌ ๋น„์šฉ ์ฆ๊ฐ€

๐Ÿ“Œ Poisoned Reverse

๐Ÿ“– ์ •์˜

๋ฃจํ”„ ๋ฐฉ์ง€๋ฅผ ์œ„ํ•ด, ํŠน์ • ๋…ธ๋“œ๊ฐ€ ์ด์›ƒ ๋…ธ๋“œ๋ฅผ ํ†ตํ•ด ๋ชฉ์ ์ง€๋กœ ๊ฐ€๋Š” ๊ฒฝ๋กœ๋ฅผ ์„ค์ •ํ–ˆ์œผ๋ฉด ํ•ด๋‹น ์ด์›ƒ์—๊ฒŒ ๊ทธ ๋ชฉ์ ์ง€๋กœ ๊ฐ€๋Š” ๋น„์šฉ์„ ๋ฌดํ•œ๋Œ€๋ผ๊ณ  ์•Œ๋ฆฌ๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. ๋ชจ๋“  ํ˜•ํƒœ์˜ ๋ฃจํ”„๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜๋Š” ์—†๋‹ค.


๋น„๊ต ์š”์†ŒLink State (LS)Distance Vector (DV)
๐Ÿ’ฌ ๋ฉ”์‹œ์ง€ ๋ณต์žก๋„O(nร—E)O(n \times E), ์ „์ฒด ๋„คํŠธ์›Œํฌ ์ •๋ณด ๊ตํ™˜๊ทผ์ ‘ ์ด์›ƒ ๊ฐ„ ์ •๋ณด ๊ตํ™˜, ์ˆ˜๋ ด ์‹œ๊ฐ„ ๋‹ค์–‘
โฑ๏ธ ์ˆ˜๋ ด ์†๋„๋น ๋ฆ„ (O(n2)O(n^2)), Oscillation ๊ฐ€๋Šฅ์„ฑ ์กด์žฌ์ƒ๋Œ€์ ์œผ๋กœ ๋А๋ฆผ, count-to-infinity ๋ฌธ์ œ ๊ฐ€๋Šฅ
๐Ÿ›ก๏ธ ๊ฒฌ๊ณ ์„ฑ๋ถ€์ •ํ™•ํ•œ ์ •๋ณด๊ฐ€ ๊ตญ์ง€์  ์˜ค๋ฅ˜๋กœ ํ•œ์ •๋ถ€์ •ํ™•ํ•œ ์ •๋ณด๊ฐ€ ๋„คํŠธ์›Œํฌ ์ „์ฒด๋กœ ์ „ํŒŒ ๊ฐ€๋Šฅ

๐Ÿ  5.3 Intra-AS Routing in the Internet: OSPF

๐Ÿ“Œ ๋ฌธ์ œ์˜ ๋ฐฐ๊ฒฝ

๋ฌธ์ œ ์ƒํ™ฉ์„ค๋ช…
๐ŸŒ ๊ทœ๋ชจ(scale)ํ˜„์‹ค์ ์œผ๋กœ ๋ผ์šฐํ„ฐ์˜ ์ˆ˜๊ฐ€ ๋งค์šฐ ๋งŽ์•„, ๋ชจ๋“  ๋ชฉ์ ์ง€ ์ •๋ณด๋ฅผ ํ•˜๋‚˜์˜ ๋ผ์šฐํŒ… ํ…Œ์ด๋ธ”์— ์ €์žฅํ•˜๋Š” ๊ฒƒ์€ ๋ถˆ๊ฐ€๋Šฅ
๐Ÿ› ๏ธ ๊ด€๋ฆฌ ์ž์œจ์„ฑ(administrative autonomy)์ธํ„ฐ๋„ท์€ ๋„คํŠธ์›Œํฌ์˜ ๋„คํŠธ์›Œํฌ๋กœ ๊ฐ ๋„คํŠธ์›Œํฌ ๊ด€๋ฆฌ์ž๋Š” ์ž์ฒด ๋„คํŠธ์›Œํฌ์˜ ๋ผ์šฐํŒ…์„ ์ œ์–ดํ•˜๊ณ ์ž ํ•จ

๐Ÿ“Œ ์ธํ„ฐ๋„ท์˜ ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ๋ผ์šฐํŒ… ์ ‘๊ทผ๋ฒ•(Internet Approach to Scalable Routing)

  • ๐ŸŒ ์ž์œจ ์‹œ์Šคํ…œ(Autonomous System, AS or domain): ํŠน์ • ์ง€์—ญ์˜ ๋ผ์šฐํ„ฐ ์ง‘ํ•ฉ

๐Ÿ“Œ ๋ผ์šฐํŒ…์˜ ์ข…๋ฅ˜

๋ผ์šฐํŒ… ์œ ํ˜•์„ค๋ช…
๐Ÿ“ intra-AS routing๋™์ผํ•œ AS ๋‚ด๋ถ€์—์„œ ํ˜ธ์ŠคํŠธ ๋ฐ ๋ผ์šฐํ„ฐ ๊ฐ„ ๋ผ์šฐํŒ…. ๋ชจ๋“  ๋ผ์šฐํ„ฐ๋Š” ๋™์ผ intra-domain ํ”„๋กœํ† ์ฝœ ์‹คํ–‰ ํ•„์š”.
๐ŸŒ inter-AS routing์„œ๋กœ ๋‹ค๋ฅธ AS ๊ฐ„์˜ ๋ผ์šฐํŒ…. gateway-router๋Š” AS ๊ฐ„ ์—ฐ๊ฒฐ ๊ด€๋ฆฌ ๋ฐ inter-domain ๋ผ์šฐํŒ… ์ˆ˜ํ–‰

๐Ÿ“Œ ๋ผ์šฐํŒ… ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์—ญํ• 

  • ๐Ÿ“ intra-AS routing ์•Œ๊ณ ๋ฆฌ์ฆ˜

    • AS ๋‚ด๋ถ€ ๋ชฉ์ ์ง€์— ๋Œ€ํ•œ ํฌ์›Œ๋”ฉ ํ…Œ์ด๋ธ” ์—”ํŠธ๋ฆฌ ๊ฒฐ์ •
  • ๐ŸŒ inter-AS routing ์•Œ๊ณ ๋ฆฌ์ฆ˜

    • AS ์™ธ๋ถ€ ๋ชฉ์ ์ง€์— ๋„๋‹ฌํ•˜๊ธฐ ์œ„ํ•ด ๊ฑฐ์ณ์•ผ ํ•˜๋Š” ์™ธ๋ถ€ AS ํ•™์Šต ๋ฐ ๋‚ด๋ถ€ ๋ชจ๋“  ๋ผ์šฐํ„ฐ์™€ ์ •๋ณด ๊ณต์œ 

๐Ÿ“Œ ๋Œ€ํ‘œ์ ์ธ intra-AS ํ”„๋กœํ† ์ฝœ(interior gateway protocols, IGP)

ํ”„๋กœํ† ์ฝœ ์ข…๋ฅ˜์•Œ๊ณ ๋ฆฌ์ฆ˜ ์œ ํ˜•ํŠน์ง•
๐Ÿ”„ RIPDVRouting Information Protocol
๐Ÿ”— OSPFLSOpen Shortest Path First
๐Ÿ”ง IGRPDVInterior Gateway Routing Protocol

๐Ÿ“Œ OSPF (Open Shortest Path First) Protocol

  • ๐Ÿ“– ๊ฐœ๋ฐฉ์„ฑ(open): ๋ˆ„๊ตฌ๋‚˜ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

  • ๐Ÿ”— ์•Œ๊ณ ๋ฆฌ์ฆ˜: ๋งํฌ ์ƒํƒœ ์•Œ๊ณ ๋ฆฌ์ฆ˜(Link State Algorithm) ์‚ฌ์šฉ

    • ๋งํฌ ์ƒํƒœ ํŒจํ‚ท flooding์„ ํ†ตํ•ด ๋ชจ๋“  ๋ผ์šฐํ„ฐ๊ฐ€ ์ „์ฒด ๋„คํŠธ์›Œํฌ ํ† ํด๋กœ์ง€๋ฅผ ํš๋“
    • ๊ฒฝ๋กœ ๊ณ„์‚ฐ์€ ๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜(Dijkstraโ€™s algorithm)์„ ํ™œ์šฉ
  • ๐Ÿ“ก ๋งํฌ ์ƒํƒœ ์ •๋ณด ์ „ํŒŒ

    • ๋ชจ๋“  ๋ผ์šฐํ„ฐ๊ฐ€ OSPF link-state ์ •๋ณด๋ฅผ AS ๋‚ด ๋ชจ๋“  ๋ผ์šฐํ„ฐ์— ์ง์ ‘ ์ „ํŒŒ (IP ๊ณ„์ธต์—์„œ ์ง์ ‘ ์ „์†ก, TCP/UDP ๋ถˆํ•„์š”)
  • ๐Ÿ›ก๏ธ ๋ณด์•ˆ

    • ๋ชจ๋“  OSPF ๋ฉ”์‹œ์ง€๋Š” ์ธ์ฆ์„ ํ†ตํ•ด ์•…์˜์ ์ธ ์ ‘๊ทผ ๋ฐฉ์ง€
  • ๐Ÿšฆ ๋™์ผ ๋น„์šฉ ๋‹ค์ค‘ ๊ฒฝ๋กœ ์ง€์›

    • RIP๋Š” ํ•˜๋‚˜์˜ ๊ฒฝ๋กœ๋งŒ ํ—ˆ์šฉํ•˜๋Š” ๋ฐ˜๋ฉด, OSPF๋Š” ๋™์ผ ๋น„์šฉ์˜ ์—ฌ๋Ÿฌ ๊ฒฝ๋กœ๋ฅผ ํ—ˆ์šฉํ•˜์—ฌ ํŠธ๋ž˜ํ”ฝ ๋ถ„์‚ฐ ๊ฐ€๋Šฅ
  • ๐Ÿ›ฃ๏ธ ์„œ๋น„์Šค ์œ ํ˜•(Type of Service, TOS)๋ณ„ ๋งํฌ ๋น„์šฉ ์„ค์ • ๊ฐ€๋Šฅ

๐Ÿ› ๏ธ TOS ์œ ํ˜•๐Ÿ’ฐ ๋งํฌ ๋น„์šฉ(metric)๐Ÿ“Œ ํ•ด์„
๐Ÿ“ฆ Best-effort๋‚ฎ์Œ (์˜ˆ: 10)์ผ๋ฐ˜ ํŠธ๋ž˜ํ”ฝ์€ ์œ„์„ฑ ๋งํฌ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
โฑ๏ธ Real-time๋†’์Œ (์˜ˆ: 100)์‹ค์‹œ๊ฐ„ ํŠธ๋ž˜ํ”ฝ์€ ์œ„์„ฑ ๋งํฌ ํ”ผํ•จ
  • ๐Ÿ“ข ์œ ๋‹ˆ์บ์ŠคํŠธ์™€ ๋ฉ€ํ‹ฐ์บ์ŠคํŠธ ํ†ตํ•ฉ ์ง€์›

    • ๊ธฐ์กด OSPF ๋งํฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ™œ์šฉ
    • OSPF ๋งํฌ ์ƒํƒœ ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธ ๋ฉ”์ปค๋‹ˆ์ฆ˜์— ์ƒˆ๋กœ์šด ํ˜•ํƒœ์˜ ๋งํฌ ์ƒํƒœ ์ถ”๊ฐ€
  • ๐Ÿ—‚๏ธ ๊ณ„์ธต์  ๊ตฌ์กฐ ์ง€์›

    • ๋‹จ์ผ AS ๋‚ด์—์„œ ๊ณ„์ธต์ (hierarchical) ๋ผ์šฐํŒ… ๊ตฌ์กฐ ์ง€์›์œผ๋กœ ๊ด€๋ฆฌ ํšจ์œจ์„ฑ ์ฆ๊ฐ€

๐ŸŒ 5.4 Routing Among The ISPs: BGP

๐Ÿ“Œ ์ธํ„ฐ๋„ท Inter-AS Routing: BGP (Border Gateway Protocol)

  • ๐ŸŒ ์ธํ„ฐ๋„ท์˜ de facto ํ‘œ์ค€ inter-domain routing protocol

๐Ÿ“ BGP์˜ ์—ญํ• 

์—ญํ• ์„ค๋ช…
๐ŸŒ eBGP์ด์›ƒํ•œ AS๋“ค๋กœ๋ถ€ํ„ฐ ์„œ๋ธŒ๋„ท ๋„๋‹ฌ ๊ฐ€๋Šฅ์„ฑ(reachability) ์ •๋ณด ํš๋“
๐Ÿ  iBGPAS ๋‚ด๋ถ€ ๋ชจ๋“  ๋ผ์šฐํ„ฐ์— ํš๋“ํ•œ reachability ์ •๋ณด ์ „ํŒŒ

๐Ÿ“– BGP์˜ ๋ชฉํ‘œ: ๋‹ค๋ฅธ ๋„คํŠธ์›Œํฌ(domain)๋กœ ํ–ฅํ•˜๋Š” "์ข‹์€" ๊ฒฝ๋กœ๋ฅผ reachability ์ •๋ณด์™€ ์ •์ฑ…(policy)์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฒฐ์ •

๐Ÿ“ข ์„œ๋ธŒ๋„ท์ด ์ž์‹ ์˜ ์กด์žฌ๋ฅผ ์ธํ„ฐ๋„ท์— ๊ด‘๊ณ (advertise)ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›


๐Ÿ“ BGP Basics

  • ๐Ÿ”— BGP ์„ธ์…˜: ๋‘ BGP ๋ผ์šฐํ„ฐ(peer)๋Š” ๋ฐ˜์˜๊ตฌ์  TCP ์—ฐ๊ฒฐ์„ ํ†ตํ•ด BGP ๋ฉ”์‹œ์ง€๋ฅผ ๊ตํ™˜

  • ๐Ÿ—ƒ๏ธ BGP attribute๋ฅผ ํฌํ•จํ•œ prefix ๊ด‘๊ณ :

    • Prefix + Attribute = "route"
Attribute์„ค๋ช…
๐Ÿ›ฃ๏ธ AS-PATHprefix ๊ด‘๊ณ ๊ฐ€ ์ง€๋‚˜์˜จ AS์˜ ๋ชฉ๋ก
๐Ÿ”€ NEXT-HOP๋‹ค์Œ AS๋กœ ํŒจํ‚ท์„ ์ „๋‹ฌํ•  ๋‚ด๋ถ€ ๋ผ์šฐํ„ฐ IP ์ฃผ์†Œ, ์ฆ‰ AS-PATH๊ฐ€ ์‹œ์ž‘๋˜๋Š” ๋ผ์šฐํ„ฐ์˜ ์ธํ„ฐํŽ˜์ด์Šค IP ์ฃผ์†Œ

๐Ÿ“Œ ์ •์ฑ… ๊ธฐ๋ฐ˜ ๋ผ์šฐํŒ…

  • ๊ฒฝ๋กœ ๊ด‘๊ณ ๋ฅผ ๋ฐ›์€ ๊ฒŒ์ดํŠธ์›จ์ด๋Š” ๊ฒฝ๋กœ๋ฅผ ์ฑ„ํƒ/๊ฑฐ๋ถ€ํ•˜๋Š” import policy ์ ์šฉ
  • AS ์ •์ฑ…์€ ์ด์›ƒ AS์— ๊ฒฝ๋กœ๋ฅผ ๊ด‘๊ณ ํ• ์ง€ ์—ฌ๋ถ€๋ฅผ ๊ฒฐ์ •

BGP Connection

  • AS3 ๊ฒŒ์ดํŠธ์›จ์ด ๋ผ์šฐํ„ฐ์ธ 3a๋Š” ๊ฒฝ๋กœ AS3, X๋ฅผ AS2 ๊ฒŒ์ดํŠธ์›จ์ด ๋ผ์šฐํ„ฐ์ธ 2c์— ๊ด‘๊ณ . AS3๋Š” AS2์— ๋ฐ์ดํ„ฐ๊ทธ๋žจ์„ X๋กœ ํฌ์›Œ๋”ฉํ•ด์ค„ ๊ฒƒ์„ ์•ฝ์†.
  • AS2 ๋ผ์šฐํ„ฐ์ธ 2c๋Š” eBGP๋ฅผ ํ†ตํ•ด ๊ฒฝ๋กœ ๊ด‘๊ณ  AS3, X๋ฅผ AS3 3a์œผ๋กœ๋ถ€ํ„ฐ ์ˆ˜์‹ .
  • AS2์˜ ์ •์ฑ…์— ๊ธฐ๋ฐ˜ํ•ด AS2 ๋ผ์šฐํ„ฐ 2c๋Š” ๊ฒฝ๋กœ AS3, X๋ฅผ ์ฑ„ํƒ, iBGP๋ฅผ ํ†ตํ•ด AS2 ๋‚ด๋ถ€์˜ ๋ชจ๋“  ๋ผ์šฐํ„ฐ์— ํ•ด๋‹น ๊ฒฝ๋กœ๋ฅผ ์ „ํŒŒ.
  • AS2 ์ •์ฑ…์— ์˜๊ฑฐ, AS2 ๋ผ์šฐํ„ฐ 2a๋Š” eBGP๋ฅผ ํ†ตํ•ด ๊ฒฝ๋กœ AS2, AS3, X๋ฅผ AS1 ๋ผ์šฐํ„ฐ 1c์— ์ „๋‹ฌ.

๐Ÿ“ ๋‹ค์–‘ํ•œ ๊ฒฝ๋กœ ํ•™์Šต ๋ฐ ์„ ํƒ

BGP Multiple Path

  • ๊ฒŒ์ดํŠธ์›จ์ด๋Š” ๋‹ค์–‘ํ•œ ๊ฒฝ๋กœ๋ฅผ ํ•™์Šตํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ •์ฑ…์— ๋”ฐ๋ผ ์ตœ์  ๊ฒฝ๋กœ๋ฅผ ์„ ํƒ

  • ์„ ํƒํ•œ ๊ฒฝ๋กœ๋Š” iBGP๋ฅผ ํ†ตํ•ด ๋‚ด๋ถ€ ๋ผ์šฐํ„ฐ์™€ ๊ณต์œ ๋จ

  • ์œ„ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์€ ์ƒํ™ฉ์—์„œ AS1 ๊ฒŒ์ดํŠธ์›จ์ด ๋ผ์šฐํ„ฐ 1c๋Š” 2a๋กœ๋ถ€ํ„ฐ ๊ฒฝ๋กœ AS2, AS3, X ํ•™์Šต. 3a๋กœ๋ถ€ํ„ฐ ๊ฒฝ๋กœ AS3, X ํ•™์Šต.

  • AS1 ์ •์ฑ…์— ๊ธฐ๋ฐ˜ํ•ด 1c๋Š” ๊ฒฝ๋กœ๋ฅผ ์„ ์ •. ๊ฒฐ์ •๋œ ๊ฒฝ๋กœ๋ฅผ iBGP ํ†ตํ•ด AS1 ๋‚ด๋ถ€์˜ ๋ชจ๋“  ๋ผ์šฐํ„ฐ์— ๊ณต์œ .


๐Ÿ“ BGP ๋ฉ”์‹œ์ง€

๋ฉ”์‹œ์ง€ ์ข…๋ฅ˜์—ญํ• 
๐Ÿšช OPEN์›๊ฒฉ BGP peer์™€ TCP ์—ฐ๊ฒฐ ๊ฐœ๋ฐฉ ๋ฐ ์ธ์ฆ
๐Ÿ”„ UPDATE์ƒˆ๋กœ์šด ๊ฒฝ๋กœ ๊ด‘๊ณ  ๋˜๋Š” ๊ธฐ์กด ๊ฒฝ๋กœ ์ฒ ํšŒ
โณ KEEPALIVE์—ฐ๊ฒฐ ์ƒํƒœ ์œ ์ง€ ๋ฐ OPEN ๋ฉ”์‹œ์ง€ ACK
โš ๏ธ NOTIFICATION์˜ค๋ฅ˜ ๋ณด๊ณ  ๋ฐ ์—ฐ๊ฒฐ ์ข…๋ฃŒ ์š”๊ตฌ

๐Ÿ“ BGP ๊ฒฝ๋กœ ์„ ํƒ ๊ธฐ์ค€

๊ฒฝ๋กœ๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ์ผ ๋•Œ ์„ ํƒ ๊ธฐ์ค€:

  1. ๐Ÿ“ AS ์ž์ฒด ์ •์ฑ…
  2. ๐Ÿ“ ๊ฐ€์žฅ ์งง์€ AS-PATH
  3. ๐ŸŒถ๏ธ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด NEXT-HOP ๋ผ์šฐํ„ฐ (Hot Potato Routing)
  4. ๐Ÿ” ์ถ”๊ฐ€์  ๊ธฐ์ค€

๐ŸŒถ๏ธ Hot Potato Routing ์˜ˆ์‹œ

Hot Potato Routing

  • 2a๋ฅผ ๊ฑฐ์ณ๊ฐ€๋Š” AS1, AS3, X. (2a๊นŒ์ง€ ๊ฐ€๋Š” ์ตœ์†Œ๋น„์šฉ 201)
  • 2c๋ฅผ ๊ฑฐ์ณ๊ฐ€๋Š” AS3, X. (2c๊นŒ์ง€ ๊ฐ€๋Š” ์ตœ์†Œ๋น„์šฉ 263)

Hot potato routing์€ intra-domain ๋น„์šฉ์ด ์ตœ์†Œ์ธ ๋กœ์ปฌ ๊ฒŒ์ดํŠธ์›จ์ด๋ฅผ ์„ ํƒ. ์ฆ‰, 2d๋Š” AS hop์ด ๋” ๋งŽ๋”๋ผ๋„ 2a๋ฅผ ์„ ํƒํ•จ.


๐Ÿ“ ๋ผ์šฐํŒ… ์ •์ฑ… ์˜ˆ์‹œ

BGP Policy Scenario

  • ISP๋Š” ๊ณ ๊ฐ ๋„คํŠธ์›Œํฌ์˜ ํŠธ๋ž˜ํ”ฝ๋งŒ ๋ผ์šฐํŒ…ํ•˜๊ณ  ์‹ถ์Œ
  • ISP A๋Š” ๊ฒฝ๋กœ Aw๋ฅผ ISP B์™€ ISP C์— ๊ด‘๊ณ .
  • B๋Š” ๊ฒฝ๋กœ BAw๋ฅผ C์— ๊ด‘๊ณ ํ•˜์ง€ ์•Š๊ธฐ๋กœ ์„ ํƒ. (C, A, w๋Š” B์˜ ๊ณ ๊ฐ์ด ์•„๋‹ˆ๋ผ์„œ B๋Š” ๊ฒฝ๋กœ CBAw๋ฅผ ๋ผ์šฐํŒ…ํ•ด์„œ ์–ป๋Š” ์ด์ต์ด ์—†๊ธฐ ๋•Œ๋ฌธ)
  • C๋Š” ๊ฒฝ๋กœ CAw๋ฅผ ํ†ตํ•ด w๋กœ ๊ฐ€๋Š” ํŠธ๋ž˜ํ”ฝ์„ ๋ผ์šฐํŒ….

๐Ÿ“ Inter-AS vs. Intra-AS ๋น„๊ต

๊ตฌ๋ถ„Inter-ASIntra-AS
๐Ÿ“œ ์ •์ฑ…๊ฐ ๊ด€๋ฆฌ์ž๊ฐ€ ์ž์‹ ์˜ ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ํŠธ๋ž˜ํ”ฝ์ด ๋ˆ„๊ฐ€ ์–ด๋–ป๊ฒŒ ๋ผ์šฐํŒ…ํ•˜๋Š”์ง€ ์ œ์–ดํ•˜๊ณ  ์‹ถ์–ดํ•จ.๊ด€๋ฆฌ์ž๊ฐ€ ๋‹จ์ผ, ๋ณ„๋„์˜ ์ •์ฑ… ๊ฒฐ์ • ๋ถˆํ•„์š”
๐Ÿ“ˆ ์Šค์ผ€์ผ๊ณ„์ธต์  ๋ผ์šฐํŒ…์œผ๋กœ ๋ผ์šฐํŒ… ํ…Œ์ด๋ธ” ํฌ๊ธฐ ์ ˆ์•ฝ ๋ฐ ํŠธ๋ž˜ํ”ฝ ๊ฐ์†Œ๊ณ„์ธต์  ๊ตฌ์กฐ๋กœ ํšจ์œจ์  ๊ด€๋ฆฌ ๋ฐ ํŠธ๋ž˜ํ”ฝ ๊ด€๋ฆฌ ๊ฐ€๋Šฅ
๐Ÿš€ ์„ฑ๋Šฅ์„ฑ๋Šฅ๋ณด๋‹ค๋Š” ์ •์ฑ… ์šฐ์„ ์„ฑ๋Šฅ์— ์ค‘์  ๋งž์ถค

๐Ÿง  5.5 The SDN Control Plane

๐Ÿ“Œ ๊ณผ๊ฑฐ์˜ ์ธํ„ฐ๋„ท ๋„คํŠธ์›Œํฌ ๊ณ„์ธต ๊ตฌ์กฐ

๊ตฌ์„ฑ ์š”์†Œ์„ค๋ช…
๐Ÿงฑ Monolithic Router์Šค์œ„์นญ ํ•˜๋“œ์›จ์–ด(HW)์™€ ๋ผ์šฐํŒ… ์†Œํ”„ํŠธ์›จ์–ด(SW)๋ฅผ ํ†ตํ•ฉํ•œ ์žฅ๋น„. ๋ฒค๋” ์ข…์† (์˜ˆ: Cisco)
๐Ÿ“ฆ Middlebox๋ผ์šฐํ„ฐ/์Šค์œ„์น˜๋ฅผ ์ œ์™ธํ•œ ํŠนํ™” ์žฅ๋น„ (์˜ˆ: ๋ฐฉํ™”๋ฒฝ, ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ, NAT ๋“ฑ)
  • ๐Ÿงฉ ๊ธฐ์กด per-router control plane: ๊ฐ ๋ผ์šฐํ„ฐ๊ฐ€ ๊ฐœ๋ณ„์ ์œผ๋กœ ๋ผ์šฐํŒ… ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‹คํ–‰ํ•˜๋ฉฐ ์ƒํ˜ธ์ž‘์šฉ
  • ๐Ÿง  SDN์˜ logically centralized control plane: ์ค‘์•™ ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ๊ฐ ๋กœ์ปฌ ๋ผ์šฐํ„ฐ์˜ Control Agent(CA)์™€ ์ƒํ˜ธ์ž‘์šฉํ•˜์—ฌ forwarding table ๊ณ„์‚ฐ

SDN

๐Ÿ“Œ SDN ์žฅ์ 

  • ๐Ÿงฐ ๋„คํŠธ์›Œํฌ ๊ด€๋ฆฌ์˜ ์šฉ์ด์„ฑ:

    • count-to-infinity, oscillation ๋ฌธ์ œ ํšŒํ”ผ ๊ฐ€๋Šฅ
    • ์œ ์—ฐํ•œ ํŠธ๋ž˜ํ”ฝ ํ๋ฆ„ ๊ด€๋ฆฌ ๊ฐ€๋Šฅ
  • ๐Ÿ’ก ํ…Œ์ด๋ธ” ๊ธฐ๋ฐ˜ ํฌ์›Œ๋”ฉ = ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฐ€๋Šฅํ•œ ๋ผ์šฐํ„ฐ ์‹คํ˜„

ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฉ์‹์„ค๋ช…
๐Ÿงท ์ค‘์•™์ง‘์ค‘์‹(Centralized)์ปจํŠธ๋กค๋Ÿฌ์—์„œ ๊ณ„์‚ฐํ•œ ํฌ์›Œ๋”ฉ ํ…Œ์ด๋ธ”์„ ๊ฐ ์Šค์œ„์น˜์— ๋ฐฐํฌ โ†’ ๊ตฌํ˜„ ์‰ฌ์›€
๐Ÿ”„ ๋ถ„์‚ฐ์‹(Distributed)๊ฐ ๋ผ์šฐํ„ฐ๊ฐ€ ๋ถ„์‚ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ํ…Œ์ด๋ธ” ๊ณ„์‚ฐ โ†’ ๊ตฌํ˜„ ๋ณต์žก

๐Ÿ“Œ SDN Controller ๊ตฌ์กฐ

SDN Controller

๐Ÿ“ก OpenFlow Protocol

SDN ์ปจํŠธ๋กค๋Ÿฌ์™€ OpenFlow API๋ฅผ ๊ตฌํ˜„ํ•œ ์Šค์œ„์น˜ ๊ฐ„ ํ†ต์‹ ์„ ๋‹ด๋‹นํ•˜๋Š” ํ”„๋กœํ† ์ฝœ

์ปจํŠธ๋กค๋Ÿฌ โ†’ ์Šค์œ„์น˜ ๋ฉ”์‹œ์ง€

๋ฉ”์‹œ์ง€ ์œ ํ˜•๊ธฐ๋Šฅ ์„ค๋ช…
๐Ÿ“‹ features์Šค์œ„์น˜ ๊ธฐ๋Šฅ ์งˆ์˜, ์Šค์œ„์น˜๋Š” ์ž์‹ ์ด ์ง€์›ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์‘๋‹ต
โš™๏ธ configure์Šค์œ„์น˜ ์„ค์ • ํŒŒ๋ผ๋ฏธํ„ฐ ์กฐํšŒ/์„ค์ •
๐Ÿงพ modify-stateFlow Table ํ•ญ๋ชฉ ์ถ”๊ฐ€(add), ์‚ญ์ œ(delete), ์ˆ˜์ •(modify)
๐Ÿ“ค packet-outํŠน์ • ํŒจํ‚ท์„ ์ง€์ •๋œ ํฌํŠธ๋กœ ์ง์ ‘ ์ „์†กํ•˜๋„๋ก ์ง€์‹œ

์Šค์œ„์น˜ โ†’ ์ปจํŠธ๋กค๋Ÿฌ ๋ฉ”์‹œ์ง€

๋ฉ”์‹œ์ง€ ์œ ํ˜•๊ธฐ๋Šฅ ์„ค๋ช…
๐Ÿ“ฅ packet-in์Šค์œ„์น˜๊ฐ€ ์ฒ˜๋ฆฌ ๋ชปํ•œ ํŒจํ‚ท์„ ์ปจํŠธ๋กค๋Ÿฌ์— ์ „๋‹ฌํ•˜์—ฌ ์ œ์–ด ์š”์ฒญ
โŒ flow-removedFlow Table์—์„œ ํ•ญ๋ชฉ ์‚ญ์ œ๋˜์—ˆ์Œ์„ ์ปจํŠธ๋กค๋Ÿฌ์— ํ†ต๋ณด
๐Ÿ“ถ port statusํฌํŠธ ์ƒํƒœ ๋ณ€ํ™” (์—…/๋‹ค์šด ๋“ฑ)๋ฅผ ์ปจํŠธ๋กค๋Ÿฌ์— ์•Œ๋ฆผ

โš ๏ธ ์šด์˜์ž๊ฐ€ OpenFlow ๋ฉ”์‹œ์ง€๋ฅผ ์ง์ ‘ ์ œ์–ดํ•˜์ง€ ์•Š์œผ๋ฉฐ, ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ๊ณ ์ˆ˜์ค€ ์ถ”์ƒํ™” API๋ฅผ ํ†ตํ•ด ์ฒ˜๋ฆฌํ•จ


๐Ÿ”„ Control/Data Plane Interaction ์˜ˆ์‹œ

interaction example

1๏ธโƒฃ ์Šค์œ„์น˜ s1์—์„œ ๋งํฌ ์žฅ์•  ๋ฐœ์ƒ โ†’ port status ๋ฉ”์‹œ์ง€๋กœ ์ปจํŠธ๋กค๋Ÿฌ์— ์•Œ๋ฆผ

2๏ธโƒฃ SDN ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ๋ฉ”์‹œ์ง€๋ฅผ ์ˆ˜์‹  โ†’ ๋‚ด๋ถ€ ๋งํฌ ์ƒํƒœ ์ •๋ณด(link-state info) ๊ฐฑ์‹ 

3๏ธโƒฃ ๋“ฑ๋ก๋œ ๋‹ค์ต์ŠคํŠธ๋ผ(Dijkstra) ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ˜ธ์ถœ โ†’ ์ƒˆ๋กœ์šด ๊ฒฝ๋กœ ๊ณ„์‚ฐ

4๏ธโƒฃ ์ปจํŠธ๋กค๋Ÿฌ๋Š” ๋„คํŠธ์›Œํฌ ๊ทธ๋ž˜ํ”„์™€ ๋งํฌ ์ƒํƒœ ๊ธฐ๋ฐ˜์œผ๋กœ ์ตœ์  ๊ฒฝ๋กœ ๊ณ„์‚ฐ

5๏ธโƒฃ ๊ณ„์‚ฐ ๊ฒฐ๊ณผ ๊ธฐ๋ฐ˜์œผ๋กœ ์–ด๋–ค ์Šค์œ„์น˜์— ์–ด๋–ค ๋ฃฐ์ด ํ•„์š”ํ•œ์ง€ ๊ฒฐ์ •

6๏ธโƒฃ OpenFlow ํ”„๋กœํ† ์ฝœ๋กœ ์Šค์œ„์น˜๋“ค์˜ flow table์„ ์—…๋ฐ์ดํŠธ


โš ๏ธ 5.6 ICMP: Internet Control Message Protocol

๐ŸŽฏ ๋ชฉ์  ๋ฐ ๊ฐœ์š”

  • ICMP๋Š” ํ˜ธ์ŠคํŠธ๋‚˜ ๋ผ์šฐํ„ฐ๊ฐ€ ๋„คํŠธ์›Œํฌ ์ƒํƒœ๋ฅผ ์•Œ๋ฆฌ๊ณ  ์ง„๋‹จํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋จ
  • IP ํ”„๋กœํ† ์ฝœ ์œ„์—์„œ ๋™์ž‘ํ•˜๋ฉฐ, IP ํŒจํ‚ท ๋‚ด๋ถ€์— ํฌํ•จ๋จ (IP payload๋กœ ๋™์ž‘)

๐Ÿ› ๏ธ ์ฃผ์š” ์šฉ๋„

๊ธฐ๋Šฅ์„ค๋ช…
โ— ์—๋Ÿฌ ๋ฆฌํฌํŒ…๋ชฉ์ ์ง€ ํ˜ธ์ŠคํŠธ/๋„คํŠธ์›Œํฌ/ํฌํŠธ/ํ”„๋กœํ† ์ฝœ ์ ‘๊ทผ ๋ถˆ๊ฐ€ ์‹œ ๊ฒฝ๊ณ 
๐Ÿ” ์—์ฝ” ์š”์ฒญ/์‘๋‹ตping ๋ช…๋ น์–ด์˜ ๊ธฐ๋ฐ˜ ๊ธฐ๋Šฅ, ์—ฐ๊ฒฐ ์ƒํƒœ ํ™•์ธ์šฉ

๐Ÿงพ ICMP ๋ฉ”์‹œ์ง€ ๊ตฌ์„ฑ

  • ํ•„๋“œ: type, code
  • ์˜ค๋ฅ˜ ์œ ๋ฐœํ•œ IP ํŒจํ‚ท์˜ ์•ž 8๋ฐ”์ดํŠธ ํฌํ•จ๋จ
TypeCode์„ค๋ช…
00Echo reply (ping ์‘๋‹ต)
30~7Destination unreachable (๋„คํŠธ์›Œํฌ, ํ˜ธ์ŠคํŠธ, ํฌํŠธ ๋“ฑ ๋„๋‹ฌ ๋ถˆ๊ฐ€)
40Source quench (ํ˜ผ์žก ์ œ์–ด โ€“ ํ˜„์žฌ๋Š” ์‚ฌ์šฉ๋˜์ง€ ์•Š์Œ)
80Echo request (ping ์š”์ฒญ)
90Route advertisement
100Router discovery
110TTL expired (์ค‘๊ฐ„ ๋ผ์šฐํ„ฐ์—์„œ TTL ์†Œ์ง„๋จ)
120Bad IP header (์ž˜๋ชป๋œ IP ํ—ค๋”)

โœ… Traceroute and ICMP

๐Ÿ“Œ ๋™์ž‘ ๊ฐœ์š”

  • ์ถœ๋ฐœ์ง€์—์„œ ๋ชฉ์ ์ง€๊นŒ์ง€ ๊ฐ€๋Š” ๋ผ์šฐํŒ… ๊ฒฝ๋กœ ์ถ”์ ์— ์‚ฌ์šฉ
  • ๊ธฐ๋ณธ ์›๋ฆฌ: IP ํŒจํ‚ท์˜ TTL(Time-To-Live) ๊ฐ’์„ 1๋ถ€ํ„ฐ ์ฆ๊ฐ€์‹œํ‚ค๋ฉฐ ์ „์†ก

โš™๏ธ ๋™์ž‘ ์ ˆ์ฐจ

  1. UDP ํŒจํ‚ท ์ „์†ก ์‹œ์ž‘
  2. ์ฒซ ๋ฒˆ์งธ ํŒจํ‚ท: TTL=1 โ†’ ์ฒซ ๋ฒˆ์งธ ๋ผ์šฐํ„ฐ์—์„œ TTL=0 ๋˜์–ด ํ๊ธฐ๋จ
  3. ํ•ด๋‹น ๋ผ์šฐํ„ฐ๋Š” ICMP ๋ฉ”์‹œ์ง€(type=11, code=0) ์ „์†ก โ†’ TTL ๋งŒ๋ฃŒ
  4. ์†ก์‹ ์ž๋Š” ์ด๋ฅผ ์ˆ˜์‹ ํ•˜์—ฌ ์ค‘๊ฐ„ ๋ผ์šฐํ„ฐ์˜ IP์™€ RTT ๊ธฐ๋ก
  5. ์ดํ›„ TTL์„ ์ฆ๊ฐ€์‹œ์ผœ ๋ฐ˜๋ณต

๐ŸŽฏ ๋ชฉ์ ์ง€์— ๋„๋‹ฌ ์‹œ

  • ๋ชฉ์ ์ง€ ํ˜ธ์ŠคํŠธ๋Š” ํ•ด๋‹น ํฌํŠธ๊ฐ€ ์—ด๋ ค์žˆ์ง€ ์•Š์œผ๋ฏ€๋กœ:

๐Ÿ“ฉ ICMP port unreachable ๋ฉ”์‹œ์ง€(type=3, code=3)๋ฅผ ๋ฐ˜ํ™˜

  • ์ด๋ฅผ ํ†ตํ•ด ๋ชฉ์ ์ง€์— ๋„๋‹ฌํ–ˆ์Œ์„ ํ™•์ธํ•˜๊ณ  Traceroute ์ข…๋ฃŒ

profile
push hard ๐Ÿฅ•

0๊ฐœ์˜ ๋Œ“๊ธ€