2022/09/30

RFC 7084試譯

引言

在Internet上搜尋到RFC 7084–Basic Requirements for IPv6 Customer Edge Routers,搭配Yahoo字典、和Google翻譯等工具,我嘗試著將文章的片段翻譯成繁體中文版,希望大家對於IPv6 CE router擁有些許認識。

 

摘要

本文規範了一個IPv6 Customer Edge (CE) router的要求。具體來說,本文的當前版本著重在IPv6 CE router基本的開通(provisioning)、以及與其連接之主機的開通。本文同時涵蓋IP過渡技術;本文涵蓋了RFC5969之IPv6 Rapid Deployment on IPv4 Infrastructures (6rd)、和RFC6333之Dual-Stack Lite (DS-Lite)一共兩種過渡技術。本文用以廢棄RFC6204。

本文

1. 介紹

本文對家用或是小型辦公室的router定義基本IPv6的特徵,稱其為IPv6 CE router,以便為這類router上實作的特徵建立一個行業的基準線。
這些router通常也支援IPv4。
如果僅支援IPv6的主機使用轉換器(translator)來存在IPv4伺服器,則雙堆疊(dual-stack)的主機和僅支援IPv6的主機(位於CE router之後)的混合環境將會更加複雜。本文對這類混合環境的支援不在本文的涵蓋範疇。
本文指明一個IPv6 CE router如何自動地開通自身的WAN介面、取得開通其LAN介面的定址空間、以及從服務供應商網路取回其它組態設定資訊。自動開通單一router具備多個LAN介面的更複雜的拓撲超出了本文的涵蓋範疇。
在服務供應商的存取網路佈建IPv6可以參照RFC4779對可行選項所進行的討論。
本文同時涵蓋定稿時有效的IP過渡技術,亦即6rd與DS-Lite。

2. 術語

終端使用者網路
IPv6 CE router的一或多個連結(link)、且連接著IPv6主機

IPv6 Customer Edge Router
應用於家庭或小型辦公室的一個節點,用來轉發IPv6封包、而那些封包沒有明確指明目的地是該節點。該IPv6 CE router將終端使用者網路連接至服務供應商網路。

IPv6主機
任何實作IPv6堆疊(stack),以得到IPv6 CE router提供的IPv6可連接性(connectivity)。

LAN介面
一個IPv6 CE router所附屬的終端使用者網路的一個連結(link)。例如乙太網路(單一的、或橋接的)、無線802.11、或其它LAN技術。一個IPv6 CE router可以具備一或多個網路層的LAN介面。

服務供應商
一個提供Internet存取的實體。本文中的服務供應商專門提供使用IPv6的Internet存取、也可以提供使用IPv4的Internet存取。服務供應商能夠透過多樣不同的傳輸方法來提供這類服務,例如數位用戶迴路、纜線、無線、和其它。

WAN介面
一個IPv6 CE router所附屬的用來連接服務供應商網路的一個連結(link)。範例的連結技術包含了乙太網路(單一的、或橋接的)、PPP連結、訊框中繼、或非同步傳輸模式網路,也可以是網路層(或更高層)的隧道,例如IPv4或IPv6本身之上的隧道。

3. 架構

3.1. 目前IPv4終端使用者網路架構

一個終端使用者網路很可能將同時支援IPv4與IPv6。不應該預期終端使用者會在導入IPv6時更改他們既有的網路拓撲。IPv6如何工作和如何開通有一些不一樣,不一樣之處涉及它們的網路架構。一個典型的IPv4終端使用者網路包含了一個具備NAT功能、和一條連接上服務供應商網路之連結的隨插即用router。
一個典型的NAT由預設阻擋所有入境連接所佈建而成。埠之開放一般是由UPnP IGD (Universal Plug and Play Internet Gateway Device)、或一些其它防火牆控制協定來允許放行。
在終端使用者網路使用私有定址空間導致的另一個結果是提供了穩定的定址,也就是說,即便變更了服務供應商也不會更改位址,就算WAN介面停擺或是customer edge router未曾開通,位址也始終存在。
許多現在的router支援動態選徑(從其它router學習路徑),而且進階的終端使用者可以透過結動態選徑協助來手動設置位址prefix,以建構任意的、複雜的網路。

3.2. IPv6終端網路架構

IPv6的終端網路架構必須提供能力與功能等效於甚至更優於目前的IPv4網路架構。
終端使用者網路是一個末節網路(stub network)。圖1呈現了終端使用者網路模型的拓撲。
這個架構描述了:

○一台IPv6 CE router的基本能力
○開通連接了服務供應商的WAN介面
○開通LAN介面

對於IPv6群播的流量,IPv6 CE router可以扮演一個MLD (Multicast Listener Discovery) proxy、且支援動態群播選徑協定。
IPv6 CE router可以在具備動態選徑協定的任意拓撲中被手動地設定。自動開通與設置僅於用於描述單一的IPv6 CE router。

3.2.1. 本地通訊

IPv6的link-local位址被用來作為單一連結上的主機通訊。IPv6的unique local的unicast位址(ULA)被用來作為終端使用者網路中橫跨多個連結的主機通訊,但沒有要求應用程式使用一個全球可選徑的位址。IPv6 CE router預設扮演兩個網路的一個分界點,提供ULA的邊界、群播區域的邊界、以及入境與出境的流量過濾器。
定稿之際,許多主機的實作沒有處理雖然具備一個IPv6位址但卻欠缺IPv6連線能力的情況,不是因為該位址本身只有受限的拓撲可達性(例如ULA),就是因為IPv6 CE router沒有連接其WAN介面至IPv6網路。為了支援在多prefix環境下未處理多宿主(multihoming)的主機實作,當IPv6 CE router的WAN介面沒有IPv6連線能力、或尚未開通完畢具備IPv6位址時,IPv6 CE router不應該宣稱其作為一個LAN介面的預設router,細節如以下的要求所述。本地IPv6通訊採用由RFC4191所規範的機制。
當IPv6 CE router具備多個LAN介面,其下的主機需要彼此通訊時,UAL定址很實用。如果IPv6 CE router只有一個LAN介面(IPv6連結)時則可以使用link-local位址。
與IPv4共存要求在LAN端的任一IPv6 CE router遵從這些建議,尤其是以下ULA-5和L-4的要求。

4. 要求

4.1. 一般要求

IPv6 CE router負責實作IPv6選徑,也就是說,IPv6 CE router必須在自身的選徑表查詢IPv6目的位址來決定必須用哪一個介面來傳送封包。
IPv6 CE router這個角色負責確認使用自身URL定址的流量不會離開WAN介面、且不會源自於WAN介面。
G-1: IPv6 CE router是一個依據RFC6434要求規範的IPv6節點
G-2: IPv6 CE router必須依據RFC4443實作ICMPv6,尤其是必須按照RFC4443第3.1節描述的方來處理PPP連結
G-3: IPv6 CE router不容許轉發自身LAN介面與自身WAN介面的任何IPv6流量,直到該router成功地完成IPv6定址、以及委派prefix取得的程序。
G-4: 預設情況下,IPv6 CE router自身WAN介面沒有預設router時不容許宣稱自身在LAN介面擔任IPv6預設router。也就是說,所有自身發出的Router Advertisement訊息的Router Lifetime欄位被設為0。
G-5: 預設情況下,如果IPv6 CE router是一台宣傳router,當遺失自身的IPv6預設router及/或偵測到遺失WAN介面的可連接性時,必須立即發送一至多個Router Lifetime欄位值設為0的Router Advertisement訊息,以顯式地在各個宣傳介面使自身作為預設router無效。

4.2. WAN端組態設定

IPv6 CE router需要提供一或多個存取網路架構的可連接性。本文描述一個IPv6 CE router沒有指定任何特定的架構或服務供應商,而且支援所有常用的架構。
IPv6鄰居探索和DHCPv6協定運行在任何型態支援IPv6的連結層之上,而且不需要針對IPv6網路層組態設定使用任何連結層特定組態設定協定,例如針對IPv4的PPP IPCP (IP Control Protocol)。這一節假設此一機制將能運作在任何的連結層,例如乙太網路、DOCSIS (Data Over Cable Service Interface)、PPP、或其它。

WAN端要求:

W-1: 當router連接上WAN介面的連結時,必須扮演一台IPv6主機,以達成RFC4862的stateless、或RFC4862的stateful介面位址指派。
W-2: IPv6 CE router必須產生一個link-local位址,在該介面發送任何的Router Solicitation之前,依據RFC4862完成重複位址偵測。後續Router Solicitation中的來源位址必須使用該WAN介面的link-local位址。
W-3: 欠缺其它選徑訊息時,IPv6 CE router必須使用RFC4861指定的router探索來搜尋預設router,並且把搜尋到router的位址作為下一hop,安裝預設路徑至自身的選徑表。
W-4: 為了DHCPv6 prefix委派,router必須扮演一台要求router
W-5: IPv6 CE router為了DHCPv6訊息必須使用持久(不變)的DUID(DHCP Unique Identifier)。DUID不容許在網路介面重置或IPv6 CE router重開機之間更改
W-6: CE router的WAN介面應該支援RFC6887指定的PCP (Port Control Protocol)客戶端,讓CE router的應用程式使用。PCP客戶端應該遵從RFC6887第8.1節指定的程序來搜尋PCP伺服端。對於該功能如何預設啟用、或是使用何種機制來組態設定該功能,本文不採取任何立場。處理來自CE router的LAN端的PCP客戶端的PCP要求則超出本文的範疇。

連結層要求:

WLL-1: 如果WAN介面支援乙太網路封裝,則IPv6 CE router必須支援IPv6運行於乙太網路之上。
WLL-2: 如果WAN介面支援PPP封裝,則IPv6 CE router必須支援IPv6運行於PPP之上。
WLL-3: 如果WAN介面支援PPP封裝,雙堆疊環境具備IPCP和IPCPv6運行於PPP邏輯頻道之上,NCP (Network Control Protocol)必須視為彼此獨立、而獨立地啟動和終止。

位址指派要求:

WAA-1: IPv6 CE router必須支援SLAAC (Stateless Address Autoconfiguration)。
WAA-2: IPv6 CE router必須採用RFC5942第4節的建議,尤其是Router Advertisement的Prefix資訊選項的L旗標的處理。
WAA-3: IPv6 CE router必須支援DHCPv6客戶端的行為。
WAA-4: IPv6 CE router必須能支援隨後的DHCPv6選項:IA_NA (Identity Association for Non-temporary Address)、RFC3315的Reconfigure Accept、及RFC3643的DNS_SERVERS。IPv6 CE router應該要能支援RFC3646指定的DNSSL (DNS Search List)選項。
WAA-5: IPv6 CE router應該實作RFC5905指定的NTP (Network Time Protocol),以提供服務供應商一個共同的時間參考予其它諸如DHCPv6的協定來使用。如果CE router實作NTP,它要求RFC5908的NTP伺服器DHCPv6選項、並將接收到的伺服器清單位作為主要的時間參考,除非顯式地組態設置為其它值。LAN端支援NTP則超出本文的範疇。
WAA-6: 如果IPv6 CE router接收到RFC4681描述的Router Advertisement訊息、而該訊息的M旗標被設定為1,則IPv6 CE router必須執行DHCPv6位址指令(要求一個IA_NA選項)。
WAA-7: 如果IPv6 CE router既沒有透過SLAAC也沒有透過DHCPv6來取得一個全球IPv6位址,則必須從被委派的prefix來建立一個全球位址,並設定至自身內部的虛擬網路介面,除非組態設定為要求一個WAN介面上的全球IPv6位址。
WAA-8: CE router必須支援RFC7083的SOL_MAX_RT選項、並且在ORO (Option Request Option)中要求SOL_MAX_RT選項。
WAA-9: 作為一台router,IPv6 CE router必須採用RFC1122的weak主機(Weak End System)模型。當從一個介面發起封包時,如果出境介面沒有合適範疇的位址時,它必須使用自身另一個介面的位址作為來源位址。
WAA-10: IPv6 CE router應該實作RFC4242指明的Information Refresh Time選項和相關的客戶端行為。

Prefix委派要求:

WPD-1: IPv6 CE router必須支援RFC3633指明的DHCPv6 prefix委派要求router行為,即IA_PD (Identity Association for Prefix Delegation)選項。
WPD-2: IPv6 CE router可以提示其要求的prefix的尺寸予委派的router。倘若如此,它必須要求足夠大的prefix好指派每一個自身的介面得到一個/64的prefix、且四捨五入到最近的半字節(nibble)、而且應該可以被組態設定成要求更多。
WPD-3: IPv6 CE router必須準備好接收一個委派的prefix有著不同於提示的尺寸。倘若這個委派的prefix太小而無法定址到自身所有的介面,則IPv6 CE router應該記錄一個系統管理的錯誤。RFC6177涵蓋了服務供應商對於prefix分配尺寸的建議。
WPD-4: 預設情況下,IPv6 CE router在接收到RA (Router Advertisement)訊息、且M或O旗標被設為1時,必須發起DHCPv6 prefix委派。當CE router沒有收到任何RA、或是收到的RA的M和O旗標都是0時,CE router仍要使用DHCPv6 prefix委派,這種情況超出本文的範疇。
WPD-5: 由CE router接收到的封包,目的位址隸屬於已委派給該CE router的prefix內、但是不在該CE router委派予LAN介面的集合內的時候,必須予以丟棄。換句話說,已經委派給該CE router的下一hop應該是null目的。RFC4632提到,轉發迴路(forwarding loops),也就是當聚集所涵蓋的一些位址無法抵達時,這是必要的手段。
  (a) 如果封包是因為這修規則而丟棄,則IPv6 CE router應該依據RFC4443第3.1節來傳送一個ICMPv6目標無法抵達訊息回去給封包的來源位址。
WPD-6: 如果IPv6 CE router在DHCPv6中既要求IA_NA也要求IA_PD選項,即使沒有包含任何位址也必須接受DHCPv6 Advertise/Reply訊息中的IA_PD選項,除非被組態設定成只透過DHCPv6獲得WAN的IPv6位址。
WPD-7: 預設情況下,IPv6 CE router不容許在其WAN介面發起任何動態選徑協定。
WPD-8: IPv6 CE router應該支援RFC6603的Prefix Exclude選項。

4.3. LAN端組態設定

IPv6 CE router分發從WAN面開通時的組態設定資訊給IPv6主機、並輔助IPv6主機取得IPv6位址。它也支援在沒有任何運作的WAN介面時予這些裝置的可連接性。
一台IPv6 CE router預計呈現以下特徵來支援終端使用者網路與IPv6主機:

1. link-local位址可能不足以允許IPv6應用程式在終端使用者網路相互通訊。無論有沒有WAN可連接性存在,IPv6 CE router將會需要提供全球範疇的unicast位址、或是RFC4193的ULA來啟用這類通訊。
2. IPv6主機應該能夠使用SLAAC、且可能可以使用DHCPv6來取得自身的位址。
3. IPv6主機可以將DHCPv6用於其它組態設定,例如以DNS_SERVERS選項來取得DNS資訊。

除非額外指明,隨後的要求只可以套用到IPv6 CE router的LAN介面。

ULA要求:

ULA-1: IPv6 CE router應該能夠產生RFC4193的ULA prefix。
ULA-2: 一個具備ULA prefix的IPv6 CE router必須在重開機之間維持該prefix的一致性。
ULA-3: ULA prefix的值應該要能夠組態設定。
ULA-4: 預設情況下,根據RFC4193第4.3節,IPv6 CE router必須扮演一個site邊界router相應地過濾具有本地IPv6的來源與目的位址。
ULA-5: 當所有被組態設定和委派的prefix都是ULA prefix時,IPv6 CE router不容許宣稱自身Router Lifetime大於0來作為一個預設router。

LAN要求:

L-1: IPv6 CE router必須依據RFC4861的鄰居探索來支援router的行為。
L-2: IPv6 CE router必須從委派的prefix(和如果已組態設定提供ULA定址時的ULA prefix)來指派一個獨立的/64的prefix給自身每一個LAN介面。
L-3: IPv6 CE router必須使用RFC4191第2.3節指明的Router訊息選項,來宣稱自身作為委派的prefix(和如果已組態設定提供ULA定址時的ULA prefix)的一個router。這個宣傳跟WAN介面是否具備IPv6可連接性無關。
L-4: 如果沒有組態設定或委派的prefix,則IPv6 CE router不容許宣稱自身Router Lifetime大於0來作為一個預設router。
L-5: IPv6 CE router必須依據RFC4861讓每一個LAN介面作為宣傳介面。
L-6: 在RFC4861的Router Advertisement訊息中,Prefix訊息選項的A和L旗標預設必須設定為1。
L-7: RFC4861的A和L旗標應該可以由使用者組態設定。
L-8: IPv6 CE router必須在其LAN介面支援依據RFC3315的能夠配置位址的DHCPv6伺服器、或依據RFC3736的stateless的DHCPv6伺服器。
L-9: 除非IPv6 CE router被組態設定成支援DHCPv6的IA_NA選項,它應該在RFC4861的Router Advertisement訊息中將設定其M旗標為0、且O旗標為1。
L-10: IPv6 CE router必須支援RFC3646的DHCPv6之DNS_SERVERS和DOMAIN_LIST選項以提供DNS資訊。
L-11: IPv6 CE router必須支援RFC6106的Router Advertisement中的RDNSS (Recursive DNS server)、和DNSSL (DNS Search List)選項以提供DNS資訊。
L-12: IPv6 CE router應該令從自身WAN介面的DHCPv6客戶端所接收到的DHCPv6選項的子集合(條列於RFC3736的第5.3節)傳遞至LAN端DHCPv6伺服器。
L-13: 如果委派的prefix變更了,例如目前prefix被新的prefix替代、且沒有任何的期間重疊,則IPv6 CE router必須立即在RFC4862的第5.3.3節第(e)項的Router Advertisement訊息中,宣稱這個舊的prefix的Preferred Lifetime為0,而且Valid Lifetime為a)0、或b)當前Valid Lifetime和2小時之間較小的值。
L-14: IPv6 CE router必須發送code為5(來源位址失效的入境/出境策略)的ICMPv6目標無法抵達訊息,用於轉發封包使用來自於prefix已經無效的位址。

4.4.1. 6rd

RFC5969的6rd規範了為一個自動隧道(tunneling)機制,透過服務供應商的IPv4網路基礎建設,為終端使用者預先佈建IPv6而量身訂做。關鍵方面包含了自動向站臺委派IPv6 prefix、stateless操作、簡易開通、及在該機制服務的站臺上提供等效於原生IPv6的服務。預期這類流量可以在CE router的原生IPv4的WAN介面上轉發、而且不會被封裝在其它的隧道裡。
CE router應該支援6rd功能。如果支援6rd,則必須依據RFC5969實作。隨後的CE要求也應該予以套用。

6rd要求:

6RD-1: IPv6 CE router必須支援透過6rd的DHCPv4選項212的6rd組態設定。如果CE router透過一些其它諸如PPP的手段取得一個IPv4網路位址時,它應該使用RFC2131的DHCPINFORM要求訊息來要求6rd的DHCPv4選項。IPv6 CE router可以使用其它機制來組態設定6rd參數。這些機制則超出本文範疇。
6RD-2: 如果IPv6 CE router有能力透過IPCP來自動組態設定(例如在PPP連線上),則必須支援6rd由使用者組態設定。
6RD-3: 如果IPv6 CE router支援不同於6rd的DHCPv4選項212的組態設定機制(使用者輸入、TR-069等),則IPv6 CE router必須在"hub and spoke"模式支援支援6rd。6rd的"hub and spoke"要求所有IPv6流量都進入6rd邊緣中繼。實際上,這個要求移除了RFC5969的第7.1.1節定義的"direct connect to 6rd"路徑。
6RD-4: 一個CE router必須允許6rd和原生IPv6的WAN介面既能夠獨立也能夠同時處於活躍狀態,以便在一個像是由6rd步入原生IPv6的逐步遷移期間,得以支援兩個技術的共存。
6RD-5: 每個由6rd或原生WAN介面送出的封包都必須是經過引導的,像是其來源IP位址是由委派的prefix衍生出來而關聯的特定介面將會發送該封包(RFC3704的第4.3節)。
6RD-6: CE router必須允許相同的和不同的委派prefix都能夠組態設定至每個(6rd或原生)WAN介面。
6RD-7: 當6rd跟原生IPv6的轉發規則產生了一個和局的事件時,預設情況下,IPv6 CE router必須優先選用原生IPv6。

4.2.2. Dual-Stack Lite (DS-Lite)

RFC6333的Dual-Stack Lite同時啟用了IPv4服務的持續支援、和IPv6的佈建的激勵措施。它也把服務供應商網路的IPv6佈建從Internet的其餘部份予以解耦,使得逐步佈建更容易。Dual-Stack Lite結合兩個眾所周知的技術,讓一個寬頻服務供應商在客戶之間分享IPv4位址:IP in IP (IPv4-in-IPv6)和NAT (Network Address Translation)。預期DS-Lite流量被轉發至CE router的原生IPv6的WAN介面、且不會被封裝在其它的隧道裡。
IPv6 CE router應該實作DS-Lite功能。如果DS-Lite有支援,則必須依據RFC4333來實作。至於DS-Lite和原生IPv4的同時操作,本文不採取任何立場。隨後的CE router要求也應該予以套用。

WAN要求:

DLW-1: CE router必須支援透過RFC6334的DS-Lite的DHCPv6選項來組態設定DS-Lite。IPv6 CE router可以使用其它機制來組態設定DS-Lite參數。這類機制超出本文的範疇。
DLW-2: CE router對DS-Lite封裝的IPv4流量不容許執行IPv4的NAT。
DLW-3: 如果IPv6 CE router在其WAN介面被組態設定了一個IPv4位址,然後IPv6 CE router應該停用DS-Lite B4 (Basic Bridging BroadBand)元素。

4.5. 安全考量

過濾顯然是惡意的流量被為是最佳實踐(例如偽造封包、"Martian"位址等)。因此,IPv6 CE router應該支援基本stateless出境和入境過濾器。CE router也被預期提供過濾進入客戶網路流量的機制;然而,供應商實作的組態設定封包過濾的方法超出本文的範疇。

安全要求:

S-1: IPv6 CE router應該支援RFC6092。尤其是IPv6 CE router應該支援功能足以實作符合RFC6092第4節之建議的集合。對於該功能預設是否啟用、或是由使用者可以組態設定的機制,本文不採取任何立場
S-2: IPv6 CE router應該依據RFC2827的BCP 38來支援入境過濾。注意,由於CE router實作的複雜性、及該特徵跟上游router入境過濾的冗餘性,這項要求由RFC6204的必須降級而得。
S-3: IPv6 CE router防火牆被組態設定成過濾入境的隧道的資料,該防火牆應該提供過濾從隧道拆封後之封包的能力。


參考文獻

https://www.rfc-editor.org/rfc/rfc7084
https://rfc2cn.com/rfc7084.html
https://en.wikipedia.org/wiki/Stub_network
https://en.wikipedia.org/wiki/Martian_packet
https://en.wikipedia.org/wiki/Customer_edge_router



沒有留言:

張貼留言