2013年8月4日 星期日

RFC 4862 - IPv6 Stateless Address Autoconfiguration之筆記


1. Introduction


這份文件主要是在規範如何自動組態(autoconfigure)host的interface的IPv6 address,以及DAD(Duplicate Address Detection)驗證address的唯一性程序。
自動組態(autoconfigure)一詞有時候也稱為無狀態自動組態(stateless autoconfigure),也僅用於host,router則不在此RFC範圍內,而之所以稱為stateless autoconfigure是因為相較於statefull DHCPv6而言,網路上並沒有像DHCP server一樣的機器記錄address使用情況,所以稱為stateless。
"autoconfigure" = "prefix" + "interface ID",router會發出RA(Router Advertisement),RA通常會攜帶Prefix information,Host收到就會根據此Prefix information再加上"interface ID"組出IPv6 address。


IPv6 address有幾個狀態,當開始autoconfigure到DAD完成前,address是不能被指定到interface的,此時稱為tentative,當唯一性確認,並指定到interface開始到Preferred Lifetime結束前稱為"preferred",之後到Valid Lifetime結束前稱為"Deprecated",Valid Lifetime結束後就稱為Invalid。
如圖:



2. Terminology


tentative address、preferred address、deprecated address、invalid address分別被標是在上圖(IPv6 Address status)綠色線(time)以上的部分。preferred lifetime、valid lifetime則是分別被標示在綠色線(time)以下的部分。



3. Design Goals

  1. 不需要手動設定address
  2. 在Small sites底下沒有DHCPv6或router也能透過Link-local address進行通訊。
  3. 在large sites底下沒有DHCPv6也能透過Router的RA進行address的configuration。
  4. 有renumbering的能力,透過lifetimes達成此目標。



4. Protocol Overview


Autoconfiguration只有在multicast-capable的link上執行,而且當該interface被enable就開始執行link-local的部分,這樣就能符合設計目標之一"在Small sites底下沒有DHCPv6或router也能透過Link-local address進行通訊"。
Autoconfiguration的處理程序
  1. tentative link-local address自動產生,此時為tentative狀態。
  2. 執行DAD(Duplicate Address Detection),送出NS(Neighbor Solicitation)。
  3. DAD成功(隔一段時間沒有收到Neighbor Advertisement),將該address指定給該interface,相關的solicited-node multicast link-layer address也會被註冊到interface中。
    DAD失敗,需要手動設定IPv6 Address。



5. Protocol Specification


5.5.3 Router Advertisement Processing
  • 如果Autonomous flag沒被設定,忽略該Prefix Information。
  • 如果Prefix是Link-Local prefix,忽略該Prefix Information。
  • 如果Preferred lifetime大於Valid lifetime,忽略該Prefix Information。



Note
RFC 2464 - Transmission of IPv6 Packets over Ethernet Networks
    4. Stateless Autoconfiguration
        An IPv6 address prefix used for stateless autoconfiguration 
        of an Ethernet interface must have a length of 64 bits.



在XP上顯示IPv6 Address


在XP中可以使用指令"ipv6"操作IPv6相關設定,也可以使用netsh指令來操作。
以下圖是顯示IPv6的information:

其中第二條紅線, 是因為privacy為enable,XP自動產生位置。
第三條紅線, 則是根據網卡資訊,自動產生,後面的時間為 valid time / preferred time,因為preffered還大於0,所以這個Address處於preffered狀態(顯示於最前面的preferred)。
第四行紅線,則是會根據指定的IPv6 address,會註冊相對應的Solicited-node multicast address。


    參考資料:
  1. RFC 4862
  2. IPv6 Address Autoconfiguration
  3. RFC 2462 IPv6 Stateless Address Autoconfiguration