Abstract
描述6rd prefix + IPv4 address的方式定址的優點,如automatic IPv6 prefix delegation to site, statless operation, simple provisioning and service等等。
Introduction
6rd機制成功的被商業化,被詳細記錄在RFC 5569。6rd是基於6to4改善而來,主要差異是在IPv6 Prefix的部分,6to4是用2002::/16,6rd是SP(service provider)自訂的prefix。6to4也可以被視為是6rd的subset,因為如果6rd的prefix是2002::/16就是6to4了。
Terminology
6rd prefix |
被SP用來給6rd domain的IPv6 prefix。SP可以布署一個以上的6rd domain。 |
6rd CE (Customer Edge) |
在6rd的布置中擔任CPE(Customer Premises Equipment)的角色或稱RG (Residential Gateway)。典型的CE有一個WAN site interface和一個以上的LAN interface,LAN端也稱為Customer-facing。提供IP6能力,WAN端也稱SP-facing。 |
6rd delegated prefix |
由CE計算給Customer site端使用的IPv6 Prefix。 |
6rd domain |
使用相同的virtual 6rd link的CEs和BRs的集合。SP可以有一個以上的6rd doamin。每個6rd domain必須使用不同的6rd prefix。 |
6rd Border Relay |
被佈署在6rd domain的edge位置。IPv4-enabled interface用於6rd的IPv6 in IPv4 tunnel端。IPv6 interface用於連接IPv6網路。 |
BR IPv4 address |
6rd Border Relay的IPv4 address。 |
6rd virtual interface |
encapsulation and decapsulation of IPv6 packets inside IPv4。 |
6rd Prefix Delegation
6rd delegated prefix是利用6rd prefix和CE的IPv4計算出來,用於customer site。如圖一:
當IPv4 address在6rd domain可以被aggregate,如10.0.0.0/8,則不使用全部的IPv4來計算,因為前面8bit可以被aggregate,所以使用後面24bit(即o bit為24)。
6rd不限於使用public IP,但如果private address會overlap,就應該被切成不同的6rd domain(使用不同的6rd prefix, 可以確保唯一性)。
即使相同的SP,也可能使用不同的IPv4 bit數,比如10.0.0.0/8和192.168.0.1/16之間的差異就可能會使用不同的IPv4MaskLen。
6rd delegated prefix是使用IPv4計算,所以IPv4 address的變動,也會影響6rd delegated prefix,因此建議以IPv4 address的lease time當成prefix的lifetime。
6rd Configuration
6rd有四個重要的configured value:
IPv4MaskLen |
ignore最高的幾個bit,比如IPv4 address range是10.0.0./8,那麼IPv4MaskLen就是8,使用後面24bit來計算6rd delegated prefix。 |
6rdPrefix |
6rd IPv6 prefix |
6rdPrefixLen |
6rd IPv6 prefix length. |
6rdBRIPv4Address |
6rd Border Relay的IPv4 address. |
Customer Edge Configuration
這四個configured value可透過TR-69,PPP或手動方式設定,這份RFC使用DHCP方式取得參數。
6rd DHCPv4 Option
6rdBRIPv4Address允許一個以上,不過OPTION_6RD只能限制最多只有一個6rd domain,不支援多個6rd domain。當6rd被啟動, CE會設定default route到BR,比如CE IP: 10.100.100.1/8, BR IP: 10.0.0.1, 6rdPrefix: 201:db8/32,那麼CE的routing table會是這樣:
::/0 -> 6rd-virtual-int0 via 2001:db8:0:100:: (default route)
2001:db8::/32 -> 6rd-virtual-int0 (direct connect to 6rd)
2001:db8:6464:100::/56 -> Null0 (delegated prefix null route)
2001:db8:6464:100::/64 -> Ethernet0 (LAN interface)
Border Relay Configuration
BR的位址可以利用anycast address達到loading baalancing和reliability.
IPv6 in IPv4 Encapsulation
IPv6的Traffic class field必須被複製到IPv4的Tos欄位(可以參考RFC 4213/3056/2983/3168等)。
Maximum Transmission Unit
6rd的MTU應該被設成CE WAN side的MTU - 20 bytes(IPv4 header),如果IPv4 MTU是1500,那麼6rd Tunnel MTU應該被設成1500-20=1480。如果缺乏資訊,6rd MTU應該被設成1280。
Receiving Rules
為了防止spoofing攻擊,6rd的BR和CE應該根據6rd domain的參數,驗證6rd Tunnel的IPv4 address和IPv6 address的IPv4部分是否相符,不符合就drop。
IPv6 Address Space Usage
基本上就是6rd prefix length和IPv4MaskLen的取捨,如果要給user的6rd delegated prefix是 /60,而IPv4MaskLen是24(根據IPv4 aggregate的程度),那麼6rdPrefixLen就要給60-24=36。
參考資料:
- RFC 5969 - IPv6 Rapid Deployment on IPv4 Infrastructures (6rd) -- Protocol Specification