Google은 흑인 공동체를 위한 인종적 평등을 추구하기 위해 노력하고 있습니다. 자세히 알아보기

IPv6 주소 지정

GitHub에서 소스 보기

Thread가 네트워크의 각 장치를 식별하는 방법과 서로 통신하는 데 사용하는 주소 유형을 살펴보겠습니다.

범위

OT 범위

유니캐스트 주소 지정을 위한 스레드 네트워크에는 세 가지 범위가 있습니다.

  • Link-Local — 단일 무선 전송으로 도달할 수 있는 모든 인터페이스
  • Mesh-Local — 동일한 스레드 네트워크 내에서 모든 인터페이스에 도달 가능
  • 전역 — 스레드 네트워크 외부에서 연결할 수 있는 모든 인터페이스

처음 두 범위는 스레드 네트워크에서 지정한 접두사에 해당합니다. 링크 - 로컬은의 접두사가 fe80::/16 메쉬-지역은의 접두사있는 반면, fd00::/8 .

유니캐스트

단일 스레드 장치를 식별하는 여러 IPv6 유니캐스트 주소가 있습니다. 각각은 범위와 사용 사례에 따라 다른 기능을 가지고 있습니다.

각 유형에 대해 자세히 설명하기 전에 RLOC(Routing Locator)라는 일반적인 유형에 대해 자세히 알아보겠습니다. RLOC는 네트워크 토폴로지에서의 위치를 ​​기반으로 스레드 인터페이스를 식별합니다.

라우팅 로케이터 생성 방법

모든 장치에는 라우터 ID와 하위 ID가 할당됩니다. 각 라우터는 토폴로지 내에서 장치를 고유하게 식별하는 조합으로 모든 자식 테이블을 유지 관리합니다. 예를 들어 다음 토폴로지에서 강조 표시된 노드를 고려하십시오. 여기서 라우터(오각형)의 숫자는 라우터 ID이고 최종 장치(원)의 숫자는 하위 ID입니다.

OT RLOC 토폴로지

각 하위 라우터 ID는 상위(라우터)에 해당합니다. 라우터는 자식이 아니므로 라우터의 자식 ID는 항상 0입니다. 함께 이러한 값은 스레드 네트워크의 각 장치에 대해 고유하며 RLOC의 마지막 16비트를 나타내는 RLOC16을 만드는 데 사용됩니다.

예를 들어, 왼쪽 상단 노드에 대해 RLOC16이 계산되는 방법은 다음과 같습니다(라우터 ID = 1 및 하위 ID = 1).

OT RLOC16

RLOC16은 IPv6 주소의 마지막 64비트에 해당하는 IID(인터페이스 식별자)의 일부입니다. 일부 IID는 일부 유형의 스레드 인터페이스를 식별하는 데 사용할 수 있습니다. 예를 들어 RLOC의 IID는 항상 다음 형식입니다.

0000:00ff:fe00:RLOC16

Mesh-Local Prefix와 결합된 IID는 RLOC를 생성합니다. 예를 들어, 메시의 국번 사용 fde5:8dba:82e1:1::/64 , RLOC16 = 노드에 대한 RLOC 0x401 이다 :

OT RLOC

이와 동일한 논리를 사용하여 위의 샘플 토폴로지에서 강조 표시된 모든 노드에 대한 RLOC를 결정할 수 있습니다.

주소가 있는 OT 토폴로지

그러나 RLOC는 토폴로지에서 노드의 위치를 ​​기반으로 하기 때문에 노드의 RLOC는 토폴로지가 변경됨에 따라 변경될 수 있습니다.

예를 들어, 아마도 노드 0x400 스레드 네트워크로부터 제거된다. 노드 0x4010x402 다른 라우터에 새로운 링크를 설정하고, 그 결과로 그들은 각각의 새로운 RLOC16 및 RLOC 할당됩니다 :

변경 후 OT 토폴로지

유니캐스트 주소 유형

RLOC는 스레드 장치가 가질 수 있는 많은 IPv6 유니캐스트 주소 중 하나일 뿐입니다. 또 다른 주소 범주는 엔드포인트 식별자(EID)라고 하며, 이는 스레드 네트워크 파티션 내에서 고유한 스레드 인터페이스를 식별합니다. EID는 스레드 네트워크 토폴로지와 무관합니다.

일반적인 유니캐스트 유형은 아래에 자세히 설명되어 있습니다.

단일 무선 전송으로 도달할 수 있는 스레드 인터페이스를 식별하는 EID입니다.
예시 fe80::54db:881c:3845:57f4
아이디 802.15.4 확장 주소 기반
범위 링크-로컬
세부
  • 이웃을 발견하고, 링크를 구성하고, 라우팅 정보를 교환하는 데 사용됩니다.
  • 라우팅 가능한 주소가 아님
  • 항상의 접두사가 fe80::/16

메시-로컬 EID(ML-EID)

네트워크 토폴로지와 관계없이 스레드 인터페이스를 식별하는 EID입니다. 동일한 스레드 파티션 내에서 스레드 인터페이스에 도달하는 데 사용됩니다. ULA(고유 로컬 주소)라고도 합니다.
예시 fde5:8dba:82e1:1:416:993c:8399:35ab
아이디 무작위, 커미셔닝 완료 후 선택
범위 메시 로컬
세부
  • 토폴로지가 변경되어도 변경되지 않음
  • 응용 프로그램에서 사용해야 합니다.
  • 항상 접두사가 fd00::/8

라우팅 로케이터(RLOC)

네트워크 토폴로지에서의 위치를 ​​기반으로 스레드 인터페이스를 식별합니다.
예시 fde5:8dba:82e1:1::ff:fe00:1001
아이디 0000:00ff:fe00: RLOC16
범위 메시 로컬
세부
  • 장치가 네트워크에 연결되면 생성됨
  • 스레드 네트워크 내에서 IPv6 데이터그램 전달용
  • 토폴로지 변경에 따른 변경
  • 일반적으로 응용 프로그램에서 사용되지 않음

애니캐스트 로케이터(ALOC)

대상의 RLOC를 알 수 없는 경우 RLOC 조회를 통해 스레드 인터페이스를 식별합니다.
예시 fde5:8dba:82e1:1::ff:fe00:fc01
아이디 0000:00ff:fe00:fc XX
범위 메시 로컬
세부
  • fc XX = ALOC 대상 적절한 RLOC을 검색,
  • 일반적으로 응용 프로그램에서 사용되지 않음

글로벌 유니캐스트 주소(GUA)

스레드 네트워크를 넘어 전역 범위에서 스레드 인터페이스를 식별하는 EID입니다.
예시 2000::54db:881c:3845:57f4
아이디
  • SLAAC — 장치 자체에서 무작위로 할당
  • DHCP — DHCPv6 서버에서 할당
  • 수동 — 애플리케이션 계층에서 할당
범위 글로벌
세부
  • 공개 IPv6 주소
  • 항상의 접두사가 2000::/3

멀티캐스트

멀티캐스트는 한 번에 여러 장치에 정보를 전달하는 데 사용됩니다. 스레드 네트워크에서 특정 주소는 범위에 따라 다른 장치 그룹과 함께 멀티캐스트 사용을 위해 예약됩니다.

IPv6 주소 범위 배달
ff02::1 링크-로컬 모든 FTD 및 MED
ff02::2 링크-로컬 모든 FTD
ff03::1 메시 로컬 모든 FTD 및 MED
ff03::2 메시 로컬 모든 FTD

SED(Sleepy End Devices)는 위의 멀티캐스트 표에서 수신자로 포함되지 않음을 알 수 있습니다. 대신 스레드는 SED를 포함한 모든 스레드 노드에 사용되는 링크 로컬 및 영역 로컬 범위 유니캐스트 접두사 기반 IPv6 멀티캐스트 주소를 정의합니다. 이 유니 캐스트 메시 - 지역의 접두사를 기반으로하기 때문에 이러한 멀티 캐스트 주소, 스레드 네트워크에 따라 다릅니다 (참조 RFC 3306 에 대한 자세한 내용은 유니 캐스트 접두사 기반의 IPv6은 주소를 멀티 캐스트).

이미 나열된 것 이상의 임의 범위도 스레드 장치에 대해 지원됩니다.

애니캐스트

Anycast는 대상의 RLOC를 알 수 없는 경우 스레드 인터페이스로 트래픽을 라우팅하는 데 사용됩니다. ALOC(Anycast Locator)는 스레드 파티션 내에서 여러 인터페이스의 위치를 ​​식별합니다. ALOC16라는 ALOC의 마지막 16 비트의 형식으로 0xfc XX ALOC의 종류를 나타낸다.

예를 들어, 사이 ALOC16 0xfc010xfc0f DHCPv6를 에이전트 예약되어 있습니다. 특정 DHCPv6 에이전트 RLOC를 알 수 없는 경우(네트워크 토폴로지가 변경되었기 때문에) 메시지를 DHCPv6 에이전트 ALOC로 보내 RLOC를 얻을 수 있습니다.

스레드는 다음 ALOC16 값을 정의합니다.

알록16 유형
0xfc00 지도자
0xfc01 - 0xfc0f DHCPv6 에이전트
0xfc10 - 0xfc2f 서비스
0xfc30 - 0xfc37 위원
0xfc40 - 0xfc4e 이웃 검색 에이전트
0xfc38 - 0xfc3f
0xfc4f - 0xfcff
예약 된

요약

학습한 내용:

  • 스레드 네트워크는 Link-Local, Mesh-Local 및 Global의 세 가지 범위로 구성됩니다.
  • 스레드 장치에는 여러 유니캐스트 IPv6 주소가 있습니다.
    • RLOC는 스레드 네트워크에서 장치의 위치를 ​​나타냅니다.
    • ML-EID는 파티션 내의 스레드 장치에 고유하며 애플리케이션에서 사용해야 합니다.
  • 스레드는 멀티캐스트를 사용하여 노드 및 라우터 그룹에 데이터를 전달합니다.
  • 스레드는 대상의 RLOC를 알 수 없는 경우 애니캐스트를 사용합니다.

스레드의 IPv6 주소에 대한 자세한 내용은 섹션 5.2 및 5.3 참조 스레드 사양 .