IPv6

IPv6

ν•™μŠ΅ λͺ©ν‘œ

  • IPv6의 ν•„μš”μ„±κ³Ό IPv4의 ν•œκ³„ μ΄ν•΄ν•˜κΈ°
  • IPv6 μ£Όμ†Œ ν˜•μ‹, ν‘œκΈ°λ²•, μœ ν˜• λ§ˆμŠ€ν„°ν•˜κΈ°
  • IPv6 헀더 ꡬ쑰와 IPv4 λŒ€λΉ„ κ°œμ„ μ‚¬ν•­ ν•™μŠ΅ν•˜κΈ°
  • μ£Όμ†Œ μžλ™ ꡬ성 λ©”μ»€λ‹ˆμ¦˜(SLAAC, DHCPv6) μ΄ν•΄ν•˜κΈ°
  • 인접 탐색 ν”„λ‘œν† μ½œ(NDP)κ³Ό μ—­ν•  ν•™μŠ΅ν•˜κΈ°
  • IPv4μ—μ„œ IPv6둜의 μ „ν™˜ λ©”μ»€λ‹ˆμ¦˜ νƒκ΅¬ν•˜κΈ°
  • IPv6 λΌμš°νŒ… ν”„λ‘œν† μ½œ μ΄ν•΄ν•˜κΈ°
  • IPv6 λ³΄μ•ˆ 고렀사항 ν•™μŠ΅ν•˜κΈ°
  • IPv6 λ„€νŠΈμ›Œν¬ ꡬ성 및 문제 ν•΄κ²°ν•˜κΈ°

λͺ©μ°¨

  1. μ™œ IPv6인가?
  2. IPv6 μ£Όμ†Œ ν˜•μ‹
  3. IPv6 μ£Όμ†Œ μœ ν˜•
  4. IPv6 헀더
  5. μ£Όμ†Œ μžλ™ ꡬ성
  6. 인접 탐색 ν”„λ‘œν† μ½œ
  7. μ „ν™˜ λ©”μ»€λ‹ˆμ¦˜
  8. IPv6 λΌμš°νŒ…
  9. IPv6 λ³΄μ•ˆ
  10. μ‹€μ „ ꡬ성
  11. μ—°μŠ΅ 문제

1. μ™œ IPv6인가?

IPv4 고갈

IPv4λŠ” 32λΉ„νŠΈ μ£Όμ†Œλ₯Ό μ‚¬μš©ν•˜μ—¬ μ•½ 43μ–΅ 개의 μ£Όμ†Œλ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€:

Total IPv4 addresses = 2^32 = 4,294,967,296

고갈 νƒ€μž„λΌμΈ: - 2011: IANA 쀑앙 ν’€ 고갈 - 2015: ARIN (뢁미) 고갈 - 2019: RIPE NCC (유럽) 고갈 - 2021: λͺ¨λ“  μ§€μ—­ 인터넷 λ ˆμ§€μŠ€νŠΈλ¦¬(RIRs) 고갈

NAT의 ν•œκ³„

λ„€νŠΈμ›Œν¬ μ£Όμ†Œ λ³€ν™˜(NAT)은 μž„μ‹œ ν•΄κ²°μ±…μ΄μ—ˆμŠ΅λ‹ˆλ‹€:

NAT의 단점: - End-to-end μ—°κ²°μ„± 파괴 - P2P μ• ν”Œλ¦¬μΌ€μ΄μ…˜ λ³΅μž‘ν™” - 처리 μ˜€λ²„ν—€λ“œ μΆ”κ°€ - 문제 ν•΄κ²° 어렀움 - 일뢀 ν”„λ‘œν† μ½œκ³Ό ν˜Έν™˜ λΆˆκ°€(IPsec, SIP)

IPv6의 μž₯점

λŒ€κ·œλͺ¨ μ£Όμ†Œ 곡간:

IPv6 addresses = 2^128 β‰ˆ 3.4 Γ— 10^38 addresses

기타 이점: - NAT λΆˆν•„μš”(End-to-end μ—°κ²°μ„± 볡원) - λΉ λ₯Έ 처리λ₯Ό μœ„ν•œ κ°„μ†Œν™”λœ 헀더 - λ‚΄μž₯ IPsec 지원 - ν–₯μƒλœ λ©€ν‹°μΊμŠ€νŠΈ 지원 - μžλ™ ꡬ성(SLAAC) - λΈŒλ‘œλ“œμΊμŠ€νŠΈ μ—†μŒ(λ©€ν‹°μΊμŠ€νŠΈλ‘œ λŒ€μ²΄) - ν”Œλ‘œμš° λ ˆμ΄λΈ”μ„ ν†΅ν•œ ν–₯μƒλœ QoS


2. IPv6 μ£Όμ†Œ ν˜•μ‹

128λΉ„νŠΈ μ£Όμ†Œ ꡬ쑰

IPv6 μ£Όμ†ŒλŠ” 128λΉ„νŠΈ 길이둜, 4자리 16μ§„μˆ˜ 8그룹으둜 ν‘œκΈ°ν•©λ‹ˆλ‹€:

IPv6 Address Structure:
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  16 bits β”‚  16 bits β”‚  16 bits β”‚  16 bits β”‚ ... β”‚  16 bits   β”‚
β”‚  (0-FFFF)β”‚  (0-FFFF)β”‚  (0-FFFF)β”‚  (0-FFFF)β”‚ ... β”‚  (0-FFFF)  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
   Group 1    Group 2    Group 3    Group 4   ...    Group 8

Example:
2001:0db8:85a3:0000:0000:8a2e:0370:7334

ν‘œκΈ° κ·œμΉ™

전체 ν‘œκΈ°λ²•:

2001:0db8:0000:0042:0000:8a2e:0370:7334

κ·œμΉ™ 1: μ•žμ˜ 0은 μƒλž΅ κ°€λŠ₯

2001:db8:0:42:0:8a2e:370:7334

κ·œμΉ™ 2: μ—°μ†λœ 0 그룹은 ::둜 λŒ€μ²΄ κ°€λŠ₯

2001:db8:0:42::8a2e:370:7334

μ€‘μš”: ::λŠ” μ£Όμ†Œλ‹Ή ν•œ 번만 μ‚¬μš© κ°€λŠ₯

# Valid
2001:db8::1
ff02::1
::1 (loopback)

# Invalid (multiple ::)
2001::25de::cade  # ❌ Ambiguous

μ£Όμ†Œ 단좕 예제

Original:   2001:0db8:0000:0000:0000:0000:0000:0001
Shortened:  2001:db8::1

Original:   fe80:0000:0000:0000:0202:b3ff:fe1e:8329
Shortened:  fe80::202:b3ff:fe1e:8329

Original:   0000:0000:0000:0000:0000:0000:0000:0001
Shortest:   ::1 (loopback)

Original:   0000:0000:0000:0000:0000:0000:0000:0000
Shortest:   :: (unspecified address)

ν”„λ¦¬ν”½μŠ€ ν‘œκΈ°λ²•

IPv4의 CIDRκ³Ό μœ μ‚¬:

2001:db8:abcd:0012::/64
             β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
             Network prefix (64 bits)

3. IPv6 μ£Όμ†Œ μœ ν˜•

μœ λ‹ˆμΊμŠ€νŠΈ μ£Όμ†Œ(Unicast Addresses)

κΈ€λ‘œλ²Œ μœ λ‹ˆμΊμŠ€νŠΈ(Global Unicast, GUA)

μΈν„°λ„·μ—μ„œ λΌμš°νŒ… κ°€λŠ₯(곡인 IPv4와 동등):

Address Range: 2000::/3 (currently 2000:: to 3fff::)

Structure:
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   Global     β”‚   Subnet ID  β”‚  Interface   β”‚              β”‚
β”‚   Routing    β”‚              β”‚  Identifier  β”‚              β”‚
β”‚   Prefix     β”‚              β”‚  (IID)       β”‚              β”‚
β”‚  (48 bits)   β”‚  (16 bits)   β”‚  (64 bits)   β”‚              β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Example:
2001:db8:1234:5678::1/64
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”˜
    ISP      Subnet  Host

둜컬 λ§ν¬μ—μ„œλ§Œ 유효(IPv4의 169.254.x.x와 μœ μ‚¬):

Address Range: fe80::/10

Structure:
β”Œβ”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ fe80  β”‚  0000  β”‚  Interface ID (64 bits)    β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Example:
fe80::1
fe80::202:b3ff:fe1e:8329

λͺ¨λ“  IPv6 μΈν„°νŽ˜μ΄μŠ€μ— ν•„μˆ˜!

고유 둜컬 μ£Όμ†Œ(Unique Local Addresses, ULA)

사섀 μ£Όμ†Œ(IPv4의 10.x.x.x, 192.168.x.x와 μœ μ‚¬):

Address Range: fc00::/7 (fd00::/8 in practice)

Structure:
β”Œβ”€β”€β”€β”€β”¬β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ fd β”‚ 0 β”‚ Global ID  β”‚ Subnet β”‚ Interface ID β”‚
β”‚    β”‚   β”‚ (40 bits)  β”‚(16 bit)β”‚  (64 bits)   β”‚
β””β”€β”€β”€β”€β”΄β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Example:
fd00:1234:5678:1::1/64

λ©€ν‹°μΊμŠ€νŠΈ μ£Όμ†Œ(Multicast Addresses)

Address Range: ff00::/8

Structure:
β”Œβ”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ ff β”‚ Flags β”‚    Group ID          β”‚
β”‚    β”‚ Scope β”‚                      β”‚
β””β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Common multicast addresses:
ff02::1         All nodes on link
ff02::2         All routers on link
ff02::1:ff00:0/104  Solicited-node multicast

μŠ€μ½”ν”„(Scopes): - 1 - Interface-local - 2 - Link-local - 5 - Site-local - 8 - Organization-local - e - Global

μ• λ‹ˆμΊμŠ€νŠΈ μ£Όμ†Œ(Anycast Addresses)

μœ λ‹ˆμΊμŠ€νŠΈμ™€ λ™μΌν•œ ν˜•μ‹μ΄μ§€λ§Œ μ—¬λŸ¬ μΈν„°νŽ˜μ΄μŠ€μ— ν• λ‹Ήλ©λ‹ˆλ‹€. νŒ¨ν‚·μ€ κ°€μž₯ κ°€κΉŒμš΄ μΈν„°νŽ˜μ΄μŠ€λ‘œ μ „λ‹¬λ©λ‹ˆλ‹€.

Example use case: DNS root servers
2001:db8::1 assigned to multiple servers

특수 μ£Όμ†Œ(Special Addresses)

::1/128         Loopback (localhost)
::/128          Unspecified address (like 0.0.0.0)
::ffff:0:0/96   IPv4-mapped IPv6 (::ffff:192.0.2.1)
2001:db8::/32   Documentation prefix

4. IPv6 헀더

κ°„μ†Œν™”λœ 헀더 ꡬ쑰

IPv6 ν—€λ”λŠ” 더 κ°„λ‹¨ν•˜λ©° κ³ μ • 길이(40λ°”μ΄νŠΈ)μž…λ‹ˆλ‹€:

 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Version| Traffic Class |           Flow Label                  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|         Payload Length        |  Next Header  |   Hop Limit   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
+                                                               +
|                                                               |
+                         Source Address                        +
|                                                               |
+                                                               +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
+                                                               +
|                                                               |
+                      Destination Address                      +
|                                                               |
+                                                               +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

ν•„λ“œ μ„€λͺ…

ν•„λ“œ 크기 μ„€λͺ…
Version 4 bits 항상 6
Traffic Class 8 bits QoS μš°μ„ μˆœμœ„ (IPv4의 DSCP와 μœ μ‚¬)
Flow Label 20 bits QoS ν”Œλ‘œμš° 식별
Payload Length 16 bits νŽ˜μ΄λ‘œλ“œ 길이 (헀더 μ œμ™Έ)
Next Header 8 bits λ‹€μŒ 헀더 μœ ν˜• (TCP=6, UDP=17 λ“±)
Hop Limit 8 bits 각 λΌμš°ν„°μ—μ„œ κ°μ†Œ (TTLκ³Ό μœ μ‚¬)
Source Address 128 bits μΆœλ°œμ§€ IPv6 μ£Όμ†Œ
Destination Address 128 bits λͺ©μ μ§€ IPv6 μ£Όμ†Œ

IPv4 λŒ€λΉ„ κ°œμ„ μ‚¬ν•­

제거된 ν•„λ“œ: - Header Length (40λ°”μ΄νŠΈλ‘œ κ³ μ •) - Identification, Flags, Fragment Offset (ν™•μž₯ ν—€λ”λ‘œ 이동) - Header Checksum (링크 계측과 전솑 κ³„μΈ΅μ—μ„œ 처리)

이점: - λΉ λ₯Έ 처리 (체크섬 계산 μ—†μŒ) - κ³ μ • 헀더 크기 (ν•˜λ“œμ›¨μ–΄ κ΅¬ν˜„ 용이) - ν™•μž₯ ν—€λ”μ˜ 선택적 κΈ°λŠ₯

ν™•μž₯ 헀더(Extension Headers)

ν™•μž₯ ν—€λ”λŠ” μœ μ—°μ„±μ„ μ œκ³΅ν•©λ‹ˆλ‹€:

IPv6 Header β†’ Ext Header 1 β†’ Ext Header 2 β†’ TCP/UDP Header β†’ Data

일반적인 ν™•μž₯ 헀더: 1. Hop-by-Hop Options (0) - λͺ¨λ“  λ…Έλ“œμ—μ„œ 처리 2. Routing (43) - μ†ŒμŠ€ λΌμš°νŒ… 3. Fragment (44) - λ‹¨νŽΈν™” 정보 4. Destination Options (60) - λͺ©μ μ§€ μ˜΅μ…˜ 5. Authentication (51) - IPsec AH 6. Encapsulating Security Payload (50) - IPsec ESP

λ‹¨νŽΈν™” 예제:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”
β”‚ IPv6 Header β”‚  Fragment    β”‚ TCP Hdr  β”‚ Data β”‚
β”‚ Next=44     β”‚  Header      β”‚          β”‚      β”‚
β”‚             β”‚  Next=6      β”‚          β”‚      β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”˜

5. μ£Όμ†Œ μžλ™ ꡬ성

SLAAC (Stateless Address Autoconfiguration)

IPv6 μž₯μΉ˜λŠ” DHCP 없이 슀슀둜 ꡬ성할 수 μžˆμŠ΅λ‹ˆλ‹€:

Process:
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                           β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   Host   β”‚                           β”‚  Router  β”‚
β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”˜                           β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”˜
     β”‚                                      β”‚
     β”‚ 1. Generate link-local address       β”‚
     β”‚    (fe80::IID)                       β”‚
     β”‚                                      β”‚
     β”‚ 2. Router Solicitation (RS)          β”‚
     │─────────────────────────────────────▢│
     β”‚      (ICMPv6 type 133)               β”‚
     β”‚                                      β”‚
     β”‚ 3. Router Advertisement (RA)         β”‚
     │◀─────────────────────────────────────│
     β”‚      (prefix, gateway, flags)        β”‚
     β”‚      (ICMPv6 type 134)               β”‚
     β”‚                                      β”‚
     β”‚ 4. Generate global address           β”‚
     β”‚    (prefix + IID)                    β”‚
     β”‚                                      β”‚
     β”‚ 5. Duplicate Address Detection (DAD) β”‚
     β”‚    (Neighbor Solicitation)           β”‚
     │─────────────────────────────────────▢│
     β”‚                                      β”‚

μΈν„°νŽ˜μ΄μŠ€ μ‹λ³„μž(Interface Identifier, IID) 생성

방법 1: EUI-64 (MAC μ£Όμ†Œμ—μ„œ)

MAC address:  00:1A:2B:3C:4D:5E

Steps:
1. Split MAC:     001A2B | 3C4D5E
2. Insert FFFE:   001A2B | FFFE | 3C4D5E
3. Flip U/L bit:  021A2B | FFFE | 3C4D5E
   (7th bit of first byte: 00 β†’ 02)

Result IID: 021a:2bff:fe3c:4d5e

방법 2: ν”„λΌμ΄λ²„μ‹œ ν™•μž₯(Privacy Extensions, RFC 4941)

ν”„λΌμ΄λ²„μ‹œλ₯Ό μœ„ν•΄ 주기적으둜 μƒμ„±λ˜λŠ” 랜덀 IID:

Temporary IID: 1234:5678:9abc:def0 (random)
Lifetime: 1 day (configurable)

DHCPv6

μŠ€ν…Œμ΄νŠΈλ¦¬μŠ€ DHCPv6(Stateless DHCPv6): - SLAACλ‘œλΆ€ν„° μ£Όμ†Œ - DHCPv6λ‘œλΆ€ν„° DNS, NTP

μŠ€ν…Œμ΄νŠΈν’€ DHCPv6(Stateful DHCPv6): - DHCPv6 μ„œλ²„λ‘œλΆ€ν„° 전체 μ£Όμ†Œ - 전톡적인 DHCP와 μœ μ‚¬

DHCPv6 ν”„λ‘œμ„ΈμŠ€:

Client                              Server
  β”‚                                   β”‚
  β”‚ SOLICIT (multicast ff02::1:2)    β”‚
  │──────────────────────────────────▢│
  β”‚                                   β”‚
  β”‚ ADVERTISE                         β”‚
  │◀──────────────────────────────────│
  β”‚                                   β”‚
  β”‚ REQUEST                           β”‚
  │──────────────────────────────────▢│
  β”‚                                   β”‚
  β”‚ REPLY (address, DNS, etc.)        β”‚
  │◀──────────────────────────────────│

λΌμš°ν„° κ΄‘κ³  ν”Œλž˜κ·Έ(Router Advertisement Flags)

M flag (Managed): 1 = Use DHCPv6 for address
O flag (Other):   1 = Use DHCPv6 for other config (DNS)

Combinations:
M=0, O=0  β†’  SLAAC only
M=0, O=1  β†’  SLAAC + stateless DHCPv6
M=1, O=0  β†’  Stateful DHCPv6
M=1, O=1  β†’  Stateful DHCPv6

6. 인접 탐색 ν”„λ‘œν† μ½œ

NDP vs ARP

NDP(Neighbor Discovery Protocol)λŠ” IPv6μ—μ„œ ARPλ₯Ό λŒ€μ²΄ν•©λ‹ˆλ‹€:

κΈ°λŠ₯ IPv4 IPv6
μ£Όμ†Œ 해석 ARP NDP (NS/NA)
λΌμš°ν„° 발견 ICMP Router Discovery NDP (RS/RA)
λ¦¬λ‹€μ΄λ ‰νŠΈ ICMP Redirect NDP Redirect
MTU 발견 - NDP (RA)

NDP λ©”μ‹œμ§€ μœ ν˜•

λͺ¨λ“  NDP λ©”μ‹œμ§€λŠ” ICMPv6λ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€:

  1. Router Solicitation (RS) - Type 133
  2. Router Advertisement (RA) - Type 134
  3. Neighbor Solicitation (NS) - Type 135
  4. Neighbor Advertisement (NA) - Type 136
  5. Redirect - Type 137

인접 μš”μ²­/κ΄‘κ³ (Neighbor Solicitation/Advertisement, NS/NA)

μ£Όμ†Œ 해석 예제:

Host A wants to communicate with Host B (2001:db8::2)

1. Host A sends NS to solicited-node multicast:

   Src: 2001:db8::1
   Dst: ff02::1:ff00:2  (solicited-node for ::2)
   "Who has 2001:db8::2?"

2. Host B sends NA:

   Src: 2001:db8::2
   Dst: 2001:db8::1
   "I am 2001:db8::2, my MAC is 00:1A:2B:3C:4D:5E"

μš”μ²­-λ…Έλ“œ λ©€ν‹°μΊμŠ€νŠΈ(Solicited-Node Multicast)

효율적인 μ£Όμ†Œ 해석:

Target address: 2001:db8::1234:5678

Solicited-node multicast:
ff02::1:ff34:5678
β””β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”˜
 prefix  last 24 bits

쀑볡 μ£Όμ†Œ 탐지(Duplicate Address Detection, DAD)

μ£Όμ†Œ μ‚¬μš© μ „:

1. Host sends NS for its own address:
   Src: :: (unspecified)
   Dst: ff02::1:ff00:1 (solicited-node)
   Target: 2001:db8::1 (tentative address)

2. If NA received β†’ address conflict!
3. If no response β†’ address is unique

인접 도달 λΆˆκ°€ 탐지(Neighbor Unreachability Detection, NUD)

이웃이 μ—¬μ „νžˆ 도달 κ°€λŠ₯ν•œμ§€ 확인:

States:
INCOMPLETE β†’ REACHABLE β†’ STALE β†’ DELAY β†’ PROBE β†’ UNREACHABLE

Transitions:
- REACHABLE: confirmation received within 30s
- STALE: no recent confirmation
- PROBE: sending NS to verify

7. μ „ν™˜ λ©”μ»€λ‹ˆμ¦˜

이쀑 μŠ€νƒ(Dual-Stack)

IPv4와 IPv6λ₯Ό λ™μ‹œμ— μ‹€ν–‰:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚      Applications           β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
              β”‚
    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
    β”‚                   β”‚
β”Œβ”€β”€β”€β–Όβ”€β”€β”€β”€β”        β”Œβ”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”
β”‚  IPv4  β”‚        β”‚  IPv6   β”‚
β”‚  Stack β”‚        β”‚  Stack  β”‚
β””β”€β”€β”€β”¬β”€β”€β”€β”€β”˜        β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”˜
    β”‚                  β”‚
    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜
               β”‚
        β”Œβ”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”
        β”‚   Network   β”‚
        β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

ꡬ성 예제:

# Linux interface with dual-stack
ip addr show eth0

eth0: <BROADCAST,MULTICAST,UP,LOWER_UP>
    inet 192.0.2.1/24
    inet6 2001:db8::1/64
    inet6 fe80::1/64 scope link

터널링 λ©”μ»€λ‹ˆμ¦˜(Tunneling Mechanisms)

6to4 터널(6to4 Tunnel)

IPv4 인프라λ₯Ό μ‚¬μš©ν•œ μžλ™ 터널링:

IPv6 Packet
    β”‚
    β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  IPv4 Header  β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚  IPv6 Packet  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

6to4 address format:
2002:WWXX:YYZZ::/48
     β””β”€β”€β”€β”€β”€β”€β”€β”€β”˜
     IPv4 address in hex

Example:
IPv4: 192.0.2.1 β†’ C000:0201
6to4: 2002:c000:0201::/48

Teredo 터널(Teredo Tunnel)

IPv6λ₯Ό μœ„ν•œ NAT 톡과:

Structure:
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  2001  β”‚   0     β”‚ IPv4 β”‚  Flags β”‚ Obscuredβ”‚
β”‚        β”‚         β”‚Serverβ”‚        β”‚ Client  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Example:
2001:0000:4136:e378:8000:63bf:3fff:fdd2
          β””β”€β”€β”€β”€β”€β”€β”€β”€β”˜      β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
          Server IP       Client info

ISATAP

Intra-Site Automatic Tunnel Addressing Protocol:

Address format:
[prefix]:0:5efe:[IPv4 address]

Example:
2001:db8:1:2:0:5efe:192.0.2.1
                β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                IPv4 address

λ³€ν™˜ λ©”μ»€λ‹ˆμ¦˜(Translation Mechanisms)

NAT64/DNS64

IPv6 μ „μš© ν΄λΌμ΄μ–ΈνŠΈκ°€ IPv4 μ„œλ²„μ— μ ‘κ·Ό κ°€λŠ₯:

IPv6 Client                     IPv4 Server
2001:db8::1                     192.0.2.1
     β”‚                               β”‚
     β”‚ 1. DNS query (AAAA)           β”‚
     │─────────────▢DNS64            β”‚
     β”‚              β”‚                β”‚
     β”‚              β”‚ 2. No AAAA,    β”‚
     β”‚              β”‚    query A     β”‚
     β”‚              │───────────────▢│
     β”‚              β”‚                β”‚
     β”‚              β”‚ 3. A=192.0.2.1 β”‚
     β”‚              │◀───────────────│
     β”‚              β”‚                β”‚
     β”‚ 4. AAAA=     β”‚                β”‚
     β”‚ 64:ff9b::    β”‚                β”‚
     β”‚ c000:0201    β”‚                β”‚
     │◀─────────────│                β”‚
     β”‚                               β”‚
     β”‚ 5. Packet to                  β”‚
     β”‚ 64:ff9b::c000:0201            β”‚
     │──────────▢NAT64───────────────▢│
     β”‚              Translates to    β”‚
     β”‚              192.0.2.1        β”‚

Well-Known Prefix: 64:ff9b::/96


8. IPv6 λΌμš°νŒ…

OSPFv3

IPv6용 OSPF:

Differences from OSPFv2:
- Runs directly over IPv6
- Link-local addresses for neighbor discovery
- Multiple instances per link
- Authentication via IPsec (not built-in)

ꡬ성 예제 (Cisco):

ipv6 router ospf 1
  router-id 1.1.1.1

interface GigabitEthernet0/0
  ipv6 ospf 1 area 0
  ipv6 address 2001:db8:1::1/64

IPv6용 BGP

λ©€ν‹° ν”„λ‘œν† μ½œ BGP (MP-BGP):

router bgp 65001
  neighbor 2001:db8::2 remote-as 65002

  address-family ipv6 unicast
    neighbor 2001:db8::2 activate
    network 2001:db8:1::/48
  exit-address-family

경둜 μ§‘μ•½(Route Aggregation)

IPv6의 λŒ€κ·œλͺ¨ μ£Όμ†Œ 곡간은 더 λ‚˜μ€ 집약을 κ°€λŠ₯ν•˜κ²Œ ν•©λ‹ˆλ‹€:

ISP allocation: 2001:db8::/32

Customer subnets:
2001:db8:0001::/48
2001:db8:0002::/48
2001:db8:0003::/48
...
2001:db8:ffff::/48

Advertise only: 2001:db8::/32

λΌμš°νŒ… ν…Œμ΄λΈ” 예제

# Linux routing table
ip -6 route show

2001:db8:1::/64 dev eth0 proto kernel metric 256
fe80::/64 dev eth0 proto kernel metric 256
default via fe80::1 dev eth0 metric 1024

9. IPv6 λ³΄μ•ˆ

λ‚΄μž₯ IPsec

IPv6λŠ” IPsec을 염두에 두고 μ„€κ³„λ˜μ—ˆμŠ΅λ‹ˆλ‹€:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”
β”‚ IPv6 Hdr   β”‚ ESP Hdr β”‚ TCP Hdr β”‚   Data   β”‚ ESP  β”‚
β”‚            β”‚         β”‚         β”‚          β”‚ Auth β”‚
β”‚ Next=50    β”‚ Next=6  β”‚         β”‚(Encrypted)β”‚      β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”˜

μ°Έκ³ : IPsec은 μ‹€μ œλ‘œλŠ” μ„ νƒμ‚¬ν•­μ΄μ§€λ§Œ 배포가 더 μ‰½μŠ΅λ‹ˆλ‹€.

ν”„λΌμ΄λ²„μ‹œ ν™•μž₯(Privacy Extensions)

μ•ˆμ •μ μΈ IIDλ₯Ό ν†΅ν•œ 좔적 λ°©μ§€:

# Enable privacy extensions (Linux)
sysctl net.ipv6.conf.all.use_tempaddr=2

# Temporary address
2001:db8::1234:5678:9abc:def0  (changes daily)

# Stable address (for incoming connections)
2001:db8::21a:2bff:fe3c:4d5e   (EUI-64)

λ°©ν™”λ²½ 고렀사항

μ€‘μš”: λͺ¨λ“  ICMPv6λ₯Ό μ°¨λ‹¨ν•˜μ§€ λ§ˆμ„Έμš”!

Required ICMPv6 types:
- Type 1: Destination Unreachable
- Type 2: Packet Too Big (for PMTUD)
- Type 3: Time Exceeded
- Type 4: Parameter Problem
- Type 133-137: NDP messages

예제 iptables:

# Allow essential ICMPv6
ip6tables -A INPUT -p icmpv6 --icmpv6-type destination-unreachable -j ACCEPT
ip6tables -A INPUT -p icmpv6 --icmpv6-type packet-too-big -j ACCEPT
ip6tables -A INPUT -p icmpv6 --icmpv6-type time-exceeded -j ACCEPT
ip6tables -A INPUT -p icmpv6 --icmpv6-type parameter-problem -j ACCEPT

# Allow NDP
ip6tables -A INPUT -p icmpv6 --icmpv6-type router-advertisement -j ACCEPT
ip6tables -A INPUT -p icmpv6 --icmpv6-type router-solicitation -j ACCEPT
ip6tables -A INPUT -p icmpv6 --icmpv6-type neighbour-solicitation -j ACCEPT
ip6tables -A INPUT -p icmpv6 --icmpv6-type neighbour-advertisement -j ACCEPT

λ³΄μ•ˆ μœ„ν˜‘

μ•…μ˜μ μΈ λΌμš°ν„° κ΄‘κ³ (Rogue Router Advertisements): - κ³΅κ²©μžκ°€ κ°€μ§œ RA 전솑 - μ™„ν™”: RA Guard

NDP μŠ€ν‘Έν•‘(NDP Spoofing): - ARP μŠ€ν‘Έν•‘κ³Ό μœ μ‚¬ - μ™„ν™”: SEcure Neighbor Discovery (SEND)

μ£Όμ†Œ μŠ€μΊλ‹(Address Scanning): - λŒ€κ·œλͺ¨ μ„œλΈŒλ„·μœΌλ‘œ 무차별 λŒ€μž… 곡격 어렀움 - ν•˜μ§€λ§Œ 예츑 κ°€λŠ₯ν•œ IID(EUI-64)λŠ” ν‘œμ μ΄ 될 수 있음 - μ™„ν™”: ν”„λΌμ΄λ²„μ‹œ ν™•μž₯ μ‚¬μš©


10. μ‹€μ „ ꡬ성

Linux ꡬ성

IPv6 μ—°κ²°μ„± 확인:

# Show IPv6 addresses
ip -6 addr show

# Show IPv6 routes
ip -6 route show

# Ping IPv6 address
ping6 2001:4860:4860::8888

# Traceroute
traceroute6 google.com

μˆ˜λ™ μ£Όμ†Œ ꡬ성:

# Add IPv6 address
sudo ip -6 addr add 2001:db8::1/64 dev eth0

# Add default route
sudo ip -6 route add default via fe80::1 dev eth0

# Enable IPv6 forwarding
sudo sysctl -w net.ipv6.conf.all.forwarding=1

정적 ꡬ성 (Ubuntu/Debian):

# /etc/netplan/01-netcfg.yaml
network:
  version: 2
  ethernets:
    eth0:
      dhcp6: no
      addresses:
        - 2001:db8::1/64
      gateway6: fe80::1
      nameservers:
        addresses:
          - 2001:4860:4860::8888
          - 2001:4860:4860::8844

SLAAC ν™œμ„±ν™”:

# Accept Router Advertisements
sudo sysctl -w net.ipv6.conf.eth0.accept_ra=1

# Autoconf
sudo sysctl -w net.ipv6.conf.eth0.autoconf=1

Windows ꡬ성

λͺ…령쀄:

REM Show IPv6 configuration
ipconfig

REM Show IPv6 routing table
netsh interface ipv6 show route

REM Add static IPv6 address
netsh interface ipv6 add address "Ethernet" 2001:db8::1/64

REM Add default route
netsh interface ipv6 add route ::/0 "Ethernet" fe80::1

REM Test connectivity
ping 2001:4860:4860::8888
tracert google.com

PowerShell:

# Get IPv6 configuration
Get-NetIPAddress -AddressFamily IPv6

# Add IPv6 address
New-NetIPAddress -InterfaceAlias "Ethernet" -IPAddress "2001:db8::1" -PrefixLength 64

# Add default route
New-NetRoute -DestinationPrefix "::/0" -InterfaceAlias "Ethernet" -NextHop "fe80::1"

μ—°κ²°μ„± ν…ŒμŠ€νŠΈ

이쀑 μŠ€νƒ ν…ŒμŠ€νŠΈ:

# IPv4 connectivity
ping google.com

# IPv6 connectivity
ping6 google.com

# Check which protocol is used
curl -v https://google.com
# Look for "Trying 2001:..." (IPv6) or "Trying 192..." (IPv4)

# Force IPv6
curl -6 https://google.com

# Force IPv4
curl -4 https://google.com

온라인 ν…ŒμŠ€νŠΈ: - https://test-ipv6.com/ - https://ipv6-test.com/ - https://www.whatismyipv6.com/

일반적인 문제 및 ν•΄κ²°

IPv6 μ—°κ²°μ„± μ—†μŒ:

# 1. Check if IPv6 is enabled
cat /proc/sys/net/ipv6/conf/all/disable_ipv6
# Should be 0 (enabled)

# 2. Check for IPv6 addresses
ip -6 addr show
# Should see link-local (fe80::) and possibly global

# 3. Check for default route
ip -6 route show
# Should see default via fe80::...

# 4. Check Router Advertisements
sudo rdisc6 eth0
# Should see RA from router

# 5. Test local connectivity
ping6 fe80::1%eth0  # Ping link-local gateway

MTU 문제:

# IPv6 minimum MTU is 1280 bytes
# Check current MTU
ip link show eth0

# Test PMTUD
ping6 -s 1500 2001:4860:4860::8888

11. μ—°μŠ΅ 문제

문제 1: μ£Όμ†Œ 단좕

λ‹€μŒ IPv6 μ£Όμ†Œλ₯Ό κ°€μž₯ 짧은 ν˜•νƒœλ‘œ λ‹¨μΆ•ν•˜μ„Έμš”:

a) 2001:0db8:0000:0000:0000:0000:0000:0001 b) fe80:0000:0000:0000:0202:b3ff:fe1e:8329 c) 2001:0db8:0001:0000:0000:0000:0000:0000 d) 0000:0000:0000:0000:0000:0000:0000:0000

μ •λ‹΅:

a) 2001:db8::1
b) fe80::202:b3ff:fe1e:8329
c) 2001:db8:1::
d) ::

문제 2: EUI-64 λ³€ν™˜

MAC μ£Όμ†Œ 00:50:56:A1:B2:C3κ°€ μ£Όμ–΄μ‘Œμ„ λ•Œ κ³„μ‚°ν•˜μ„Έμš”: - EUI-64 μΈν„°νŽ˜μ΄μŠ€ μ‹λ³„μž - μ™„μ „ν•œ 링크-둜컬 μ£Όμ†Œ - ν”„λ¦¬ν”½μŠ€ 2001:db8:1::/64λ₯Ό κ°€μ§„ μ™„μ „ν•œ κΈ€λ‘œλ²Œ μ£Όμ†Œ

μ •λ‹΅:

MAC: 00:50:56:A1:B2:C3

1. Split: 005056 | A1B2C3
2. Insert FFFE: 005056FFFE | A1B2C3
3. Flip 7th bit: 025056FFFE | A1B2C3

IID: 0250:56ff:fea1:b2c3

Link-local: fe80::250:56ff:fea1:b2c3
Global: 2001:db8:1::250:56ff:fea1:b2c3

문제 3: μ„œλΈŒλ„·νŒ…

2001:db8:abcd::/48이 ν• λ‹Ήλ˜μ—ˆμŠ΅λ‹ˆλ‹€. λ‹€μŒμ„ μœ„ν•œ μ„œλΈŒλ„·νŒ… λ°©μ•ˆμ„ μ„€κ³„ν•˜μ„Έμš”: - 4개 μ§€μ—­ μ‚¬λ¬΄μ†Œ (각각 256개 μ„œλΈŒλ„· ν•„μš”) - 각 μ„œλΈŒλ„·μ€ μ΅œμ’… μ‚¬μš©μžλ₯Ό μœ„ν•œ /64 지원

μ •λ‹΅:

/48 prefix: 2001:db8:abcd::/48

Use bits 49-52 for regions (4 bits = 16 regions):
Region 0: 2001:db8:abcd:0000::/52
Region 1: 2001:db8:abcd:1000::/52
Region 2: 2001:db8:abcd:2000::/52
Region 3: 2001:db8:abcd:3000::/52

Each /52 contains 4096 /64 subnets (2^12).

Region 0 examples:
2001:db8:abcd:0000::/64
2001:db8:abcd:0001::/64
2001:db8:abcd:0002::/64
...
2001:db8:abcd:0fff::/64

문제 4: NDP 뢄석

λ‹€μŒ 경우의 NDP λ©”μ‹œμ§€ μˆœμ„œλ₯Ό μ„€λͺ…ν•˜μ„Έμš”: 1. ν˜ΈμŠ€νŠΈκ°€ λΆ€νŒ…λ˜μ–΄ IPv6 연결성을 얻을 λ•Œ 2. 호슀트 Aκ°€ 같은 링크의 호슀트 B둜 νŒ¨ν‚·μ„ 보내렀 ν•  λ•Œ

μ •λ‹΅:

1. Host boot sequence:
   a. Generate link-local address (fe80::IID)
   b. DAD: Send NS for own address
   c. If no NA, address is valid
   d. Send RS to ff02::2
   e. Receive RA with prefix, M/O flags
   f. Generate global address (prefix + IID)
   g. DAD for global address
   h. Optional: DHCPv6 if M=1 or O=1

2. Host A β†’ Host B communication:
   a. Check neighbor cache for B's MAC
   b. If not found, send NS to B's solicited-node multicast
   c. Receive NA from B with MAC address
   d. Cache entry created (REACHABLE state)
   e. Send packet to B

문제 5: μ „ν™˜ λ©”μ»€λ‹ˆμ¦˜ 선택

각 μ‹œλ‚˜λ¦¬μ˜€μ— κ°€μž₯ μ ν•©ν•œ IPv6 μ „ν™˜ λ©”μ»€λ‹ˆμ¦˜μ„ μΆ”μ²œν•˜μ„Έμš”:

a) 이쀑 μŠ€νƒ λΌμš°ν„°λ₯Ό κ°€μ§„ κΈ°μ—…, IPv4 백본을 톡해 IPv6 μ•„μΌλžœλ“œ μ—°κ²° ν•„μš” b) NAT λ’€μ˜ κ°€μ • μ‚¬μš©μž, IPv6 μ „μš© μ„œλΉ„μŠ€ μ‚¬μš© c) IPv6 μ „μš© κ³ κ°μ—κ²Œ IPv4 μ½˜ν…μΈ  μ œκ³΅ν•˜λ €λŠ” ISP d) IPv4만 μ œκ³΅ν•˜λŠ” ISPλ₯Ό μ‚¬μš©ν•˜λŠ” μ†Œκ·œλͺ¨ 사무싀, IPv6 원함

μ •λ‹΅:

a) 6to4 or manual tunnels (GRE/IPsec)
   - Controlled environment, static config acceptable

b) Teredo
   - NAT traversal required
   - Automatic, no config needed

c) NAT64/DNS64
   - Translates IPv6 requests to IPv4
   - ISP-level deployment

d) 6to4 or Tunnel Broker (Hurricane Electric)
   - Automatic or semi-automatic
   - Works over any IPv4 connection

문제 6: λ³΄μ•ˆ ꡬ성

λ‹€μŒμ„ μˆ˜ν–‰ν•˜λŠ” ip6tables κ·œμΉ™μ„ μž‘μ„±ν•˜μ„Έμš”: - ν™•λ¦½λœ μ—°κ²° ν—ˆμš© - ν•„μˆ˜ ICMPv6 ν—ˆμš© - νŠΉμ • ν”„λ¦¬ν”½μŠ€μ—μ„œ SSH ν—ˆμš© - 기타 λͺ¨λ“  μΈλ°”μš΄λ“œ νŠΈλž˜ν”½ 차단

μ •λ‹΅:

#!/bin/bash
# Flush existing rules
ip6tables -F

# Default policy
ip6tables -P INPUT DROP
ip6tables -P FORWARD DROP
ip6tables -P OUTPUT ACCEPT

# Allow loopback
ip6tables -A INPUT -i lo -j ACCEPT

# Allow established/related
ip6tables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# Allow essential ICMPv6
ip6tables -A INPUT -p icmpv6 --icmpv6-type destination-unreachable -j ACCEPT
ip6tables -A INPUT -p icmpv6 --icmpv6-type packet-too-big -j ACCEPT
ip6tables -A INPUT -p icmpv6 --icmpv6-type time-exceeded -j ACCEPT
ip6tables -A INPUT -p icmpv6 --icmpv6-type parameter-problem -j ACCEPT

# Allow NDP
ip6tables -A INPUT -p icmpv6 --icmpv6-type router-advertisement -j ACCEPT
ip6tables -A INPUT -p icmpv6 --icmpv6-type router-solicitation -j ACCEPT
ip6tables -A INPUT -p icmpv6 --icmpv6-type neighbour-solicitation -j ACCEPT
ip6tables -A INPUT -p icmpv6 --icmpv6-type neighbour-advertisement -j ACCEPT

# Allow SSH from 2001:db8::/32
ip6tables -A INPUT -p tcp --dport 22 -s 2001:db8::/32 -j ACCEPT

# Log dropped packets (optional)
ip6tables -A INPUT -j LOG --log-prefix "IPv6-DROP: "

# Drop everything else (already default policy)

μš”μ•½

IPv6λŠ” 인터넷 μ£Όμ†Œ μ§€μ •μ˜ λ―Έλž˜μž…λ‹ˆλ‹€:

핡심 μš”μ : 1. 128λΉ„νŠΈ μ£Όμ†ŒλŠ” 사싀상 λ¬΄μ œν•œμ˜ μ£Όμ†Œ 곡간 제곡 2. κ°„μ†Œν™”λœ ν—€λ”λŠ” λΌμš°νŒ… νš¨μœ¨μ„± ν–₯상 3. μžλ™ ꡬ성(SLAAC)은 ꡬ성 μ˜€λ²„ν—€λ“œ κ°μ†Œ 4. NDPλŠ” ν–₯μƒλœ κΈ°λŠ₯으둜 ARP λŒ€μ²΄ 5. μ „ν™˜ λ©”μ»€λ‹ˆμ¦˜μ€ 점진적 λ§ˆμ΄κ·Έλ ˆμ΄μ…˜ κ°€λŠ₯ 6. λ‚΄μž₯ λ³΄μ•ˆμ€ IPsec 지원 7. NAT λΆˆν•„μš”λŠ” End-to-end μ—°κ²°μ„± 볡원

λ§ˆμ΄κ·Έλ ˆμ΄μ…˜ μ „λž΅: - 이쀑 μŠ€νƒμœΌλ‘œ μ‹œμž‘ - λͺ¨λ“  μ„œλΉ„μŠ€κ°€ IPv6 μ§€μ›ν•˜λŠ”μ§€ 확인 - ν•„μš”μ— 따라 μ „ν™˜ λ©”μ»€λ‹ˆμ¦˜ μ‚¬μš© - IPv6 νŠΈλž˜ν”½ 증가 λͺ¨λ‹ˆν„°λ§ - μ΅œμ’…μ μœΌλ‘œ IPv4 단계적 폐지

IPv6 채택이 μ¦κ°€ν•˜κ³  있으며, 이λ₯Ό μ΄ν•΄ν•˜λŠ” 것은 ν˜„λŒ€ λ„€νŠΈμ›Œν¬ μ—”μ§€λ‹ˆμ–΄λ§μ— ν•„μˆ˜μ μž…λ‹ˆλ‹€.


λ‚œμ΄λ„: ⭐⭐⭐

μΆ”κ°€ 읽을거리: - RFC 8200: IPv6 Specification - RFC 4862: IPv6 Stateless Address Autoconfiguration - RFC 4861: Neighbor Discovery for IPv6 - RFC 7084: Basic Requirements for IPv6 Customer Edge Routers


이전: 17_Practical_Network_Tools | λ‹€μŒ: 19_Container_Networking

to navigate between lessons