musketo์˜ ๋ชจ๋“  ๊ธ€

[Router] Static Routing

๋ผ์šฐํŒ…์„ ์ฒ˜์Œ ๋ฐฐ์šด๋‹ค๋ฉด, ํ•ญ์ƒ ๋จผ์ € ๋ฐฐ์šฐ๊ฒŒ ๋˜๋Š” Static Routing์ด๋‹ค. ์ฒ˜์Œ์—๋Š” Static Routing์— ๋ณ„๊ฑฐ ์žˆ๊ฒ ๋‚˜ ์‹ถ์—ˆ์ง€๋งŒ, ๋ถ€ํ•˜๋ถ„์‚ฐ(์ดํ•˜ LB)๋„ ๋˜๋‹ˆ ๋‹ค์‹œ ํ•œ๋ฒˆ ์งš๊ณ  ๋„˜์–ด๊ฐˆ ํ•„์š”๊ฐ€ ์žˆ๋‹ค.

1. Static Routing ํŠน์ง•
2. Static Routing ๋ถ€ํ•˜๋ถ„์‚ฐ


1. Static Routing

‘Static’, ๊ด€๋ฆฌ์ž๊ฐ€ ์ง์ ‘ ์ •์ (๊ณ ์ •๋œ) ๊ฒฝ๋กœ๋ฅผ ์„ค์ •ํ•œ๋‹ค.

Routing protocol๋กœ ์ธํ•œ ๋ถ€ํ•˜๊ฐ€ ๊ฑฐ์˜ ์—†๊ณ , ๊ด€๋ฆฌ์ž ์˜๋„๋Œ€๋กœ ์ •๋ฐ€ํ•˜๊ฒŒ ๋ผ์šฐํŒ…ํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ๋„คํŠธ์›Œํฌ์— ๋ณ€ํ™”๊ฐ€ ์ƒ๊ธธ ๊ฒฝ์šฐ ๊ด€๋ฆฌ์ž๊ฐ€ ์ผ์ผํžˆ ๋Œ€์‘ํ•ด์•ผํ•˜๋ฏ€๋กœ ๋‹จ์ ์ด ๋  ์ˆ˜ ์žˆ๊ณ , ๋”๋ถˆ์–ด ๋„คํŠธ์›Œํฌ์˜ ๊ทœ๋ชจ๊ฐ€ ์ปค์ง€๋ฉด ์—ญ์‹œ ์„ค์ •์ด๋‚˜ ๊ด€๋ฆฌ๊ฐ€ ์–ด๋ ต๊ฒŒ ๋œ๋‹ค.

์„ค์ •

# Static Routing
Router(config)# ip route <DESTINATION_NETWORK> <D_N_SUBNET> <NEXT_HOP_IP>

# Default Routing
Router(config)# ip route 0.0.0.0 0.0.0.0 <NEXT_HOP_IP>

* Default-gateway์™€ Default route์˜ ์ฐจ์ด?
Default-gateway๋Š” ๋ผ์šฐํŒ… ๊ธฐ๋Šฅ์ด ๋™์ž‘ํ•˜์ง€ ์•Š์„ ๋•Œ, (์˜ˆ๋ฅผ ๋“ค์–ด L2 ๊ธฐ๋Šฅ๋งŒ ์‚ฌ์šฉํ•˜๋Š” ์Šค์œ„์น˜) ์‚ฌ์šฉํ•œ๋‹ค.
Default route๋Š” ๋ผ์šฐํŒ… ๊ธฐ๋Šฅ๊ณผ ํ•จ๊ป˜ ๋™์ž‘ํ•œ๋‹ค.

Floating Static Routing
Static Route์˜ AD ๊ฐ’์„ ์ž„์˜๋กœ ๋†’๊ฒŒ ์„ค์ •ํ•˜์—ฌ ํŠน์ • ๊ฒฝ๋กœ๋กœ ํŒจํ‚ท์„ ์ „์†กํ•˜๋„๋ก ํ•œ๋‹ค. ๊ทธ๋Ÿฌ๋‹ค ํ•ด๋‹น ๊ฒฝ๋กœ์— ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด, ๋‹ค๋ฅธ ๊ฒฝ๋กœ๋กœ ์ž๋™ ์ „์†ก๋˜๋„๋ก ํ•œ๋‹ค.  AD๊ฐ’์„ ์„ค์ •ํ•˜๊ณ ์ž ํ•˜๋ฉด, ์–‘์ชฝ์—์„œ ์„ค์ •ํ•ด์•ผ ํ•œ๋‹ค.

Router(config)# ip route <DESTINATION_NETWORK> <D_N_SUBNET> <NEXT_HOP_IP> <AD_COST>

2. Static Routing ๋ถ€ํ•˜๋ถ„์‚ฐ

Static Routing์œผ๋กœ๋„ LB๋ฅผ ํ•  ์ˆ˜ ์žˆ๋‹ค.
์šฐ์„ , ๋ผ์šฐํ„ฐ์˜ ํŠน์ • ์ธํ„ฐํŽ˜์ด์Šค์—์„œ ๋ชฉ์ ์ง€ ์ธํ„ฐํŽ˜์ด์Šค๋กœ ์ „์†กํ•˜๋Š” Switching ๋ฐฉ์‹์— ๋”ฐ๋ผ ๋ผ์šฐํ„ฐ์—์„œ ํŒจํ‚ท ์†ก์‹  ๊ฒฝ๋กœ ์ง€์ • ๋ฐฉ์‹์ด ๋‹ฌ๋ผ์ง„๋‹ค.

๋ฐฉ์‹1: CEF

Cisco Express Forwarding
์‹œ์Šค์ฝ” ๋ผ์šฐํ„ฐ์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค. ์ฒ˜์Œ๋ถ€ํ„ฐ ๋ผ์šฐํŒ… ํ…Œ์ด๋ธ”์„ ์บ์‹œ๋กœ ๋ณต์‚ฌํ•ด๋†“์œผ๋ฏ€๋กœ ์†๋„๊ฐ€ ๋น ๋ฅด๋‹ค. ๊ธฐ๋ณธ๊ฐ’์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ณ„๋„ ์„ค์ •ํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค.

๋ฐฉ์‹2: Process Switching

๊ฐ๊ฐ์˜ ํŒจํ‚ท์„ ์ „์†กํ•  ๋•Œ๋งˆ๋‹ค ๋ผ์šฐํŒ… ํ…Œ์ด๋ธ”์„ ํ™•์ธํ•œ ๋’ค Next Hop์„ ๊ฒฐ์ •ํ•˜์—ฌ ํŒจํ‚ท์„ ์ „์†กํ•œ๋‹ค. Switching ์†๋„๊ฐ€ ๋Š๋ฆฌ๊ณ , ํŒจํ‚ท ๋””๋ฒ„๊น…๊ณผ ๊ฐ™์ด ํŠน๋ณ„ํ•œ ๊ฒฝ์šฐ์—๋งŒ ์‚ฌ์šฉํ•œ๋‹ค.

Router(config)# int <INTERFACE>
Router(config-if)# no ip load-sharing per-packet
Router(config-if)# exit
Router(config)#
Router(config)# no ip cef

[Router] Routing ๊ธฐ๋ณธ ๊ฐœ๋…

  1. Router์˜ ๊ธฐ๋ณธ ๋‘ ๊ฐ€์ง€ ์—ญํ• 
  2. Routing ๊ธฐ๋ณธ ๊ฐœ๋…

1. Router์˜ ๊ธฐ๋ณธ ๋‘ ๊ฐ€์ง€ ์—ญํ• 

1) ๊ฒฝ๋กœ์„ค์ •

๊ฒฝ๋กœ ์„ค์ • ์‹œ์—๋Š” ์†Œ๊ทœ๋ชจ์— ์ ํ•ฉํ•œ Static Routing๊ณผ ์ค‘.๋Œ€๊ทœ๋ชจ์— ์ ํ•ฉํ•œ Dynamic Routing์ด ์žˆ๋‹ค.

2) ๊ฒฐ์ •๋œ ๊ฒฝ๋กœ๋ฅผ ๋”ฐ๋ผ ํŒจํ‚ท ์ „์†ก

ํŒจํ‚ท ์ „์†ก ๊ณผ์ •

2. Routing ๊ธฐ๋ณธ ๊ฐœ๋…

Loopback Interface

๊ฐ€์ƒ ์ธํ„ฐํŽ˜์ด์Šค.
๋ผ์šฐํ„ฐ๊ฐ€ ๋‹ค์šด๋˜๊ฑฐ๋‚˜ ๋„คํŠธ์›Œํฌ ๊ด€๋ฆฌ์ž๊ฐ€ ์ž„์˜๋กœ ๋‹ค์šด์‹œํ‚ค์ง€ ์•Š๋Š” ์ด์ƒ ๊ณ„์† ๋™์žฅํ•˜๋ฏ€๋กœ Routing์—์„œ Router-ID๋กœ ์‚ฌ์šฉ๋œ๋‹ค.

Split Horizon

๊ด‘๊ณ ๋ฅผ ์ˆ˜์‹ ํ•œ ์ธํ„ฐํŽ˜์ด์Šค๋กœ ๋™์ผํ•œ ๊ด‘๊ณ ๋ฅผ ์ „์†กํ•˜์ง€ ์•Š๋Š”๋‹ค.

R3์€ F0/1๋กœ ๊ด‘๊ณ ๋ฅผ ๋ฐ›์•˜๊ธฐ ๋•Œ๋ฌธ์— F0/1๋กœ ๋‹ค์‹œ ๊ด‘๊ณ ๋ฅผ ์ „์†กํ•˜์ง€ ์•Š๋Š”๋‹ค.

Auto-summary

์ฃผ ๋„คํŠธ์›Œํฌ ๊ฒฝ๊ณ„์—์„œ ์ฃผ ๋„คํŠธ์›Œํฌ๋งŒ ๊ด‘๊ณ ํ•œ๋‹ค.

– ์ฃผ ๋„คํŠธ์›Œํฌ: ์„œ๋ธŒ๋„คํŒ… ํ•˜์ง€ ์•Š์•˜์„ ๋•Œ์˜ ๋„คํŠธ์›Œํฌ
‘10.10.10.0/24’์˜ ์ฃผ ๋„คํŠธ์›Œํฌ๋Š” 10.0.0.0/8
‘172.30.10.0/25’์˜ ์ฃผ ๋„คํŠธ์›Œํฌ๋Š” 172.30.0.0/16

– ์ฃผ ๋„คํŠธ์›Œํฌ ๊ฒฝ๊ณ„: ์ฃผ ๋„คํŠธ์›Œํฌ์™€ ๋ผ์šฐํŒ… ์ •๋ณด๋ฅผ ์ „์†กํ•˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค์˜ ์ฃผ ๋„คํŠธ์›Œํฌ๊ฐ€ ๋‹ค๋ฅธ ์ง€์ 

Auto-summary ๊ทœ์น™์— ์˜ํ•ด ๋‚ด๋ถ€ ๋„คํŠธ์›Œํฌ๋Š” 192.168.0.0/24๋กœ ๊ด‘๊ณ ๋œ๋‹ค.

Longest Match Rule

๋ผ์šฐํŒ…ํ•  ๋•Œ, ๋ชฉ์ ์ง€ ์ฃผ์†Œ์™€ ๋ผ์šฐํŒ… ํ…Œ์ด๋ธ”์˜ ๋ชฉ์ ์ง€ ์ฃผ์†Œ๊ฐ€ ์ผ์น˜ํ•˜๋Š” ๋ถ€๋ถ„์ด ๊ฐ€์žฅ ๊ธด ๊ณณ์œผ๋กœ ์ „์†กํ•œ๋‹ค.

F0/2๋กœ ํŒจํ‚ท์„ ์ „์†กํ•œ๋‹ค.

3. Routing ์ข…๋ฅ˜

  • ๋ผ์šฐํŒ… ๊ด‘๊ณ  ์ข…๋ฅ˜์— ๋”ฐ๋ผ
    ๊ฑฐ๋ฆฌ ๋ฒกํ„ฐ ํ”„๋กœํ† ์ฝœ <—> ๋งํฌ ์ƒํƒœ ํ”„๋กœํ† ์ฝœ
  • ์„œ๋ธŒ๋„ท ๋งˆ์Šคํฌ ์ •๋ณด ์‚ฌ์šฉ ์—ฌ๋ถ€์— ๋”ฐ๋ผ
    ํด๋ž˜์Šคํ’€ ํ”„๋กœํ† ์ฝœ <—> ํด๋ž˜์Šค๋ฆฌ์Šค ํ”„๋กœํ† ์ฝœ
  • AS ์œ„์น˜์— ๋”ฐ๋ผ
    IGP <—> EGP

[Kotlin] ํ”„๋กœ๊ทธ๋žจ ํ๋ฆ„ ์ œ์–ด

์ฐธ๊ณ : Do it! ์ฝ”ํ‹€๋ฆฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ (P. 157~194)

์ฝ”ํ‹€๋ฆฐ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ์กฐ๊ฑด๋ฌธ, ๋ฐ˜๋ณต๋ฌธ, ๊ทธ๋ฆฌ๊ณ  ์ค‘๋‹จ/๋ฐ˜ํ™˜์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž. ๋‹คํ–‰์Šค๋Ÿฌ์šด ์ ์€ c์–ธ์–ด๋‚˜ python๊ณผ๋Š” ํฌ๊ฒŒ ๋‹ค๋ฅด์ง€ ์•Š๋‹ค๋Š” ์ ์ด๋‹ค.

  1. ์กฐ๊ฑด๋ฌธ
  2. ๋ฐ˜๋ชฉ๋ฌธ
  3. ํ๋ฆ„ ์ค‘๋‹จ๊ณผ ๋ฐ˜ํ™˜

1. ์กฐ๊ฑด๋ฌธ

IF๋ฌธ

  • ์‹คํ–‰๋ฌธ์ด ํ•˜๋‚˜์ผ ๊ฒฝ์šฐ์—๋Š” { } ์ƒ๋žต์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
  • ๋ฒ”์œ„๋ฅผ ์ง€์ •ํ•  ๋•Œ๋Š” โ€œ๋ณ€์ˆ˜์ด๋ฆ„ in ์‹œ์ž‘ ๊ฐ’..๋งˆ์ง€๋ง‰ ๊ฐ’โ€์œผ๋กœ ์ง€์ •ํ•œ๋‹ค. (score in 80.0..89.9 => 80.0์—์„œ 89.9๊นŒ์ง€)

WHEN๋ฌธ

  • ๋ฒ”์œ„๋ฅผ ์ง€์ •ํ•  ๋•Œ๋Š” โ€œin ์‹œ์ž‘ ๊ฐ’..๋งˆ์ง€๋ง‰ ๊ฐ’โ€์œผ๋กœ ์ง€์ •ํ•œ๋‹ค.
    (in 80.0..89.9 => 80.0์—์„œ 89.9๊นŒ์ง€)
  • ํŠน์ • ์ž๋ฃŒ ํ˜• ๊ฒ€์ƒ‰์€ is๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
    (is String -> โ€œโ€ => ๋ฆฌํ„ด๋˜๋Š” ๊ฐ’์ด String ํƒ€์ž…์ด๋ฉด ์‹คํ–‰)
  • ์ธ์ž์—†์ด ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋ฉด ์กฐ๊ฑด๋ฌธ์˜ ํ˜•์‹์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. 

2. ๋ฐ˜๋ณต๋ฌธ

FOR๋ฌธ

  • ์‹คํ–‰๋ฌธ์ด ํ•˜๋‚˜์ผ ๊ฒฝ์šฐ์—๋Š” ์ค‘๊ด„ํ˜ธ๋ฅผ ์ƒ๋žตํ•  ์ˆ˜ ์žˆ๋‹ค.

WHILE๋ฌธ

  • ์กฐ๊ฑด์‹์— true๋ฅผ ์“ฐ๊ฒŒ ๋˜๋ฉด, ๋ฌด์กฐ๊ฑด ์‹คํ–‰ํ•˜๊ฒŒ ๋œ๋‹ค.
  • ๋ฐ๋ชฌ ํ”„๋กœ๊ทธ๋žจ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๋„ ๋งŽ๋‹ค.
    (๋ฐ๋ชฌ : ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ์‹คํ–‰ํ•˜๋ฉด์„œ ์ข…๋ฃŒ๋˜์ง€ ์•Š๊ณ  ์ง€์†์ ์œผ๋กœ ์ฒ˜๋ฆฌ)

3. ํ๋ฆ„ ์ค‘๋‹จ๊ณผ ๋ฐ˜ํ™˜

  • ํ•จ์ˆ˜์ด๋ฆ„ ๋ผ๋ฒจ์ด๋ฆ„@ – return@๋ผ๋ฒจ์ด๋ฆ„์„ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋ฉด ํ•ด๋‹น ๋ผ๋ฒจ์˜ ๋๋ถ€๋ถ„์œผ๋กœ ์ด๋™ํ•œ๋‹ค.
  • ํ•จ์ˆ˜์— ๋žŒ๋‹ค์‹์„ ํ• ๋‹นํ•˜๊ฒŒ ๋˜๋ฉด ๊ทธ ๋žŒ๋‹ค์‹์ด ์ž๋™ ์‹คํ–‰๋˜๋Š”๊ฒƒ์ด ์•„๋‹ˆ๊ณ  ๋žŒ๋‹ค์‹ ์ž์ฒด๊ฐ€ ํ•จ์ˆ˜์— ๋‹ด๊ธฐ๋Š” ๊ฒƒ์ด๋‹ค.
     ex) fun greet() = {println(โ€œHelloโ€}๋ฅผ ํ•˜๊ฒŒ ๋˜๋ฉด, print๋˜์ง€ ์•Š๊ณ  greent()()ํ•ด์ฃผ์–ด์„œ ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ํ•ด์ฃผ์–ด์•ผ ํ•จ
  • ์˜ˆ์™ธ ์‚ฌํ•ญ์ด ๋ฐœ์ƒํ•˜๋Š” ์กฐ๊ฑด
    (1) ์šด์˜์ฒด์ œ ๋ฌธ์ œ
    (2) ์ž…๋ ฅ ๊ฐ’ ๋ฌธ์ œ
    (3) ๋ฐ›์•„ ๋“ค์ผ ์ˆ˜ ์—†๋Š” ์—ฐ์‚ฐ=0์œผ๋กœ ๋‚˜๋ˆ„๊ธฐ ๋“ฑ
    (4) ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น ์‹คํŒจ ๋ฐ ๋ถ€์กฑ
    (5) ์ปดํ“จํ„ฐ ๋ฌธ์ œ

[Kotlin] ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ

์ฐธ๊ณ : Do it! ์ฝ”ํ‹€๋ฆฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ (P. 98~132)

  1. ํ•จ์ˆ˜
  2. ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ
  3. ๋žŒ๋‹ค์‹๊ณผ ๊ณ ์ฐจํ•จ์ˆ˜ ํ˜ธ์ถœ
  4. ๋žŒ๋‹ค์‹์˜ ๋งค๊ฐœ๋ณ€์ˆ˜

1. ํ•จ์ˆ˜

์ฝ”ํ‹€๋ฆฐ์€ ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด๋ผ๊ณ  ํ–ˆ๋‹ค. ๊ทธ๋Ÿผ ํ•จ์ˆ˜๋Š” ๋ฌด์—‡์„ ์ผ์ปซ๋Š” ๋‹จ์–ด์ธ๊ฐ€?
๊ฐ’์„ ์ž…๋ ฅ ๋ฐ›์•„ ์‚ฌ์ „ ์ •์˜๋œ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๊ณ , ๊ฒฐ๊ณผ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ชจ์Œ์„ ๋งํ•œ๋‹ค.
๋ณดํ†ต ์ฝ”๋“œ๋ฅผ ์—ฌ๋Ÿฌ ๋ฒˆ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด์„œ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

1-1. ํ•จ์ˆ˜์˜ ๊ตฌ์กฐ

fun ํ•จ์ˆ˜๋ช…(๋ณ€์ˆ˜๋ช…: ์ž๋ฃŒํ˜•, ๋ณ€์ˆ˜๋ช…: ์ž๋ฃŒํ˜• โ€ฆ): ๋ฐ˜ํ™˜๊ฐ’์˜ ์ž๋ฃŒํ˜•{
ย  ์ฝ”๋“œ
ย  [return ๋ฐ˜ํ™˜๊ฐ’]
}

์ฝ”๋“œ1. ํ•จ์ˆ˜์˜ ๊ตฌ์กฐ

๋งŒ์•ฝ, ํ•จ์ˆ˜์˜ ์ฝ”๋“œ๊ฐ€ ํ•œ ์ค„์ด๋ผ๋ฉด, myfunction1 ํ•จ์ˆ˜ ์ฒ˜๋Ÿผ ๋‹จ์ถ•ํ•  ์ˆ˜ ์žˆ๋‹ค.

ํ•จ์ˆ˜์˜ ๋ฐ˜ํ™˜๊ฐ’์ด ์—†๋‹ค๋ฉด, ๋ฐ˜ํ™˜๊ฐ’์˜ ์ž๋ฃŒํ˜•์€ Unit์œผ๋กœ ์ง€์ •ํ•˜๊ฑฐ๋‚˜ ์ƒ๋žตํ•œ๋‹ค.

1-2. ํ•จ์ˆ˜์˜ ๋งค๊ฐœ๋ณ€์ˆ˜

(1) ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ๊ธฐ๋ณธ๊ฐ’์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

(2) ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ, ์ด๋ฆ„๊ณผ ํ•จ๊ป˜ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๋‹ค.

(3) ํ•œ ๊ฐœ์˜ ์ธ์ž๋งŒ ์ •์˜ํ•ด๋„ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ธ์ž๋ฅผ ์ž…๋ ฅ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค.
Variable Argument(๊ฐ€๋ณ€ ์ธ์ž)๋ผ๊ณ  ํ•˜๋ฉฐ, varargs ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

** ๋งŒ์•ฝ, ๊ฐ€๋ณ€์ธ์ž์™€ ์ผ๋ฐ˜ ์ธ์ž๋ฅผ ๋™์‹œ์— ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ ๊ฐ€๋ณ€์ธ์ž๋ฅผ ๋งˆ์ง€๋ง‰์— ๋‘”๋‹ค.


2. ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ

์ฝ”ํ‹€๋ฆฐ์€ ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ๊ณผ ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋‘˜ ๋‹ค ์ง€์›ํ•˜๋Š” ๋‹ค์ค‘ ํŒจ๋Ÿฌ๋‹ค์ž„ ์–ธ์–ด๋‹ค. ํŠนํžˆ, ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ ์ˆœ์ˆ˜ํ•จ์ˆ˜, ๋žŒ๋‹ค์‹, ๊ณ ์ฐจํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด ํšจ์œจ์ ์ธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์ง€ํ–ฅํ•œ๋‹ค.

์ˆœ์ˆ˜ํ•จ์ˆ˜
A๋ผ๋Š” ํ•จ์ˆ˜๊ฐ€ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ณด์ž. ์ด ํ•จ์ˆ˜๊ฐ€ ํ•ญ์ƒ ๊ฐ™์€ ๊ฒฐ๊ณผ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๊ณ , ์ด ํ•จ์ˆ˜๊ฐ€ ์™ธ๋ถ€์˜ ์ƒํƒœ๋ฅผ ๋ฐ”๊พธ์ง€ ์•Š์„ ๋•Œ, ์ˆœ์ˆ˜ํ•จ์ˆ˜๋ผ๊ณ  ํ•œ๋‹ค.

์ˆœ์ˆ˜ํ•จ์ˆ˜ ์˜ˆ์‹œ

๋žŒ๋‹ค์‹
์ด๋ฆ„์ด ์—†๋Š” ํ•จ์ˆ˜, ์ต๋ช…ํ•จ์ˆ˜์ด๋‹ค. ํ•œ๋ฒˆ๋งŒ ์‚ฌ์šฉํ•˜๊ณ  ์žฌ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ํ•จ์ˆ˜. ํ•จ์ˆ˜ ์ฝ”๋“œ ๊ฐ€๋…์„ฑ์ด ๋†’์•„์ง€๊ณ ,  ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ํŒจํ„ด์ด๋‹ค.

๋žŒ๋‹ค์‹ ํ˜•์‹


๊ณ ์ฐจํ•จ์ˆ˜
๋‹ค๋ฅธ ํ•จ์ˆ˜๋ฅผ ์ธ์ž๋กœ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ํ•จ์ˆ˜๋ฅผ ๊ฒฐ๊ณผ๊ฐ’์œผ๋กœ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜.

(1) ์ผ๋ฐ˜ํ•จ์ˆ˜๋ฅผ ์ธ์ž๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ณ ์ฐจํ•จ์ˆ˜

์ด์™ธ์—๋„
(2) ๋ฐ˜ํ™˜๊ฐ’(return)์— ์ผ๋ฐ˜ํ•จ์ˆ˜๋ฅผ ๋„ฃ์€ ๊ณ ์ฐจํ•จ์ˆ˜,
(3) ๋žŒ๋‹ค์‹์„ ๋ณ€์ˆ˜๋‚˜ ๋งค๊ฐœ๋ณ€์ˆ˜์— ํ• ๋‹นํ•œ ๊ณ ์ฐจํ•จ์ˆ˜
๊ฐ€ ์žˆ๋‹ค.


3. ๋žŒ๋‹ค์‹๊ณผ ๊ณ ์ฐจํ•จ์ˆ˜ ํ˜ธ์ถœ

3-1. ๊ฐ’์— ์˜ํ•œ ํ˜ธ์ถœ

๋žŒ๋‹ค์‹ ํ•จ์ˆ˜“๋ฅผ ํ˜ธ์ถœํ•œ๋‹ค.
ํ•จ์ˆ˜๊ฐ€ ๋‹ค๋ฅธ ํ•จ์ˆ˜์˜ ์ธ์ž๋กœ ์ „๋‹ฌ๋  ๊ฒฝ์šฐ ๋žŒ๋‹ค์‹์ด ๋ฐ”๋กœ ๊ฐ’์œผ๋กœ ์ฒ˜๋ฆฌ๋˜์–ด ์ฆ‰์‹œ ํ•ด๋‹น ํ•จ์ˆ˜์˜ ๊ฒฐ๊ณผ๊ฐ’์„ ์ „๋‹ฌํ•œ๋‹ค.

๋žŒ๋‹ค์‹ lambda ์‹คํ–‰ -> ํ•จ์ˆ˜ callByValue ์‹คํ–‰
๊ฒฐ๊ณผ๊ฐ’

3-2. ์ด๋ฆ„์— ์˜ํ•œ ๋žŒ๋‹ค์‹ ํ˜ธ์ถœ

๋žŒ๋‹ค์‹ ์ด๋ฆ„“์„ ํ˜ธ์ถœํ•œ๋‹ค.
์ธ์ž๋กœ ์ „๋‹ฌ ์‹œ ์‹คํ–‰๋˜์ง€ ์•Š๊ณ  , ์‹ค์ œ ํ˜ธ์ถœ ์‹œ ์‹คํ–‰๋œ๋‹ค.

ํ•จ์ˆ˜ callByName ์‹คํ–‰ -> ๋žŒ๋‹ค์‹ otherlambda ์‹คํ–‰
๊ฒฐ๊ณผ๊ฐ’

4. ๋žŒ๋‹ค์‹์˜ ๋งค๊ฐœ๋ณ€์ˆ˜

4-1. ๋žŒ๋‹ค์‹์— ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ

๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ์—†์œผ๋ฏ€๋กœ ๋žŒ๋‹ค์‹์—๋Š” “->”๊ฐ€ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š”๋‹ค.

4-2. ๋žŒ๋‹ค์‹์— ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ 1๊ฐœ์ธ ๊ฒฝ์šฐ

๋žŒ๋‹ค์‹์—์„œ “->” ์™ผ์ชฝ์— ๋ณ€์ˆ˜๋ฅผ ์ž‘์„ฑํ•ด์•ผ ํ•œ๋‹ค.
๋žŒ๋‹ค์‹ ์ค‘ ์ฒ˜๋ฆฌ์ฝ”๋“œ์—์„œ ‘$๋ณ€์ˆ˜๋ช…‘ ๋Œ€์‹  ‘$it‘๋กœ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.

4-3. ๋žŒ๋‹ค์‹์— ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ 2๊ฐœ์ธ ๊ฒฝ์šฐ

๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ 1๊ฐœ์ธ ๊ฒฝ์šฐ์™€ ๋น„์Šทํ•˜๋‹ค.
๋žŒ๋‹ค์‹์—์„œ “->” ์™ผ์ชฝ์— ๋ณ€์ˆ˜๋ฅผ ์ž‘์„ฑํ•ด์•ผ ํ•œ๋‹ค. ๋งŒ์ผ, ๋žŒ๋‹ค์‹์˜ ์ผ๋ถ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ฒ ๋‹ค๋ฉด, ์–ธ๋”๋ฐ”(_)๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

[Switch] SPAN

Switch Port Analyzer

ํŠน์ • ํฌํŠธ๋ฅผ ํ†ตํ•ด ์ž…/์ถœ๋ ฅ๋˜๋Š” ํŠธ๋ž˜ํ”ฝ์„ ๋‹ค๋ฅธ ํฌํŠธ๋กœ ๋ณต์ œํ•˜์—ฌ ๋ถ„์„ํ•˜๋Š” ๊ธฐ๋Šฅ์ด๋‹ค. ํŠธ๋ž˜ํ”ฝ ๋ถ„์„ ๋˜๋Š” ์นจ์ž…๋ฐฉ์ง€์‹œ์Šคํ…œ(IPS)๋ฅผ ์œ„ํ•ด ์„ค์ •ํ•œ๋‹ค. ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํฌํŠธ๋กœ ์ž…/์ถœ๋ ฅ๋˜๋Š” ํŠธ๋ž˜ํ”ฝ์„ ๋™์‹œ์— ๋ณต์ œํ•  ์ˆ˜ ์žˆ๊ณ , VLAN ํŠธ๋ž˜ํ”ฝ๋„ ๋ณต์ œํ•  ์ˆ˜ ์žˆ๋‹ค.

SPAN ํฌํŠธ ์ข…๋ฅ˜

SPAN Source Port : ๋ถ„์„ ๋Œ€์ƒ์ด ๋˜๋Š” ํฌํŠธ.
SPAN Destination Port : ๋ถ„์„์žฅ๋น„๊ฐ€ ์—ฐ๊ฒฐ๋œ ํฌํŠธ, ์—ฌ๊ธฐ์— ์ ‘์†๋œ ์žฅ๋น„๋Š” ์ธํ„ฐ๋„ท์€ ๋ฌผ๋ก  Layer 2 ํ”„๋กœํ† ์ฝœ์ด ๋™์ž‘ํ•˜์ง€ ์•Š๋Š”๋‹ค. ์–ด๋–ค VLAN์— ์†Œ์†๋˜์–ด๋„ ์ƒ๊ด€ ์—†๋‹ค.

SPAN ์ง€์—ญ ์ข…๋ฅ˜

Local SPAN : SPAN Source ์™€ Destination์ด ๋™์ผํ•œ ์Šค์œ„์น˜ ์†Œ์†.
Remote SPAN : SPAN Source ์™€ Destination์ด ์„œ๋กœ ๋‹ค๋ฅธ ์Šค์œ„์น˜ ์†Œ์†.

SPAN ์„ค์ •

ํ† ํด๋กœ์ง€1. SPAN ์„ค์ •
Switch(config)# monitor session 1 source int fa0/3
Switch(config)# monitor session 1 destination int fa0/2

RSPAN ์„ค์ •

ํ† ํด๋กœ์ง€2. RSPAN ์„ค์ •

[ SPAN Source ์Šค์œ„์น˜ ์„ค์ • ]

SW1(config)# vlan 500
SW1(config-vlan)# remote-span
SW1(config-vlan)# exit
SW1(config)#
SW1(config)# monitor session 1 source int fa0/1
SW1(config)# monitor session 1 destination remote vlan 500

[ SPAN Destination ์Šค์œ„์น˜ ์„ค์ • ]

SW2(config)# vlan 500
SW2(config-vlan)# remote-span
SW2(config-vlan)# exit
SW2(config)#
SW2(config)# monitor session 1 source remote vlan 500
SW2(config)# monitor session 1 destination int fa0/20


[QoS] 3: Policing

Policing ์ด๋ž€, ํŠธ๋ž˜ํ”ฝ์˜ ์ตœ๋Œ€ ์†๋„๋ฅผ ์ œํ•œํ•˜๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค. ๋Œ€์—ญํญ์— ์—ฌ์œ ๊ฐ€ ์žˆ์–ด๋„ ์ตœ๋Œ€ ์†๋„๋ฅผ ๋„˜๊ธฐ๋ฉด ํ•ด๋‹น ํŠธ๋ž˜ํ”ฝ์„ ํ๊ธฐํ•œ๋‹ค.

Input Policing: ํŒจํ‚ท ์ž…๋ ฅ(์ˆ˜์‹ ) ์‹œ ์ ์šฉํ•˜๋Š” Policing
Output Policing: ํŒจํ‚ท ์ถœ๋ ฅ(์†ก์‹ ) ์‹œ ์ ์šฉํ•˜๋Š” Policing, ์ง€์›ํ•˜์ง€ ์•Š๋Š” ์Šค์œ„์น˜๋„ ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค.

1. Policing ์„ค์ •
2. DSCP ๋งˆํฌ๋‹ค์šด


1. Policing ์„ค์ •

ํ† ํด๋กœ์ง€1. Policing ์„ค์ •
Switch(config)# mls qos
Switch(config)#
Switch(config)# policy-map <POLICY_NAME>
Switch(config-pmap)# class [ <CLASS_MAP_NAME> | class-default ]
Switch(config-pmap-c)# police <LIMITED_BPS> <Bc>
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit
Switch(config)#
Switch(config)# int <INTERFACE>
Switch(config-if)# service-policy input <POLICY_NAME>

5: ‘<CLASS_MAP_NAME>‘์€ class-map์„ ํ†ตํ•ด ์ง€์ •ํ•œ ํŠธ๋ž˜ํ”ฝ์— ์ ์šฉํ•˜๊ณ , ‘class-default‘๋Š” ๋ชจ๋“  ํŠธ๋ž˜ํ”ฝ์— ์ ์šฉํ•œ๋‹ค.
6: ex) police 1000000 31250
<LIMITED_BPS>‘์˜ ๋‹จ์œ„๋Š” bps์ด๋‹ค.
<Bc>’๋Š” ๋‹จ์œ„์‹œ๊ฐ„(Tc)์— ์ „์†กํ•  ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€ ํŠธ๋ž˜ํ”ฝ ์–‘์ด๋‹ค. Byte ๋‹จ์œ„์ด๋ฉฐ, ์žฅ๋น„๋งˆ๋‹ค ์ตœ์†Œ/์ตœ๋Œ€ BC๊ฐ’์ด ๋‹ค๋ฅด๋‹ค.

Bc ์™€ Tc

– Bc : Burst Committed, ํŒจํ‚ท์„ ๋‹ด๋Š” ๋ฒ„ํ‚ท์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค.
– CIR : Committed Information Rate, ํด๋ฆฌ์‹ฑ ์†๋„.
– Tc : ๋‹จ์œ„์‹œ๊ฐ„, Bc๋ฅผ ๋‹ค ์ฑ„์šฐ๋Š” ์‹œ๊ฐ„

Bc = (CIR * Tc) / 8‘ ์ด๋ผ๋Š” ๊ณต์‹์— ๋”ฐ๋ผ ๋™์ž‘ํ•œ๋‹ค.
์ตœ๋Œ€ ํŠธ๋ž˜ํ”ฝ ์–‘(Bc)์ด ๋™์ผํ•˜๋‹ค๊ณ  ํ• ๋•Œ, ํด๋ฆฌ์‹ฑ ์†๋„(CIR)๊ฐ€ ์ปค์งˆ์ˆ˜๋ก ๋‹จ์œ„์‹œ๊ฐ„(Tc)๋Š” ์ž‘์•„์ง„๋‹ค.


2. DSCP ๋งˆํฌ๋‹ค์šด

Policing์—์„œ ์ตœ๋Œ€ ์†๋„๋ฅผ ์ดˆ๊ณผํ•˜๋Š” ํ”„๋ ˆ์ž„์€ ํ๊ธฐํ•œ๋‹ค๊ณ  ํ–ˆ๋‹ค. ํ•˜์ง€๋งŒ, ์ด๋Ÿฌํ•œ ํ”„๋ ˆ์ž„์„ ํ๊ธฐํ•˜๋Š” ๋Œ€์‹  ‘policed-dscp map’์„ ์ฐธ๊ณ ํ•˜์—ฌ DSCP ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์„ ‘DSCP ๋งˆํฌ๋‹ค์šด’์ด๋ผ๊ณ  ํ•œ๋‹ค.

์„ค์ •

Switch(config)# policy-map <POLICY_NAME>
Switch(config-pmap)# class [ <CLASS_MAP_NAME> | class-default ]
Switch(config-pmap-c)# police <LIMITED_BPS> <Bc> exceed-action policed-dscp transmit

policed-dscp map ํ™•์ธ

Switch# show mls qos maps policed-dscp

[QoS] 2: Trusting

QoS ํ๋ฆ„ ์ค‘ ํ”„๋ ˆ์ž„์„ ๋ถ„๋ฅ˜ํ•˜๊ณ  ํ‘œ์‹œํ•˜๋Š” ๊ฒƒ์„ Trusting์ด๋ผ๊ณ  ํ•œ๋‹ค. Trusting์„ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์€ ํฌ๊ฒŒ 2๊ฐ€์ง€์ด๋‹ค.

1. ‘trust๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ํŠธ๋ž˜ํ”ฝ์„ ๋ถ„๋ฅ˜ํ•˜๊ณ , ํŠธ๋ž˜ํ”ฝ์˜ QoS๋ฅผ ํ‘œ์‹œํ•œ๋‹ค.

2. ์•ž์„œ ์‚ดํŽด๋ณธ QoS ์„ค์ •์˜ MQC ๋ช…๋ น์–ด ์ค‘ ‘class-map‘์„ ํ†ตํ•ด ํŠธ๋ž˜ํ”ฝ์„ ๋ถ„๋ฅ˜ํ•˜๊ณ , ‘policy-map‘์„ ํ†ตํ•ด ํŠธ๋ž˜ํ”ฝ์˜ QoS๋ฅผ ํ‘œ์‹œํ•œ๋‹ค.

  1. trust ๋ช…๋ น์–ด
  2. ์ธํ„ฐํŽ˜์ด์Šค์—์„œ trusting
  3. policy-map์„ ์ด์šฉํ•œ trusting

1. trust ๋ช…๋ น์–ด

์ˆ˜์‹ ๋œ ํ”„๋ ˆ์ž„์˜ QoS ๊ฐ’ ์ค‘ ์–ด๋–ค ๊ฐ’์„ ๊ธฐ์ค€์œผ๋กœ ํ• ์ง€ ๊ฒฐ์ •ํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. QoS ๊ฐ’ ์—†์ด QoS๋ฅผ ์„ค์ •ํ•œ๋‹ค๋ฉด, ‘trust๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค.
trust๋ช…๋ น์–ด๋Š” ์ธํ„ฐํŽ˜์ด์Šค์—์„œ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ MQC์˜ ‘policy-map‘์—์„œ ์‚ฌ์šฉํ•œ๋‹ค.

– ‘trust‘๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ฏธ์‚ฌ์šฉ ์ƒํƒœ๋‹ค.
– ‘trust‘๋ฅผ ๋ฏธ์‚ฌ์šฉํ•ด๋„ ์ˆ˜์‹ ํ•œ ํ”„๋ ˆ์ž„์˜ ์šฐ์„ ์ˆœ์œ„ ๊ฐ’์€ ๊ทธ๋Œ€๋กœ ์œ ์ง€ํ•œ๋‹ค.
– ๋‹จ, QoS๋ฅผ ํ™œ์„ฑํ™”ํ•˜๊ณ  ๋ณ„๋„ ์„ค์ •์„ ํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด, ์šฐ์„ ์ˆœ์œ„ ๊ฐ’์€ 0์œผ๋กœ ์ดˆ๊ธฐํ™”๋˜๋‹ˆ ์ฃผ์˜ํ•ด์•ผ ํ•œ๋‹ค.


2. ์ธํ„ฐํŽ˜์ด์Šค์—์„œ trusting

Switch(config)# mls qos
Switch(config)#
Switch(config)# int <INTERFACE>
Switch(config-if)# mls qos [ cos | device | dscp | ip-precedence | <cr> ]

2: qos๋ฅผ ํ™œ์„ฑํ™”ํ•œ๋‹ค.
5: cos, dscp, ip-precedence -> QoS ์šฐ์„ ์ˆœ์œ„์˜ ์ข…๋ฅ˜๋ฅผ ์ง€์ •.
device -> Cisco IP ์ „ํ™”๊ธฐ๊ฐ€ ์„ค์น˜๋œ ๊ฒฝ์šฐ ์‚ฌ์šฉํ•œ๋‹ค.
๋ณ„๋„ ์ข…๋ฅ˜๋ฅผ ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด, dscp๋กœ ๊ฐ„์ฃผํ•œ๋‹ค.

[ QoS ์šฐ์„ ์ˆœ์œ„๋ฅผ CoS๊ฐ’ ๊ธฐ์ค€, CoS๊ฐ’์ด ์—†๋‹ค๋ฉด 2๋กœ ์ง€์ • ]

Switch(config-if)# mls qos trust cos
Switch(config-if)# mls qos cos 2

[ ์ˆ˜์‹  ํ”„๋ ˆ์ž„์˜ coS ๊ฐ’์„ ๋ฌด์‹œ, ๋ฌด์กฐ๊ฑด 1๋กœ ์ง€์ • ]

Switch(config-if)# mls qos cos 1
Switch(config-if)# mls qos cos override

3. Policy-map์„ ์ด์šฉํ•œ trusting

์ธํ„ฐํŽ˜์ด์Šค์—์„œ trusting์„ ํ•˜๋ฉด, ํ•ด๋‹น ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ†ต๊ณผํ•˜๋Š” ํŠธ๋ž˜ํ”ฝ ์ „์ฒด์— ์ ์šฉ๋œ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ Policy-map์„ ์ด์šฉํ•ด trusting์„ ํ•œ๋‹ค๋ฉด, ‘class-map‘์œผ๋กœ ์ง€์ •๋œ ํŠธ๋ž˜ํ”ฝ์—๋งŒ ์ ์šฉ๋œ๋‹ค. ๋‹ค์‹œ ๋งํ•ด, Policy-map์„ ํ†ตํ•ด ๋” ์ •๊ตํ•œ trusting์„ ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

๋งŒ์ผ, ์ธํ„ฐํŽ˜์ด์Šค์™€ Policy-map ๋ชจ๋‘ trusting์„ ์ ์šฉํ•˜๋ฉด Policy-map์˜ trusting์ด ์šฐ์„ ํ•œ๋‹ค.

trusting ์„ค์ •

ACL ์„ค์ • โ†’ class-map ์„ค์ • โ†’ policy-map ์„ค์ • โ†’ policy-map ์ ์šฉ

Switch(config)# ip access-list extended <ACL_NAME>
Switch(config-ext-nacl)# permit ip <SOURCE_IP> <DESTINATION_IP>
Switch(config-ext-nacl)# exit
Switch(config)#
Switch(config)# class-map <CLASS_MAP_NAME>
Switch(config-cmap)# match access-group name <ACL_NAME>
Switch(config-cmap)# exit
Switch(config)#
Switch(config)# policy-map <POLICY_NAME>
Switch(config-pmap)# class <CLASS_MAP_NAME>
Switch(config-pmap-c)# trust [ cos | dscp | ip-precedence | <cr> ]
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit
Switch(config)#
Switch(config)# int <INTERFACE>
Switch(config-if)# service-policy input <POLICY_NAME>

[Kotlin] ๊ธฐ๋ณธ ๊ฐœ๋…1: ๊ด€๊ณ„, ๋ณ€์ˆ˜, ์ž๋ฃŒํ˜•

  1. ์ฝ”ํ‹€๋ฆฐ ํ”„๋กœ์ ํŠธ, ๋ชจ๋“ˆ, ํŒจํ‚ค์ง€, ํŒŒ์ผ์˜ ๊ด€๊ณ„
  2. ๋ณ€์ˆ˜์™€ ์ž๋ฃŒํ˜•
  3. ์ž๋ฃŒํ˜• ๊ฒ€์‚ฌ์™€ ๋ฐ˜ํ™˜

1. ์ฝ”ํ‹€๋ฆฐ ํ”„๋กœ์ ํŠธ-๋ชจ๋“ˆ-ํŒจํ‚ค์ง€-ํŒŒ์ผ

๊ด€๊ณ„๋„ ์˜ˆ์‹œ

ํ”„๋กœ์ ํŠธ ๋‚ด๋ถ€์— ๋ชจ๋“ˆ,
๋ชจ๋“ˆ ๋‚ด๋ถ€์— ํŒจํ‚ค์ง€,
ํŒจํ‚ค์ง€ ๋‚ด๋ถ€์— ํŒŒ์ผ.

์‹ค์ œ ํŒŒ์ผ์„ ๋ณด๋ฉด ์•„๋ž˜์™€ ๊ฐ™๋‹ค. ํŒจํ‚ค์ง€ ๊ธฐ์ค€์œผ๋กœ ๋ณด๋Š”๊ฒŒ ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์šด๋“ฏ ํ•˜๋‹ค.

(์ขŒ) ํ”„๋กœ์ ํŠธ ๊ธฐ์ค€ / (์šฐ) ํŒจํ‚ค์ง€ ๊ธฐ์ค€

ํŒŒ์ผ๋ช… “ooo.kt” ์™€ “ooo”์˜ ์ฐจ์ด?

ํ•ด๋‹น ํŒŒ์ผ ์ œ๋ชฉ์œผ๋กœ ํด๋ž˜์Šค 1๊ฐœ๋งŒ ์„ค์ •๋˜์–ด์žˆ๋‹ค๋ฉด, ooo
๊ทธ ์ด์™ธ๋Š” ooo.kt ์ด๋‹ค.


2. ๋ณ€์ˆ˜์™€ ์ž๋ฃŒํ˜•

2-1. val / var

์ฝ”ํ‹€๋ฆฐ์—์„œ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•  ๋•Œ, val์ด๋‚˜ var์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

val : ๊ณ ์ • ๊ฐ’, ์ฝ๊ธฐ๋งŒ ๊ฐ€๋Šฅ
var: ์œ ๋™ ๊ฐ’, ๊ฐ’ ์ˆ˜์ • ๊ฐ€๋Šฅ

2-2. ๊ธฐ๋ณธํ˜• ์ž๋ฃŒํ˜• vs ์ฐธ์กฐํ˜• ์ž๋ฃŒํ˜•

์ฝ”ํ‹€๋ฆฐ์—์„œ๋Š” ์ฐธ์กฐํ˜•๋งŒ ์‚ฌ์šฉํ•œ๋‹ค. ํ•˜์ง€๋งŒ, ๊ฒ‰๋ณด๊ธฐ์—๋งŒ ๊ทธ๋ ‡๊ณ  ์ปดํŒŒ์ผ์„ ์ง„ํ–‰ํ•˜๋ฉด์„œ ์ฐธ์กฐํ˜•์—์„œ ๊ธฐ๋ณธํ˜•์œผ๋กœ ๋ฐ”๋€๋‹ค.

๊ธฐ๋ณธํ˜•: ์ž„์‹œ๋ฉ”๋ชจ๋ฆฌ(์Šคํƒ)์— ๊ฐ’ ์ €์žฅ, ๋ฉ”๋ชจ๋ฆฌ ํฌ๊ธฐ ๊ณ ์ •.
์ž๋ฃŒํ˜•: ์ž„์‹œ๋ฉ”๋ชจ๋ฆฌ(์Šคํƒ)์— ์ฐธ์กฐ ์ฃผ์†Œ, ๋™์  ๋ฉ”๋ชจ๋ฆฌ(ํž™)์— ์‹ค์ œ ๊ฐ’.

2-3. ์ž๋ฃŒํ˜•

2-4. ์–ธ๋”์Šค์ฝ”์–ด

ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•˜๋‹ค๋ณด๋ฉด ๊ธด ์ˆซ์ž๋Š” ์‹๋ณ„ํ•˜๊ธฐ ์• ๋งคํ•œ ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋Š”๋ฐ, _ ์„ ์ด์šฉํ•ด ์‹๋ณ„ํ•˜๊ธฐ ํŽธํ•˜๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋‹ค. ์–ธ๋”๊ทธ๋ผ์šด๋“œ(_)๋Š”๊ฐ’์— ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๊ณ , ๋ชจ๋“  ์ข…๋ฅ˜์˜ ๊ฐ’์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

var num = 79_000_000
var num2 = 0x99_5F_AB_12

2-5. ๋ถ€๋™์†Œ์ˆ˜์ 

IEEE 754

(์œ„ํ‚ค๋””ํ”ผ์•„ ์ฐธ๊ณ )

โˆ’118.625 (์‹ญ์ง„๋ฒ•)์„ IEEE 754 (32๋น„ํŠธ ๋‹จ์ •๋ฐ€๋„)๋กœ ํ‘œํ˜„ํ•ด ๋ณด์ž.

(1) ์Œ์ˆ˜์ด๋ฏ€๋กœ, ๋ถ€ํ˜ธ๋ถ€๋Š” 1์ด ๋œ๋‹ค. 0์€ ์–‘์ˆ˜, 1์€ ์Œ์ˆ˜์ด๋‹ค.
(2) ๊ทธ ๋‹ค์Œ, ์ ˆ๋Œ“๊ฐ’์„ ์ด์ง„๋ฒ•์œผ๋กœ ๋‚˜ํƒ€๋‚ด๋ฉด 1110110.101์ด ๋œ๋‹ค.
(3)์†Œ์ˆ˜์ ์„ ์™ผ์ชฝ์œผ๋กœ ์ด๋™์‹œ์ผœ, ์™ผ์ชฝ์—๋Š” 1๋งŒ ๋‚จ๊ฒŒ ๋งŒ๋“ ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด 1110110.101=1.110110101ร—2โถ ๊ณผ ๊ฐ™๋‹ค. ์ด๊ฒƒ์„ ์ •๊ทœํ™”๋œ ๋ถ€๋™์†Œ์ˆ˜์  ์ˆ˜๋ผ๊ณ  ํ•œ๋‹ค.
(4) ๊ฐ€์ˆ˜๋ถ€๋Š” ์†Œ์ˆ˜์ ์˜ ์˜ค๋ฅธ์ชฝ ๋ถ€๋ถ„์œผ๋กœ, ๋ถ€์กฑํ•œ ๋น„ํŠธ ์ˆ˜ ๋ถ€๋ถ„๋งŒํผ 0์œผ๋กœ ์ฑ„์›Œ 23๋น„ํŠธ๋กœ ๋งŒ๋“ ๋‹ค. ๊ฒฐ๊ณผ๋Š” 11011010100000000000000์ด ๋œ๋‹ค.
(5) ์ง€์ˆ˜๋Š” 6์ด๋ฏ€๋กœ, Bias๋ฅผ ๋”ํ•ด์•ผ ํ•œ๋‹ค. 32๋น„ํŠธ IEEE 754 ํ˜•์‹์—์„œ๋Š” Bias๋Š” 127์ด๋ฏ€๋กœ 6+127 = 133์ด ๋œ๋‹ค. ์ด์ง„๋ฒ•์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋ฉด 10000101์ด ๋œ๋‹ค.

2-6. 2์˜ ๋ณด์ˆ˜

์ปดํ“จํ„ฐ๋Š” ์Œ์ˆ˜๋ฅผ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•ด 2์˜ ๋ณด์ˆ˜ ๊ฐœ๋…์„ ์‚ฌ์šฉํ•œ๋‹ค. ์ปดํ“จํ„ฐ ์—ฐ์‚ฐ๊ธฐ์—๋Š” ๋ง์…ˆ ๊ธฐ๋Šฅ์˜ ํšŒ๋กœ๋งŒ ์žˆ๊ณ , ๋ง์…ˆ ๊ธฐ๋Šฅ์œผ๋กœ ๋บ„์…ˆ์„ ๊ตฌํ˜„ํ•ด์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

(1) Byteํ˜• ๋ณ€์ˆ˜์— 0111 1111 (127) ์ด ์žˆ๋‹ค.
(2) ์—ฌ๊ธฐ์— 2์ง„์ˆ˜ 1์„ ๋”ํ•˜๋ฉด 1000 0000์ด ๋˜๊ณ , -128์ด ๋œ๋‹ค.
(3) ์ฆ‰ ํŠน์ •ํ•œ ์ˆ˜๋ฅผ ์Œ์ˆ˜๋กœ ๋งŒ๋“œ๋ ค๋ฉด, 2์ง„์ˆ˜ ๊ฐ’์„ ๋’ค์ง‘์€ ํ›„ 1์„ ๋”ํ•˜๋ฉด ํŠน์ • ์ˆ˜์˜ ์Œ์ˆ˜๊ฐ€ ๋œ๋‹ค.

์˜ˆ์‹œ๋กœ, 1000 0001์€ -127, 1000 0011์€ -125๋‹ค.


3. ์ž๋ฃŒํ˜• ๊ฒ€์‚ฌ์™€ ๋ฐ˜ํ™˜

3-1. Null์„ ํ—ˆ์šฉํ•˜๋Š” ๋ณ€์ˆ˜ ๊ฒ€์‚ฌ

์ผ๋ฐ˜์ ์œผ๋กœ ์ฝ”ํ‹€๋ฆฐ์€ ๋ณ€์ˆ˜์— null ํ• ๋‹น ์‹œ non-null ์—๋Ÿฌ ๋ฐœ์ƒ.
๋ณ€์ˆ˜ ์„ ์–ธ ์‹œ ์ž๋ฃŒํ˜• ๋’ค์— ๋ฌผ์Œํ‘œ๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค.

var str0 : String? = "This is String"
str0 = null

3-2. ์„ธ์ดํ”„์ฝœ๊ณผ ์—˜๋น„์Šค

[ ์„ธ์ดํ”„์ฝœ ]
null์ด ํ• ๋‹น๋์„ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋Š” ๋ณ€์ˆ˜๋ฅผ ๊ฒ€์‚ฌ ํ›„ ์•ˆ์ „ํ•˜๊ฒŒ ํ˜ธ์ถœ.

println("str0: $str0 length: ${str0?.length}")


str0์ด null์ธ์ง€ ํ™•์ธ.
null์ด๋ฉด null ์ถœ๋ ฅ. / null์ด ์•„๋‹ˆ๋ฉด length ์ถœ๋ ฅ.

[ ์—˜๋น„์Šค ]
๋ณ€์ˆ˜๊ฐ€ null์ธ์ง€ ํ™•์ธ ํ›„ null์ด๋ฉด ์˜ค๋ฅธ์ชฝ ์ˆ˜์‹, ์•„๋‹ˆ๋ฉด ์™ผ์ชฝ ์ˆ˜์‹์„ ์ถœ๋ ฅ.

println("str0: $str0 length: ${str0?.length ?: -1}")


if๋ฌธ๊ณผ ๋™์ผํ•˜๋‹ค.

3-3. ์Šค๋งˆํŠธ์บ์ŠคํŠธ

์ปดํŒŒ์ผ๋Ÿฌ ์Šค์Šค๋กœ ์ž๋ฃŒํ˜•์„ ๋ณ€ํ™˜ํ•˜๋Š” ๊ฒƒ.

[ Number ํ˜• ]
์ˆซ์ž๋ฅผ ์ €์žฅํ•˜๋Š” ํŠน์ˆ˜ ์ž๋ฃŒํ˜•

var tmp : Number = 13
tmp  = 13.0f
tmp = 13L

[ AS ]
์ž๋ฃŒํ˜• ๋ณ€ํ™˜์ด ์•ˆ๋˜๋ฉด, ์˜ˆ์™ธ ๋ฐœ์ƒ.

val tmp2 : String? = x as? String

3-4. Any ํ˜•

ํŠน๋ณ„ํ•œ ์ž๋ฃŒํ˜•์ด ์ •ํ•ด์ง€์ง€ ์•Š์€ ๊ฒฝ์šฐ ์‚ฌ์šฉํ•œ๋‹ค. ์–ด๋–ค ์ž๋ฃŒํ˜•์ด๋“  ๋  ์ˆ˜ ์žˆ๋‹ค. ๋˜ํ•œ, ๋ชจ๋“  ํด๋ž˜์Šค๋Š” Any ํ˜•์˜ ์ž์‹ ํด๋ž˜์Šค์ด๋‹ค.

var a : Any = 3
a = "Wow"

[QoS] 1: ๊ฐœ๋…

Quality of Service

์ˆ˜ ๋งŽ์€ ํŒจํ‚ท์„ ์ฃผ๊ณ  ๋ฐ›๋Š” ์ƒํ™ฉ์—์„œ ๋‹ค๋ฅธ ํŒจํ‚ท ๋ณด๋‹ค ๋จผ์ € ์ฒ˜๋ฆฌํ•ด์•ผํ•˜๋Š” ์ค‘์š”ํ•œ ํŒจํ‚ท์ด ์žˆ๊ธฐ ๋งˆ๋ จ์ด๋‹ค. ๊ทธ๋Ÿฐ ํŒจํ‚ท์„ ์œ„ํ•œ ๊ฒƒ์ด ๋ฐ”๋กœ QoS์ด๋‹ค.
VoIP์ฒ˜๋Ÿผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ํŒจํ‚ท์„ ์ฃผ๊ณ  ๋ฐ›์œผ๋ฉด์„œ ์ง€์—ฐ๋˜์ง€ ์•Š๋„๋ก, ๊ทธ๋ฆฌ๊ณ  ์ค‘์š”ํ•œ ํŠธ๋ž˜ํ”ฝ์˜ ๋Œ€์—ญํญ์„ ๋ณด์žฅํ•˜๊ณ  ํŠน์ • ํŠธ๋ž˜ํ”ฝ์„ ์ œํ•œํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.

Qos ์ž‘์—…์€ 6๊ฐ€์ง€๋กœ ๋ถ„๋ฅ˜ํ•  ์ˆ˜์žˆ๊ณ , 1~6๋ฒˆ ์ˆœ์„œ๋Œ€๋กœ ํ๋ฆ„์ด ์ง„ํ–‰๋œ๋‹ค.

  1. Classification (ํŠธ๋ž˜ํ”ฝ ๋ถ„๋ฅ˜)
  2. Policing (ํด๋ฆฌ์‹ฑ)
  3. Marking (์šฐ์„ ์ˆœ์œ„ ํ‘œ์‹œ)
  4. Congestion Avoidance (ํ˜ผ์žก ํšŒํ”ผ)
  5. Queueing (ํ์ž‰)
  6. Scheduling (์Šค์ผ€์ค„๋ง)
  7. Switch QoS ์„ค์ •
QoS ๊ฐ„๋žต ํ๋ฆ„

1. Classification – ํŠธ๋ž˜ํ”ฝ ๋ถ„๋ฅ˜

QoS ์ •์ฑ…์„ ์„ค์ •ํ•˜๊ธฐ ์•ž์„œ ๋จผ์ € QoS๋ฅผ ์ ์šฉํ•  ํŒจํ‚ท์„ ๊ตฌ๋ถ„ํ•œ๋‹ค.

์˜ˆ๋ฅผ ๋“ค๋ฉด,
(1) ํŠน์ • IP์—์„œ ์˜จ ํŒจํ‚ท
(2) ํŠน์ • ์ธํ„ฐํŽ˜์ด์Šค์—์„œ ์˜จ ํŒจํ‚ท
(3) ํŠน์ • ์šฐ์„ ์ˆœ์œ„(IP Precedence/DSCP/CoS)๋ฅผ ๊ฐ€์ง„ ํŒจํ‚ท

์ด๋ ‡๊ฒŒ ๋ง์ด๋‹ค.


2. Policing – ํด๋ฆฌ์‹ฑ

์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์†๋„๋ฅผ ์ œํ•œํ•œ๋‹ค. ํ†ต์‹ ์‚ฌ์—…์ž๊ฐ€ ๋งŽ์ด ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ํ•œ๋‹ค.
100Mbps๋กœ Policingํ•œ๋‹ค = ์ตœ๋Œ€ ์†๋„๊ฐ€ 100Mbps๊นŒ์ง€ ๋‚˜์˜จ๋‹ค.


3. Marking – ์šฐ์„ ์ˆœ์œ„ ํ‘œ์‹œ

ํ”„๋ ˆ์ž„์— ์šฐ์„  ์ˆœ์œ„๋ฅผ ํ‘œ์‹œํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๋งŒ์ผ, ์šฐ์„ ์ˆœ์œ„๋ฅผ ์„ค์ •ํ•˜์ง€ ์•Š์•˜๋‹ค๋ฉด, ์‹ค์‹œ๊ฐ„ ์ฒ˜๋ฆฌ๊ฐ€ ํ•„์š”ํ•œ ํŒจํ‚ท์ด ์ง€์—ฐ๋  ์ˆ˜ ์žˆ๋‹ค.
ํ”„๋กœํ† ์ฝœ์— ๋”ฐ๋ผ ์ง€์ •/์ง€์ • ๋ถˆ๊ฐ€ํ•˜๋‹ค.

3-1. Ethernet ํ”„๋ ˆ์ž„๊ณผ 802.1Q ํ”„๋ ˆ์ž„

Ethernet ํ”„๋ ˆ์ž„์—๋Š” ์šฐ์„ ์ˆ˜์œ„๋ฅผ ํ‘œ์‹œํ•  ํ•„๋“œ๊ฐ€ ์—†๋‹ค.
์ฆ‰, ์šฐ์„ ์ˆœ์œ„๋ฅผ ํ‘œ์‹œํ•  ์ˆ˜ ์—†๋‹ค.

802.1Q ํ”„๋ ˆ์ž„์˜ Tag ํ•„๋“œ์— CoS(Priority) ํ•ญ๋ชฉ์ด ์žˆ๋‹ค.
์šฐ์„ ์ˆ˜์œ„๋ฅผ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ๋‹ค.
์ฆ‰, Trunking ํฌํŠธ๋ฅผ ํ†ตํ•ด ์†ก์ˆ˜์‹ ๋˜๋Š” ํŠธ๋ž˜ํ”ฝ์€ ์šฐ์„ ์ˆœ์œ„๋ฅผ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ๋‹ค.

3-2. IP ํ—ค๋”

์ถœ์ฒ˜: What 8-bit field exists in IP packet for QoS?, ITExamAnswers, https://itexamanswers.net/question/what-8-bit-field-exists-in-ip-packet-for-qos

IP ํ—ค๋”์—์„œ IP Precedence ํ˜น์€ DSCP๋ฅผ ์ด์šฉํ•ด ์šฐ์„ ์ˆœ์œ„๋ฅผ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ๋‹ค.
IP Precedence : ๊ฐ’ 0~7, ๊ฐ’์ด ํด์ˆ˜๋ก ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋†’์•„์ง„๋‹ค.
DSCP : ๊ฐ’ 0~63, ๊ฐ’์˜ ํฌ๊ธฐ์˜ ๋”ฐ๋ฅธ ์˜๋ฏธ๋Š” ์—†๋‹ค. ๋ณดํ†ต VoIP์— DSCP ๊ฐ’ 46์„ ๋ถ€์—ฌํ•œ๋‹ค. 46์„ EF(Expected Forwarding)์ด๋ผ๊ณ  ํ•œ๋‹ค.
* DSCP ๊ฐ’ ์ฐธ๊ณ  : Cisco Configuration Guides

3-3. Marking ์‚ฌ์šฉ ์˜ˆ์‹œ

ํ† ํด๋กœ์ง€1. Marking ์‚ฌ์šฉ ์˜ˆ์‹œ

โ‘  โ‘ก : 802.1Q TAG์˜ CoS ํ•„๋“œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
โ‘ข : Serial์€ Ethernet ๋ฐฉ์‹์ด ์•„๋‹Œ RS232C, RS422A, RS485 ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•œ๋‹ค. ๊ทธ๋ž˜์„œ IPํ—ค๋”์˜ IP Precedence๋‚˜ DSCP๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
โ‘ฃ : Access ํฌํŠธ๋Š” ์šฐ์„ ์ˆœ์œ„๋ฅผ ํ‘œ์‹œํ•  ์ˆ˜ ์—†์–ด์„œ IPํ—ค๋”์˜ IP Precedence๋‚˜ DSCP๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
โ‘ค : 802.1Q TAG์˜ CoS ํ•„๋“œ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.


4. Congestion Avoidance -ํ˜ผ์žก ํšŒํ”ผ

ํ”„๋ ˆ์ž„์„ ์ž„์‹œ ์ €์žฅํ•  ํ๊ฐ€ ๊ฐ€๋“ ์ฐจ ์žˆ๋Š” ์ƒํƒœ๋ฅผ ํ˜ผ์žก์ด๋ผ๊ณ  ํ‘œํ˜„ํ•œ ๊ฒƒ ๊ฐ™๋‹ค. ํ๊ฐ€ ๊ฐ€๋“ ์ฐจ์žˆ๋Š” ์ƒํƒœ์—์„œ ํ”„๋ ˆ์ž„์„ ํ๊ธฐํ•˜๋Š” ๊ฒƒ์„ ํ˜ผ์žก ํšŒํ”ผ๋ผ๊ณ  ํ•œ๋‹ค. ํ˜ผ์žก ํšŒํ”ผ๋Š” ํฌ๊ฒŒ 3๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค.

TailDrop, WTD, WRED

4-1. TailDrop

๊ฐ„๋‹จํ•˜๋‹ค. ํ๊ฐ€ ๊ฐ€๋“ ์ฐผ์„ ๋•Œ, ์ดํ›„์— ๋„์ฐฉํ•˜๋Š” ํŒจํ‚ท๋“ค์„ ๋ชจ์กฐ๋ฆฌ ํ๊ธฐํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.

4-2. WTD

Weighted Tail Drop

CoS / DSCP ๊ฐ’์— ๋”ฐ๋ผ Taildrop์ด ์ผ์–ด๋‚˜๋Š” ์ž„๊ณ„์น˜(Threshold๋ผ๊ณ ๋„ ํ•จ)๋ฅผ ๋‹ค๋ฅด๊ฒŒ ํ•˜์—ฌ ํ๊ธฐํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. UDP๊ฐ€ ๋งŽ์€ ํ™˜๊ฒฝ์—์„œ ์‚ฌ์šฉํ•˜๋ฉด ํ˜ผ์žก ์ œ์–ด์— ์œ ๋ฆฌํ•˜๋‹ค๊ณ  ํ•œ๋‹ค.

4-3. WRED

Weighted Random Early Detection

WRED๋ฅผ ์„ค๋ช…ํ•˜๊ธฐ ์•ž์„œ ๋จผ์ € ‘Global TCP Synchronization’์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๋„๋ก ํ•˜์ž.


* Global TCP Synchronization์ด๋ž€?
TCP์™€ ๊ฐ™์ด ์‹ ๋ขฐ์„ฑ์ด ํ•„์š”ํ•œ ํ†ต์‹ ์€ ํŒจํ‚ท 1๊ฐœ๋ฅผ ๋ณด๋‚ด๊ณ  Ack๋ฅผ ๋ฐ›์•„์•ผ ๋‹ค์Œ ํŒจํ‚ท์„ ๋ณด๋‚ธ๋‹ค. ํ•˜์ง€๋งŒ ๊ณ„์† ์ด๋ ‡๊ฒŒ ํ†ต์‹ ํ•˜๋ฉด ๋‹น์—ฐํžˆ ํ†ต์‹ ์†๋„๋Š” ๋Š๋ ค์งˆ ๊ฒƒ์ด๋‹ค.
์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ ์ž ์ƒ๋Œ€ Ack์—†์ด ํ•œ๋ฒˆ์— ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋Š” ํŒจํ‚ท ์ˆ˜๋ฅผ ์ง€์ •ํ•˜๋Š” ‘Window Size’๋ผ๋Š” ๊ฐœ๋…์„ ๋„์ž…ํ–ˆ๋‹ค. ์—๋Ÿฌ๊ฐ€ ์—†๋‹ค๋ฉด Window Size๊ฐ€ ํฐ ๊ฒƒ์ด ์œ ๋ฆฌํ•  ๊ฑฐ๊ณ , ์—๋Ÿฌ๊ฐ€ ๋นˆ๋ฒˆํ•˜๋‹ค๋ฉด Window Size๊ฐ€ ์ž‘์€ ๊ฒƒ์ด ์œ ๋ฆฌํ•  ๊ฒƒ์ด๋‹ค.
ํ•œ ๋ฒˆ์— 1500๊ฐœ TCP ํŒจํ‚ท์„ ๋ณด๋ƒˆ๋Š”๋ฐ ๊ทธ ์ค‘ ์ƒ๋Œ€๊ฐ€ 500๊ฐœ๋ฅผ ๋ชป๋ฐ›์€ ์ƒํ™ฉ์ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ณด์ž. ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ ์ƒํ™ฉ์ธ๋ฐ, ์ด๋Ÿด ๋•Œ๋Š” Window Size๋ฅผ ์ค„์—ฌ์„œ ํŒจํ‚ท์„ ๋ณด๋‚ธ๋‹ค. ํ•œ๋ฒˆ์— ๋ณด๋‚ด๋Š” ํŒจํ‚ท๋Ÿ‰์ด ์ ์–ด์ง€๋‹ˆ ํ†ต์‹  ์†๋„๋„ ๋‚ฎ์•„์งˆ ๊ฒƒ์ด๋‹ค. ์ด ์ƒํ™ฉ์—์„œ ๋งŒ์•ฝ PC๊ฐ€ ์—ฌ๋Ÿฌ ๋Œ€ ์žˆ๋‹ค๋ฉด..? ์—ฌ๋Ÿฌ ๋Œ€์˜ PC๊ฐ€ ์ƒ๋Œ€์—๊ฒŒ ์ง€๊ธˆ ์—๋Ÿฌ๋‚ฌ์œผ๋‹ˆ ์žฌ์ „์†ก ์š”์ฒญ์„ ํ•  ๊ฒƒ์ด๋‹ค. ์ด๋ฏธ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ ์ƒํ™ฉ์ด๋ฏ€๋กœ ์ƒ๋Œ€๊ฐ€ Window Size๋ฅผ ์ค„์—ฌ์„œ ์žฌ์ „์†กํ•œ๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ ์ „์ฒด ํŒจํ‚ท ์ˆ˜๊ฐ€ ์ค„์–ด๋“ค๊ณ  ๋งํฌ ์‚ฌ์šฉ๋ฅ ๋„ ๋‚ฎ์•„์งˆ ๊ฒƒ์ด๋‹ค.
์ด๋ ‡๊ฒŒ ๋™์‹œ์— TCP Window Size ๋ฐ”๊พธ๋Š” ๊ฒƒ์„ ‘Global TCP synchronization’์ด๋ผ๊ณ  ํ•œ๋‹ค.


WRED๋Š” Global TCP Synchronization์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด TailDrop(์ „์ฒด ์—๋Ÿฌ)๊ฐ€ ๋ฐœ์ƒํ•˜๊ธฐ ์ „ ์ž„์˜์˜ ํŒจํ‚ท์„ ํ๊ธฐํ•œ๋‹ค. ๊ทธ๋ ‡๊ฒŒ ๋˜๋ฉด ํŠน์ • ์žฅ๋น„์—์„œ๋งŒ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค๊ณ  ์ธ์‹ํ•˜๊ณ  Window Size๋ฅผ ์ค„์ธ๋‹ค.

์ฆ‰, ๋Œ€์˜๋ฅผ ์œ„ํ•ด ์ผ๋ถ€๋ฅผ ํฌ์ƒํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋  ๊ฒƒ ๊ฐ™๋‹ค.


5. Queueing – ํ์ž‰

ํ”„๋ ˆ์ž„์„ ์ „์†กํ•˜๊ธฐ ์ „ ์ž„์‹œ๋กœ ๋ณด๊ด€ํ•˜๋Š” ์žฅ์†Œ๋ฅผ Queue๋ผ๊ณ  ํ•œ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ์ด Queue๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์„ Queueing์ด๋ผ๊ณ  ํ•œ๋‹ค.

ํ†ต์‹ ์žฅ๋น„๋Š” ์ž…๋ ฅํ/์ถœ๋ ฅํ๋ฅผ ๊ฐ–๊ณ  ์žˆ๋‹ค. (์žฅ๋น„๋งˆ๋‹ค ํ์˜ ๊ฐœ์ˆ˜๊ฐ€ ๋‹ค๋ฅด๋‹ค.)
– ์ž…๋ ฅํ: ํ”„๋ ˆ์ž„ ์ˆ˜์‹  ํ›„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์ „ ๋ณด๊ด€ํ•˜๋Š” ํ
– ์ถœ๋ ฅํ: ์ฒ˜๋ฆฌ ํ›„ ์™ธ๋ถ€๋กœ ์ „์†กํ•˜๊ธฐ ์ „ ๋ณด๊ด€ํ•˜๋Š” ํ
ํ ์ „์†ก ๋ฐฉ๋ฒ•์— ๋”ฐ๋ผ ํ‘œ์ค€ํ/์šฐ์„ ํ๋กœ ๋‚˜๋ˆˆ๋‹ค. ์šฐ์„ ํ์— ์ €์žฅ๋œ ํ”„๋ ˆ์ž„์ด ๋” ๋จผ์ € ์ „์†ก๋œ๋‹ค.


6. Scheduling – ์Šค์ผ€์ค„๋ง

Queue์— ์ €์žฅ๋œ ํ”„๋ ˆ์ž„์„ ์™ธ๋ถ€๋กœ ์ „์†กํ•œ๋‹ค.
Scheduling ๋ฐฉ์‹์€ ํฌ๊ฒŒ 3๊ฐ€์ง€๋กœ ๋‚˜๋‰œ๋‹ค.

WRR, DWRR, Strict-priority queueing

6-1. WRR

Weighted Round Robin

์ •ํ•ด์ง„ ๋น„์œจ๋Œ€๋กœ ์ฐจ๋ก€์ฐจ๋ก€ ๋Œ์•„๊ฐ€๋ฉฐ ํ”„๋ ˆ์ž„์„ ์ „์†กํ•œ๋‹ค.

6-2. DWRR

Deficit Weighted Round Robin

์ˆœ์„œ(์ฐจ๋ก€)๊ฐ€ ๋˜์–ด๋„ ์ „์†กํ•  ํ”„๋ ˆ์ž„ ํฌ๊ธฐ๋ณด๋‹ค deficit counter ์ž‘์œผ๋ฉด, ํ”„๋ ˆ์ž„์„ ์ „์†กํ•˜์ง€ ์•Š๊ณ  deficit counter๋ฅผ ์ฆ๊ฐ€์‹œํ‚จ ๋’ค ๋‹ค์Œ ์ฐจ๋ก€์— ์ „์†กํ•œ๋‹ค.

6-3. Strict-priority Queueing

์ตœ์šฐ์„  ํ์ž‰

์šฐ์„ ํ์— ์ €์žฅ๋œ ํ”„๋ ˆ์ž„์„ ๋จผ์ € ์ „์†กํ•œ๋‹ค.
๋ณดํ†ต VoIP ํ”„๋ ˆ์ž„์„ ์ตœ์šฐ์„ ํ์ž‰ํ•œ๋‹ค.


7. Switch QoS ์„ค์ •

QoS ์„ค์ •์€ MQC ๊ด€๋ จ ๋ช…๋ น์–ด์™€ mls qos ๊ด€๋ จ ๋ช…๋ น์–ด๊ฐ€ ์žˆ๋‹ค.

7-1. MQC ๊ด€๋ จ ๋ช…๋ น์–ด

Modular QoS CLI

์Šค์œ„์น˜๋‚˜ ๋ผ์šฐํ„ฐ์—์„œ ์‚ฌ์šฉ๋˜๋Š” QoS ๋ช…๋ น์–ด ์ฒด๊ณ„์ด๋‹ค. ์Šค์œ„์น˜์—์„œ๋Š” ์ฃผ๋กœ Marking์ด๋‚˜ Policing์„ ์œ„ํ•ด ์‚ฌ์šฉํ•œ๋‹ค.

– ์„ค์ •4๋‹จ๊ณ„
(1) class-map : QoS ์ž‘์—… ๋Œ€์ƒ ๋ถ„๋ฅ˜
(2) policy-map : QoS ์ •์ฑ… ํ‘œ์‹œ
(3) service-policy : policy-map ์ ์šฉ
(4) show policy-map interface <INTERFACE> : QoS ๋™์ž‘ ํ™•์ธ

7-2. mls qos ๊ด€๋ จ ๋ช…๋ น์–ด

Queue ๋ณ„ ๋Œ€์—ญํญ ๋น„์œจ, ๊ธธ์ด, ๋งคํ•‘ ๋“ฑ Queue์™€ ๊ด€๋ จ๋œ ์„ค์ •์ด๋‹ค.

DHCP 2: ๋ณด์•ˆ

DHCP์™€ ๊ด€๋ จ๋œ ๋ณด์•ˆ์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๋„๋ก ํ•˜์ž.

1. DHCP Snooping
2. IP Source Guard
3. Dynamic ARP Inspection


1. DHCP Snooping

์ผ๋ฐ˜์ ์œผ๋กœ DHCP์™€ ๊ด€๋ จ๋œ ๊ณต๊ฒฉ์œผ๋กœ
โ‘  ๊ณต๊ฒฉ์ž๊ฐ€ DHCP ์„œ๋ฒ„ ํ–‰์„ธ ๋ฐ ํด๋ผ์ด์–ธํŠธ๋“ค์ด ๊ณต๊ฒฉ์ž์™€ ํ†ต์‹ ํ•˜๋Š” ๊ฒƒ โ‘ก ๊ณต๊ฒฉ์ž๊ฐ€ ํ• ๋‹นํ•  ์ˆ˜ ์žˆ๋Š” IP๋ฅผ ๋ชจ๋‘ ๋ฐ›์•„๊ฐ€์„œ ๋‹ค๋ฅธ ํด๋ผ์ด์–ธํŠธ๋“ค์ด IPํ• ๋‹น์„ ๋ฐ›์ง€ ๋ชปํ•˜๊ฒŒ ํ•˜๋Š” ๊ฒƒ
์ด ๋‘ ๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค. 

์ด๋Ÿฐ ์œ ํ˜•์˜ ๊ณต๊ฒฉ์„ ๋ฐฉ์ง€ํ•˜๋Š” ๊ธฐ์ˆ ์ด DHCP Snooping์ด๋‹ค.

1-1. DHCP Snooping ๋™์ž‘ ๋ฐฉ์‹

DHCP ์„œ๋ฒ„ ํ˜น์€ DHCP ๋ฆด๋ ˆ์ด ์„œ๋ฒ„๊ฐ€ ์—ฐ๊ฒฐ๋œ ํฌํŠธ๋ฅผ ‘Trusted’๋กœ ์ง€์ •ํ•˜๊ณ , ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์—ฐ๊ฒฐ๋œ ํฌํŠธ๋ฅผ ‘Untrusted’๋กœ ์ง€์ •ํ•œ๋‹ค.

Trusted ํฌํŠธ์—์„œ ์ˆ˜์‹ ํ•œ DHCP ๋ฉ”์„ธ์ง€๋Š” ๋ณ„๋„๋กœ ํ™•์ธ์„ ํ•˜์ง€ ์•Š๊ณ ,
Untrusted ํฌํŠธ์—์„œ ์ˆ˜์‹ ํ•œ DHCP ์„œ๋ฒ„์˜ ๋ฉ”์„ธ์ง€, DHCP ๋ฆด๋ ˆ์ด ์„œ๋ฒ„์˜ ๋ฉ”์„ธ์ง€๋Š” ์ฐจ๋‹จํ•œ๋‹ค.
๋˜ํ•œ, Ethernet ํ”„๋ ˆ์ž„์˜ MAC ์ฃผ์†Œ์™€ DHCP ๋ฉ”์„ธ์ง€์˜ Client Hardware ์ฃผ์†Œ๊ฐ€ ๋‹ค๋ฅด๋ฉด ์ฐจ๋‹จํ•œ๋‹ค.

1-2. DHCP Snooping ๋™์ž‘ ๊ณผ์ •

ํ† ํด๋กœ์ง€1. DHCP Snooping

– DHCP ์„œ๋ฒ„์™€ ์—ฐ๊ฒฐ๋œ F0/3 : Trusted Port
– ์ด์™ธ ๋‚˜๋จธ์ง€ ์ธํ„ฐํŽ˜์ด์Šค : Untrusted Port

1-3. DHCP Snooping ์„ค์ •

Switch(config)# ip dhcp snooping
Switch(config)# ip dhcp snooping <INTERFACE>
Switch(config)# 
Switch(config)# int <interface>
Switch(config-if)# ip dhcp snooping trust

# DHCP Snooping Binding Table ํ™•์ธ
Switch# show ip dhcp snooping binding

2. IP Source Guard

๊ณต๊ฒฉ์ž๊ฐ€ Source IP๋ฅผ ์†์—ฌ ํ†ต์‹ ํ•˜๋Š” ๊ฒƒ์„ ์ฐจ๋‹จํ•œ๋‹ค. L2 ์žฅ๋น„์—์„œ ์‚ฌ์šฉํ•œ๋‹ค. DHCP Snooping๊ณผ ๋™์‹œ์— ์‚ฌ์šฉํ•œ๋‹ค.

* IP Spoofing = ๋‚จ์˜ IP๋ฅผ ์ž์‹ ์˜ ๊ฒƒ์ฒ˜๋Ÿผ ์†์ด๋Š” ํ–‰์œ„.

ํ† ํด๋กœ์ง€2. IP Spoofing ๋™์ž‘ ๋ฐฉ์‹

2-1. IP Source Guard ๋™์ž‘ ๋ฐฉ์‹

โ‘  ๊ณต๊ฒฉ์ž๊ฐ€ PING ํŒจํ‚ท์„ ์Šค์œ„์น˜๋กœ ์ „์†กํ•œ๋‹ค.

โ‘ก ํŒจํ‚ท์„ ๋ฐ›์€ PC๋Š” ๋ชฉํ‘œ ๋Œ€์ƒ์œผ๋กœ ์‘๋‹ตํ•œ๋‹ค.

ํ•˜์ง€๋งŒ IP Source Guard๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด,  โ‘  ์ดํ›„ ์Šค์œ„์น˜๊ฐ€ DHCP Binding Table์™€ ๋น„๊ตํ•œ๋‹ค.(IP Source Binding์œผ๋กœ ๋น„๊ตํ•  ์ˆ˜๋„ ์žˆ๋‹ค.) 
๋น„๊ต ํ›„ ์ˆ˜์‹ ํ•œ ํ”„๋ ˆ์ž„์˜ ์ถœ๋ฐœ์ง€ IP๊ฐ€ ๋‹ค๋ฅด๋‹ค๋ฉด, ํ•ด๋‹น ํŒจํ‚ท์„ ์ฐจ๋‹จํ•œ๋‹ค.

2-2. IP Source Guard ์„ค์ •

[์„ค์ •]
๊ธฐ๋ณธ์œผ๋กœ DHCP Snooping ์„ค์ •์ด ๋˜์–ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.

Switch(config)# int <interface>
Switch(config-if)# ip verify source

#IP Source Binding Table
Switch# show ip verify source

[IP Source Binding ์„ค์ •]

Switch(config)# ip source binding <MAC> <VLAN> <IP> <INTERFACE>

3. Dynamic ARP Inspection ; DAI

ARP Spoofing์„ ์ฐจ๋‹จํ•˜๊ธฐ ์œ„ํ•ด DAI๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

3-1.  ARP Spoofing์ด๋ž€?

๊ณต๊ฒฉ์ž๊ฐ€ ARP ํŒจํ‚ท์„ ๋ณด๋‚ผ ๋•Œ, ์ž์‹ ์˜ MAC ์ฃผ์†Œ๋ฅผ GW๋‚˜ Server ๋“ฑ์˜ MAC ์ฃผ์†Œ๋กœ ์†์—ฌ์„œ ๋ณด๋‚ธ๋‹ค. ๊ทธ๋ฆฌ๊ณ  GW๋กœ๋Š” ์ž์‹ ์ด Host, Server๋ผ๊ณ  ๊ด‘๊ณ ํ•œ๋‹ค.  ์ด๋ ‡๊ฒŒ ๋˜๋ฉด ๊ฒฐ๊ตญ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋Š” ๊ณต๊ฒฉ์ž๋ฅผ ๊ฑฐ์น˜๊ฒŒ ๋  ๊ฒƒ์ด๋‹ค.

ํŠนํžˆ๋‚˜, ARP๋Š” ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰์— ๋“ค์–ด์˜จ ์ •๋ณด๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ฃผ๊ธฐ์ ์œผ๋กœ ์ด๋Ÿฐ ์‹์œผ๋กœ ARP ๊ด‘๊ณ ๋ฅผ ํ•œ๋‹ค๋ฉด ๋‚ด๋ถ€ ํ˜ธ์ŠคํŠธ๋“ค์€ ๊ณต๊ฒฉ์ž์˜ MAC์ฃผ์†Œ๊ฐ€ GW๋‚˜ ์„œ๋ฒ„์˜ MAC ์ฃผ์†Œ์ธ ์ค„ ์•Œ๊ฒŒ ๋˜๋ฏ€๋กœ ์œ„ํ—˜ํ•˜๋‹ค.

์ด๋Ÿฐ ํŒจํ‚ท์„ ์ฐจ๋‹จํ•˜๊ธฐ ์œ„ํ•ด DAI๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.


3-2. Dynamic ARP Inspection ๋™์ž‘ ๋ฐฉ์‹

DAI๊ฐ€ ๋™์ž‘ํ•˜๋ฉด ๋ชจ๋“  ARP ์š”์ฒญ/์‘๋‹ต ํŒจํ‚ท์„ ๊ฒ€์‚ฌํ•˜๊ฒŒ ๋œ๋‹ค.
์Šค์œ„์น˜๊ฐ€ ์ˆ˜์‹ ํ•œ ARP ํ”„๋ ˆ์ž„๊ณผ DHCP Binding Table ๋˜๋Š” ARP ACL์ด ์ผ์น˜ํ•ด์•ผ ํ”„๋ ˆ์ž„์„ ์ „์†กํ•œ๋‹ค.

3-3. Dynamic ARP Inspection ์„ค์ •

[์„ค์ •]
DAI๊ฐ€ ๋™์ž‘ํ•˜๊ธฐ ์œ„ํ•ด์„  DHCP Snooping์ด ๋™์ž‘ํ•ด์•ผ ํ•œ๋‹ค.

Switch(config)# ip dhcp snooping
Switch(config)# ip dhcp snooping <VLAN>
Switch(config)# ip arp inspection <VLAN>
Switch(config)# 
Switch(config)# int <INTERFACE>
Switch(config-if)# ip dhcp snooping trust
Switch(config-if)# ip arp inspection trust

[ARP ACL ์„ค์ •]

Switch(config)# arp access-list <NAME>
Switch(config-arp-nacl)# permit ip <SOURCE> mac <DESTINATION>
Switch(config-arp-nacl)# exit
Switch(config)# 
Switch(config)# ip arp inspection filter <NAME> <VLAN>