IPv6 - 멀티캐스트(Multicast) 주소 형식 (IETF RFC 4291)

반응형

본 글에서는 IPv6 멀티캐스트(Multicast) 주소 형식에 대해 설명한다.

 

IPv6 멀티캐스트 주소의 형식은 IETF RFC 4291 IP Version 6 Addressing Architecture 표준의 2.7절에 정의 되어 있다.

 

RFC 4291 : IP Version 6 Addressing Architecture

2.7. 멀티캐스트(Multicast) 주소

IPv6 멀티캐스트 주소는 네트워크 인터페이스들(보통 서로 다른 노드에 포함되어 있는)이 속한 그룹에 대한 식별자이다. 각 네트워크 인터페이스는 다수의 멀티캐스트 그룹에 속할 수 있다. 

 

멀티캐스트 주소 형식

멀티캐스트 주소는 다음과 같은 형식을 가진다.

 

IPv6 멀티캐스트 주소 형식

 

시작 코드 필드

시작 부분의 8 비트 길이의 비트열 "11111111"은 해당 주소가 멀티캐스트 주소임을 나타낸다. 

 

flgs 필드

flgs 필드는 다음과 같이 4개의 플래그로 구성된다.

 

IPv6 멀티캐스트 주소 flgs 필드 형식

 

이 중 최상위 비트 플래그는 0의 값을 갖도록 예약되어 있다.

 

(T 플래그가 0인 경우) 해당 멀티캐스트 주소가 IANA에 의해 영속적으로 할당된 주소(Well-known 주소)임을 나타낸다.

(T 플래그가 1인 경우) 해당 멀티캐스트 주소가 영속적으로 할당된 주소가 아님을 나타낸다. 즉, 일시적으로 또는 동적으로 할당된 주소임을 나타낸다.

 

P 플래그의 정의 및 사용법은 RFC 3306에 명시되어 있다.

 

R 플래그의 정의 및 사용법은 RFC 3956에 명시되어 있다.

 

scop 필드

scop 필드는 멀티캐스트 그룹의 범위를 제한하는데 사용된다. 각 값에 따른 의미는 다음과 같다.

의미 값  의미
0 reserved 8 Organization-Local scope
1 Interface-Local scope 9 미할당
2 Link-Local scope A 미할당
3 reserved B 미할당
4 Admin-Local scope C 미할당
5 Site-Local scope D 미할당
6 미할당 E Global scope
7 미할당 F reserved

 

Interface-Local scope는 노드 내 단일 인터페이스 내에서만 사용되며, 멀티캐스트 패킷의 루프백 전송에서만 사용될 수 있다.

 

Link-Local scope는 링크-로컬 유니캐스트 주소의 범위와 동일한 토폴로지 영역에 걸쳐 사용된다.

 

Admin-Local scope는 관리자에 의해 구성 되어야 하는 가장 작은 범위이다. 즉, 물리적 연결 또는 다른 방식(non-multicast-related configuraiton)을 통해 자동적으로 생성되지 않는다.

 

Site-Local scope는 단일 사이트에 걸쳐 사용된다.

 

Organization-Local scope는 단일 조직에 속한 다수의 사이트들에 걸쳐 사용된다.

 

"미할당" 된 scope 는 관리자들이 추가적인 멀티캐스트 영역을 정의하는데 사용될 수 있다.

 

group ID 필드

group ID는 주어진 범위(scope) 내에서 사용되는 멀티캐스트 그룹을 식별하며, 이는 영속적이거나 일시적인 주소를 모두 포함한다. 해당 필드에 대한 추가적인 정의가 RFC 3306에 기술되어 있다.

 

 

주소 영속성과 범위(Scope)의 관계

영속적으로 할당된 멀티캐스트 주소의 의미는 Scope 값과 무관하게 동일하게 적용된다. 

 

예를 들어, "NTP 서버들의 그룹"은 group ID = 0x101를 갖는 영속적인 멀티캐스트 주소를 사용된다. 따라서,

 

  • FF01:0:0:0:0:0:0:101(flgs=0x1, 인터페이스-로컬)은 발신자와 동일한 인터페이스(즉, 동일한 노드)에 있는 모든 NTP 서버들을 의미한다.
  • FF02:0:0:0:0:0:0:101(flgs=0x2, 링크-로컬)은 발신자와 동일한 링크에 있는 모든 NTP 서버들을 의미한다.
  • FF05:0:0:0:0:0:0:101(flgs=0x5, 사이트-로컬)은 발신자와 동일한 사이트에 있는 모든 NTP 서버들을 의미한다.
  • FF0E:0:0:0:0:0:0:101(flgs=0xE, 글로벌)인터넷 상의 모든 NTP 서버들을 의미한다.

 

비 영속적으로 할당된 멀티캐스트 주소들은 주어진 범위(Scope) 내에서만 의미를 가진다. 

 

예를 들어, 특정 단일 사이트에서 비영속적 사이트-로컬 멀티캐스트 주소 FF15:0:0:0:0:0:0:101로 식별되는 그룹은 다른 사이트 내에서 동일한 주소를 사용하는 그룹과 관계가 없으며, 다른 범위 내에서 동일한 group ID를 갖는 비 영속적 그룹과 관계가 없고, 동일한 group ID를 갖는 영속적 그룹과 관계가 없다.

 

멀티캐스트 주소는 IPv6 패킷의 발신자 주소로 사용될 수 없으며, 라우팅 헤더에서 사용될 수 없다.

 

라우터들은 패킷 포워딩 시에 목적지 멀티캐스트 주소 내의 scop 필드가 지시하는 범위를 넘어서 포워딩 해서는 안 된다.

 

모든 노드들은 scop 필드 값이 0x0(=reserved)인 멀티캐스트 주소를 패킷에 수납해서는 안 된다.  만약 이런 패킷이 수신되면 폐기해야 한다. 

 

또한 모든 노드들은 scop 필드 값이 0xF(=reserved)인 멀티캐스트 주소로 향하는 패킷을 생성해서는 안 된다. 이러한 패킷이 송신되거나 수신될 경우, 이를 글로벌 scope (scope 필드 값이 0xE) 멀티캐스트 주소로 향하는 패킷과 동일하게 처리해야 한다.

 

 

2.7.1 사전 정의된 멀티캐스트 주소

다음과 같은 well-known 멀티캐스트 주소들이 사전 정의되어 있다. 이 절에 정의된 group ID 들은 명시적인 범위 값에 대해 정의되어 있다.

 

이러한 group ID들을 0의 값을 갖는 T 플래그(=영속적 할당 주소)와 함께 다른 범위 값에 대해 사용하는 것은 허용되지 않는다.

 

예약된 멀티캐스트 주소는 다음과 같다. 이 주소들은 예약되어 있으며 다른 멀티캐스트 그룹에 할당될 수 없다.

 

  • FF00:0:0:0:0:0:0:0
  • FF01:0:0:0:0:0:0:0
  • FF02:0:0:0:0:0:0:0
  • FF03:0:0:0:0:0:0:0
  • FF04:0:0:0:0:0:0:0
  • FF05:0:0:0:0:0:0:0
  • FF06:0:0:0:0:0:0:0
  • FF07:0:0:0:0:0:0:0
  • FF08:0:0:0:0:0:0:0
  • FF09:0:0:0:0:0:0:0
  • FF0A:0:0:0:0:0:0:0
  • FF0B:0:0:0:0:0:0:0
  • FF0C:0:0:0:0:0:0:0
  • FF0D:0:0:0:0:0:0:0
  • FF0E:0:0:0:0:0:0:0
  • FF0F:0:0:0:0:0:0:0

 

모든 노드들을 의미하는 멀티캐스트 주소는 다음과 같다. 이 멀티캐스트 주소들은 scope 1 (인터페이스-로컬) 또는 scope 2 (링크-로컬) 범위 내의 모든 IPv6 노드들의 그룹을 식별한다.

 

  • FF01:0:0:0:0:0:0:1
  • FF02:0:0:0:0:0:0:1

 

모든 라우터들을 의미하는 멀티캐스트 주소는 다음과 같다. 이 멀티캐스트 주소들은 scope 1 (인터페이스-로컬) 또는 scope 2 (링크-로컬), scope 5(사이트-로컬) 범위 내의 모든 IPv6 라우터들의 그룹을 식별한다.

 

  • FF01:0:0:0:0:0:0:2
  • FF02:0:0:0:0:0:0:2
  • FF05:0:0:0:0:0:0:2

 

Solicited-Node 를 의미하는 멀티캐스트 주소는 다음과 같다.

 

  • FF02:0:0:0:0:1:FFXX:XXXX

Solicited-Node 멀티캐스트 주소는 노드의 유니캐스트 및 애니캐스트 주소들의 함수로 계산된다.

Solicited-Node 멀티캐스트 주소는 (유니캐스트 또는 애니캐스트) 주소의 하위 오더 24비트를 FF02:0:0:0:0:1:FF00::/104 프리픽스에 결합함으로써 FF02:0:0:0:0:1:FF00:0000 부터 FF02:0:0:0:0:1:FFFF:FFFF 사이의 주소로 생성된다.

 

예를 들어. 4037:01:800:200E:8C6C 라는 IPv6 주소에 대응되는 Solicited-Node 멀티캐스트 주소는 FF02::1:FF0E:8C6C이다. 하위 오더 비트들만이 상이한 IPv6 주소들은 동일한 Solicited-Node 주소에 맵핑되며, 따라서 노드가 가입해야 하는 멀티캐스트 주소들의 개수를 줄일 수 있다.

 

각 노드는 자신의 인터페이스들에 대해 설정(수동/자동)된 모든 유니캐스트 및 애니캐스트 주소들에 대한 Solicited-Node 멀티캐스트 주소들을 계산하고 가입해야 한다. 

 

 

본 글에 설명된 내용 외 IPv6 주소 체계에 대해서는 다음 글에서 다루고 있다.

2020/02/15 - [개발/IPv6] - IPv6 - 이더넷 네트워크에서의 IPv6 패킷 전송 (IETF RFC 2464)

2020/02/15 - [개발/IPv6] - IPv6 - 인터페이스 식별자(Interface Identifier) (IETF RFC 4291)

2020/02/12 - [개발/IPv6] - IPv6 - 애니캐스트(Anycast) 주소 형식 (IETF RFC 4291, 2526)


파트너스 활동을 통해 일정액의 수수료를 제공받을 수 있음

 

댓글

Designed by JB FACTORY