1) IPv6 도입 배경
- 현재 사용되고 있는 IPv4는 컴퓨터와 인터넷 등 네트워크의 광범위한 사용을 예측하지 못하던 시대에 등장하였다.
- 90년대에 Web이 도입되면서 IP를 쓰는 곳들이 점점 많아져서 2011년에 42억 개인 IPv4 주소의 개수가 고갈된다.
- Classless, NAT, PAT 등 가용 IP를 늘리기 위해 다양한 방법을 사용하고 있지만 현재에도 냉장고, 시계 각종 IoT 등 다양한 IP를 쓰는 장비들이 추가되고 있다.
- IPv4는 다르게 IPsec(Internet Protocol Security)을 지원하지 않는다.
2) IPv6 Format
- 128 Bit의 크기를 가지고 있다.
- 16진수로 표현하기 때문에 총 32자리의 숫자로 표현된다.
- 16진수 4개의 숫자마다 :(콜론)을 써서 구분한다.
Leading 0s: 앞에 오는 0들을 생략할 수 있다.
(2001:0000:0000:00A1:0000:0000:0000:1E2A → 2001:0:0:A1:0:0:0:1E2A)
Consecutive 0s: 연속되는 0을 생략할 수 있다.
(2001:0:0:A1:0:0:0:1E2A → 2001:0:0:A1::1E2A)
Network Prefix: Network ID
Interface ID: Host ID
- IPv4와 다르게 Subnet Mask는 사용하지 않는다.
Q) 2011:AABB:0:CCD0:: /60 에서 할당 가능한 주소는?
2011:AABB:0:CCD0:: ~ 2011:AABB:0:CCDF:FFFF:FFFF:FFFF:FFFF
3) IPv6 Header
- IPv4가 도입될 시기의 경우 효율적인 처리보다는 안정성 더 중요시하게 생각했기 때문에 다양한 값들이 존재했었다.
- 패킷의 효율적인 처리를 위해 기본 헤더를 간략화하고 확장 헤더의 개념을 도입하였다.
- IPv는 패킷의 크기가 항상 40byte로 고정되어있기 때문에 헤더 길이 필드(IHL)가 필요하지 않다.
- IPv4의 경우 단편화했을 경우 첫 번째 패킷만 QoS 기능을 수행할 수 있었는데 IPv6의 경우 Flow Label을 통해서 모든 패킷에서 확인할 수 있다.
Traffic Class: Type Of Service 기능을 수행한다. (Quality of Service)
Payload Length: 전체 길이 필드가 사라지고 Payload 길이만 표시한다. (4 계층부터 Data길이)
Next Header: Protocol 기능을 수행한다.
Hop Limit: TTL(Time-To-Live) 기능을 수행한다.
4) IPv6 Fragmentation
- IPv6 Node는 전송 Packet의 크기가 MTU보다 클 경우 Fragmentation 수행한다.
- 기본 헤더에 확장 헤더를 추가한다.
- 각 헤더의 길이는 8 옥텟의 배수로 나눈다.
- 최종 목적지 Node만 확인하는 확장 Header는 Fragmeable Part로 분류한다.
- 중간 Node가 확인해야 할 확장 Header는 Unframentable Part로 분류한다.
5) IPv6 주소 전송방식
- IPv6의 전송방식은 Unicast, Multicast, Anycast가 있다. Broadcast는 지원하지 않는다.
5.1) Unicast
- 단일 인터페이스를 위한 식별자이다.
- 유니캐스트 주소로 전송된 패킷을 해당 주소에 의해 식별된 인터페이스로 전달한다.
- 유니캐스트에 사용되는 다양한 주소들이 있다.
5.1.1) Global Unicast Address
- 전 세계에서 고유한 주소를 의미하고, 외부에서 접근이 가능한 대역이다. (IPv4의 공인 IP 주소 역할로 이해하면 된다.)
- 현재 사용되고 있는 Global Unicast 주소 대역은 2000::/3 대역이다. (앞의 3bit가 001로 고정된 주소 범위이다.)
- 공식적인 절차를 통해서 할당받아야 사용 가능하다.
(IANA(ICANN) → RIR(APNIC) → KISA →ISP(KT, SKT, LG) → Customer)
5.1.2) Link-Local Address
- 인터페이스 Global Unicast 주소를 할당하거나 혹은 IPv6를 활성화시키는 경우 자동으로 생성되는 주소이다.
- Cicso 라우터의 경우 Link-Local 주소는 Modified EUI-64 방식으로 생성된다. (동작 방식은 9번에서 설명하겠습니다.)
- 동일 Link에서만 사용이 가능한 주소이고 외부에서 접근이 불가능하다.
- FE80::/10 대역으로 예약되어있고 관리적인 편의성을 위해서 관리자가 수동으로 변경하는 것도 가능하다.
- 동일 Subnet 안에서 제어 메시지(ICMPv6 / Dynamic Routing Protocol Update 등)를 전송하는 경우 사용된다.
5.1.3) Unique Local Unicast Address
- 특정 지역에서만 사용되는 IP주소로 IPv4 주소의 사설 IP 주소 개념과 비슷하다.
5.1.4) Loopback Address
- 노드가 스스로에게 패킷을 보낼 수 있는 루프백 인터페이스를 식별하는 데 사용한다.
- 주소는 0:0:0;0:0:0:0:1 또는 ::1로 사용한다.
5.2) Multicast
- 인터페이스들의 집합을 위한 식별자이다.
- 멀티캐스트 주소로 전송된 패킷은 해당 주소에 의해 식별된 모든 인터페이스로 전달된다.
5.2.1) Well-knows Multicast Address
- 사전에 정해진 특정 Multicase 주소이다.
- All-node Multicast
- All-route Multicast
- Solicited node Multicast (10번에 자세히 설명하였다.)
5.2.2) Temporary Multicast Address
- 특정 지역 안에서만 사용되는 Multicast 주소이다.
6) IPv6 Interface-ID 생성 방식
- 기본적으로 상위 64bit를 Subnet Prefix로 구분하고, 하위 64bit를 Interface ID로 구분한다.
- 자동으로 Interface-ID를 할당할 수 있는 방법들이 존재한다. (Address-Auto-config)
- DHCPv6 서비스를 사용하는 방식을 Stateful Address Auto-Config라고 한다.
- 나머지 자동할당 방식을 Stateless Address Auto-Config라고 한다.
6.1) IPv6를 Host에게 할당하는 방식
6.1.1) 수동 할당(Manually Configuration)
- IPv6 IP를 수동으로 할당하는 방식이다.
6.1.2) DHCPv6 (Stateful Address Auto-Config)
- DHCPv6 서버를 별도로 구축해야만 사용이 가능하다.
6.1.3) Modified EUI-64 (Stateless Address Auto-Config)
- Cisco 라우터 등에서 사용되는 방식이다.
- DHCPv6 서버를 구축하지 않아도 자동 할당이 가능하다. (9.2에서 자세하게 설명하였다.)
6.1.4) Auto-genetate Pseudo Random
- MicroSoft 운영체제 (Window)에서 사용되는 방식이다.
- Hash를 사용하여 임의적인 64bit Interface-ID를 생성하여 사용한다.
- 일정 시간 간격으로 임시 IPv6 주소를 변경하여 사용하기 때문에 보안적으로 더 안전하다.
- Gateway 장비에서 RA(Router Advertisement) 메시지를 전송해야만 IPv6 주소가 자동으로 생성될 수 있다.
(RA 메시지 안에는 Subnet prefix 등의 정보가 들어있다. Cisco 장비가 Gateway인 경우 ipv6 unicast-routing 명령어를 입력해야만 RA 전송이 가능하다.)
- DHCPv6 서버를 구축하지 않아도 자동 할당이 가능하다. (11에서 자세하게 설명하였다.)
7) IPv6 장점
- 무한대에 가까운 주소를 부여할 수 있다.
- NAT로 인한 Application 동작 문제를 해결할 수 있다.
- Hierarchical Addressing이 가능하다.
- Network Mobility와 IPSec 기본으로 제공된다.
- IPv6 주소 할당 및 Renumbering이 편리하다.
- Routing 성능이 향상된다.
8) IPv6 구성
- 본사(HQ) 라우터의 FastEthernet 0/1 포트를 IPv6로 구성하려고 한다.
8.1) HQ 라우터의 Fast Ethernet 0/1번 포트 설정
<HQ>
int fa 0/1
ipv6 add 2001:1:1::00FE/64
no sh
!
- verify -
show ipv6 interface brief
show ipv6 interface fastethernet 0/1
8.2) 인터페이스 설정 확인
8.2.1) show ipv6 interface brief
8.2.2) show ipv6 interface fasteternet 0/1
9) Modified EUI-64 생성 방식 (Link-Local Address 설정 확인)
- HQ라우터의 FastEthernet 0/1 MAC 주소를 확인해보면 CC01:34CC:0001인것을 확인할 수 있다.
- 해당 MAC 주소를 이용하여 Modified EUI-64 동작 방식을 설명하려고 한다.
1. Interface의 MAC 주소를 절반으로 나눈다.
CC01:34CC:0011 → CC01:34 CC:0011
2. 그 사이에 FFFE를 추가한다.
CC01:34 → CC01:34FF:FECC:0001
3. MAC 주소에서 7번째 비트를 0에서 1로 변경한다.
1100 1100 0000 0001 -> CC01
1100 1110 0000 0001 -> CE01
4. 위에서 생성된 주소 앞에 FE80::을 붙여서 Link-Local 주소를 생성한다.
CE01:34FF:EECC:0011 → FE80:CE01:34FF:FECC:0001
9.1) 결과 확인
show interface ipv6 interface fastethernet 0/1
- show interface ipv6 interface fa 0/1 명령어로 확인해보면 Link-Local Address가 생성된 것을 확인할 수 있다.
9.2) Modified EUI-64 IP 자동할당 설정
- HQ 라우터에서 ipv6 unicast-routing 명령어를 입력한다.
<HQ>
ipv6 unicast-routing
- Switch와 R1 라우터 사이를 Wireshark로 패킷을 확인한다.
- ICMPv6 패킷으로 Prefix information 정보를 보내는 것을 확인할 수 있다.
- R1라우터에서 IPv6 주소를 자동할당받는다.
<R1>
conf t
int fa 0/0
ipv6 address autoconfig
no sh
!
9.3) 결과 확인
show ipv6 interface fastethernet 0/0
- IPv6 주소가 자동으로 할당된 것을 확인할 수 있다.
HQ 라우터로 Ping Test
- 자동할당받은 IP로 HQ라우터와 정상적으로 ICMPv6 패킷을 주고받는 것을 확인할 수 있다.
10) Solicited node Multicast
- [ FF02::1:FF/104] + [24bit] 방식으로 사용된다.
- 특정 인터페이스에 Global Unicast 주소 및 Link-Local IPv6 주소가 할당될 경우 해당 주소들을 Solicited node Multicast 주소를 자동으로 생성하게 된다.
- 해당 인터페이스를 가리키는 고유한 그룹 주소로 사용된다.
- NDP(Neighbor Discovery Protocol) 과정에서 과거 ARP와 다르게 Broadcast 주소가 아닌 Solicited Node Multicast 주소를 사용한다.
- 결과적으로 Target 장치가 아닌 나머지 장치들은 NS 메시지를 받더라도 자신의 Multicast 주소가 아니기 때문에 처리하지 않는다. (부하를 줄일 수 있다.)
11) Auto-genetate Pseudo Random 자동할당 설정
- Window_A에서 IPv6를 자동할당받으려고 한다.
11.1) Window_A IPv6 확인
- Window_A에서 IPv6를 자동으로 받기 설정 후 ipconfig 명령어를 입력한다.
<Window_B CMD>
ipconfig /all
- Ipv6 테이블을 확인한다.
<Window_B CMD>
netsh int ipv6 show neighbor
11.2) HQ라우터로 Ping Test
- HQ라우터에게 ICMPv6 패킷이 정상적으로 가는지 확인한다.
- neighbor에 HQ라우터가 추가된 것을 확인할 수 있다.
- Window_A와 Switch 사이를 Wireshark로 패킷을 확인한다.
- NS 메시지를 확인해보면 해당 장비에 Multicast를 보내는 것을 확인할 수 있다.
12) ICMPv6(Internet Control Message Protocol)
- ICMP 역할은 IP를 보조하는 비서와 같다.
- ICMPv6는 ICMPv4보다 더 많은 역할을 수행한다.
- IPv6의 경우 ARP 역할을 ND(Neighbor Discover)가 수행하고 IGMP 역할을 MLD가 수행한다. (ND와 MLD는 ICMPv6에 포함되어있다.)
12.1) ICMPv6 역할
- ICMPv6는 정보제공과 오류 통보 역할을 수행한다.
12.1.1) 오류 통보 (type 0 ~ 127)
Type 1: Destination Unreachable
Type 2: Packet Too Big
Type 3: Time Exceeded
Type 4: Parameter Problem
12.1.2) 정보제공 (type 128 ~ 255)
Type 128: Echo Request
Type 129: Echo Reply
Type 130 ~ 132: MLD (Multicast)에서 사용
Type 133 ~ 136: ND (Neighbor Discover)에서 사용
Type 133: RS (Router Solicitation)
Type 134: RA (Router Advertisement)
Type 135: NS (Neighbor Solicitation)
Type 136: NA (Neighbot Advertisement)
Type 137: Redirect
'Network > Router' 카테고리의 다른 글
[IPv6] Ripv6을 통한 Routing 구성 (0) | 2020.01.14 |
---|---|
[IPv6] IPv6 인터페이스 설정 및 Static, Default Routing 설정 (0) | 2020.01.13 |
[Router] EoMPLS(Ethernet over MPLS) 구성 (0) | 2020.01.10 |
[Router] MPLS(Multi Protocol Label Switching) VPN LDP(Label Distribution Protocol) 구성 및 확인 (0) | 2020.01.09 |
[Router] BGP(Border Gateway Protocol) 개념 및 설정 (2 / 2) (0) | 2019.12.26 |
공부&일상 블로그
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요! 질문은 언제나 환영입니다😊