IPv6는 IPv4와 무엇이 다르고 현장에서는 어떻게 사용해야 할까?
IPv6는 IPv4와 무엇이 다르고 현장에서는 어떻게 사용해야 할까#
디스크립션: IPv6의 128비트 주소 구조와 IPv4와의 차이를 기초부터 알아봅니다. Link-Local Address, Global Unicast Address, SLAAC, DHCPv6, Router Advertisement, Neighbor Discovery의 동작 원리와 Dual Stack·NAT64 같은 IPv4 전환 방법, 실제 현장에서 IPv6 장애를 진단하는 방법까지 정리합니다.
1장 IPv6를 왜 알아야 할까#
1.1 갑자기 IPv6 장비가 들어온다면#
주차관제 현장에 새로운 Camera를 설치한다고 가정해보겠습니다.
기존 Network는 다음과 같습니다.
Parking Server
192.168.10.10
Gate Controller
192.168.10.20
LPR Camera
192.168.10.30모든 장비가 IPv4를 사용하고 있습니다.
그런데 새로 도입한 장비의 관리 화면에 다음 주소가 표시됩니다.
fe80::2a1:34ff:fe56:7890처음 IPv6를 접한 사람이라면:
IP Address가 왜 이렇게 길지?
라고 생각할 수 있습니다.
또 다른 현장에서는 제조사에서:
IPv4 / IPv6 Dual Stack 지원이라고 표시된 장비를 보게 될 수도 있습니다.
IPv6는 완전히 다른 Ethernet을 사용하는 기술이 아닙니다.
기존 Ethernet Network 위에서 IPv4 대신 또는 IPv4와 함께 사용할 수 있는 Network Layer Protocol입니다.
Application
↓
TCP / UDP
↓
IPv4 또는 IPv6
↓
Ethernet
↓
Cable / Fiber따라서 IPv6를 도입한다고 기존 Cat5e·Cat6 Cable이나 Ethernet Switch를 모두 교체해야 하는 것은 아닙니다.
다만 Router, Firewall, Switch 관리 기능, Server, Application, DNS, Monitoring System 등이 IPv6를 제대로 지원하는지는 별도로 확인해야 합니다.
1.2 IPv6가 등장한 가장 큰 이유#
IPv4 Address는 32bit입니다.
이론적인 주소 공간은 약:
2^32
≈ 43억 개입니다.
인터넷이 만들어진 초기에는 충분해 보였지만 PC, Smartphone, Server, IoT Device 등이 급격히 증가하면서 주소 부족 문제가 커졌습니다.
이를 완화하기 위해:
Private IP
NAT
CIDR등이 널리 활용됐습니다.
IPv6는 처음부터 훨씬 큰 주소 공간을 사용하도록 설계되었습니다.
IPv6 Address는 128bit입니다.
IPv4
32bit
IPv6
128bit주소 공간 차이는 매우 큽니다.
2장 IPv6 Address는 어떻게 생겼을까#
2.1 IPv4와 IPv6 표기 방법 비교#
IPv4는 다음처럼 10진수 네 부분으로 표현합니다.
192.168.10.20IPv6는 16bit씩 8개 영역으로 나누고 일반적으로 16진수로 표현합니다.
예:
2001:0db8:1234:5678:0000:0000:abcd:0010구조를 보면:
2001 : 0db8 : 1234 : 5678 : 0000 : 0000 : abcd : 0010
16 16 16 16 16 16 16 16 bit총:
16 × 8
=
128bit입니다.
2.2 IPv6 주소는 짧게 표현할 수 있다#
IPv6 주소를 항상 길게 쓸 필요는 없습니다.
앞쪽의 불필요한 0은 생략할 수 있습니다.
예:
0db8
→
db8그리고 연속된 0 영역은 한 번에 한해 ::로 줄일 수 있습니다.
예:
2001:db8:1234:5678:0:0:0:10은:
2001:db8:1234:5678::10으로 표현할 수 있습니다.
2.3 ::는 한 주소에서 한 번만 사용한다#
다음 주소를 생각해보겠습니다.
2001:db8::1중간에 생략된 0을 복원할 수 있기 때문에 의미가 명확합니다.
하지만 여러 곳에서 ::를 사용하면 몇 개의 0이 생략됐는지 판단할 수 없게 됩니다.
따라서 하나의 IPv6 주소 표현에서 :: 압축은 한 번만 사용합니다.
3장 IPv6에서도 Network와 Host를 나눈다#
3.1 IPv6에도 Prefix가 있다#
IPv4에서는 다음과 같은 표현을 사용했습니다.
192.168.10.0/24IPv6에서도 같은 CIDR 방식의 Prefix Length를 사용합니다.
예:
2001:db8:1234:10::/64여기서 /64는 앞쪽 64bit가 Network Prefix라는 의미입니다.
개념적으로:
2001:db8:1234:10 : xxxx:xxxx:xxxx:xxxx
──────────────── ───────────────────
Network Prefix Interface 부분처럼 볼 수 있습니다.
3.2 일반적인 LAN에서는 /64를 매우 자주 사용한다#
IPv6 LAN에서는 /64 Prefix를 매우 흔하게 사용합니다.
이는 SLAAC를 비롯한 여러 IPv6 기능과도 밀접하게 관련되어 있습니다.
예:
VLAN 10
2001:db8:100:10::/64
VLAN 20
2001:db8:100:20::/64
VLAN 30
2001:db8:100:30::/64처럼 VLAN마다 /64 Prefix를 하나씩 할당하는 설계를 자주 볼 수 있습니다.
IPv4처럼 주소를 아끼기 위해 /28, /29로 잘게 쪼개야 한다는 사고방식을 IPv6에 그대로 적용할 필요는 없습니다.
4장 IPv6에는 여러 종류의 주소가 있다#
4.1 Link-Local Address#
IPv6에서 매우 중요한 주소입니다.
대표적인 범위는:
fe80::/10입니다.
IPv6가 활성화된 일반적인 Interface는 Link-Local Address를 구성하여 같은 Link 안에서 통신하는 데 사용합니다.
예:
fe80::21a:2bff:fe3c:4d5e이 주소는 일반 Internet Routing에 사용하는 Global Address와 역할이 다릅니다.
4.2 Link-Local Address는 어디에 사용될까#
IPv6의 여러 핵심 기능이 Link-Local Address를 사용합니다.
예를 들어:
Neighbor Discovery
Router Discovery
일부 Routing Protocol
같은 Link의 장비 통신등입니다.
특히 Default Router도 Link-Local Address를 통해 표시되는 경우가 일반적입니다.
그래서 IPv6 장애를 분석할 때:
Global IPv6 Address가 있는가?
만 볼 것이 아니라:
Link-Local Address부터 정상적으로 생성됐는가?
를 확인하는 것이 좋습니다.
4.3 Global Unicast Address#
인터넷을 포함한 IPv6 Network에서 Routing할 수 있는 일반적인 Unicast Address입니다.
현재 일반적인 Global Unicast 영역은 크게:
2000::/3범위에 포함됩니다.
예:
2001:db8:1234:10::20다만 2001:db8::/32는 문서와 예제를 위한 주소 범위이므로 실제 운영망에 사용하는 주소는 아닙니다.
4.4 Unique Local Address#
IPv6에는 내부 Network 용도로 사용할 수 있는 Unique Local Address, ULA도 있습니다.
대표적인 영역은:
fc00::/7이며 실제 로컬 할당에서는 fd00::/8 형태를 많이 접하게 됩니다.
예:
fd12:3456:789a:10::20IPv4의 Private Address와 비슷한 용도로 생각하기 쉽지만 완전히 동일한 개념은 아닙니다.
내부 IPv6 주소 설계가 필요하다면 ULA와 Global Prefix의 사용 목적을 구분해야 합니다.
4.5 IPv6에는 Broadcast가 없다#
IPv4에서는:
255.255.255.255같은 Broadcast 개념을 사용합니다.
IPv6에는 IPv4와 같은 Broadcast가 없습니다.
대신 Multicast를 적극적으로 사용합니다.
따라서:
IPv4
Broadcast
IPv6
Multicast라는 차이를 기억하는 것이 좋습니다.
이 차이는 ARP와 NDP를 비교할 때 더욱 중요해집니다.
5장 IPv6 주소는 어떻게 설정되는가#
5.1 수동으로 설정할 수도 있다#
IPv4와 마찬가지로 관리자가 직접 IPv6 Address와 Prefix를 설정할 수도 있습니다.
예:
Address
2001:db8:100:20::10/64
Gateway
fe80::1Server나 Network Infrastructure에서는 고정된 주소 정책을 사용하는 경우가 있습니다.
하지만 IPv6에는 자동 설정 기능도 중요합니다.
5.2 SLAAC란 무엇인가#
SLAAC는 Stateless Address Autoconfiguration의 약자입니다.
Host가 Router에서 전달되는 Network 정보를 이용해 자신의 IPv6 Address를 자동으로 구성할 수 있게 하는 방식입니다.
개념적으로:
Router
│
│ Router Advertisement
↓
Host
│
├─ Prefix 확인
└─ IPv6 Address 구성입니다.
5.3 Router Advertisement가 핵심이다#
IPv6 Router는 Router Advertisement, 즉 RA를 보낼 수 있습니다.
RA에는 환경에 따라 다음과 같은 정보가 포함될 수 있습니다.
IPv6 Prefix
Default Router 정보
Prefix Lifetime
MTU 관련 정보
주소 자동설정 관련 Flag
기타 옵션Host는 이를 보고 IPv6 Network 설정을 결정합니다.
따라서:
IPv6 Address가 자동으로 안 잡힌다라는 장애에서는 RA가 제대로 도착하고 있는지 확인하는 것이 중요합니다.
5.4 SLAAC 주소가 항상 MAC Address로 만들어지는 것은 아니다#
과거 IPv6 설명에서는 MAC Address를 EUI-64 방식으로 변환해 Interface Identifier를 만드는 예를 자주 사용했습니다.
하지만 현대 운영체제에서는 Privacy Address나 안정적인 임의 Interface Identifier 등 다른 방식을 사용하는 경우가 많습니다.
따라서:
IPv6 주소 뒷부분
=
항상 MAC Address라고 생각하면 안 됩니다.
실제 장비의 주소 생성 방식은 운영체제와 제조사 구현을 확인해야 합니다.
6장 DHCPv6는 SLAAC와 무엇이 다른가#
6.1 DHCPv6를 이용한 설정#
DHCPv6는 중앙의 DHCPv6 Server를 통해 IPv6 관련 설정을 제공할 수 있습니다.
개념적으로:
Client
↓
DHCPv6
↓
Server
↓
IPv6 관련 설정입니다.
6.2 SLAAC와 DHCPv6는 무조건 둘 중 하나만 쓰는 것이 아니다#
IPv6 환경에서는:
SLAAC
DHCPv6
SLAAC + DHCPv6같은 형태가 가능합니다.
예를 들어 주소는 SLAAC로 구성하고 추가 설정은 DHCPv6에서 받을 수도 있습니다.
정확한 동작은 RA의 Flag와 Host 구현, Network 정책에 따라 달라집니다.
6.3 IPv4 DHCP와 동일하게 생각하면 안 된다#
IPv4에서는 DHCP Server가 Default Gateway를 알려주는 구조에 익숙합니다.
IPv6에서는 Default Router 정보가 기본적으로 Router Advertisement를 통해 제공됩니다.
따라서 IPv6 환경에서:
DHCPv6가 정상이다라고 해서:
Default Gateway도 반드시 정상이다라고 단정하면 안 됩니다.
RA 상태를 별도로 확인해야 합니다.
7장 IPv6의 NDP는 어떤 역할을 할까#
7.1 IPv4의 ARP와 비슷한 역할이 필요하다#
IPv4에서는:
IPv4 Address
↓
ARP
↓
MAC Address를 사용했습니다.
IPv6에서도 같은 Link의 상대방에게 Ethernet Frame을 보내려면 MAC Address를 알아야 합니다.
하지만 IPv6에서는 ARP를 사용하지 않습니다.
대신 Neighbor Discovery Protocol, NDP를 사용합니다.
7.2 NDP는 ICMPv6를 이용한다#
NDP는 ICMPv6 메시지를 이용합니다.
대표적으로:
Neighbor Solicitation
Neighbor Advertisement
Router Solicitation
Router Advertisement
Redirect등이 있습니다.
7.3 Neighbor Solicitation과 Advertisement#
IPv4에서:
ARP Request
ARP Reply가 있었다면 IPv6에서는 개념적으로:
Neighbor Solicitation
Neighbor Advertisement를 볼 수 있습니다.
즉:
IPv6 Address
↓
Neighbor Solicitation
↓
Neighbor Advertisement
↓
Neighbor 정보 확보로 연결됩니다.
7.4 NDP는 Broadcast가 아니라 Multicast를 활용한다#
매우 중요한 차이입니다.
IPv4 ARP Request는 Ethernet Broadcast를 사용합니다.
IPv6 NDP는 IPv6 Multicast와 Solicited-Node Multicast 등을 활용합니다.
따라서:
IPv4
ARP + Broadcast
IPv6
NDP + Multicast로 기억하는 것이 좋습니다.
8장 Duplicate Address Detection은 무엇인가#
8.1 IPv6 주소를 사용하기 전에 충돌을 확인한다#
새 IPv6 Address를 구성한 장비는 해당 주소를 이미 다른 장비가 사용하고 있는지 확인할 필요가 있습니다.
이를 Duplicate Address Detection, DAD라고 합니다.
개념적으로:
새 IPv6 Address 생성
↓
이 주소를 다른 장비가 쓰는가?
↓
Neighbor Discovery 이용
↓
충돌 여부 확인입니다.
8.2 DAD가 실패하면 주소를 정상적으로 사용할 수 없다#
만약 동일한 주소를 사용하는 장비가 이미 있다면 Duplicate 상태가 될 수 있습니다.
따라서 IPv6 주소는 표시되는데 통신이 되지 않는 상황이라면 Address 상태도 함께 확인해야 합니다.
Linux에서는 ip -6 addr 결과에서 주소 상태를 확인할 수 있습니다.
9장 IPv4와 IPv6의 차이를 한 번에 정리하기#
| 구분 | IPv4 | IPv6 |
|---|---|---|
| 주소 길이 | 32bit | 128bit |
| 표기 | 192.168.10.20 | 2001:db8::20 |
| 주소 해석 | ARP | NDP |
| Broadcast | 사용 | 없음 |
| Multicast | 사용 | 적극 활용 |
| 자동 주소 설정 | DHCP 등 | SLAAC·DHCPv6 |
| Link-Local | 대표적 일반 사용 아님 | 핵심적으로 사용 |
| NAT | 매우 일반적 | 필수 개념 아님 |
| 기본 주소 공간 | 상대적으로 작음 | 매우 큼 |
중요한 것은 IPv6가 단순히:
IPv4 주소를 길게 만든 것만은 아니라는 점입니다.
주소 설정, Neighbor Discovery, Multicast 활용 방식 등에도 차이가 있습니다.
10장 IPv6에서도 Ethernet Switch는 그대로 사용한다#
10.1 Layer 2 Switch는 IP Version을 기준으로 기본 Forwarding하지 않는다#
일반적인 L2 Switch의 기본 Frame Forwarding은 Destination MAC Address를 중심으로 이루어집니다.
따라서 같은 Ethernet 환경에서:
IPv4 Packet이나:
IPv6 Packet모두 Ethernet Frame 안에 들어갈 수 있습니다.
EtherType은 각각 다릅니다.
대표적으로:
IPv4
0x0800
IPv6
0x86DD입니다.
10.2 Cable도 IPv4용과 IPv6용이 따로 있지 않다#
다음 Cable은 IPv4와 IPv6 모두 사용할 수 있습니다.
Cat5e
Cat6
Cat6A
FiberIPv6는 Network Layer Protocol이기 때문에:
IPv6 도입
=
Cable 전면 교체가 아닙니다.
대신 Router, Firewall, ACL, Monitoring, DNS와 Application 지원 여부가 더 중요합니다.
11장 IPv6만 지원하는 장비가 들어오면 어떻게 해야 할까#
11.1 먼저 정말 IPv6 Only인지 확인한다#
장비 제조사에서:
IPv6를 지원합니다.
라고 한 것과:
IPv6만 지원합니다.
는 전혀 다릅니다.
먼저 지원 방식을 확인해야 합니다.
IPv4 Only
IPv6 Only
IPv4 + IPv6 Dual Stack을 구분합니다.
11.2 중앙 Server가 IPv4 Only라면 직접 통신할 수 없다#
예를 들어:
Camera
IPv6 Only
Central Server
IPv4 Only라면 두 장비가 동일한 IP Protocol을 사용하지 않기 때문에 단순 Routing만으로 직접 통신할 수 없습니다.
중간에 변환 기술을 사용하거나 한쪽이 상대 Protocol을 지원해야 합니다.
12장 가장 일반적으로 이해하기 쉬운 전환 방식은 Dual Stack이다#
12.1 Dual Stack이란 무엇인가#
장비가 IPv4와 IPv6를 동시에 사용하는 방식입니다.
예:
Server
IPv4
192.168.10.20
IPv6
2001:db8:10::20하나의 Interface가 두 Protocol을 모두 사용할 수 있습니다.
12.2 통신 상대에 따라 IPv4 또는 IPv6를 사용할 수 있다#
IPv4 장비
↘
Server
↗
IPv6 장비처럼 기존 IPv4 환경을 유지하면서 IPv6를 단계적으로 도입하기 좋습니다.
그래서 기존 인프라가 많은 현장에서는 Dual Stack이 현실적인 전환 방법 중 하나가 될 수 있습니다.
단, 두 Protocol을 동시에 운영한다는 것은 보안 정책과 모니터링도 두 환경을 모두 관리해야 한다는 뜻입니다.
13장 NAT64는 무엇인가#
13.1 IPv6와 IPv4 사이에 주소 변환이 필요할 수 있다#
IPv6 Only Client가 IPv4 Only Server에 접근해야 하는 환경에서는 NAT64 같은 변환 기술을 사용할 수 있습니다.
개념적으로:
IPv6 Client
↓
NAT64
↓
IPv4 Server입니다.
NAT64는 터널링 기술이 아니라 Protocol Address Translation 기술로 보는 것이 맞습니다.
13.2 DNS64와 함께 사용되는 경우가 있다#
IPv6 Client가 IPv4 Only Service를 이름으로 찾을 때 DNS64와 NAT64를 함께 사용하는 구조가 있습니다.
개념적으로:
IPv6 Client
↓
DNS64
↓
IPv6 형태의 목적지 정보
↓
NAT64
↓
IPv4 Server입니다.
하지만 모든 Application이 이런 변환 환경에서 완벽하게 동작하는 것은 아닙니다.
Application이 IP Address를 Payload에 직접 넣거나 특정 Protocol이 주소 정보에 의존하면 별도의 검토가 필요할 수 있습니다.
14장 터널링과 Translation은 구분해야 한다#
14.1 Tunnel#
Tunnel은 한 Protocol Packet을 다른 Network를 지나갈 수 있도록 캡슐화하는 방식입니다.
개념적으로:
IPv6 Packet
↓
다른 Packet 안에 캡슐화
↓
중간 Network 통과
↓
원래 IPv6 Packet 복원입니다.
14.2 Translation#
NAT64처럼 IPv6와 IPv4 사이에서 주소와 Protocol 표현을 변환하는 방식입니다.
IPv6
↓
Translation
↓
IPv4따라서:
Tunnel
≠
NAT64입니다.
IPv6 전환 기술을 이해할 때 둘을 분리해서 보는 것이 중요합니다.
15장 주차관제 현장에 IPv6를 도입해야 할까#
15.1 장비 수가 많다는 이유만으로 IPv6가 반드시 필요한 것은 아니다#
예를 들어 한 주차장에:
Camera 50대
Sensor 100대
Gate Controller 10대
Kiosk 20대가 있다고 하겠습니다.
이 정도 규모는 IPv4 Private Address만으로도 충분히 구성할 수 있습니다.
따라서:
장비가 많다
↓
무조건 IPv6라는 결론은 적절하지 않습니다.
15.2 IPv6 도입 여부는 전체 시스템을 봐야 한다#
다음 항목을 확인해야 합니다.
현장 장비 IPv6 지원
중앙 Server 지원
Router 지원
Firewall 지원
VPN 지원
DNS 지원
Monitoring 지원
개발 Application 지원
원격 유지보수 시스템 지원한 부분만 IPv6를 지원한다고 전체 시스템이 IPv6 준비가 된 것은 아닙니다.
16장 IPv6 주소를 Application에서도 처리할 수 있어야 한다#
16.1 주소 문자열 길이가 달라진다#
기존 프로그램이 IPv4만 생각해서 다음과 같이 만들었다고 가정합니다.
char ip[16];IPv6 Address를 저장하기에는 충분하지 않을 수 있습니다.
Database Column 역시:
VARCHAR(15)처럼 IPv4 길이만 고려했다면 수정이 필요합니다.
16.2 Log와 검색 시스템도 확인해야 한다#
기존 Log가:
192.168.10.20만 가정하고 있다면:
2001:db8:100:20::15같은 IPv6 Address를 제대로 처리하는지 확인해야 합니다.
특히 다음 부분이 문제가 될 수 있습니다.
Regular Expression
Database Schema
Log Parser
SIEM
Monitoring
API Validation16.3 URL에서는 IPv6 주소 표기가 달라진다#
IPv4에서는:
http://192.168.10.20:8080/처럼 사용합니다.
IPv6 Literal Address를 URL에 직접 사용할 때는 대괄호를 사용합니다.
http://[2001:db8::20]:8080/Port 구분에 사용하는 :와 IPv6 Address 내부의 :를 구별하기 위해서입니다.
개발자가 IPv6 지원을 점검할 때 매우 중요한 부분입니다.
17장 Link-Local Address를 사용할 때 Interface 정보가 필요할 수 있다#
17.1 같은 Link-Local Prefix가 여러 Interface에 존재할 수 있다#
Link-Local Address는 각 Link에서 사용됩니다.
예를 들어 한 PC에:
Ethernet
Wi-Fi
VPNInterface가 모두 있을 수 있습니다.
이때 단순히:
fe80::1234만으로 어느 Interface를 사용할지 모호할 수 있습니다.
17.2 Zone 또는 Scope Identifier#
운영체제에 따라 다음과 같이 Interface를 함께 표시할 수 있습니다.
fe80::1234%eth0Windows에서는 Interface Index 형태가 보이기도 합니다.
따라서 Link-Local Address를 이용한 현장 진단에서는 주소뿐 아니라 어느 Interface인지도 확인해야 합니다.
18장 IPv6에서는 DNS가 더 중요해진다#
긴 IPv6 Address를 사람이 직접 기억하고 입력하는 것은 어렵습니다.
예:
2001:db8:100:20:3a4f:c21b:1842:9012따라서 실제 서비스에서는 DNS를 활용하는 것이 중요합니다.
IPv6 Address는 DNS에서 일반적으로 AAAA Record와 연결됩니다.
parking.example.com
↓
AAAA
↓
2001:db8:100:20::20IPv4의 A Record와 구분합니다.
A
→ IPv4
AAAA
→ IPv619장 IPv6의 Privacy Address란 무엇인가#
19.1 고정된 Interface Identifier가 추적에 이용될 수 있다#
Client 장비에서는 장기간 동일한 IPv6 Interface Identifier를 사용하는 것이 프라이버시 측면에서 문제가 될 수 있습니다.
그래서 현대 운영체제는 임시 주소를 생성해 사용하는 기능을 제공할 수 있습니다.
이를 Privacy Extension 또는 Temporary Address와 연결해서 볼 수 있습니다.
19.2 Server와 Controller에서는 운영 정책이 중요하다#
사용자의 Laptop이나 Smartphone에서는 Privacy Address가 유용할 수 있습니다.
하지만:
Gate Controller
Camera
Server처럼 관리자가 주소를 지속적으로 추적해야 하는 장비에서는 주소 정책을 명확히 해야 합니다.
장비를 식별할 때 IPv6 Address 하나에만 의존하기보다:
Device ID
MAC
Hostname
Switch Port
Asset Number
IPv6 Address등을 함께 관리하는 것이 좋습니다.
20장 IPv6의 기본 보안 사고방식#
20.1 IPv6를 사용하면 자동으로 안전해지는 것은 아니다#
IPv6에는 큰 주소 공간과 여러 개선점이 있지만:
IPv6
=
보안 자동 해결은 아닙니다.
IPv6도:
- Firewall
- ACL
- Authentication
- Network Segmentation
- Monitoring
- Patch Management
가 필요합니다.
20.2 NAT가 없다고 보안이 약해지는 것도 아니다#
IPv4 환경에서 NAT가 외부 접근을 어렵게 만드는 효과가 함께 나타나는 경우가 있어 NAT를 Firewall처럼 생각하기 쉽습니다.
하지만 NAT의 기본 목적은 주소 변환입니다.
IPv6에서는 NAT에 의존하지 않고:
Routing
+
Stateful Firewall
+
ACL등으로 명확한 접근 정책을 적용하는 것이 일반적인 설계 방향입니다.
21장 RA Spoofing이란 무엇인가#
21.1 Host는 RA를 신뢰해 Network 정보를 얻는다#
SLAAC 환경에서는 Host가 Router Advertisement를 통해:
Prefix
Default Router
기타 Network 정보를 얻을 수 있습니다.
따라서 허가되지 않은 장비가 잘못된 RA를 보내면 Host의 Network 설정에 영향을 줄 수 있습니다.
21.2 RA Guard#
일부 Managed Switch는 RA Guard 기능을 제공합니다.
개념적으로:
Host Port
↓
허가되지 않은 RA
↓
Switch
↓
차단하여 사용자 Port에서 가짜 Router Advertisement가 들어오는 것을 제한할 수 있습니다.
지원 방식은 Switch 제조사와 모델에 따라 다릅니다.
22장 NDP 보안도 별도로 고려해야 한다#
IPv6 NDP 역시 잘못된 Neighbor Advertisement 등을 이용한 공격이나 오동작 가능성을 고려해야 합니다.
장비에 따라:
IPv6 Source Guard
Neighbor Discovery Inspection
RA Guard
DHCPv6 Guard등의 기능을 제공할 수 있습니다.
IPv4에서 사용하는 Dynamic ARP Inspection은 ARP용 기능이므로 IPv6 NDP 보호 기능과 동일한 것으로 생각하면 안 됩니다.
23장 IPv6 Network를 VLAN과 함께 설계하기#
예를 들어 다음처럼 구성할 수 있습니다.
VLAN 10
CCTV
2001:db8:100:10::/64
VLAN 20
Parking Control
2001:db8:100:20::/64
VLAN 30
Payment
2001:db8:100:30::/64
VLAN 100
Management
2001:db8:100:100::/64IPv4를 함께 사용한다면 Dual Stack으로:
VLAN 20
IPv4
192.168.20.0/24
IPv6
2001:db8:100:20::/64처럼 구성할 수도 있습니다.
하나의 VLAN에서 IPv4와 IPv6가 동시에 동작할 수 있습니다.
24장 Dual Stack에서는 보안 정책도 두 개를 봐야 한다#
중요한 운영 문제입니다.
예를 들어 Firewall에 IPv4 정책만 제대로 설정되어 있고 IPv6 Traffic은 제대로 제한하지 않았다면 예상하지 않은 접근 경로가 만들어질 수 있습니다.
따라서 Dual Stack에서는:
IPv4 ACL
+
IPv6 ACL을 모두 점검해야 합니다.
마찬가지로:
IPv4 Monitoring
+
IPv6 Monitoring도 필요합니다.
IPv6를 켜놓고 관리하지 않는 것이 오히려 위험할 수 있습니다.
25장 현장에서 IPv6 주소를 확인하는 방법#
25.1 Linux#
ip -6 addr show예:
inet6 2001:db8:100:20::15/64 scope global
inet6 fe80::1234:5678/64 scope link여기서:
scope global
→ Global Address
scope link
→ Link-Local Address를 구분할 수 있습니다.
25.2 IPv6 Routing Table#
Linux에서는:
ip -6 route를 사용합니다.
예:
2001:db8:100:20::/64 dev eth0
default via fe80::1 dev eth0처럼 볼 수 있습니다.
IPv6에서는 Default Router가 Link-Local Address로 표시되는 것이 자연스러운 경우가 많습니다.
26장 Neighbor 정보를 확인하는 방법#
Linux에서는:
ip -6 neigh또는:
ip neigh로 IPv6 Neighbor 정보를 볼 수 있습니다.
예:
2001:db8:100:20::20
dev eth0
lladdr 00:11:22:33:44:55
REACHABLE이는 IPv4의 ARP Cache와 비슷한 관점에서 활용할 수 있습니다.
하지만 Protocol 자체는 ARP가 아니라 NDP입니다.
27장 RA와 NDP Packet을 확인해보자#
시험망이나 허가된 환경에서는 다음처럼 ICMPv6를 Capture할 수 있습니다.
tcpdump -n -i eth0 icmp6환경에 따라 다음 메시지를 볼 수 있습니다.
Router Solicitation
Router Advertisement
Neighbor Solicitation
Neighbor Advertisement이 메시지들을 보면:
Router를 찾는 과정
Prefix를 받는 과정
Neighbor를 찾는 과정을 확인할 수 있습니다.
28장 IPv6 Ping#
Linux 환경에서는 보통 다음처럼 사용할 수 있습니다.
ping -6 2001:db8:100:20::20시스템에 따라:
ping6 2001:db8:100:20::20명령도 사용할 수 있습니다.
Link-Local Address를 테스트한다면 Interface 지정이 필요할 수 있습니다.
예:
ping -6 fe80::1234%eth0운영체제별 문법에는 차이가 있을 수 있습니다.
29장 IPv6 장애를 진단하는 순서#
29.1 Link부터 확인한다#
Device Power
↓
Cable
↓
Switch Port
↓
LinkIPv4와 마찬가지입니다.
29.2 Link-Local Address 확인#
fe80::...Address가 정상적으로 구성됐는지 확인합니다.
29.3 RA 확인#
SLAAC를 사용하는 환경이라면:
Router Advertisement 수신?을 확인합니다.
RA가 없다면 Global Address나 Default Route가 기대대로 설정되지 않을 수 있습니다.
29.4 IPv6 Address와 Prefix 확인#
IPv6 Address
Prefix Length
Address State를 확인합니다.
29.5 Default Route 확인#
::/0에 대한 Route가 있는지 확인합니다.
29.6 Neighbor 상태 확인#
ip -6 neigh등을 이용하여 Neighbor Resolution이 정상인지 확인합니다.
29.7 DNS를 확인한다#
Hostname을 이용한 통신이라면:
AAAA Record가 정상인지 확인합니다.
29.8 Firewall과 ACL 확인#
IPv4 Rule만 보지 말고 IPv6 Rule을 별도로 확인합니다.
29.9 Application 지원 여부 확인#
Network 자체는 정상이어도 Application이 IPv6 Socket을 지원하지 않으면 연결되지 않을 수 있습니다.
30장 현장에서 자주 만나는 IPv6 장애#
30.1 Link-Local은 있는데 Global Address가 없다#
가능한 원인:
RA가 없음
Prefix 설정 오류
SLAAC 비활성화
Router 설정 문제등을 확인할 수 있습니다.
30.2 IPv6 주소는 있는데 외부 Network와 통신되지 않는다#
확인할 항목:
Prefix
Default Route
Router
Firewall
Upstream Routing입니다.
30.3 IP로는 되는데 Domain Name으로 안 된다#
IPv6 Routing보다 DNS 문제를 확인할 수 있습니다.
AAAA Record
DNS Server
Resolver 설정을 확인합니다.
30.4 Dual Stack에서 IPv4는 되는데 IPv6만 안 된다#
이 경우:
IPv6 RA
IPv6 Route
IPv6 Firewall
IPv6 DNS를 별도로 확인합니다.
IPv4가 정상이라는 사실이 IPv6 구성까지 정상이라는 뜻은 아닙니다.
31장 IPv6 도입 전에 확인해야 할 항목#
31.1 Network 장비#
Switch IPv6 관리 지원
Router IPv6 Routing
Firewall IPv6 Policy
VPN IPv6 지원
RA Guard
DHCPv6 관련 기능31.2 현장 장비#
IPv4 Only?
IPv6 Only?
Dual Stack?
SLAAC?
DHCPv6?
Static IPv6?
DNS 지원?
TLS 지원?31.3 Server와 Software#
IPv6 Socket 지원
Database Address 길이
URL Parsing
DNS AAAA
Log Parsing
Monitoring
Access Control31.4 운영 체계#
IPv6 Address Plan
Prefix 관리
Asset 관리
Firewall Rule
Monitoring
Troubleshooting 절차까지 준비해야 합니다.
32장 IPv6를 도입할 때 흔한 오해#
32.1 IPv6가 있으면 IPv4가 자동으로 없어지는가#
아닙니다.
두 Protocol은 상당 기간 함께 사용될 수 있습니다.
Dual Stack이 대표적인 예입니다.
32.2 IPv6에서는 MAC Address가 필요 없는가#
아닙니다.
Ethernet Network에서는 여전히 Ethernet Frame과 MAC Address가 사용됩니다.
IPv6에서는 ARP 대신 NDP가 Neighbor의 Link-Layer Address를 확인하는 데 사용됩니다.
32.3 IPv6 주소는 항상 MAC Address에서 만들어지는가#
아닙니다.
현대 시스템에서는 다양한 Interface Identifier 생성 방식이 사용됩니다.
32.4 IPv6는 NAT가 없으니 위험한가#
그렇게 단순하게 판단할 수 없습니다.
접근 제어는 Firewall과 ACL 등을 통해 명확하게 구성해야 합니다.
NAT 자체는 보안 정책의 대체물이 아닙니다.
32.5 IPv6는 장비가 많을 때만 필요하다#
아닙니다.
주소 공간은 중요한 이유지만 실제 IPv6 도입 여부는 Internet, Cloud, 통신사업자, 장비 지원, Software Architecture 등 전체 환경을 기준으로 판단해야 합니다.
33장 IPv4·IPv6·전환 방식 한눈에 보기#
| 항목 | IPv4 | IPv6 |
|---|---|---|
| 주소 길이 | 32bit | 128bit |
| 주소 예 | 192.168.10.20 | 2001:db8::20 |
| Local 주소 해석 | ARP | NDP |
| 자동 설정 | DHCP | SLAAC·DHCPv6 |
| Broadcast | 있음 | 없음 |
| Link-Local | 제한적 역할 | 핵심 기능에 사용 |
| 주소 부족 | 존재 | 사실상 크게 해소 |
| NAT | 일반적 | 기본 요구사항 아님 |
| DNS Record | A | AAAA |
전환 방법도 구분해서 알아두는 것이 좋습니다.
| 방식 | 핵심 |
|---|---|
| Dual Stack | IPv4와 IPv6를 동시에 운영 |
| NAT64 | IPv6와 IPv4 사이 Address Translation |
| Tunnel | 한 Protocol을 다른 Network를 통해 캡슐화하여 전달 |
| Native IPv6 | Network와 Service가 IPv6를 직접 사용 |
34장 자기 점검#
34.1 IPv6 Address는 몇 bit인가#
128bit입니다.
IPv4의 32bit보다 훨씬 큰 Address Space를 제공합니다.
34.2 fe80::로 시작하는 주소는 무엇인가#
일반적으로 IPv6 Link-Local Address와 관련된 범위입니다.
같은 Link의 통신과 Neighbor Discovery 등 IPv6의 기본 동작에 중요합니다.
34.3 IPv6에서 ARP를 사용하는가#
아닙니다.
Neighbor Discovery Protocol을 사용하며 ICMPv6 기반의 Neighbor Solicitation과 Neighbor Advertisement 등이 활용됩니다.
34.4 SLAAC와 DHCPv6의 차이는 무엇인가#
SLAAC는 Router Advertisement의 Prefix 정보를 이용해 Host가 주소를 자동 구성할 수 있는 방식입니다.
DHCPv6는 DHCPv6 Server를 통해 주소 또는 추가 설정 정보를 제공할 수 있습니다.
둘은 함께 사용될 수도 있습니다.
34.5 IPv6 Only 장비와 IPv4 Only Server가 바로 통신할 수 있는가#
일반적으로 그대로는 통신할 수 없습니다.
한쪽에 공통 Protocol 지원을 추가하거나 NAT64 같은 Translation 구조 등을 검토해야 합니다.
35장 이 글을 마치며#
IPv6를 이해할 때 가장 먼저 버려야 할 생각은:
IPv6
=
긴 IPv4입니다.
주소 길이만 달라진 것이 아닙니다.
IPv4에서는:
IPv4 Address
↓
Subnet
↓
ARP
↓
MAC Address
↓
Ethernet구조를 사용했습니다.
IPv6에서는:
IPv6 Address
↓
Prefix
↓
Neighbor Discovery
↓
MAC Address
↓
Ethernet로 연결됩니다.
자동 설정도:
Link-Local
↓
Router Advertisement
↓
SLAAC 또는 DHCPv6
↓
Global Address
↓
Default Route라는 IPv6 특유의 흐름을 가질 수 있습니다.
현장에서 새로운 IPv6 장비를 만났다면 바로 Network 전체를 IPv6로 전환할 필요는 없습니다.
먼저 다음을 확인하는 것이 중요합니다.
장비가 IPv6 Only인가?
↓
Dual Stack을 지원하는가?
↓
Server는 IPv6를 지원하는가?
↓
Router와 Firewall은 지원하는가?
↓
DNS와 Monitoring은 준비됐는가?
↓
Application이 IPv6 Address를 처리하는가?그리고 장애가 발생하면:
Physical Link
↓
Link-Local Address
↓
RA
↓
IPv6 Address / Prefix
↓
NDP
↓
Default Route
↓
Firewall
↓
DNS
↓
Application순서로 확인하면 문제 범위를 빠르게 좁힐 수 있습니다.
특히 다음 네 가지를 기억하면 됩니다.
IPv6는 128bit Address를 사용하지만 기존 Ethernet 위에서도 동작합니다.
IPv6에는 IPv4와 같은 Broadcast가 없으며 NDP는 Multicast를 적극적으로 사용합니다.
SLAAC 주소가 항상 MAC Address를 기반으로 만들어지는 것은 아닙니다.
IPv6 도입은 Network 장비만의 문제가 아니라 Server·Application·DNS·보안·Monitoring 전체의 준비 문제입니다.
IPv4 구조를 제대로 이해하고 있다면 IPv6는 전혀 새로운 Network를 처음부터 배우는 것이 아닙니다. 같은 Ethernet 위에서 주소를 만들고 이웃을 찾고 Router를 선택하는 방법이 어떻게 달라졌는지 비교하면서 이해하는 것이 가장 빠른 접근입니다.