[๐Ÿ“Œ] Linux & Network

KH55Sยท2025๋…„ 11์›” 20์ผ

๋ฆฌ๋ˆ…์Šค ๋„คํŠธ์›Œํฌ ๊ฒฉ๋ฆฌ : Network Namespace, VETH

  • OpenStack์˜ ํ”„๋กœ์ ํŠธ ๊ฒฉ๋ฆฌ๋‚˜ K8s Pod ๊ฒฉ๋ฆฌ๋Š” ๋ฆฌ๋ˆ…์Šค ์ปค๋„์˜ ๊ธฐ๋Šฅ์ธ Network Namespace(netns)๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ๋‹ค.

๐Ÿ“Œ Network Namespace (netns)

  • ๋ฆฌ๋ˆ…์Šค ์ปค๋„์ด ์ œ๊ณตํ•˜๋Š” ํ”„๋กœ์„ธ์Šค ๊ฒฉ๋ฆฌ ๊ธฐ์ˆ  ์ค‘ ํ•˜๋‚˜์ด๋‹ค. ์‹œ์Šคํ…œ์˜ ๋„คํŠธ์›Œํฌ ๋ฆฌ์†Œ์Šค๋ฅผ ๋…ผ๋ฆฌ์ ์œผ๋กœ ๋ถ„ํ• ํ•˜์—ฌ, ๋งˆ์น˜ ๋ณ„๋„์˜ ๋ฌผ๋ฆฌ์ ์ธ ๋„คํŠธ์›Œํฌ ์žฅ๋น„๋ฅผ ๊ฐ€์ง„ ๊ฒƒ์ฒ˜๋Ÿผ ๋…๋ฆฝ๋œ ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•œ๋‹ค.
  • ๋…๋ฆฝ๋˜๋Š” ๋ฆฌ์†Œ์Šค
    • Network Interface : ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค ์นด๋“œ (NIC, veth ๋“ฑ)
    • Routing Table : ํŒจํ‚ท์˜ ๊ฒฝ๋กœ๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ๋ผ์šฐํŒ… ํ…Œ์ด๋ธ”
    • ARP Table : IP ์ฃผ์†Œ์™€ MAC ์ฃผ์†Œ ๋งคํ•‘ ์ •๋ณด
    • Firewall Rules (iptables/ntftables) : ํŒจํ‚ท ํ•„ํ„ฐ๋ง ๊ทœ์น™
    • Socket : TCP/UDP ์†Œ์ผ“ ์ •๋ณด
  • ๋ฆฌ๋ˆ…์Šค ๋ถ€ํŒ… ์‹œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์กด์žฌํ•˜๋Š” ๊ณต๊ฐ„์„ Root Namespace๋ผ๊ณ  ํ•˜๋ฉฐ, ๋ณ„๋„๋กœ ์ƒ์„ฑํ•˜๋Š” ์ƒˆ๋กœ์šด Namespace๋Š” ์ด์™€ ์™„์ „ํžˆ ๊ฒฉ๋ฆฌ๋œ๋‹ค. ๋”ฐ๋ผ์„œ A Namespace์—์„œ ์„ค์ •ํ•œ IP๋‚˜ ๋ผ์šฐํŒ… ๊ทœ์น™์€ B Namespace๋‚˜ Root Namespace์— ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๋Š”๋‹ค.
# Namespace(netns) 'red' ์ƒ์„ฑ
ip netns add red

# ํ˜„์žฌ ์‹œ์Šคํ…œ์˜ Namespace ๋ชฉ๋ก ํ™•์ธ
ip netns list
  • /var/run/netns/ ๊ฒฝ๋กœ์— ํ•ด๋‹น ์ด๋ฆ„์˜ ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜์—ฌ ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋ฅผ ์œ ์ง€ํ•œ๋‹ค.

๐Ÿ“Œ VETH (Virtual Ethernet) Pair

  • Namespace๋ฅผ ์ƒ์„ฑํ•˜๋ฉด ๊ทธ ์•ˆ์€ ํ…… ๋น„์–ด ์žˆ๊ณ  ์™ธ๋ถ€์™€ ๋‹จ์ ˆ๋œ ์ƒํƒœ์ด๋‹ค. ์ด๋ฅผ ์—ฐ๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด VETH Pair๊ฐ€ ํ•„์š”ํ•˜๋‹ค.
  • ์ •์˜ : ๋ฆฌ๋ˆ…์Šค ์ปค๋„์—์„œ ์ง€์›ํ•˜๋Š” ๊ฐ€์ƒ ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค ์Œ์ด๋‹ค. ํ•ญ์ƒ 2๊ฐœ์˜ ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ํ•œ ์Œ์œผ๋กœ ์ƒ์„ฑ๋œ๋‹ค.
  • ํŠน์ง• : ํ•œ์ชฝ ์ธํ„ฐํŽ˜์ด์Šค๋กœ ํŒจํ‚ท์ด ๋“ค์–ด์˜ค๋ฉด, ์ปค๋„ ๋‚ด๋ถ€ ๋ฒ„ํผ๋ฅผ ํ†ตํ•ด ์ฆ‰์‹œ ๋ฐ˜๋Œ€์ชฝ ์ธํ„ฐํŽ˜์ด์Šค๋กœ ์ „๋‹ฌ๋œ๋‹ค. (๋ฌผ๋ฆฌ์ ์ธ ๋žœ ์ผ€์ด๋ธ”์˜ ์–‘์ชฝ ๋์ด๋ผ๊ณ  ์ดํ•ดํ•˜๋ฉด ์ •ํ™•ํ•˜๋‹ค.)
  • ์šฉ๋„
    • Root Namespace์™€ ๊ฒฉ๋ฆฌ๋œ Namespace ๊ฐ„์˜ ์—ฐ๊ฒฐ
    • ์„œ๋กœ ๋‹ค๋ฅธ ๋‘ Namespace ๊ฐ„์˜ ์—ฐ๊ฒฐ
    • Namespace์™€ ๊ฐ€์ƒ ์Šค์œ„์น˜(Linux Bridge) ๊ฐ„์˜ ์—ฐ๊ฒฐ
# VETH Pair ์ƒ์„ฑ (2๊ฐœ์˜ ๊ฐ€์ƒ ์ธํ„ฐํŽ˜์ด์Šค ์Œ์„ ์ƒ์„ฑ, ์•„์ง Root Namespace์— ์กด์žฌ)
# ip link add [์žฅ์น˜๋ช…] type veth peer name [์ƒ๋Œ€๋ฐฉ์žฅ์น˜๋ช…]
ip link add veth-red type veth peer name veth-root

# ์ธํ„ฐํŽ˜์ด์Šค ์ด๋™ (์ƒ์„ฑํ•œ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํŠน์ • ๋„ค์ž„์ŠคํŽ˜์ด์Šค ์•ˆ์œผ๋กœ ์ด๋™์‹œํ‚ด)
ip link set veth-red netns red

# ๋„ค์ž„์ŠคํŽ˜์ด์Šค ๋‚ด๋ถ€ ๋ช…๋ น ์‹คํ–‰ ๋ฐ IP ํ• ๋‹น (ip netns exec)
# ๊ฒฉ๋ฆฌ๋œ ๊ณต๊ฐ„์ธ red ์•ˆ์—์„œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜๋ ค๋ฉด ip netns exec๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.
ip netns exec red ip addr add 10.0.0.2/24 dev veth-red

# red ๋„ค์ž„์ŠคํŽ˜์ด์Šค ์•ˆ์˜ veth-red ์ธํ„ฐํŽ˜์ด์Šค ํ™œ์„ฑํ™” (up)
ip netns exec red ip link set veth-red up

# Root ๋„ค์ž„์ŠคํŽ˜์ด์Šค์— ๋‚จ๊ฒจ์ง„ veth-root์—๋„ IP ํ• ๋‹น ๋ฐ ํ™œ์„ฑํ™”
ip addr add 10.0.0.1/24 dev veth-root
ip link set veth-root up
  • ๋…ผ๋ฆฌ์ ์œผ๋กœ ์„œ๋กœ ๋‹ค๋ฅธ netns์— ์žˆ๋Š” Root์™€ Red๊ฐ€ ์—ฐ๊ฒฐ๋˜์—ˆ๋‹ค.
  • ping : ๋ฌผ๋ฆฌ ๋„คํŠธ์›Œํฌ ์นด๋“œ๋ฅผ ๊ฑฐ์น˜์ง€ ์•Š๊ณ , ์ปค๋„ ๋ฉ”๋ชจ๋ฆฌ ๋‚ด์—์„œ VETH Pair๋ฅผ ํ†ตํ•ด ์ง์ ‘ ํŒจํ‚ท์ด ๋ณต์‚ฌ๋˜์–ด ์ „๋‹ฌ๋œ๋‹ค.

Linux Bridge

  • ๋ฆฌ๋ˆ…์Šค ์ปค๋„ ๋‚ด๋ถ€์— ๊ตฌํ˜„๋œ ๊ฐ€์ƒ L2 ์Šค์œ„์น˜. ๋ฌผ๋ฆฌ์ ์ธ ์Šค์œ„์น˜ ์žฅ๋น„๊ฐ€ ํ•˜๋Š” ์ผ๊ณผ ์ •ํ™•ํžˆ ๋˜‘๊ฐ™์€ ์ผ์„ ์†Œํ”„ํŠธ์›จ์–ด๋กœ ์ˆ˜ํ–‰ํ•œ๋‹ค.
  • ๊ธฐ๋Šฅ : ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค(VETH์˜ ํ•œ์ชฝ ๋, ๋ฌผ๋ฆฌ NIC)๋ฅผ ํ•˜๋‚˜์˜ ๋ธŒ๋ฆฌ์ง€์— ์—ฐ๊ฑธํ•˜์—ฌ, ๊ฐ™์€ L2 ์„ธ๊ทธ๋จผํŠธ(๋™์ผํ•œ ์„œ๋ธŒ๋„ท)์— ์žˆ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ํ†ต์‹ ํ•˜๊ฒŒ ํ•ด์ค€๋‹ค.
  • ๋™์ž‘ ์›๋ฆฌ
    • MAC Learning : ๋ธŒ๋ฆฌ์ง€ ํฌํŠธ๋กœ ๋“ค์–ด์˜ค๋Š” ํŒจํ‚ท์˜ Source MAC Address๋ฅผ ๋ณด๊ณ , "์ด MAC ์ฃผ์†Œ๋Š” ์ด ํฌํŠธ์— ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋‹ค"๋ผ๋Š” ์ •๋ณด๋ฅผ FDB(Forwarding Database) ํ…Œ์ด๋ธ”์— ๊ธฐ๋กํ•œ๋‹ค.
    • Forwarding : ํŒจํ‚ท์˜ Destination MAC Address๊ฐ€ FDB์— ์žˆ๋‹ค๋ฉด ํ•ด๋‹น ํฌํŠธ๋กœ๋งŒ ํŒจํ‚ท์„ ๋ณด๋‚ธ๋‹ค. (Unicast)
    • Flooding : Destination MAC์ด FDB์— ์—†๊ฑฐ๋‚˜ ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธ ํŒจํ‚ท(ARP ๋“ฑ)์ด๋ผ๋ฉด, ๋“ค์–ด์˜จ ํฌํŠธ๋ฅผ ์ œ์™ธํ•œ ๋ชจ๋“  ํฌํŠธ๋กœ ํŒจํ‚ท์„ ๋ฟŒ๋ฆฐ๋‹ค.
  • 2๊ฐœ์˜ ๋„ค์ž„์ŠคํŽ˜์ด์Šค red, blue๋ฅผ ๋งŒ๋“ค๊ณ , ์ด ๋‘˜์„ ์ง์ ‘ ์—ฐ๊ฒฐํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ br0๋ผ๋Š” ๋ธŒ๋ฆฌ์ง€๋ฅผ ํ†ตํ•ด ํ†ต์‹ ํ•˜๋„๋ก ๊ตฌ์„ฑ
# ๋ธŒ๋ฆฌ์ง€ br0 ์ƒ์„ฑ ๋ฐ ํ™œ์„ฑํ™”(=์Šค์œ„์น˜ ์ „์› ์ผœ๊ธฐ)
ip link add br0 type bridge
ip link set br0 up


# netns ์ƒ์„ฑ
ip netns add red
ip netns add blue

# VETH Pair ์ƒ์„ฑ (red์šฉ, blue์šฉ)
ip link add veth-red type veth peer name veth-red-br
ip link add veth-blue type veth peer name veth-blud-br

# ์ธํ„ฐํŽ˜์ด์Šค ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋กœ ์ด๋™
ip link set veth-red netns red
ip link set veth-blue netns blue

# ๋„ค์ž„์ŠคํŽ˜์ด์Šค ๋‚ด๋ถ€์— ์žˆ๋Š” ์ธํ„ฐํŽ˜์ด์Šค์— IP ํ• ๋‹น ๋ฐ ํ™œ์„ฑํ™”
ip netns exec red ip addr add 10.0.0.2/24 dev veth-red
ip netns exec red ip link set veth-red up
ip netns exec blue ip addr add 10.0.0.3/24 dev veth-blue
ip netns exec blud ip link set veth-blue up

# Root ๋„ค์ž„์ŠคํŽ˜์ด์Šค์— ๋‚จ์•„ ์žˆ๋Š” ๊ฐ VETH์˜ ํ•œ์ชฝ ๋๋“ค์„ ์Šค์œ„์น˜(br0)์˜ ํฌํŠธ์— ์—ฐ๊ฒฐ
ip link set veth-red-br master br0
ip link set veth-red-br up

ip link set veth-blue-br master br0
ip link set veth-blud-br up
  • ๊ตฌ์กฐ : [NS red] veth-red <-> veth-red-br <-> [Bridge br0] <-> veth-blue-br <-> [NS blue] veth-blue
  • ๋ฌผ๋ฆฌ์ ์œผ๋กœ ์—ฐ๊ฒฐ๋œ ์„ ์ด ์—†์ง€๋งŒ, br0๊ฐ€ L2 ์Šค์œ„์นญ์„ ํ†ตํ•ด ํŒจํ‚ท์„ ์ „๋‹ฌ (ํ•‘ ๊ฐ€๋Šฅ)
# - FDB ํ…Œ์ด๋ธ” ์กฐํšŒ
bridge fdb show br0
33:33:00:00:00:01 dev br0 self permanent
0a:5b:12:34:56:78 dev veth-red-br master br0
0a:5b:87:65:43:21 dev veth-blue-br master br0
  • ๋ธŒ๋ฆฌ์ง€์— ์—ฐ๊ฒฐ๋˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ Promiscuous Mode(๋ฌด์ฐจ๋ณ„ ๋ชจ๋“œ)๋กœ ๋™์ž‘ํ•ด์•ผ ํ•œ๋‹ค. ์ผ๋ฐ˜์ ์ธ NIC๋Š” ์ž์‹ ์˜ MAC ์ฃผ์†Œ๊ฐ€ ์•„๋‹Œ ํŒจํ‚ท์€ ๋ฒ„๋ฆฌ์ง€๋งŒ, ๋ธŒ๋ฆฌ์ง€ ํฌํŠธ๋Š” ์ž์‹ ์—๊ฒŒ ์˜ค์ง€ ์•Š์€ ํŒจํ‚ท์ด๋ผ๋„ ๋ธŒ๋ฆฌ์ง€ ๋กœ์ง(์ „๋‹ฌ)์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ๋ชจ๋“  ํŒจํ‚ท์„ ๋ฐ›์•„๋“ค์—ฌ์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๋ฆฌ๋ˆ…์Šค ๋ธŒ๋ฆฌ์ง€๋Š” ์—ฐ๊ฒฐ ์‹œ ์ž๋™์œผ๋กœ ์ด๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค.

IP Forwarding & Routing Table

  • ์„œ๋กœ ๋‹ค๋ฅธ ๋„คํŠธ์›Œํฌ ๋Œ€์—ญ์„ ์—ฐ๊ฒฐํ•˜๋Š” L3 ๋ผ์šฐํŒ…๊ณผ ๋ฆฌ๋ˆ…์Šค ์ปค๋„์ด ๋ผ์šฐํ„ฐ ์—ญํ• ์„ ํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” IP Forwarding.
    • OpenStack์˜ Neutron L3 Agent๋‚˜ K8s์˜ CNI ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ๋™์ž‘ํ•˜๋Š” ๊ธฐ๋ณธ ์›๋ฆฌ.

  • ๋ฆฌ๋ˆ…์Šค ์‹œ์Šคํ…œ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ตœ์ข… ๋ชฉ์ ์ง€๊ฐ€ ์ž์‹ ์ธ ํŒจํ‚ท๋งŒ ๋ฐ›์•„๋“ค์ด๊ณ , ์ž์‹ ์ด ๋ชฉ์ ์ง€๊ฐ€ ์•„๋‹Œ ํŒจํ‚ท์€ ํŒจ๊ธฐํ•œ๋‹ค. ๋ฆฌ๋ˆ…์Šค๋ฅผ ๋ผ์šฐํ„ฐ์Šค ์‹œ์Šคํ…œ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ตœ์ข… ๋ชฉ์ ์ง€๊ฐ€ ์ž์‹ ์ธ ํŒจํ‚ท๋งŒ ๋ฐ›์•„๋“ค์ด๊ณ , ์ž์‹ ์ด ๋ชฉ์ ์ง€๊ฐ€ ์•„๋‹Œ ํŒจํ‚ท์€ ํŒจ๊ธฐํ•œ๋‹ค. ๋ฆฌ๋ˆ…์Šค๋ฅผ ๋ผ์šฐํ„ฐ์ฒ˜๋Ÿผ ์“ฐ๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ด ๊ธฐ๋Šฅ์„ ํ™œ์„ฑํ™”ํ•˜๊ณ , ๊ฒฝ๋กœ๋ฅผ ์•Œ๋ ค์ค˜์•ผ ํ•œ๋‹ค.
  1. IP Forwarding (ํŒจํ‚ท ์ „๋‹ฌ)
    • ๊ฐœ๋… : ํ•˜๋‚˜์˜ ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค๋กœ ๋“ค์–ด์˜จ ํŒจํ‚ท์˜ ๋ชฉ์ ์ง€ IP๊ฐ€ ์ž์‹ ์ด ์•„๋‹ ๋•Œ, ์ด๋ฅผ ๋ฒ„๋ฆฌ์ง€ ์•Š๊ณ  ์ ์ ˆํ•œ ๋‹ค๋ฅธ ์ธํ„ฐํŽ˜์ด์Šค๋กœ ๋„˜๊ฒจ์ฃผ๋Š” ๊ธฐ๋Šฅ
    • ๋ฆฌ๋ˆ…์Šค ๊ธฐ๋ฐ˜์˜ ๋ฐฉํ™”๋ฒฝ, ๋ผ์šฐํ„ฐ, K8s ๋…ธ๋“œ๊ฐ€ ํŒŒ๋“œ ๊ฐ„ ํ†ต์‹ ์„ ์ค‘๊ณ„ํ•˜๊ธฐ ์œ„ํ•ด ๋ฐ˜๋“œ์‹œ ์ผœ์ ธ ์žˆ์–ด์•ผ ํ•˜๋Š” ์ปค๋„ ํŒŒ๋ผ๋ฏธํ„ฐ์ด๋‹ค.
  2. Routing Table
    • ๊ฐœ๋… : ์ด ๋ชฉ์ ์ง€ IP๋กœ ๊ฐ€๋ ค๋ฉด ์–ด๋А ์ธํ„ฐํŽ˜์ด์Šค๋กœ ๋‚˜๊ฐ€์•ผ ํ•˜๊ณ , ๋ˆ„๊ตฌ(Gateway)์—๊ฒŒ ์ค˜์•ผ ํ•˜๋Š”์ง€๊ฐ€ ์ ํ˜€ ์žˆ๋Š” ํ…Œ์ด๋ธ”
    • ๋™์ž‘ : ํŒจํ‚ท์„ ๋ณด๋‚ผ ๋•Œ ์ปค๋„์€ ๋ชฉ์ ์ง€ IP์™€ ๋ผ์šฐํŒ… ํ…Œ์ด๋ธ”์„ ๊ทœ์น™์„ ๋Œ€์กฐํ•˜์—ฌ ๊ฐ€์žฅ ์ ํ•ฉํ•œ ๊ฒฝ๋กœ๋ฅผ ์„ ํƒํ•œ๋‹ค.
# ๋ธŒ๋ฆฌ์ง€ ์—†์ด, ๋ฆฌ๋ˆ…์Šค ํ˜ธ์ŠคํŠธ(Root Namespace)๋ฅผ ๋ผ์šฐํ„ฐ๋กœ ์‚ฌ์šฉํ•˜์—ฌ
# ์„œ๋กœ ๋‹ค๋ฅธ IP ๋Œ€์—ญ์„ ๊ฐ€์ง„ ๋‘ ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋ฅผ ํ†ต์‹ 
ip netns add net1
ip netns add net2

ip link add veth-net1 type veth peer name veth-net1-host
ip link set veth-net1 netns net1
ip link add veth-net2 type veth peer name veth-net2-host
ip link set veth-net2 netns net2

ip netns exec net1 ip addr add 10.0.1.2/24 dev veth-net1
ip netnx exec net1 ip link set veth-net1 up
ip netns exec net2 ip addr add 10.0.2.2/24 dev veth-net2
ip netnx exec net2 ip link set veth-net2 up

# ํ˜ธ์ŠคํŠธ ์ธก veth-net1/2-host์— ๊ฐ ๋Œ€์—ญ์— ๋งž๋Š” IP๋ฅผ ๊ฒŒ์ดํŠธ์›จ์ด ์—ญํ• ๋กœ ํ• ๋‹น
ip addr add 10.0.1.1/24 dev veth-net1-host
ip link set veth-net1-host up
ip addr add 10.0.2.1/24 dev veth-net2-host
ip link set veth-net2-host up

# ๋ฆฌ๋ˆ…์Šค๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ผ์šฐํŒ… ๊ธฐ๋Šฅ์„ ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์ด๋ฅผ ์ผœ์ค€๋‹ค
# ํ˜„์žฌ ์„ค์ • ํ™•์ธ (0์ด๋ฉด ๋น„ํ™œ์„ฑ)
cat /proc/sys/net/ipv4/ip_forward
sysctl -w net.ipv4.ip_forward=1

# net1๊ณผ net2๋Š” ๋…๋ฆฝ๋œ ๊ณต๊ฐ„์ด๋ฏ€๋กœ ์ž์‹ ์˜ ๋Œ€์—ญ ๋ฐ–์œผ๋กœ ๋‚˜๊ฐ€๋Š” ํŒจํ‚ท์„ ์–ด๋””๋กœ ๋ณด๋‚ผ์ง€ ๋ชจ๋ฅธ๋‹ค
# ๋ชจ๋ฅด๋Š” ๊ณณ์œผ๋กœ ๊ฐˆ ๋•Œ๋Š” ๋ฌด์กฐ๊ฑด ํ˜ธ์ŠคํŠธ(๊ฒŒ์ดํŠธ์›จ์ด)๋กœ ๋ณด๋‚ด๋Š” ๊ทœ์น™์„ ์ถ”๊ฐ€
# ๋ชฉ์ ์ง€๊ฐ€ ๋ผ์šฐํŒ… ํ…Œ์ด๋ธ”์— ๋ช…์‹œ๋˜์ง€ ์•Š์€ ๋ชจ๋“  ํŒจํ‚ท์„ Gateway IP๋กœ ๋ณด๋ƒ„
ip netns exec net1 ip route add default via 10.0.1.1
ip netns exec net2 ip route add default via 10.0.2.1

ip netns exec net1 ping 10.0.2.2

Netfilter & iptables

K8s Pod๊ฐ€ ์™ธ๋ถ€ ์ธํ„ฐ๋„ท์„ ์“ฐ๊ณ , ์™ธ๋ถ€์—์„œ ClusterIP๋กœ ์ ‘๊ทผํ•˜๊ณ , OpenStack ์ธ์Šคํ„ด์Šค๊ฐ€ Floating IP๋ฅผ ๊ฐ–๋Š” ๊ธฐ์ˆ ์  ๋ฐฐ๊ฒฝ์—๋Š” ํŒจํ‚ท ํ•„ํ„ฐ๋ง๊ณผ NAT๊ฐ€ ์žˆ๋‹ค.

๋ฆฌ๋ˆ…์Šค ์ปค๋„์€ ๋„คํŠธ์›Œํฌ ํŒจํ‚ท์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด Netfilter๋ผ๋Š” ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ๋‚ด์žฅํ•˜๊ณ  ์žˆ๋‹ค.

  • Netfilter : ์ปค๋„์˜ ๋„คํŠธ์›Œํฌ ์Šคํƒ ๋‚ด๋ถ€์˜ ํŠน์ • ์ง€์ (Hook)์— ์ฝœ๋ฐฑ ํ•จ์ˆ˜๋ฅผ ๋“ฑ๋กํ•˜์—ฌ, ํŒจํ‚ท์„ ๊ฐ€๋กœ์ฑ„๊ณ  ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค€๋‹ค.
  • iptables : ์œ ์ € ๊ณต๊ฐ„์—์„œ ์ด Netfilter์˜ ๊ทœ์น™์„ ์„ค์ •ํ•˜๋Š” ๋„๊ตฌ

    ๋ฆฌ๋ˆ…์Šค ์‹œ์Šคํ…œ์˜ ๋ฉ”๋ชจ๋ฆฌ๋Š” ํฌ๊ฒŒ ๋‘ ์˜์—ญ์œผ๋กœ ๋‚˜๋‰œ๋‹ค.

    • ์ปค๋„ ๊ณต๊ฐ„
      • ์šด์˜์ฒด์ œ์˜ ํ•ต์‹ฌ์ธ ์ปค๋„์ด ์‹คํ–‰๋˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ
      • CPU์˜ Ring 0 (๊ฐ€์žฅ ๋†’์€ ํŠน๊ถŒ ๋ ˆ๋ฒจ)์—์„œ ๋™์ž‘
      • ๋ชจ๋“  ํ•˜๋“œ์›จ์–ด์— ์ง์ ‘ ์ ‘๊ทผํ•˜๊ณ  ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋Š” ๊ถŒํ•œ์„ ๊ฐ€์ง„๋‹ค
      • ์ด๊ณณ์—์„œ ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰๋˜๋‹ค๊ฐ€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด, ์‹œ์Šคํ…œ ์ „์ฒด๊ฐ€ ๋ฉˆ์ถ˜๋‹ค. Netfilter๋Š” ์ปค๋„ ๊ณต๊ฐ„์˜ ๋„คํŠธ์›Œํฌ ์Šคํƒ์—์„œ ๋™์ž‘ํ•˜๋ฉฐ ์‹ค์‹œ๊ฐ„์œผ๋กœ ํ๋ฅด๋Š” ํŒจํ‚ท์„ ์ฒ˜๋ฆฌํ•œ๋‹ค.
    • ์œ ์ € ๊ณต๊ฐ„
      • ์‚ฌ์šฉ์ž๊ฐ€ ์‹คํ–‰ํ•˜๋Š” ์ผ๋ฐ˜์ ์ธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๋“ค์ด ์‹คํ–‰๋˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ
      • CPU์˜ Ring 3 (๊ฐ€์žฅ ๋‚ฎ์€ ํŠน๊ถŒ ๋ ˆ๋ฒจ)์—์„œ ๋™์ž‘
      • ํ•˜๋“œ์›จ์–ด์— ์ง์ ‘ ์ ‘๊ทผํ•  ์ˆ˜ ์—†๋‹ค. ํ•˜๋“œ์›จ์–ด ์ž์›์ด ํ•„์š”ํ•˜๋ฉด ๋ฐ˜๋“œ์‹œ ์ปค๋„์— ์š”์ฒญํ•ด์•ผ ํ•œ๋‹ค.
      • ํ”„๋กœ๊ทธ๋žจ์ด ์ถฉ๋Œํ•ด๋„ ํ•ด๋‹น ํ”„๋กœ์„ธ์Šค๋งŒ ์ข…๋ฃŒ๋  ๋ฟ, ์šด์˜์ฒด์ œ ์ „์ฒด์—”์€ ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๋Š”๋‹ค.
  1. Netfilter์˜ 5๊ฐ€์ง€ Hook Point
    • NF_IP_PRE_ROUTING (PREROUTING)
      • NIC๋กœ๋ถ€ํ„ฐ ํŒจํ‚ท์„ ์ˆ˜์‹ ํ•œ ์งํ›„, ๋ผ์šฐํŒ… ๊ฒฐ์ •์ด ์ผ์–ด๋‚˜๊ธฐ ์ „ ๋‹จ๊ณ„
      • DANT๋ฅผ ์ˆ˜ํ–‰ํ•œ๋‹ค. ๋ชฉ์ ์ง€ IP๋ฅผ ๋ณ€๊ฒฝํ•ด์•ผ ํ•œ๋‹ค๋ฉด, ๋ผ์šฐํŒ…์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์ „์— ๋ณ€๊ฒฝํ•ด์•ผ ๋ณ€๊ฒฝ๋œ IP๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์˜ฌ๋ฐ”๋ฅธ ๊ฒฝ๋กœ๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
    • NF_IP_LOCAL_IN (INPUT)
      • ๋ผ์šฐํŒ… ๊ฒฐ๊ณผ, ํŒจํ‚ท์˜ ๋ชฉ์ ์ง€๊ฐ€ ๋กœ์ปฌ ์‹œ์Šคํ…œ(์ž์‹ )์ธ ๊ฒฝ์šฐ ๋„๋‹ฌํ•˜๋Š” ๋‹จ๊ณ„
      • ์ด ๋‹จ๊ณ„๋ฅผ ํ†ต๊ณผํ•˜๋ฉด ํŒจํ‚ท์€ ์ƒ์œ„ ๊ณ„์ธต(L4 -TCP/UDP)์œผ๋กœ ์ „๋‹ฌ๋˜์–ด ๋กœ์ปฌ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ˆ˜์‹ ํ•œ๋‹ค.
    • NF_IP_FORWARD (FORWARD)
      • ๋ผ์šฐํŒ… ๊ฒฐ๊ณผ, ํŒจํ‚ท์˜ ๋ชฉ์ ์ง€๊ฐ€ ๋กœ์ปฌ ์‹œ์Šคํ…œ์ด ์•„๋‹ˆ๊ณ  ๋‹ค๋ฅธ ํ˜ธ์ŠคํŠธ์ธ ๊ฒฝ์šฐ ๋„๋‹ฌํ•˜๋Š” ๋‹จ๊ณ„
      • ๋ฐฉํ™”๋ฒฝ ์—ญํ•  ์‹œ ์ฃผ๋กœ ์—ฌ๊ธฐ์„œ ํ•„ํ„ฐ๋ง์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.
    • NF_IP_LOCAL_OUT (OUTPUT)
      • ๋กœ์ปฌ ํ”„๋กœ์„ธ์Šค์—์„œ ์ƒ์„ฑ๋œ ํŒจํ‚ท์ด ๋„คํŠธ์›Œํฌ ์Šคํƒ์œผ๋กœ ๋‚ด๋ ค์™€ ๋ผ์šฐํŒ… ๊ฒฐ์ •์„ ๋งˆ์นœ ์งํ›„์˜ ๋‹จ๊ณ„
    • NF_IP_POST_ROUTING (POSTROUTING)
      • ๋ชจ๋“  ๋ผ์šฐํŒ… ๊ฒฐ์ •๊ณผ ํ•„ํ„ฐ๋ง์ด ๋๋‚˜๊ณ , ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค๋กœ ํŒจํ‚ท์ด ์ „์†ก๋˜๊ธฐ ์ง์ „ ๋‹จ๊ณ„
      • SNAT๋ฅผ ์ˆ˜ํ–‰ํ•œ๋‹ค. ํŒจํ‚ท์ด ๋‚˜๊ฐˆ ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ๊ฒฐ์ •๋œ ์ƒํƒœ์ด๋ฏ€๋กœ, ํ•ด๋‹น ์ธํ„ฐํŽ˜์ด์Šค์˜ IP์— ๋งž์ถฐ ์ถœ๋ฐœ์ง€ ์ฃผ์†Œ๋ฅผ ๋ณ€๊ฒฝํ•œ๋‹ค.

  1. Connection Tracking (conntrack)
    • NAT๊ฐ€ ์„ค์ •๋œ ํ™˜๊ฒฝ์—์„œ ์–‘๋ฐฉํ–ฅ ํ†ต์‹ ์ด ๊ฐ€๋Šฅํ•œ ์ด์œ ๋Š” ๋ฆฌ๋ˆ…์Šค ์ปค๋„์˜ nf_conntrack ๋ชจ๋“ˆ ๋•Œ๋ฌธ์ด๋‹ค.
    • ์ƒํƒœ ์ €์žฅ(Statefull) : NAT ๊ทœ์น™์€ ๋ณดํ†ต ์ฒซ ๋ฒˆ์งธ ํŒจํ‚ท์—๋งŒ ์ ์šฉ๋œ๋‹ค.
    • ํ…Œ์ด๋ธ” ๊ธฐ๋ก : ์ฒซ ํŒจํ‚ท์ด NAT๋ฅผ ๊ฑฐ์น  ๋•Œ, ์ปค๋„์€ ๋ฉ”๋ชจ๋ฆฌ ๋‚ด์˜ ์ƒํƒœ ํ…Œ์ด๋ธ”์— [์›๋ณธ ์ถœ๋ฐœ์ง€/๋ชฉ์ ์ง€ IP:Port] ์™€ [๋ณ€ํ™˜๋œ ์ถœ๋ฐœ์ง€/๋ชฉ์ ๊ธฐ IP:Port]์˜ ๋งคํ•‘ ์ •๋ณด๋ฅผ ๊ธฐ๋กํ•œ๋‹ค.
    • ์‘๋‹ต ํŒจํ‚ท ์ฒ˜๋ฆฌ : ์™ธ๋ถ€์—์„œ ์‘๋‹ต ํŒจํ‚ท์ด ๋“ค์–ด์˜ค๋ฉด, ์ปค๋„์€ ์ด ํ…Œ์ด๋ธ”์„ ์กฐํšŒํ•œ๋‹ค. ๋งค์นญ๋˜๋Š” ์„ธ์…˜ ์ •๋ณด๊ฐ€ ์žˆ๋‹ค๋ฉด ๋ณ„๋„์˜ iptables ๊ทœ์น™์„ ๋‹ค์‹œ ํƒ€์ง€ ์•Š๊ณ  ์ž๋™์œผ๋กœ ์—ญ๋ณ€ํ™˜์„ ์ˆ˜ํ–‰ํ•˜์—ฌ ์›๋ž˜์˜ ์š”์ฒญ์ž์—๊ฒŒ ํŒจํ‚ท์„ ์ „๋‹ฌํ•œ๋‹ค.
iptables -t nat -A POSTROUTING -s 10.0.1.0/24 -o eth0 -j MQSQUERADE

# -t nat : ์ปค๋„์˜ Netfilter ํ…Œ์ด๋ธ” ์ค‘ NAT ์ฒ˜๋ฆฌ๋ฅผ ๋‹ด๋‹นํ•˜๋Š” ํ…Œ์ด๋ธ”์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
# -A POSTROUTING : POSTROUTING ํ›… ์ง€์ ์— ๊ทœ์น™์„ ์ถ”๊ฐ€ํ•œ๋‹ค. ์ฆ‰, ๋ผ์šฐํŒ…์ด ๋๋‚˜๊ณ  ์ธํ„ฐํŽ˜์ด์Šค๋กœ ๋‚˜๊ฐ€๊ธฐ ์ง์ „์— ์ด ๊ทœ์น™์„ ์ ์šฉํ•œ๋‹ค.
# -s 10.0.1.0/24 : IP ํ—ค๋”์˜ Source Address๊ฐ€ 10.0.1.0/24 ๋ฒ”์œ„์— ์†ํ•˜๋Š”์ง€ ๊ฒ€์‚ฌ
# -o eth0 : ๋ผ์šฐํŒ… ํ…Œ์ด๋ธ” ์กฐํšŒ ๊ฒฐ๊ณผ, ํŒจํ‚ท์ด ๋‚˜๊ฐˆ ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ eth0์ธ์ง€ ๊ฒ€์‚ฌ
# -j MASQUERADE : ์œ„ ์กฐ๊ฑด์ด ์ผ์น˜ํ•˜๋ฉด ํŒจํ‚ท์˜ Source Address๋ฅผ eth0 ์ธํ„ฐํŽ˜์ด์Šค์˜ ํ˜„์žฌ IP ์ฃผ์†Œ๋กœ ๋ฎ์–ด์“ด๋‹ค. 
   # ๋™์‹œ์— ์ปค๋„์˜ conntrack ํ…Œ์ด๋ธ”์— ์ด ๋ณ€ํ™˜ ์ •๋ณด๋ฅผ ๊ธฐ๋กํ•˜์—ฌ, ๋Œ์•„์˜ค๋Š” ์‘๋‹ต ํŒจํ‚ท์ด ์—ญ๋ณ€ํ™˜๋  ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค.

VXLAN / Tunneling

๋ฌผ๋ฆฌ์ ์œผ๋กœ ๋–จ์–ด์ ธ ์žˆ๋Š” ์„œ๋ฒ„๋“ค์„ ๋…ผ๋ฆฌ์ ์œผ๋กœ ํ•˜๋‚˜์˜ L2 ๋„คํŠธ์›Œํฌ๋กœ ๋ฌถ์–ด์ฃผ๋Š” ์—ญํ• 

  • ํ„ฐ๋„๋ง (Tunneling)
    • ์–ด๋–ค ๋„คํŠธ์›Œํฌ ํ”„๋กœํ† ์ฝœ์˜ ํŒจํ‚ท์„ ๋‹ค๋ฅธ ๋„คํŠธ์›Œํฌ์˜ ํ”„๋กœํ† ์ฝœ์˜ ๋ฐ์ดํ„ฐ(Payload) ์˜์—ญ์— ์‹ค์–ด์„œ ์ „์†กํ•˜๋Š” ๊ธฐ์ˆ . (=์บก์Аํ™”)
    • OSI 7๊ณ„์ธต์˜ ํŠน์ • ๊ณ„์ธต PDU(Protocl Data Unit)๋ฅผ ํ•˜์œ„๋‚˜ ๋™์œ„, ํ˜น์€ ์ƒ์œ„ ๊ณ„์ธต์˜ PDU ์•ˆ์— ๊ฐ์‹ธ๋Š” ํ–‰์œ„
    • ์™œ ํ•„์š”ํ•œ๊ฐ€
      • ์„œ๋กœ ๋‹ค๋ฅธ ๋„คํŠธ์›Œํฌ ๊ฐ„์˜ ์—ฐ๊ฒฐ : ๋ฌผ๋ฆฌ์ ์œผ๋กœ ๋ถ„๋ฆฌ๋œ ๋‘ ๊ฐœ์˜ ์‚ฌ์„ค ๋„คํŠธ์›Œํฌ๋ฅผ ๊ณต์šฉ ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ์—ฐ๊ฒฐํ•  ๋•Œ ํ•„์š”ํ•˜๋‹ค. ์ค‘๊ฐ„ ๊ฒฝ๋กœ๋Š” ์‚ฌ์„ค IP๋ฅผ ๋ผ์šฐํŒ…ํ•  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ, ๋ผ์šฐํŒ… ๊ฐ€๋Šฅํ•œ ๊ณต์ธ IP ํ—ค๋”๋กœ ๊ฐ์‹ธ์•ผ ํ•œ๋‹ค. (ex. VPN)
      • ํ”„๋กœํ† ์ฝœ ํ˜ธํ™˜์„ฑ ๊ทน๋ณต : IPv6 ํŒจํ‚ท์„ IPv4 ๋„คํŠธ์›Œํฌ ๋ง์„ ํ†ตํ•ด์„œ ๋ณด๋‚ด์•ผ ํ•  ๋•Œ, IPv6 ํŒจํ‚ท์„ IPv4 ํŒจํ‚ท ์•ˆ์— ๋„ฃ์–ด์„œ ๋ณด๋‚ธ๋‹ค.
      • ์˜ค๋ฒ„๋ ˆ์ด ๋„คํŠธ์›Œํฌ ๊ตฌ์„ฑ : ๋ฌผ๋ฆฌ์ ์ธ ๋„คํŠธ์›Œํฌ ํ† ํด๋กœ์ง€์™€ ์ƒ๊ด€์—†์ด, ๋…ผ๋ฆฌ์ ์ธ ๋„คํŠธ์›Œํฌ ํ† ํด๋กœ์ง€๋ฅผ ๊ตฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•œ๋‹ค. (VXLAN์˜ ์ฃผ ๋ชฉ์ )
    • ๋ฆฌ๋ˆ…์Šค์—์„œ ์–ด๋–ป๊ฒŒ ์“ฐ์ด๋Š”๊ฐ€
      • IPIP : IP ํŒจํ‚ท ์•ˆ์— IP ํŒจํ‚ท์„ ๋„ฃ๋Š” ๊ฐ€์žฅ ๋‹จ์ˆœํ•œ ํ„ฐ๋„๋ง
      • GRE (Generic Routing Encapsulation) : IP ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋‹ค์–‘ํ•œ ํ”„๋กœํ† ์ฝœ์„ IP ์•ˆ์— ๋„ฃ์„ ์ˆ˜ ์žˆ๋Š” ์‹œ์Šค์ฝ”๊ฐ€ ๊ฐœ๋ฐœํ•œ ํ‘œ์ค€
      • VXLAN : ์ด๋”๋„ท ํ”„๋ ˆ์ž„(L2)์„ UDP/IP ์•ˆ์— ๋„ฃ๋Š” ๊ธฐ์ˆ 

  • VXLAN (Virtual Extensible LAN)
    • L2 ์ด๋”๋„ท ํ”„๋ ˆ์ž„์„ L3 UDP ํŒจํ‚ท ์•ˆ์— ์บก์Аํ™”ํ•˜์—ฌ ์ „์†กํ•˜๋Š” ํ„ฐ๋„๋ง ํ”„๋กœํ† ์ฝœ.
      • ๋ฌผ๋ฆฌ ๋„คํŠธ์›Œํฌ๊ฐ€ L3(IP) ๊ธฐ๋ฐ˜์œผ๋กœ ๋˜์–ด ์žˆ์–ด๋„, ๊ทธ ์œ„์—์„œ ๋…ผ๋ฆฌ์ ์œผ๋กœ L2(์ด๋”๋„ท) ํ†ต์‹ ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•œ๋‹ค.
    • ์™œ ํ•„์š”ํ•œ๊ฐ€ (ํด๋ผ์šฐ๋“œ ๋ฐ์ดํ„ฐ์„ผํ„ฐ ํ™˜๊ฒฝ์—์„œ ๊ธฐ์กด์˜ VLAN ๊ธฐ์ˆ ์€ ํ•œ๊ณ„๊ฐ€ ์žˆ๋‹ค)
    • VLAN ID ๊ฐœ์ˆ˜์˜ ํ•œ๊ณ„
      • VLAN ํ—ค๋”์˜ ID ํ•„๋“œ๋Š” 12๋น„ํŠธ์ด๋‹ค. ์ฆ‰, ์ตœ๋Œ€ 4096๊ฐœ์˜ ๋„คํŠธ์›Œํฌ๋งŒ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๋‹ค.
      • ์ˆ˜๋งŒ ๋ช…์˜ ๊ณ ๊ฐ์ด ์žˆ๋Š” ํผ๋ธ”๋ฆญ/ํ”„๋ผ์ด๋น— ํด๋ผ์šฐ๋“œ์—์„œ๋Š” ํ„ฑ์—†์ด ๋ถ€์กฑํ•˜๋‹ค.
      • VXLAN ํ•ด๊ฒฐ์ฑ… : 24๋น„ํŠธ์˜ VNI(VXLAN Network Idetifier)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์•ฝ 1600๋งŒ ๊ฐœ์˜ ๋„คํŠธ์›Œํฌ ์„ธ๊ทธ๋จผํŠธ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.
    • MAC ์ฃผ์†Œ ํ…Œ์ด๋ธ”์˜ ํญ๋ฐœ
      • ๋ฌผ๋ฆฌ์  ์Šค์œ„์น˜๋Š” ์—ฐ๊ฒฐ๋œ ๋ชจ๋“  VM์˜ MAC ์ฃผ์†Œ๋ฅผ ํ•™์Šตํ•ด์•ผ ํ•œ๋‹ค. ์ˆ˜์‹ญ๋งŒ ๊ฐœ์˜ VM์ด ์žˆ๋Š” ํ™˜๊ฒฝ์—์„œ๋Š” ๋ฌผ๋ฆฌ ์Šค์œ„์น˜์˜ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๊ฐ€๋“ ์ฐจ์„œ ์„ฑ๋Šฅ์ด ์ €ํ•˜๋œ๋‹ค.
      • VXLAN ํ•ด๊ฒฐ์ฑ… : ๋ฌผ๋ฆฌ ์Šค์œ„์น˜๋Š” ํ„ฐ๋„์˜ ์–‘ ๋๋‹จ(๋ฌผ๋ฆฌ ์„œ๋ฒ„์˜ IP)๋งŒ ์•Œ๋ฉด ๋œ๋‹ค. VM์˜ MAC ์ฃผ์†Œ๋Š” ์บก์Аํ™”๋˜์–ด ๋‚ด๋ถ€ ๋ฐ์ดํ„ฐ๋กœ ์ทจ๊ธ‰๋˜๋ฏ€๋กœ ๋ฌผ๋ฆฌ ์Šค์œ„์น˜๋Š” ์ด๋ฅผ ๋ชฐ๋ผ๋„ ๋œ๋‹ค.
    • L2 ํ™•์žฅ์˜ ์ œ์•ฝ
      • ์ „ํ†ต์ ์ธ L2 ๋„คํŠธ์›Œํฌ๋Š” ๋ฃจํ”„ ๋ฐฉ์ง€๋ฅผ ์œ„ํ•ด Spanning Tree Protocol(STP)์„ ์‚ฌ์šฉํ•˜์—ฌ ํŠน์ • ๊ฒฝ๋กœ๋ฅผ ์ฐจ๋‹จํ•œ๋‹ค. ์ด๋Š” ๋Œ€์—ฌํญ ๋‚ญ๋น„๋ฅผ ์œ ๋ฐœํ•œ๋‹ค.
      • ๋ฐ์ดํ„ฐ์„ผํ„ฐ๋Š” ๋ชจ๋“  ๊ฒฝ๋กœ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” L3 ๋ผ์šฐํŒ…(ECMP) ๊ตฌ์กฐ๋ฅผ ์„ ํ˜ธํ•œ๋‹ค.
      • VXLAN ํ•ด๊ฒฐ์ฑ… : ๋ฌผ๋ฆฌ๋ง์€ L3๋กœ ๊ตฌ์„ฑํ•˜์—ฌ ๋ชจ๋“  ๊ฒฝ๋กœ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์“ฐ๊ณ , ๊ทธ ์œ„์—์„œ VXLAN์œผ๋กœ L2 ํ†ต์‹ ์„ ํ‰๋‚ด ๋‚ธ๋‹ค.

  • VTEP (VXLAN Tunnel EndPoint)
    • VXLAN ์ฒ˜๋ฆฌ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ์ฃผ์ฒด. ๋ฆฌ๋ˆ…์Šค์—์„œ๋Š” VXLAN ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ VTEP ์—ญํ• ์„ ํ•œ๋‹ค. ํ•˜๋“œ์›จ์–ด ์Šค์œ„์น˜๊ฐ€ VTEP์ด ๋  ์ˆ˜ ์žˆ๊ณ , ํ•˜์ดํผ๋ฐ”์ด์ €๊ฐ€ VTEP์ด ๋  ์ˆ˜๋„ ์žˆ๋‹ค.
    • Ingress VTEP (์ž…๊ตฌ) : VM์—์„œ ์˜จ ํŒจํ‚ท์„ ์บก์Аํ™”ํ•˜์—ฌ ๋ฌผ๋ฆฌ๋ง์œผ๋กœ ์˜๋Š” ์—ญํ• .
    • Egress VTEP (์ถœ๊ตฌ) : ๋ฌผ๋ฆฌ๋ง์—์„œ ์˜จ UDP ํŒจํ‚ท์„ ๋ฐ›์•„์„œ, VXLAN ํ—ค๋”๋ฅผ ๋–ผ๊ณ  VM์—๊ฒŒ ์ „๋‹ฌํ•˜๋Š” ์—ญํ• .

      ์ƒ๋Œ€๋ฐฉ ์ฐพ๊ธฐ
      VM A๊ฐ€ VM B(IP: 10.10.10.2)๋กœ ํŒจํ‚ท์„ ๋ณด๋‚ด๋ ค๋Š”๋ฐ, VM B๊ฐ€ ์–ด๋А ๋ฌผ๋ฆฌ ์„œ๋ฒ„(VTEP) ์œ„์— ์žˆ๋Š”์ง€ ์•„๋Š” ๋ฐฉ๋ฒ•

      • ๋ฐฉ๋ฒ• A: ๋ฉ€ํ‹ฐ์บ์ŠคํŠธ (Multicast - Flood & Learn)
        • VM A๊ฐ€ ARP ์š”์ฒญ(Broadcast)์„ ๋ณด๋‚ด๋ฉด, VTEP A๋Š” ์ด๋ฅผ ๋ฉ€ํ‹ฐ์บ์ŠคํŠธ IP๋กœ ์บก์Аํ™”ํ•ด์„œ ๋„คํŠธ์›Œํฌ ์ „์ฒด์— ๋ฟŒ๋ฆฐ๋‹ค.
        • ํ•ด๋‹น ๋ฉ€ํ‹ฐ์บ์ŠคํŠธ ๊ทธ๋ฃน์— ๊ฐ€์ž…๋œ ๋ชจ๋“  VTEP์ด ํŒจํ‚ท์„ ๋ฐ›๊ณ , ๊ทธ์ค‘์— VM B๋ฅผ ๋ฐ๋ฆฌ๊ณ  ์žˆ๋Š” VTEP B๋งŒ ์‘๋‹ตํ•œ๋‹ค.
        • ์ด ๊ณผ์ •์—์„œ VTEP A๋Š” "VM B๋Š” VTEP B์— ์žˆ๋‹ค"๋ผ๊ณ  ํ•™์Šตํ•œ๋‹ค.

      • ๋ฐฉ๋ฒ• B: ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ ์‚ฌ์šฉ (SDN ๋ฐฉ์‹ - OpenStack/K8s)
        • ์ค‘์•™ ์ปจํŠธ๋กค๋Ÿฌ(OpenStack Neutron Server, K8s API Server/CNI)๊ฐ€ ๋ชจ๋“  VM์˜ ์œ„์น˜ ์ •๋ณด๋ฅผ ์ด๋ฏธ ์•Œ๊ณ  ์žˆ๋‹ค.
        • ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ VTEP(๊ฐ ๋…ธ๋“œ์˜ ์—์ด์ „ํŠธ)์—๊ฒŒ ๋ฏธ๋ฆฌ ์•Œ๋ ค์ค€๋‹ค
        • "MAC ์ฃผ์†Œ aa:bb:cc... ๊ฐ€์ง„ VM์€ ๋ฌผ๋ฆฌ ์„œ๋ฒ„ 192.168.1.50์— ์žˆ๋‹ค."
        • ๋”ฐ๋ผ์„œ ๋ธŒ๋กœ๋“œ์บ์ŠคํŒ…(Flooding) ์—†์ด ๋ฐ”๋กœ ์œ ๋‹ˆ์บ์ŠคํŠธ(Unicast)๋กœ ์บก์Аํ™”ํ•ด์„œ ๋ณด๋‚ธ๋‹ค. ๋„คํŠธ์›Œํฌ ์žก์Œ์„ ํš๊ธฐ์ ์œผ๋กœ ์ค„์—ฌ์ค€๋‹ค.

๊ฐœ๋… ์ •๋ฆฌ

Q. ์–ด๋–ป๊ฒŒ L2(์ด๋”๋„ท)์„ L3/L4(IP/UDP) ์•ˆ์— ๋„ฃ์„ ์ˆ˜ ์žˆ๋Š”๊ฐ€?

  • ์ปดํ“จํ„ฐ ์ž…์žฅ์—์„œ ๋ฐ์ดํ„ฐ(Payload)๋Š” 0๊ณผ 1๋กœ ์ด๋ฃจ์–ด์ง„ ์ด์ง„์ˆ˜ ๋ฐ์ด์ผ ๋ฟ์ด๋‹ค.
  • ์›๋ž˜์˜ ํ†ต์‹  : ์›น ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด๋ฉด [HTTP ํ—ค๋”][๋ฐ์ดํ„ฐ]๊ฐ€ ๋งŒ๋“ค์–ด์ง„๋‹ค. ์ด ์ „์ฒด๋ฅผ TCP๊ฐ€ ๊ฐ€์ ธ๋‹ค๊ฐ€ ์ž์‹ ์˜ ๋ฐ์ดํ„ฐ๋กœ ์ทจ๊ธ‰ํ•˜์—ฌ ์•ž์— [TCP ํ—ค๋”]๋ฅผ ๋ถ™์ธ๋‹ค.
  • VXLAN : VM์ด ๋งŒ๋“  [์ด๋”๋„ท ํ—ค๋”][IP ํ—ค๋”][๋ฐ์ดํ„ฐ]๋ผ๋Š” ์™„์„ฑ๋œ L2 ํ”„๋ ˆ์ž„ ์ „์ฒด๋ฅผ ํ˜ธ์ŠคํŠธ OS๋Š” ๊ทธ๋ƒฅ ๋ฐ์ดํ„ฐ ๋ฉ์–ด๋ฆฌ๋กœ ์ทจ๊ธ‰ํ•œ๋‹ค.
  • ์บก์ˆ ํ™” : ํ˜ธ์ŠคํŠธ OS๋Š” ์ด ๋ฐ์ดํ„ฐ ๋ฉ์–ด๋ฆฌ ์•ž์— [UDP ํ—ค๋”]์™€ [IP ํ—ค๋”]๋ฅผ ์ƒˆ๋กœ ๋ถ™์ธ๋‹ค.

Q. ๋ฌผ๋ฆฌ ๋„คํŠธ์›Œํฌ๊ฐ€ L3 ๊ธฐ๋ฐ˜์œผ๋กœ ๋˜์–ด์žˆ๋‹ค

  • ์ „ํ†ต์ ์ธ ์‚ฌ๋ฌด์‹ค ๋„คํŠธ์›Œํฌ๋Š” L2 ์Šค์œ„์น˜๋“ค๋กœ ์—ฐ๊ฒฐํ•˜์—ฌ ๊ตฌ์„ฑํ•˜๋Š” ๊ฒƒ๊ณผ ๋‹ฌ๋ฆฌ ๋ฐ์ดํ„ฐ์„ผํ„ฐ์˜ ์Šค์œ„์น˜๋“ค์€ ๋‹จ์ˆœํ•œ L2 ์Šค์œ„์น˜๊ฐ€ ์•„๋‹ˆ๋ผ ๋ผ์šฐํ„ฐ(L3) ๊ธฐ๋Šฅ์„ ํ•˜๋„๋ก ์„ค์ •ํ–ˆ๋‹ค๋Š” ์˜๋ฏธ
  • L2 ๊ตฌ์„ฑ : ์Šค์œ„์น˜ A์—์„œ ๋ณด๋‚ธ ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธ๊ฐ€ ์Šค์œ„์น˜ B, C, D๋กœ ๋‹ค ํผ์ง„๋‹ค. (๋ถˆํ•„์š”ํ•œ ํŠธ๋ž˜ํ”ฝ ํญ์ฆ)
  • L3 ๊ตฌ์„ฑ : ์Šค์œ„์น˜์™€ ์Šค์œ„์น˜ ์‚ฌ์ด๊ฐ€ ์„œ๋กœ ๋‹ค๋ฅธ ๋„คํŠธ์›Œํฌ ๋Œ€์—ญ(IP Subnet)์œผ๋กœ ๋ถ„๋ฆฌ๋œ๋‹ค. ๋ผ์šฐํŒ… ํ…Œ์ด๋ธ”์„ ๋ณด๊ณ  ์ •ํ™•ํžˆ ์ฐพ์•„๊ฐ„๋‹ค.
  • ์ฆ‰, ๋ฐ์ดํ„ฐ์„ผํ„ฐ์˜ ์ผ€์ด๋ธ”๊ณผ ์žฅ๋น„ ์—ฐ๊ฒฐ ๋ฐฉ์‹(๋ฌผ๋ฆฌ๋ง)์€ IP ์ฃผ์†Œ๋ฅผ ๋ณด๊ณ  ๊ธธ์„ ์ฐพ๋Š” ๋ผ์šฐํŒ… ๋ฐฉ์‹(L3)์œผ๋กœ ๋™์ž‘ํ•˜๊ฒŒ ๋งŒ๋“ ๋‹ค๋Š” ์˜๋ฏธ.

Q. VLAN ํ—ค๋”๊ฐ€ 12๋น„ํŠธ์ธ ์ด์œ ์™€ ์˜๋ฏธ

  • ์˜›๋‚ ์—๋Š” ํ•œ ๋„คํŠธ์›Œํฌ ์žฅ๋น„์—์„œ 4096๊ฐœ ์ด์ƒ์˜ ๊ทธ๋ฃน์„ ๋‚˜๋ˆŒ ์ผ์ด ์—†์„ ๊ฑฐ๋ผ ์ƒ๊ฐํ•˜๊ณ  ํ—ค๋”์˜ ํฌ๊ธฐ๋ฅผ ์ตœ์†Œํ™”ํ•˜๊ธฐ ์œ„ํ•ด 12๋น„ํŠธ๋งŒ ํ• ๋‹นํ–ˆ๋‹ค. ์ด๊ฒƒ์ด ํ•˜๋“œ์›จ์–ด ํ‘œ์ค€์œผ๋กœ ๊ตณ์–ด์กŒ๋‹ค.
  • ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ์ด๋ผ๋„ ๊ด€๋ฆฌ์šฉ ๋„คํŠธ์›Œํฌ, ์Šคํ† ๋ฆฌ์ง€์šฉ ๋„คํŠธ์›Œํฌ, ์„œ๋ฒ„์šฉ ๋„คํŠธ์›Œํฌ ๋“ฑ์„ ๋ฌผ๋ฆฌ์ ์œผ๋กœ ๊ตฌ๋ถ„ํ•ด์•ผ ํ•  ๋•Œ๊ฐ€ ์žˆ๋Š”๋ฐ, ์ด๋•Œ๋Š” ์—ฌ์ „ํžˆ VLAN์„ ์“ด๋‹ค.
  • ํ•˜์ง€๋งŒ ๊ณ ๊ฐ์šฉ ๋„คํŠธ์›Œํฌ(Tenant Network)๋Š” ๊ณ ๊ฐ์ด ์ˆ˜๋งŒ ๋ช…์ผ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ VLAN ๋Œ€์‹  VXLAN์„ ์‚ฌ์šฉํ•œ๋‹ค.

Q. VNI์™€ Network Segment

  • Network Segment : ์„œ๋กœ ํ†ต์‹  ๊ฐ€๋Šฅํ•œ ํ•˜๋‚˜์˜ ๊ฒฉ๋ฆฌ๋œ ๊ทธ๋ฃน
    • AํŒ€์˜ ํด๋ผ์šฐ๋“œ ์„œ๋ฒ„๋“ค๋ผ๋ฆฌ๋งŒ ํ†ต์‹ ํ•˜๊ณ , B ํŒ€์˜ ์„œ๋ฒ„์™€๋Š” ํ†ต์‹ ์ด ์•ˆ ๋˜๋„๋ก ๊ตฌ์„ฑ. AํŒ€ ๊ทธ๋ฃน์ด ํ•˜๋‚˜์˜ ์„ธ๊ทธ๋จผํŠธ.
  • VNI (VXLAN Network Identifier) : VXLAN์— ๋ถ™๋Š” ๊ทธ๋ฃน ID ํƒœ๊ทธ
    • 24๋น„ํŠธ์ด๋ฏ€๋กœ, ์•ฝ 1,600๋งŒ ๊ฐœ์˜ ID๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. 1,600๋งŒ ๊ฐœ์˜ ์„œ๋กœ ๋‹ค๋ฅธ ํŒ€(์„ธ๊ทธ๋จผํŠธ)๋ฅผ ๊ฒฉ๋ฆฌํ•ด์„œ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค๋Š” ๋œป

Q. VM์—๋„ MAC ์ฃผ์†Œ๊ฐ€ ํ• ๋‹น๋˜๊ณ , ํ•ด๋‹น MAC ์ฃผ์†Œ๋ฅผ ๋ฌผ๋ฆฌ ์Šค์œ„์น˜๊ฐ€ ํ•™์Šตํ•ด์•ผ ํ•˜๋Š”๊ฐ€?

  • VM์˜ MAC : VM๋„ OS ์ž…์žฅ์—์„œ๋Š” ์ง„์งœ ์ปดํ“จํ„ฐ์—ฌ์•ผ ํ•˜๋ฏ€๋กœ, ๊ฐ€์ƒ์˜ ๋žœ์นด๋“œ(vNIC)์— ๊ฐ€์ƒ์˜ MAC์ฃผ์†Œ๊ฐ€ ๋ฌด์ž‘์œ„๋กœ ๋ถ€์—ฌ๋œ๋‹ค.
  • ๋ฌผ๋ฆฌ ์Šค์œ„์น˜์˜ ํ•™์Šต
    • VXLAN์„ ์•ˆ ์“ฐ๋ฉด : VM์ด ๋ณด๋‚ธ ํŒจํ‚ท์ด ๋ฌผ๋ฆฌ ์Šค์œ„์น˜๋กœ ๊ทธ๋Œ€๋กœ ๋‚˜๊ฐ„๋‹ค. ๋ฌผ๋ฆฌ ์Šค์œ„์น˜๋Š” ํŠน์ • ํฌํŠธ์—์„œ ํŠน์ • MAC์ฃผ์†Œ๊ฐ€ ์‹ ํ˜ธ๋ฅผ ๋ณด๋‚ธ๋‹ค๋Š” ๊ฒƒ์„ ๊ธฐ์–ตํ•˜๊ธฐ ์œ„ํ•ด ํ•™์Šตํ•œ๋‹ค. VM์ด 10๋งŒ ๊ฐœ๋ฉด 10๋งŒ ๊ฐœ๋ฅผ ๋‹ค ๊ธฐ์–ตํ•ด์•ผ ํ•ด์„œ ์Šค์œ„์น˜ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋ถ€์กฑํ•ด์ง„๋‹ค.
    • VXLAN์„ ์“ฐ๋ฉด : ๋ฌผ๋ฆฌ ์Šค์œ„์น˜์—๊ฒŒ๋Š” [Outer IP ํ—ค๋”]๋งŒ ๋ณด์ธ๋‹ค. ์ฆ‰, ๋ฌผ๋ฆฌ ์„œ๋ฒ„(Host)์˜ IP์™€ MAC๋งŒ ๋ณด์ธ๋‹ค. ์•ˆ์— VM์˜ MAC์ด ๋“ค์–ด์žˆ๋Š”์ง€ ๋ชจ๋ฅธ๋‹ค. ๊ทธ๋ž˜์„œ ๋ฌผ๋ฆฌ ์Šค์œ„์น˜๋Š” ๋ฌผ๋ฆฌ ์„œ๋ฒ„๋“ค์˜ ์ฃผ์†Œ๋งŒ ๊ธฐ์–ตํ•˜๋ฉด ๋œ๋‹ค.

Q. ํ„ฐ๋„์ด๋ž€

  • ํ„ฐ๋„ : ๋ณต์žกํ•œ ์ค‘๊ฐ„ ๊ฒฝ๋กœ(์ˆ˜๋งŽ์€ ์Šค์œ„์น˜์™€ ๋ผ์šฐํ„ฐ)๋ฅผ ๋ฌด์‹œํ•˜๊ณ , ์ž…๊ตฌ(Host A)์™€ ์ถœ๊ตฌ(Host B)๊ฐ€ ์ง์ ‘ ์—ฐ๊ฒฐ๋œ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด๊ฒŒ ๋งŒ๋“œ๋Š” ๋…ผ๋ฆฌ์ ์ธ ํŒŒ์ดํ”„

Q. L2 ๋„คํŠธ์›Œํฌ ๋ฃจํ”„๋ฅผ STP ์ฐจ๋‹จํ•˜๋Š” ์ด์œ , ECMP, VXLAN์œผ๋กœ L2 ํ†ต์‹ ์„ ํ‰๋‚ด ๋‚ด๋Š” ์ด์œ 

  • L2์˜ ๋ฌธ์ œ
    • L2 ์Šค์œ„์น˜๋Š” ๋ชจ๋ฅด๋Š” ๋ชฉ์ ์ง€์˜ ํŒจํ‚ท์ด ์˜ค๋ฉด ์ผ๋‹จ ์—ฐ๊ฒฐ๋œ ๋ชจ๋“  ๊ณณ์œผ๋กœ ๋ณต์‚ฌํ•ด์„œ ๋ณด๋‚ธ๋‹ค.(Flooding)
    • ๋งŒ์•ฝ ์„ ์ด ์ด์ค‘ํ™”๋กœ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์œผ๋ฉด, ๋ณต์‚ฌ๋œ ํŒจํ‚ท์ด ๋ฌดํ•œ๋ฃจํ”„๊ฐ€ ๋ฐœ์ƒํ•ด ๋„คํŠธ์›Œํฌ๊ฐ€ ๋‹ค์šด๋œ๋‹ค.
    • STP (Spanning Tree Protocol) : ์ด๋ฅผ ๋ง‰๊ธฐ ์œ„ํ•ด ๊ฐ•์ œ๋กœ ํ•œ์ชฝ ์„ ์„ ์‚ฌ์šฉ ๋ชปํ•˜๊ฒŒ ๋ง‰์•„๋ฒ„๋ฆฐ๋‹ค.
  • L3 ECMP (Equal-Cost Multi-Path)
    • L3 ๋ผ์šฐํ„ฐ๋Š” ๋ชฉ์ ์ง€๋กœ ๊ฐ€๋Š” ๊ธธ์ด 2๊ฐœ๊ฐ€ ์žˆ์Œ ์•Œ๊ณ , ๋‘ ๊ธธ ๋‹ค ์จ์„œ ๋ฐ˜๋ฐ˜์”ฉ ๋ณด๋‚ด๊ธฐ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.
    • ๋ฃจํ”„ ๊ฑฑ์ • ์—†์ด ๋Œ€์—ญํญ์„ 100% ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ž˜์„œ ํ˜„๋Œ€ ๋ฐ์ดํ„ฐ์„ผํ„ฐ๋Š” ๋ฌผ๋ฆฌ๋ง์„ L3๋กœ ๊ตฌ์„ฑํ•œ๋‹ค.
  • VXLAN ์—†์ด L3 ๋ฌผ๋ฆฌ๋ง๋งŒ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ
    • ๋ฌผ๋ฆฌ ์„œ๋ฒ„ A๋Š” 10.1.1.0/24 ๋Œ€์—ญ(Rack 1)์— ์žˆ๊ณ , ๋ฌผ๋ฆฌ ์„œ๋ฒ„ B๋Š” 10.1.2.0/24 ๋Œ€์—ญ(Rack 2)์— ์žˆ๋‹ค. (L3๋Š” ๋ผ์šฐํŒ…์„ ์œ„ํ•ด ๋Œ€์—ญ์„ ์ชผ๊ฐœ์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ.)
    • VM์ด ์„œ๋ฒ„ A์—์„œ B๋กœ ๋„˜์–ด๊ฐ€๋ฉด, IP ์ฃผ์†Œ๋ฅผ 10.1.1.5์—์„œ 10.1.2.5๋กœ ๋ฐ”๊ฟ”์•ผ ํ•œ๋‹ค.
    • IP๊ฐ€ ๋ฐ”๋€Œ๋ฉด ์‹คํ–‰ ์ค‘์ด๋˜ ์„œ๋น„์Šค ์—ฐ๊ฒฐ์ด ๋Š๊ธฐ๊ณ , DNS๋ฅผ ๊ฐฑ์‹ ํ•ด์•ผ ํ•˜๋Š” ๋“ฑ์˜ ์ฒ˜๋ฆฌ๊ฐ€ ํ•„์š”ํ•ด์ง„๋‹ค.
  • VXLAN์œผ๋กœ L2๋ฅผ ํ‰๋‚ด ๋‚ผ ๊ฒฝ์šฐ
    • ๋ฌผ๋ฆฌ์ ์œผ๋กœ๋Š” ๋‹ค๋ฅธ ๋Œ€์—ญ(Rack 1 -> Rack 2)์œผ๋กœ ์ด๋™ํ–ˆ์ง€๋งŒ, ๋…ผ๋ฆฌ์ ์œผ๋กœ๋Š” VXLAN 100๋ฒˆ์ด๋ผ๋Š” ๊ฐ€์ƒ์˜ ๊ธด ๋žœ์„ ์— ๊ณ„์† ๊ฝ‚ํ˜€ ์žˆ๋Š” ์ƒํƒœ์ด๋‹ค.
    • VM ์ž…์žฅ์—์„œ๋Š” ์ž์‹ ์ด ์–ด๋””๋กœ ๊ฐ”๋Š”์ง€ ๋ชจ๋ฅธ๋‹ค. IP ์ฃผ์†Œ(10.1.1.5)๋ฅผ ๊ทธ๋Œ€๋กœ ์œ ์ง€ํ•œ ์ฑ„ ๋ชธ๋งŒ ์ด๋™ํ•  ์ˆ˜ ์žˆ๋‹ค.
    • ๋ฌผ๋ฆฌ๋ง์€ VXLAN ํŒจํ‚ท์˜ ๋ชฉ์ ์ง€๊ฐ€ A ์„œ๋ฒ„์—์„œ B ์„œ๋ฒ„๋กœ ๋ฐ”๋€ ๊ฒƒ์„ ์ธ์‹ํ•˜๊ณ  ๋ฐฐ์†ก์ง€(Outer IP)๋งŒ ๋ฐ”๊ฟ”์ฃผ๋ฉด ๋์ด๋‹ค.
  • ํ•˜๋‚˜์˜ ๋ผ์šฐํ„ฐ ์•„๋ž˜์—์„œ ๋˜‘๊ฐ™์€ IP 2๊ฐœ๊ฐ€ ์กด์žฌํ•  ์ˆ˜ ์—†๋‹ค. ํ•˜์ง€๋งŒ VXLAN์„ ์“ฐ๋ฉด VNI 100, VNI 200์„ ํ• ๋‹นํ•˜์—ฌ ๋ฌผ๋ฆฌ์ ์œผ๋กœ๋Š” ๊ฐ™์€ ์Šค์œ„์น˜๋ฅผ ํƒ€๊ณ  ํ๋ฅด์ง€๋งŒ, ์บก์Аํ™”๋œ ํŒจํ‚ท์— ์ฐํžŒ ID(VNI)๊ฐ€ ๋‹ค๋ฅด๋ฏ€๋กœ ์„œ๋กœ ๊ฒฉ๋ฆฌ๋œ๋‹ค.

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