카테고리 없음

TIL 2021-10-12 IPv6

강에 뜨는 달 2021. 10. 12. 11:57

IPv6는 인터페이스들을 위한 128bit 식별자다.

 

interface는 node가 link가 붙은것

 

128bit = 16btye

 

32개의 16진수로 표현됨

 

16bit(16진수 2개 이상) 이상의 0은 ::을 통해 묶음

 

2001:DB8:0:0:8:800:200C:417A

->

2001:DB8::8:800:200C:417A

 

0:0:0:0:0:0:0:0

->

::

 

모든 타입의 IPv6 주소는 노드가 아니라 interface에 할당됨

 

모든 인터페이스는 최소한 하나의 Link-Local unicast 주소를 가져야한다.

 

하나의 인터페이스는 어떤 타입(unicast, anycast, multicast)이든 다양한 IPv6 주소를 가질수 있다.

 

subnet prefix는 하나의 링크와 연결됨

 

여러 subnet prefix는 하나의 링크에 연결될수 있음

 

IPv6안에 허락되는 네트워크 마스크의 형태는 CIDR 다.

 

IPv6가 16진수라고 해도 network mask 값은 10진수

 

2001:410:0:1:0:0:0:45FF/128

 

2001:410:0:1::/64

 

2001:410:0::/48

 

대체로 128비트에서 64는 network prefix 64는 host prefix인데, 48비트만 사용했다는것은 나머지 16비트는 subnet으로 사용한다는 의미

 

3가지의 주소 타입

 

Unicast

하나의 인터페이스의 신별자

 

Anycast

인터페이스들의 식별자(가장 가까운 노드들과 communicate하기 위한 방법)

 

Multicast

인퍼에시들의 식별자(그 주소에 식별된 모든 인터페이스들에게 패킷을 보냄)

 

 

Unicast IPv6 주소

 

Global Unicast

 

Link-Local

 

Site-Local

 

Unique local

 

Special

 

 

 

Global Unicast주소

 

public IPv4와 동일

 

Globally routable and reachable on IPv6

 

플랫하고 계층적인 라우팅인 IPv4 기반 인터넷과 다르게 IPv6 기반 인터넷은 효율적이고 계층적인 addressing과 라우팅을 위한다는 기반으로 디자인됨

 

MSB 3bit가 001로 식별

 

3파트로 나누어짐

 

001로 고정된 부분

 

글로벌 주소로 현재 할당된 주소 prefix는 2000::/3

 

1. Global Routing Prefix - Site Prefix

 

기관에 할당된 Site prefix는 최소 /48임

 

45 + 001(higher order bits)

 

기관에 할당된 prefix는 제공자의 prefix의 부분임

 

2. Subnet - Site

하나의 /48 prefix는 제공자에 의해 기관에 할당되는데, 기관으로하여금 65535 subnets를 사용할수 있게 한다.

(서브넷의 64bit prefix 할당때문, 48bit -> 네트워크, 16bit -> subnet)

 

기관은 서브넷으로 받은 49~64bit를 사용가능

 

 

3. interface-id - Host

 

호스트는 각 노트의 interface tlrqufwkfmf tkdydgka

 

주소의 low-order 64bit를 대표하는  IPv6 부분은 interface-id라고 부름

 

 

2001:0410:00::/48  assigned by a provider

 

2001:0410:0100:0002::/64 는 기관안의 network subenet

 

2001:0410:0100:0002:0200:CBCF:1234:4404 서브넷 안의 node 주소

 

 

Interface Identifier

 

IPv6 unicast 주소의 interface identifier는 링크에 있는 인터페이스를 식별하기 위함

 

 

Interface ID

64비트

Modified EUI-64 format( binary value 000을 시작으로하는 값들 제외)

 

subnet prefix 안에서 unique해야함 (IPv6 주소의 unique와는 별개

 

EUI-64 format

 

Extended Unique Identifier(EUI)는 호스트가 스스로에게 unique 64비트 IP Version 6 interface identifer

 

IPv4와 대비되는 key benefit

IPv4의 DHCP or 수동 설정의 필요성을 지웠기 떄문

 

같은 모든 디바이스는 같은 mapping technique를 사용해야함

 

layer 2 address 의 일반적인 타입은 IEEE 802 MAC 주소다.

 

Layer 2 address

48비트(24비트 블럭 2개)

 

상위 24비트 -> organizationally unique identifier(OUI)-> 각각의 기관에 다른 값 할당

 

하위 24비트 -> 디바이스 식별자

 

EUI-64 Format

 

OUI이 24비트로 남아 있을때 device identifier가 24 대신 40 비트 되는 경우 제외하면, 48bit  MAC 형태와 비슷함

 

IPv6 EUI-64 format 주소는 48bit MAC address를 통해 획득됨

 

MAC 주소는 먼저 두 24비트로 나누어짐(하나는 OUI, 하나는 NIC)

 

16bit 0xFFFE는 64bit EUI 주소를 위해 두 24비트 사이에 삽입

 

IEEE 는 FFFE를 EUI-48 MAC address에서 생성된 EUI 64에 나타나는 예약된 값으로 선택한다

 

왼쪽에서 7번쨰 비트는 inverted되야한다.이 비트는 이 identifier가 universally or locally administered인지 확인함.

 

if 0 -> locally

 

if 1 -> globally

 

Global Unicast Address Allocation

 

IPv4, IPv6, Address Space number, domain등은 Internet Assigned Numbers Authority(IANA)에 의해 관리됨

 

총 5개의 RIR가 있다. AfriNIC(Africa), APNIC(Asia-Pacific), ARIN(North America), LACNIC(Latin America, CARIBBEAN), RIPE NCC(Europe)

 

RIR은 IANA에 의해 할당된 address resource를 연계된 NIR에게 분배함

 

IPv6 Unicast 주소 스코프

 

Link-Local Scope

single layer 2domain의 무든 호스트를 식별함 (LAN)

link-local address

Unique-local scope

도달할수 있는 administrative site나 대체로 mutiple distinct link를 포함한 도메인의 모든 디바이스를 식별

unique-local address(ULAs)

Global scope

인터넷을 통해 접근할수 있는 모든 디바이스를 식별

 

Global Unicast address (GUAs)

 

 

Local-use Unicast Address

2가지 타입

 

Link-local address

on-link neigbour이나 Neighbor Discovery Process(NDP)에 사용

 

다른 unicast 주소가 없더라도 자동으로 설정됨

 

link-local adress의 scope = local link

 

Site local address

동일 사이트의 다른 노트들이 소통하는데 사용

 

Local-use Unicast Address

동일한 local-link로 연결된 노드들에만 사용

 

IPv6 스택이 node에 가능해졌을때, 하나의 link-local 주소는 부트 시간에 노드의 각 interface에 자동으로 할당됨

 

IPv6 link-local prefix (FE80::/10)가 사용되고

 

EUI-64 형식의 inteface identifier는 주소의 low-order 64비트로 연결됨

 

11~64비트는 0으로 설정됨

 

Link-local 주소는 local-link 스코프를 위해서며 사이트 내의 서브넷 사이에서 라우팅되면 안됨

 

 

Site-Local Address

 

Site-local address는 IPv4 Private address space와 동일 (10.0.0./8, 172.16.0.0/12, 192.168.0.0/16)

 

Site-local은 다른 사이트로부터 도달되면 안되고, 라우터는 site-local 트래픽을 사이트 밖에서 forward하면 안됨

 

스코프는 site

 

link-local address와 달리 자동으로 설정되지 않음

 

Special IPv6 주소

 

Unspecified address

 

0:0:0:0:0:0:0:0 or ::

 

address가 없다는 것을 나타낼때만 사용

 

IPv4의 0.0.0.0과 동일

 

임시 주소의 유일성을 검증하기 위한 packet attempting에 사용되는 source address로 사용됨

 

interface에 할당되거나 destination address로 사용되지 않음

 

 

 

Loopback address

 

0:0:0:0:0:0:0:1 or ::1

 

은 노드가 자체에게 패킷을 보낼수 있도록 하는 루프백 인터페이스를 식별하는데 사용

 

IPv4의 127.0.0.1과 동일

 

루프백 주소에 보내진 패킷은 링크 상으로 보내지거나 IPv6 라우터에 의해 forward되지 않음

 

 

 

Special IPv6 주소

 

IPv4 mapped IPv6 주소

 

1. IPv4 -compatible IPv6 address

IPv4 주소를 IPv6 주소로 embedding 하여 IPv6 디바이스로 하여금 IPv4 연결 네트워크와 소통할수 있게 해줌

나중에 IPv4라우터에 의해 추출되어 IPv4 네트워크를 통해 라우트 될수 있음

 

 

IPv4 네트워크를 통해 IPv6 패킷을 옮기는 automatic tunnel을 설립하기 위해 사용됨

 

0:0:0:0:0:0:~~~

 

96개의 0bit

 

 

2. IPv4 -mapped IPv6 address

IPv4 mapped IPv6 주소

 

IPv4 Only 노드의 주소를 IPv6 주소로 대표하기 위함

 

::FFFF:~~

 

80개의 0비트, 16개의 1비트

 

IPv6 Anycast

 

만약 동일한 Anycast 주소가 다른 노드의 인터페이스에 할당되어있다면, Routing Protocol 알고리즘에 의해 가장 가깝다고 결정되는 인터페이스로 전송됨

 

의의

 

traffic load balancing

 

 

2002년 DDos 공격으로 8/13 개의 루트 DNS를 다운시킴

 

Anycast IP를 사용함으로써, DNS는 하나의 지역이 무너지더라도, 다른 지역에서 서비스가 가능하게 분배할수 있음

 

Google public device 8.8.8.8

 

network redundancy를 위해 사용될수 있음

 

Server A에 통신이 없을떄, 클라이언트는 network operation의 아무런 설정 없이 Server B와 자동적으로 통신 가능

 

 

서브넷 라우터 anycast 주소는 predefined되어야함

 

anycast의 subnet prefix는 specific link을 식별하는 prefix임

 

Sub-Router anycast 주소는 노드가 라우터들의 집합중 어느 하나와 통신이 필요한 어플리케이션에 사용하려고 의도됨

 

건설될떄, 적합한 value를 고정시키고 남은 비트를 0으로 채움

 

서브넷에 연결된 모든 라우터 인터페이스는 그 서브넷의 Subnet-Router anycast주소로 할당됨

 

specified 서브넷의 연결된 가장 가까운 라우터오 ㅏ연결됨

 

IPv6패킷의 source 주소로 사용될수 없음

 

Multicast

 

IPv6는 broadcast가 없음.

 

IPv6에선 모든 노드들은 multicast를 지원해야함.

 

30년전엔 Multicast가 없었음

 

IPv4가 specified되면, IP네트워크를 위한 multicast standard가 없었음.

 

그래서 DHCP나 ARP 같은 많은 서비스는 broadcast에 의존해야했음

 

LANs의 크기가 거지고, 스위치가 있기에 broadcast 굳이

 

 

IPv6에서 multicast traffic 은 IPv4와 동일하게 작동함

 

IPv6 노드는 동시간에 다양한 multicast 주소를 listen할수 있음

 

노드는 어느 시점에서나 multicast group을 참여하거나 떠날수 있음

 

source address나 Routing extendsion header의 intermediate destination으로 사용할수 없음,

 

주 목표는 노드 간에 교환되는 패킷 량을 최적화하여 link의 bandwidth를 저장한 효율적인 네트워크를 만드는것