본문 바로가기

네트워크

[네트워크] IPv6 주소

IPv4 문제점

 - 클래스별 주소 분류 방식으로 인한 문제 가속화

 - 국가별로 보유한 IP주소 개수의 불균형

 - 주소 부족 문제 해결을 위한 한정된 IP 주소를 다수의 호스트가 사용하는 NAT(Network Address Translation) 또는 DHCP(Dynamic Host Configuration Protocol) 방법 사용

 - IPv4의 근본적인 한계와 성능 저하 문제를 극복하지는 못함

 - 유무선 인터넷을 이용한 다양한 단말기 및 서비스 등장

 - 효율적이고 안정적인 서비스 지원을 위해 네트워크 계층에서의 추가적인 기능이 요구

 - 취약한 인터넷 보안

 

IPv6의 등장

 - 차세대 IP(Ipng : Internet Protocol Next Generation)에 대한 연구가 IETE(Internet Engineering Task Force)에서 진행

 - IPv6(IP version 6, RFC 2460)이 탄생

 - IPv6은 128 비트 주소 길이를 사용

 - 보안 문제, 라우팅 효율성 문제 제공

 - QoS(Quality of Service) 보장, 무선 인터넷 지원과 같은 다양한 기능 제공

 - IPv6로의 전환은 단계적으로 진행될 것으로 보임

 - 현재는 이동전화, 가전 제품 등에 IPv6주소 도입이 추진되고 있으며, IPv6을 지원하는 운영체제 및 응용 프로그램 개발됨

 

IPv6 주소 특징

확장된 주소공간

 - IP 주소 공간의 크기를 32비트에서 128비트로 증가

 - 128비트의 공간은 대략 3.4 * 1032만큼의 주소가 사용 가능

 - 주소 부족 문제를 근본적으로 해결

 - 주소 공간의 확장으로 인해 하나의 주소를 여러 계층으로 나누어 다양한 방법으로 사용가능

 - IPv4 : 멀티캐스트 주소는 단순히 그룹을 나타낼 뿐임

 - Ipv6 : 멀티캐스트 주소는 그룹 주소뿐만이 아니라 전송 범위까지 정의

 헤더 포맷의 단순화

 - IPv4에서 자주 사용하지 않는 헤더 필드 제거

 - 추가적으로 필요한 기능은 확장 헤더를 사용하여 수행

 - IPv6의 기본 헤더는 40바이트로 고정 단순한 몇 개의 필드로만 구성

 - 헤더 필드의 단순화는 라우터에서 헤더를 분석하는 부하의 감소와 패킷 처리 속도의 향상을 의미

 - IPv6에서 패킷 단편화를 지원하지 않기 때문에 패킷 단편화와 관련 된 모든 필드들을 제거

 - 패킷을 보내기 이전에 전송에 적합한 패킷 크기를 알아내는 경로

 - MTU(Maximum Transmission Unit) 탐색 기능을 추가

 - 체크섬 필드를 제거하여 매번 헤더 체크섬 필드를 다시 계산하는 오버헤드를 줄임

 향상된 서비스 지원 : QoS 강화

 - 효과적으로 QoS 보장을 위해 플로우 레이블 필드를 이용하여 패킷을 분류

 - 화상이나 음성과 같이 시간 지연에 민감한 데이터,

 - 메일 전송과 같이 시간에 덜 민감한 데이터 등을 특성에 맞게 분류 및 처리

 보안기능 강화 : Ipsec 필수

 - IPv4에는 보안 기능이 포함되어 있지 않기 때문에 IPSec(InternetProtocol Security)이라는 보안 관련 프로토콜을 별도 설치 필요

 - IPv6에서는 보안과 관련된 인증절차, 데이터 무결성 보호, 선택적인 메시지 발신자 확인 기능 등을 프로토콜 차원에서 지원

 자동주소 설정 : 임베디드 시스템

 - IPv6에서 자동으로 로컬 IPv6주소를 생성

 - 자동 주소 생성은 라우터가 제공하는 네트워크 프리픽스(Prefix)정보와 MAC(Media Access Control)주소를 사용

 - 상태 보존형 자동 설정(Stateful auto-configuration)

   - DHCP 서버로 부터 모든 네트워크 정보를 받는 방식

   - 호스트가 DHCP 서버에 주소를 요청하면 서버는 호스트에 할당 가능한 주소를 전달

   - 주소를 효율적으로 이용하고 인증과정을 통해 보안 유지가 가능하지만 서 버에 대규모 데이터베이스를 갖추어야 하는 단점

 - 비상태형 자동설정(Stateless auto-configuration)

   - 호스트는 자신의 인터페이스 정보와 라우터에서 얻은 네트워크 정보를 이 용하여 자체적으로 IPv6주소를 생성

   - 서버가 필요 없는 장점이 있지만 권한 없는 호스트의 액세스 등으로 인한 보안 문제 발생 가능성

 

IPv4와 IPv6 특징 비교

IPv4 vs IPv6

IPv6 패킷 구조

 - 기본헤더

   - 40바이트이며 패킷의 기본적인 정보와 송수신 주소 전송에 필수적인 정보로 구성

 - 확장 헤더

   - 가적인 전송 기능이 필요할 , 사용되며 기본 헤더 뒤에 선택적으로 추가

 - 데이터 필드

   - IP 상위 프로토콜에서 사용하는 부분으로 TCP 세그먼트나 UDP 데이터그램 등이 있음

 - 버전

   - IP 프로토콜 버전을 의미하며 6으로 설정

 - 트래픽 클래스(Traffic Class : 8비트)

   - IPv6 패킷의 클래스나 우선 순위를 나타내며 IPv4 TOS(Type Of Service) 필드와 유사한 기능을 수행

   - 실시간 데이터와 같이 특별한 처리가 필요한 경우 특정 값을 사용하여 다른 패킷과의 차별화를 지원

   - 트래픽 클래스 필드는 IPv6 패킷이 IPv4패킷으로 변환될 IPv4 TOS필드 계산에 활용

 

 - 플로우 레이블(Flow Label : 20비트)

   - 동일한 서비스 클래스를 필요로 하는 패킷들을 표현

   - 기본적으로 0으로 설정되는데 음성, 화상 등의 실시간 데이터 트래픽을 나타내기 위해 0 아닌 값으로 설정

 - 페이로드 길이(Payload Length : 16비트)

   - 페이로드 길이를 바이트 단위로 표시

   - 최대 길이는 65,535바이트이며 이보다 데이터를 보낼 때는 점보 페이로드(Jumbo Payload) 확장 헤더 옵션을 사용

   - 정보 페이로드 옵션을 사용할 페이로드 길이 필드는 0으로 설정

 

 

 - 다음 헤더(Next Header : 8비트)

   - IPv6 기본 헤더 이후에 전송되는 데이터 종류를 나타내며 확장 옵션 또는 상위 계층 데이터의 종류를 지정

 -  제한(Hop Limit : 8비트)

   - 패킷이 경유할 있는 최대 라우터 수를 나타냄

   -  제한 필드 값은 IPv4 TTL 필드와 같이 라우터를 지날 때마다 1 감소되어 0 되면 패킷을 폐기하고 송신측으로 ICMP 메시지가 전달

   - 임의의 값을 주어 패킷의 전송 범위를 제한

 

 

 

IPv6 패킷 다음 헤더

 - 부가적인 기능이 필요할 때에는 기본 헤더 뒤에 확장 헤더를 추가하여 사용

 - 확장 헤더는 다음 헤더 값을 통해서 식별

 

다음헤더 순서

 - -바이- 옵션(Hop-by hop option)

   -

-바이- 옵션은 패킷의 전달 경로에 있는 모든 노드에서 해당 옵션을 처리하고자 하는 경우에 사용

   - 경로상에 있는 모든 라우터에 패킷을 전달하고자 하는 경우, IPv4에서는 각각의 라우터로 패킷을 따로 전송해야

   - IPv6에서는 -바이- 옵션을 사용하여 번에 전송

   - 다음 헤더 값은 0이며, 옵션 필드는 타입(type), 옵션 길이, 데이터 필드로 구성

 - 목적지 헤더 옵션(Destination Header option)

   - 목적지 헤더 옵션은 패킷의 목적지 호스트에서만 특정 기능을 수행하고 싶을 사용되는 옵션

   - 헤더 포멧은 -바이- 헤더에서와 비슷

   - 목적지 옵션 헤더의 다음 헤더 필드 값은 60 사용

 - 라우팅 헤더 옵션(Routing Header option)

   - 송신측에서 지정한 경로를 따라서 패킷을 전송

   - IPv4 엄격한 소스 라우팅 옵션과 느슨한 소스 라우팅 옵션을 모두 지원

   - 다음 헤더 값으로 43 사용

 -

라우팅 헤더 옵션(Routing Header option)

   - 라우팅 헤더 옵션 필드

     - 라우팅 타입 필드는 라우팅 주소 운용 방법을 규정

     - 0 느슨한 소스 라우링, 1 엄격한 소스 라우팅 의미

     - 남은 세그먼트 필드는 주소 목록 중 방문할 예정인 주소 개수

     - 주소 필드에는 경유할 라우터 주소가 삽입

 -

분할 헤더 옵션(Fragment Header option)

   - 전송 경로의 MTU보다 패킷을 나누어 전송할 사용

   - 다음 헤더 필드 값으로 44를 사용 

   - 옵션 필드

     - 분할 옵션(Fragment Offset) 필드는 전체 데이터에서 해당 패킷의 상대적인 위치를 8바이트 단위로 기술

     - M(More Fragment Flag)비트는 해당 패킷이 전체 데이터의 마지막 부분인지 아닌지를 나타냄

     - M비트가 ‘0’ 경우는 해당 패킷이 마지막 패킷임을 의미

     - 분할된 패킷들은 동일한 데이터로부터 분할되었음을 인식하고, 재조립할 있도록 같은 분할 식별자를 가짐

 - 인증 헤더 옵션(Authentication Header option)

   -

크게 가지 목적으로 사용

     - 송신자가 바뀌지 않았음을 보여주는

     - 데이터 필드의 무결성을 보장하는

   -

수신 측에서 인증 헤더를 사용하여 정확한 송신자로부터 메시지가 올바르게 전달 되었는지를 확인

   -

다음 헤더 필드 값은 51 사용

일반적인 IPv6 패킷 캡쳐

 - 패킷 필드 분석

   -

버전 : 6

   - 트래픽 클래스 필드, 플로우 레이블 필드 : 설정되지 않았음

   - 다음 헤더 8 : TCP

   -  제한 : 128

   - 송신지 IP 주소 : fe80::201:2ff:fe55:2c98

   - 수신지 IP 주소 : fe80::250:daff:fed0:b4cd

IPv6 주소표기법

 - 기본 표기법

   - IPv6 주소는 128비트로 구성되는데, 주소를 읽기 쉽게 하기 위해서 16 비트씩 콜론으로 나누고, 필드를 16진수로 표현하는 방법을 사용

   - ) 3ffe:1900:4545:0003:0200:f8ff:ffff:1105

 - 주소 생략법

   -  0 값이 자주 있는 IPv6 주소를 쉽게 표현하기 위해서 가지 생략 방법이 제안됨

   - 상위 0 생략

     - 16비트씩 나눈 필드에서 상위 0 생략

 

   - 0으로만 구성된 필드가 연속될 경우 필드 안의 0 모두 삭제하고 2개의 콜론만으로 표현

   - 생략은 번만 가능

 - IPv4 주소의 IPv6 주소 표기 방법

   - 하위 32 비트에는 IPv4 주소를 그대로 채우고 상위 비트는 모두 0으로

채우는 방식을 사용

   - 예를 들어 203.252.53.46 경우는 ::cbfc::352e으로 표현한다.

   -  하위 32 비트는 IPv4 형식으로 IPv6 주소를 표현할 수도 있음

   - ) ::cbfc::352e, ::203.252.53.46

 

 - 주소 프리픽스의 표기 방법

   - IPv6 주소 네트워크 프리픽스 표기법은 IPv4 CIDR(Classless Inter-Domain Routing) 표기법과 유사

   - IPv6 주소 뒤에 /”를 표기하고 네트워크 프리픽스 길이를 10진수로 적음

   - ) 3ffe:0501:97ff::efab / 70

     - 네트워크 프리픽스 주소의 길이는 70비트

 

IPv6 주소구성 형식

 - 주소 형태를 기술하는 필드인 포맷 프리픽스(FP:Format Prefix) 순수 주소를 나타내는 주소 필드로 구성

 - IPv6 주소는 전송 방법에 따라 유니캐스트, 멀티캐스트, 애니캐스트(anycast) 주소로 구분

IPv6 주소 포맷 프리픽스

 - 유니캐스트 주소

   - 단일 인터페이스를 식별하기 위한 주소

   - IPv6에서는 주소 공간의 확장으로 많은 계층으로 구성

   - 미지정 주소(Unspecified address)

     - 자신의 주소를 알지 못하는 호스트가 주소를 얻고자 할 때 사용하는 주소 이며 0: 0: 0: 0: 0: 0: 0: 0 또는 ::으로 표현

     - 미지정 주소는 목적지 주소로는 사용되지 않으며 특정 호스트에 할당되지 않음

   - 루프백 주소

     - IPv4 루프백 주소와 동일한 기능을 수행하며 IPv6 루프백 주소는 0: 0: 0: 0: 0: 0: 0: 0 또는 ::1 표현

   - IPv4 호환 주소(IPv4-compatible address)

     - IPv6 패킷이 IPv4 네트워크를 경유할 사용되는 주소

     - IPv4 호환 주소는 주소 필드 128 비트 상위 96 비트를 0으로 하고 나머지 32비트는 기존 IPv4 주소로 구성

   - IPv4 매핑 주소(IPv4 mapped address)

     - IPv6 네트워크에서 IPv6 지원하지 않는 IPv4 호스트를 식별하기 위한 주소

     - IPv4 매핑 주소 형식은 상위 80비트를 ‘0’으로 하고 다음 16비트를 ‘1’, 나머지 32 비트는 IPv4 주소를 삽입

   - 통합 글로벌 유니캐스트 주소(Aggregatable global unicast address)

     -  인터페이스를 유일하게 식별하는 주소

     - 통합 글로벌 유니캐스트 주소 형태

   - 통합 글로벌 유니캐스트 주소

     - FP IPv6 주소 필드 형태를 규정하며 통합 글로벌 유니캐스트 주소는 “001” 정해짐

     - TLA 식별자(Top Level Aggregation ID) 최상위 라우팅 계층 식별자를 의미

     - TLA 식별자는 현재 인터넷의 AS(Autonomous System) 번호와 비슷한 의미

     - TLA 식별자 할당은 IANA(Internet Assigned Numbers Authority) 에서 담당

TLA 식별자

     - 특히 TLA 0x0001 Sub- TLA 할당 방식은 예약 필드를 사용하며 Sub- TLA NLA(Next Level Aggregation) 식별자로 주소를 분할하여 사용

Sub-TLA 할당 방식
Sub-TLA 식별자

     - NLA 식별자(Next Level Aggregation ID)

       - 두번째 라우팅 계층 주소

       - 특정 네트워크를 구별하기 위해서 사용되며 Sub-TLA에서 지정한 할당 기관에 의해 기관단위로 할당

       - NLA 식별자는 네트워크 규모에 따라 많은 계층으로 나누어 사용 가능

     - SLA 식별자 (Site Level Aggregation ID)

       - 사이트 레벨 네트워크 식별자로 NLA 식별자를 할당받은 관리자가 해당 네트워크에서 서브넷을 구축하기 위해 사용하는 식별자

       - IPv4 서브넷 식별자에 해당하는 부분으로, 16비트로 구성되어 있기 때문에 최대 65,535개의 서브넷 구성이 가능             - 인터페이스 식별자

       - 서브넷 내부의 인터페이스를 식별할 사용

       - IPv4 호스트 주소와 유사하고 64비트의 고정길이

       - 64비트는 IEEE EUI-64 형식에 따라 구성되는데, 예를 들어 서브넷이 이더넷인 경우에는 MAC(Media Access Control)주소 사용

     - 로컬 주소(Local address)

       - 사설 주소와 비슷한 개념으로 IPv6 프로토콜을 사용하지만 보안 등의 이유로 인터넷에 접속하지 않은 경우에 사용되는 주소

       - 로컬 사이트 내에서만 사용할 있기 때문에 네트워크 외부에서 사이트 로컬 주소를 사용하는 호스트로 패킷을 전송 불가능

       - 로컬 주소는 “1111 1110”으로 시작

 

 - 멀티캐스트 주소

   - 인터페이스 그룹을 식별하는 주소

   - 패킷을 해당 멀티캐스트 그룹에 등록되어 있는 모든 인터페이스에 전달

   - 하나의 인터페이스는 여러 멀티캐스트 그룹에 동시에 가입

   - 상위 8비트가 1’로 시작된다

   - 플래그(flags)

     - 플래그 필드는 멀티캐스트 주소가 이미 정의되어 있는 주소인지, 아니면 일시적 사용을 위한 주소인지를 구분

     - 4비트 중 상위 3비트는 사용되지 않고 마지막 비트가 ‘0’인 경우는 잘 알려진(well-known) 멀티캐스트 주소를 나타내고, ‘1’인 경우에는 일시적으로 사용되는 멀티캐스트 주소를 나타냄

 

   - 범위(Scope)

     - 티캐스트 트래픽이 전달되는 네트워크 범위를 나타냄

     - 노드 로컬 범위(Node-local scope) 멀티캐스트 주소가 해당 노드(호스트)내에서만 유효

     - 링크 로컬 범위(Link-local scope) 동일 링크상에서만 유효함을 나타낸다.

     - 이와 같은 네트워크 범위 구분 방식으로 사이트 로컬 범위(Site-local scope)와 조직 로컬 범위(Organization-local scope)가 존재 글로벌 범위(Global scope) 경우에는 모든 네트워크에 적용

 - 멀티캐스트 주소

   -

공통적으로 사용하는 멀티캐스트 주소

 

 -

애니캐스트 주소

   -

애니캐스트 주소는 다수의 인터페이스를 지정한다는 점에서 멀티캐스트 주소와 비슷하지만 해당 그룹에 속하는 모든 인터페이스로 패킷이 전달되지 않고 가장 가까운 거리에 있는 인터페이스에게만 패킷이 전달

   - 가장 가까운 거리의 의미는 라우팅 거리가 가장 짧은 것을 나타내며 애니캐스트는 가장 가까운 네트워크 자원을 찾아내기 위한 방법으로 사용될 있음

   - 애니캐스트 주소는 그룹을 나타내기 때문에 송신 주소로는 사용될 수 없으며 특정 인터페이스에 할당될 수도 없음

IPv4 / IPv6 전환

이중 스택

 - 이중 스택 시스템의 주소 설정

   - IPv4와 IPv6 두가지 프로토콜을 모두 지원하기 때문에 IPv4 주소와 IPv6 주소 모두 설정 가능

 -

이중 스택 시스템의 DNS 이름 해석

   - IPv6 DNS 주소 저장 방식인 AAAA 레코드 유형과 IPv4 DNS 저장 방식

A 레코드를 모두 처리할 있어야

   -  기능을 위해서는 DNS 주소 해석 라이브러리(DNS Resolver Livrary)

가지 유형을 모두 지원 필요

 - IPv4 터널링

   - 특정 프로토콜을 사용하는 네트워크 사이에 다른 프로토콜을 사용하는 네트워크가 존재할 때, 중간 네트워크에서 사용하는 프로토콜로 인캡슐레이션하여 전송하는 방법 의미

   - IPv6에서의 터널링은 IPv6 네트워크 사이에 IPv4 네트워크가 존재 , 송신 라우터가 IPv4로 캡슐화하여 전송하고 수신 라우터가 IPv6 역캡슐화 하는 방법을 의미

 

터널링 기법 구분

 - 설정 터널링

   - 수신 호스트가 IPv4 호환 주소(IPv4-compatible address)지원하지 못할 사용

   - 송신자가 DNS에서 새로운 IPv6 주소를 할당 받아 IPv6 패킷을 보내면 라우터 A 라우터 B까지 IPv4 패킷으로 변환 전송

   - 라우터 B 받은 IPv4 패킷을 원래의 IPv6 형식으로 변환하여 목적지

호스트로 패킷을 전달

 - 자동 터널링

   - 수신 호스트가 IPv4 호환 주소를 지원할 때 새로운 주소를 얻지 않고 전달하는 방식

   - 송신자가 IPv4 호환 주소를 사용하여 패킷을 보내면 경계 라우터는 IPv6 주소에 있는 IPv4 주소를 추출하여 IPv4 네트워크 라우팅을 수행 목적지 호스트는 IPv4 패킷을 받아 헤더를 읽고 프로토콜 필드를 통해 IPv6 패킷을 찾아냄

 

설정 터널링과 자동 터널링
IPv4 / IPv6 변환    -

IPv4-IPv6 게이트웨이

   - IPv6 호스트와 IPv4 호스트 패킷 형식을 변환하는 게이트웨이 필요

   - 네트워크 계층에서 변환하는 경우

   - 라우터와 같은 장비에서 변환 기능이 수행되지만 응용 프로토콜에 내장된 IP 계층 주고 변환을 수행할 수 없기 때문에 별도의 응용 게이트웨이를 추가 구현 필요

   - 응용 계층 게이트웨이

     - 다양한 서비스 지원이 가능하지만 상위 계층까지의 모든 내용을 분석해야 하기 때문에 네트워크 계층 변환에 비해 처리 과정이 복잡하고 많은 시간이 소요

 

ICMPv6

 -

네트워크 계층 프로토콜 변화

   - IPv4 네트워크 계층에는 ARP, RARP, ICMP 등이 존재

   - IPv6에서는 주소 설정 체계와 전송 방법의 변화에 따라 네트워크 계층 프로토콜이 IPv6 ICMPv6 단순화

   - IPv4 ICMP 마찬가지로 ICMPv6 패킷 전송을 감독하고 네트워크 관리를 보조하는 역할 수행

'네트워크' 카테고리의 다른 글

[네트워크] 전송계층 프로토콜  (0) 2023.03.20
[네트워크] 라우팅  (0) 2023.03.19
[네트워크] 모바일 IP  (0) 2023.03.18
[네트워크] IPv4 프로토콜  (0) 2023.03.16
[네트워크] 네트워크의 개요  (1) 2023.03.15