TWI783709B - 網路封包轉換方法 - Google Patents

網路封包轉換方法 Download PDF

Info

Publication number
TWI783709B
TWI783709B TW110136976A TW110136976A TWI783709B TW I783709 B TWI783709 B TW I783709B TW 110136976 A TW110136976 A TW 110136976A TW 110136976 A TW110136976 A TW 110136976A TW I783709 B TWI783709 B TW I783709B
Authority
TW
Taiwan
Prior art keywords
packet
ipv6
ipv4
network address
destination host
Prior art date
Application number
TW110136976A
Other languages
English (en)
Other versions
TW202316839A (zh
Inventor
蘇宗崟
李宗祐
Original Assignee
瑞昱半導體股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 瑞昱半導體股份有限公司 filed Critical 瑞昱半導體股份有限公司
Priority to TW110136976A priority Critical patent/TWI783709B/zh
Priority to US17/958,622 priority patent/US20230107822A1/en
Application granted granted Critical
Publication of TWI783709B publication Critical patent/TWI783709B/zh
Publication of TW202316839A publication Critical patent/TW202316839A/zh

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/08Protocols for interworking; Protocol conversion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/251Translation of Internet protocol [IP] addresses between different IP versions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/2517Translation of Internet protocol [IP] addresses using port numbers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/255Maintenance or indexing of mapping tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/2592Translation of Internet protocol [IP] addresses using tunnelling or encapsulation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/167Adaptation for transition between two IP versions, e.g. between IPv4 and IPv6

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Abstract

說明書提出一種網路封包轉換方法,執行此方法的電路系統以其中韌體設計有硬體表格欄位,用以實現IPv4網路與IPv6網路之間的封包轉換,在網路封包轉換方法中,根據IPv4封包路由決定採用使用封裝以映射位址與埠口的方法(MAP-E)或使用轉譯以映射位址與埠口的方法(MAP-T),並可實現上行與下行流程。其中表格如內容查表,儲存MAP-E與MAP-T插入轉換後的IPv6封包標頭,控制查表用以決定加上IPv6封包標頭後需要更新的欄位控制,以及轉送映射規則表,這是用以決定上行IPv6封包的目的主機網路位址的轉換,或是下行IPv4封包的來源主機網路位址與目的主機網路位址的轉換。

Description

網路封包轉換方法
說明書公開一種在網路間轉換封包的方法,特別是指一種利用電路中查表執行封包轉換的網路封包轉換方法。
現行IPv4(網路通訊協定第4版)的網路位址(IP:Internet Protocol)格式是採用32位元長度,網路位址能提供2的32次方個,經分配後已經不敷使用,於是有IPv6協議(網路通訊協定第6版)的發展,IPv6的網路位址格式則採用128位元長度,其位址能提供的數量遠遠超過IPv4。而隨著IPv6協議逐漸普及,網路世界也進入IPv4與IPv6共存的時代,因此網路封包在IPv4和IPv6網路間互相傳遞的需求也愈來愈高。
根據現行方案,IPv4轉換到IPv6網路的轉換方式可以透過轉譯(translate)或隧道(tunnel)方式,習知技術發展出兩個技術,包括一種使用轉譯以映射位址與埠口的方法(mapping of address and port using translation (MAP-T) RFC 7599)和一種使用封裝以映射位址與埠口的方法(mapping of address and port with encapsulation (MAP-E) RFC 7597),這兩個新興技術是IPv4網路轉換IPv6網路的方式。其中,MAP-T直接將原本的IPv4封包標頭(header)轉譯成IPv6封包標頭,MAP-E則是運用IPv6隧道來穿越IPv6網路。
然而,不論MAP-T或是MAP-E,一般都是透過軟體來達成,因此運作時會耗費不小的運算資源,需要高效能硬體配合。
揭露書提出一種網路封包轉換方法與系統,其中應用表格欄位的設計與設定實現將IPv4網路封包轉換到IPv6網路(上行)上,或是將IPv6網路封包轉換到IPv4網路(下行)上的目的,適用使用轉譯以映射位址與埠口的方法(MAP-T)和使用封裝以映射位址與埠口的方法(MAP-E),並可以通過電路系統實現,如通過一特定應用積體電路(ASIC)直接處理,提供加速處理方案。
所提出的電路系統可應用於網路裝置中,其中韌體設計有硬體表格欄位,用以實現轉換網路通訊協定第4版下的封包(IPv4封包)為網路通訊協定第6版下的封包(IPv6封包),根據其中執行的網路封包轉換方法實施例,在此上行流程中,先決定所述幾個查表,如內容查表、控制查表與轉送映射規則表,如此,可根據內容查表記載的IPv6封包標頭的長度欄位插入至IPv4封包標頭前綴,可根據控制查表中記載插入IPv6封包標頭的長度欄位,以更新插入至IPv4封包標頭前綴的IPv6封包標頭的長度欄位,再根據是否指定所述轉送映射規則表來決定IPv6封包中的目的主機網路位址,之後更新IPv6封包中目的主機網路位址的IPv4封包組成的部分,即完成IPv4封包轉為IPv6封包的轉換。
優選地,在所述方法中,根據IPv4封包路由的需求決定輸出的介面採用一使用封裝以映射位址與埠口的方法(MAP-E)或一使用轉譯以映射位址與埠口的方法(MAP-T)。
優選地,所述內容查表儲存使用轉譯以映射位址與埠口的方法和使用封裝以映射位址與埠口的方法插入轉換後的IPv6封包標頭;控制查表用以決定加上IPv6封包標頭後需要更新的欄位控制;轉送映射規則表用以決定上行IPv6封包的目的主機網路位址的轉換,以及下行IPv4封包的來源主機網路位址與目的主機網路位址的轉換。
根據所提出的電路系統的再一實施例,可以其中韌體設計的硬體表格欄位實現轉換網路通訊協定第6版下的封包(IPv6封包)為網路通訊協定第4版下的封包(IPv4封包),在此下行的網路封包轉換方法流程中,即根據虛擬區域網路和IPv6封包標頭中記載的一目的主機網路位址決定採用使用封裝以映射位址與埠口的方法(MAP-E)或使用轉譯以映射位址與埠口的方法(MAP-T),之後根據一控制查表,根據IPv6封包形式,決定轉換至IPv4封包的標頭,即完成IPv6封包轉換為IPv4封包的步驟。
在其中使用封裝以映射位址與埠口的方法中,根據使用封裝以映射位址與埠口的方法關聯的控制查表,當IPv6封包形式為外層為IPv6網路通訊協定而內層為IPv4網路通訊協定封裝的封包,即移除外層為IPv6網路通訊協定的標頭。
另一方面,於使用轉譯以映射位址與埠口的方法中,即根據使用轉譯以映射位址與埠口的方法關聯的控制查表,當IPv6封包形式為單層的IPv6通訊協定封裝的封包,即取出IPv6封包中的標頭,插入IPv4封包標頭。
為使能更進一步瞭解本發明的特徵及技術內容,請參閱以下有關本發明的詳細說明與圖式,然而所提供的圖式僅用於提供參考與說明,並非用來對本發明加以限制。
以下是通過特定的具體實施例來說明本發明的實施方式,本領域技術人員可由本說明書所公開的內容瞭解本發明的優點與效果。本發明可通過其他不同的具體實施例加以施行或應用,本說明書中的各項細節也可基於不同觀點與應用,在不悖離本發明的構思下進行各種修改與變更。另外,本發明的附圖僅為簡單示意說明,並非依實際尺寸的描繪,事先聲明。以下的實施方式將進一步詳細說明本發明的相關技術內容,但所公開的內容並非用以限制本發明的保護範圍。
應當可以理解的是,雖然本文中可能會使用到“第一”、“第二”、“第三”等術語來描述各種元件或者信號,但這些元件或者信號不應受這些術語的限制。這些術語主要是用以區分一元件與另一元件,或者一信號與另一信號。另外,本文中所使用的術語“或”,應視實際情況可能包括相關聯的列出項目中的任一個或者多個的組合。
習知轉換IPv4與IPv6網路之間封包的MAP-T和MAP-E兩種技術都是利用軟體來解析並轉換封包格式,尤其是這兩種技術所執行的轉換都必須跟著傳輸層(L4)通訊埠(port,如TCP/UDP通訊埠)動態進行來源主機網路位址(SIP)與目的主機網路位址(DIP)的轉換,因此難以簡單地透過電路查表處理來硬體加速。
為了改善使用轉譯以映射位址與埠口的方法(MAP-T)和使用封裝以映射位址與埠口的方法(MAP-E)等習知轉換IPv4與IPv6網路之間封包的技術需要耗費較大運算資源的缺點,揭露書提出一種網路封包轉換方法與系統,其中技術主要是應用表格欄位的設計與設定實現IPv4與IPv6網路相互封包轉換(上行與下行)的技術,涵蓋MAP-E與MAP-T兩種方法的表格欄位的設計和設定,實現封包上行與下行都可以透過特定應用積體電路(ASIC)等電路系統直接做硬體加速。
在揭露書提出的網路封包轉換方法中,設計硬體轉換規則,通過一個內容查表(content table)儲存要MAP-T/MAP-E插入轉換後的IPv6封包標頭(header),再通過一個控制查表(control table)決定加上IPv6封包標頭後需要更新的欄位控制,另外額外根據一轉送映射規則表(FMR (forwarding mapping rule) table)來決定MAP-E/MAP-T上行(IPv4到IPv6)IPv6封包的目的主機網路位址(DIP) 的轉換,以及MAP-T下行(IPv6到IPv4)IPv4封包的來源主機網路位址(SIP)與目的主機網路位址(DIP)的轉換。
所述網路封包轉換方法特別支援習知MAP-E/MAP-T的封包格式,其中技術概念主要分為內容查表、控制查表與轉送映射規則表的建立,以及封包所需欄位自動更新的邏輯設計。
在此定義網路封包轉換方法所採用的幾個查表,電路系統中記載的內容查表(content table)與介面(interface)為MAP-T/MAP-E相關,所述介面為網路位址(IP address)與通訊埠口(port)相關資訊的組合,可用於判斷採用的MAP-E/MAP-T轉換方法。舉例來說,介面的內容以IPv4封包為例,如以下IPv4標頭記載的內容,也是用來查詢關聯性而判斷採用MAP-T或MAP-E的介面資訊: L3 Destination IP:10.10.10.10 =0x0a0a0a0a L3 Source IP:11.11.11.11 = 0x0b0b0b0b L4 Destination Port:0x1234 L4 Source Port:0x5678
所述內容查表用於儲存基本的IPv6格式(format),如要執行轉譯或封裝映射位址與埠口(MAP-T/MAP-E)插入轉換後的IPv6封包標頭,可作為控制查表(control table)修改的基底。內容查表包括了40位元組的IPv6封包標頭,內容查表範例如:Destination IP: 0000:0001:0002:0003:0004:0005:0006:0007:0008。
控制查表(control table)同樣與所述介面(網路位址與通訊埠口等相關資訊的組合)相關,用於決定加上IPv6封包標頭後需要更新的欄位控制,針對封包加上內容查表的標頭後執行的行為設定,控制查表的範例如下。
針對MAP-E的控制查表範例: control.len=40 control.format= MAP-E type control.ipv6_len_diff=0
針對MAP-T的控制查表範例: control.len=40 control.format= MAP-T type control.ipv6_len_diff=0 contorl.mapt_l4_sum_recalculate=1 control.mapt_prefix_len=64
控制查表中定義的欄位包括:
格式(format):記載進入封包的表項(entry)為MAP-T格式(MAP-T type format)或是MAP-E格式(MAP-E type format)。
長度(len):記載在內容查表中IPv6封包標頭的長度。
IPv6長度差異(ipv6_len_diff):記載插入IPv6封包標頭(header)的長度,用來更新上述IPv6封包標頭長度欄位。
MAP-T前綴長度(mapt_prefix_len):記載MAP-T(使用轉譯以映射位址與埠口的方法)前綴的長度。
MAP-T草稿版本(mapt_draft_ver):記載MAP-T自身的版本的IPv6來源主機網路位址(ipv6.sip)是否使用意見請求稿(request for comments,RFC)的草稿版本。
MAP-T重算第四層校驗碼(mapt_l4_sum_recalculate):表示MAP-T重算第四層(L4)校驗碼(checksum),需要使用插入IPv6封包標頭中的偽裝網路位址(pseudo ip)重新計算校驗碼。
轉送映射規則表(FMR table)用於決定MAP-E/MAP-T上行IPv6目的主機網路位址(DIP)的轉換以及MAP-T下行的IPv4來源主機網路位址(SIP)與目的主機網路位址(DIP)的轉換,轉送映射規則表範例如: FMR.ipv6_address_prefix64=0123:4567:89ab:cdef FMR.PSID_refill=1 FMR.PSID_start_offset=2 FMR.PSDI_end_offset=9 FMR.draft_ver=0
轉送映射規則表中定義的欄位包括:
IPv6封包前綴位址(ipv6_address_prefix64):包含IPv6前綴規則(rule-ipv6-prefix)與用於標記用戶的識別碼(EA-bits),共64位元,所述EA-bits由IPv4子網標識和埠設識別符(port set ID,PSID)組成,用於唯一標記不同的用戶。
埠設識別符偏移開始(PSID_start_offset):記載埠設識別符(PSID)在第四層傳輸協定目的埠口(L4 Dport)的16位元中的起始位置。
埠設識別符偏移結束(PSID_end_offset):記載埠設識別符在第四層傳輸協定目的埠口的16位元中的結束位置。
重填埠設識別符(PSID_refill):記載是否動態修改封包中IPv6中目的主機網路位址(DIP)中的埠設識別符欄位。
終端使用者IPv6封包前綴(end_user_ipv6_prefix):記載Ipv6前綴位元以及用於標記用戶的識別碼(EA-bits)的長度。
草稿版本(draft_ver):記載遠端版本是否使用意見請求稿草稿(RFC draft)的版本。
上述埠設識別符可以根據埠設識別符偏移開始(PSID_start_offset)和埠設識別符偏移結束(PSID_end_offset)在第四層傳輸協定目的埠口(L4 Dport)的起始與結束位置取出,若埠設識別符長度(PSID length)為0,則將重填埠設識別符(PSID_refill)設定為0。
列舉一範例,草稿版本(draft_ver)為1(draft_ver=1)時,IPv6的目的主機網路位址(DIP)的組成如圖1所示,其中前綴記載IPv6的位址,v4(32)表示IPv4的目的主機網路位址,PSID記載埠設識別符,圖1顯示即為IPv4轉換到IPv6目的主機網路位址的封包格式範例。
草稿本版(draft_ver)為0(draft_ver=0)時,IPv6的目的主機網路位址(DIP)的組成如圖2所示的另一封包格式範例。
若在轉譯以映射位址與埠口的方法(MAP-T)中未指定轉送映射規則表(FMR table),則轉換定義為預設映射規則(default mapping rule,DMR)格式,IPv6封包格式即會根據控制查表中MAP-T前綴長度(mapt_prefix_len)不同而做出轉換。如圖3所示依照前綴長度IPv4轉換到IPv6目的主機網路位址的轉換表範例,其中記載前綴(prefix)、後綴(suffix)以及第4代通訊協定下的網路位址,可讓網路封包轉換方法運作時,在沒有指定轉送映射規則表時,以此預設映射規則將IPv4網路封包轉換到IPv6網路上。
圖4顯示上下行網路封包轉換方法實施例流程,即通過電路系統執行IPv4與IPv6兩種網路通訊協定之間的封包轉換(步驟S401),其中涵蓋上行流程,即將IPv4網路封包轉換為IPv6網路封包,以及下行流程,即將IPv6網路封包轉換為IPv4網路封包。
在上行流程中,可先決定內容查表、控制查表與轉送映射規則表,先根據內容查表記載,針對IPv4封包,將IPv6封包標頭的長度欄位插入至IPv4封包標頭前綴(步驟S403),再根據控制查表中記載插入IPv6封包標頭的長度欄位,以更新插入至IPv4封包標頭前綴的IPv6封包標頭的長度欄位(步驟S405),接著可以根據是否指定轉送映射規則表來決定IPv6封包中的目的主機網路位址(步驟S407),之後更新IPv6封包目的主機網路位址欄位中的IPv4封包組成的部分(步驟S409),即完成轉換到IPv6封包的步驟。相關實施例流程可參考圖6與圖7。
在下行流程中,根據所要處理的資料流中的資訊,如虛擬區域網路(vlan)和IPv6封包標頭中記載的目的主機網路位址(DIP),以決定採用使用封裝以映射位址與埠口的方法(MAP-E)或一使用轉譯以映射位址與埠口的方法(MAP-T)(步驟S411),接著即根據控制查表與IPv6封包形式決定轉換至IPv4封包的標頭(步驟S413),即完成IPv6封包轉換為IPv4封包的步驟。可參考圖8與圖9所示的實施例流程。
圖5顯示執行所述方法的電路系統,圖示電路系統500如設於網路裝置50中的封包處理電路,如特定應用積體電路(ASIC)實現的電路系統,其中韌體設計有MAP-E/MAP-T硬體表格欄位,如上述實施例描述的內容查表、控制查表與轉送映射規則表,以此實現封包上行(可定義為IPv4網路511轉換到IPv6網路512)與下行(可定義為IPv6網路512轉換到IPv4網路511)的封包轉換,並可以通過硬體電路系統直接處理加速。
當普遍使用的IPv4網路511切換到IPv6網路512時,根據一實施例,IPv4網路511可運行在區域網路(LAN),IPv6網路512則運用在廣域網路(WAN),電路系統500如路由器,執行封包路由,設有區域網路通訊模組501,連線IPv4網路511(涵蓋其中電腦主機、伺服器與網路設備),用以處理區域網路封包;設有廣域網路通訊模組502,連線IPv6網路512(涵蓋其中電腦主機、伺服器與網路設備),用以處理廣域網路封包。
基於上述實施例流程、電路系統以及各式查表中欄位定義,以下列舉應用MAP-E與MAP-T方法實現IPv6/IPv4上下行封包轉換流程實施例,並可參考上述圖1、圖2與圖3所列舉封包標頭之實施範例。
[上行流程MAP-E實施例]
根據以上提出網路封包轉換的機制,續參考圖6描述使用封裝以映射位址與埠口的方法(MAP-E)所實現針對上行封包(指IPv4網路通訊協定下的封包轉換為IPv6網路通訊協定下的封包)的網路封包轉換方法之實施例流程。所述流程較佳為以如ASIC的電路系統所執行。
一開始如步驟S601,根據原本IPv4封包路由決定輸出介面要採用使用封裝以映射位址與埠口的方法(MAP-E),根據其中IPv4封包路由的需求,將這條網路封包的資料流指定關聯的內容查表(content table)、控制查表(control table)以及轉送映射規則表(FMR table)。接著,如步驟S603,將內容查表記載的IPv6封包標頭長度欄位插入至IPv4封包標頭前綴。
在步驟S605中,根據控制查表中記載插入IPv6封包標頭長度欄位(header.len),用以更新插入至IPv4封包標頭前綴的IPv6封包標頭長度欄位(可表示為ipv6.len= control.ipv6_len_diff+ipv4.len)。在此以MAP-E實現的流程中,指定轉送映射規則表(FMR table)為可選項目,在步驟S607中,判斷是否有指定轉送映射規則表,若不指定(否),如步驟S609,代表不需要修改標頭中的目的主機網路位址(DIP);反之,若有指定轉送映射規則表(是),則進行步驟S611,根據所指定的轉送映射規則表記載的IPv6封包前綴位址(ipv6_address_prefix64)更新要轉換的IPv6封包標頭前綴欄位中的目的主機網路位址。
在接續步驟S613中,判斷轉送映射規則表中的重填埠設識別符(PSID_refill)是否為0,若為0(是),表示埠設識別符長度(PSID length)為0,如步驟S615,也就是無須動態修改IPv6封包中目的主機網路位址(DIP)中的埠設識別符欄位;相反地,若轉送映射規則表中的重填埠設識別符不為0,則執行步驟S617,根據轉送映射規則表中埠設識別符偏移開始(PSID_start_offset)與埠設識別符偏移結束(PSID_end_offset)兩個欄位資訊取出的埠設識別符來動態修改IPv6封包中目的主機網路位址的埠設識別符欄位,其中的埠設識別符位置則是跟著轉送映射規則表中的草稿版本(draft_ver)的值而有所不同,可參考圖1(draft_ver=1)與圖2(draft_ver=0)所示。
最後,不論是否修改IPv6封包中目的主機網路位址中的埠設識別符欄位,如步驟S619都進一步完成更新IPv6封包中目的主機網路位址的IPv4封包組成的部分,即完成IPv4轉IPv6上行封包的轉換。
[上行流程MAP-T實施例]
圖7描述使用轉譯以映射位址與埠口的方法(MAP-T)所實現針對上行封包(指IPv4網路封包轉換到IPv6網路)的網路封包轉換方法之實施例流程。
一開始,如步驟S701,根據原本IPv4封包路由決定出輸出介面要採用使用轉譯以映射位址與埠口的方法(MAP-T),同時將這條封包資料流指定關聯的內容查表(content table)、控制查表(control table)以及轉送映射規則表(FMR table)。 接著,如步驟S703,將內容查表記載的IPv6封包標頭長度插入至IPv4封包標頭前綴,再如步驟S705,根據控制查表中記載插入IPv6封包標頭(header)的長度欄位,用以更新IPv6封包標頭長度欄位。
同樣地,此例的轉送映射規則表亦為可選項目,在步驟S707中,判斷是否指定轉送映射規則表。若不指定轉送映射規則表,如步驟S709,則根據預設映射規則表(DMR table)中控制查表的MAP-T前綴長度(mapt_prefix_len)欄位和IPv4封包中目的主機網路位址修改IPv6封包中的目的主機網路位址。其中不同上述控制查表中MAP-T前綴長度欄位,這步驟是針對IPv6的目的主機網路位址修改的位置不一樣所致。
反之,若有指定轉送映射規則表,如步驟S711,則根據轉送映射規則表中IPv6封包前綴位址(ipv6_address_prefix64)欄位來更新IPv6封包的目的主機網路位址的前綴。後續步驟(步驟S713)同樣也會根據映射規則表中的重填埠設識別符(PSID_refill)是否為0判斷是否要動態修改IPv6封包中目的主機網路位址中的埠設識別符欄位,可參考圖7步驟S713至S717,在此不再贅述。最後,同樣地,不論是否修改IPv6封包中目的主機網路位址中的埠設識別符欄位,如步驟S715都進一步完成更新IPv6封包中目的主機網路位址的IPv4封包組成的部分,並且如步驟S717,根據控制查表中MAP-T重算第四層校驗碼(mapt_l4_sum_recalculate)欄位決定更新(或不更新)第四層傳輸協定(L4)校驗碼(checksum)。最後,如步驟S719,移除原本IPv4的標頭部分,即完成IPv4轉IPv6上行封包的轉換。
[下行流程MAP-E實施例]
再一實施例如圖8與圖9實施例所描述針對下行封包(指IPv6網路通訊協定下的封包轉換為IPv4網路通訊協定下的封包)的轉換流程。其中圖8描述使用封裝以映射位址與埠口的方法(MAP-E)針對下行封包的網路封包轉換方法之實施例流程。
此例為根據虛擬區域網路(vlan)和IPv6封包標頭中記載的目的主機網路位址(DIP)決定使用封裝以映射位址與埠口的方法(MAP-E)(步驟S801),此時根據MAP-E關聯的控制查表,在MAP-E封包處理方法中,當IPv6封包形式為將一個封包封裝進另一個封包中(IPinIP),此例指外層為IPv6網路通訊協定而內層為IPv4網路通訊協定封裝的封包,則將此封包外層IPv6的標頭移除(步驟S803),即完成IPv6封包轉換為IPv4封包,並針對已經移除IPv6封包標頭的IPv4進行轉送步驟(步驟S805)。
[下行流程MAP-T實施例]
圖9描述使用轉譯以映射位址與埠口的方法(MAP-T)針對下行封包的網路封包轉換方法之實施例流程。
此例封包標頭中IPv6的DIP、所採用DMR與FMR、控制查表範例如下: -IPv6 Destination Address: 0123:4567:89ab:cdef:0000:0b0b:0b0b:009e DMR - IPv6 Source Address: 0000:0001:0002:0003:000a:0a0a:0a06:0007 FMR -IPv6 Source Address: 0123:4567:89ab:cdef:0004:0a0a:0a0a:008d
控制查表: control.mapt_prefix_len=64 control_mapt_draft_ver=0
轉送映射規則表: FMR[0]: Ipv6_address_prefix64: 0123:4567:89ab:cdef end_user_ipv6_prefix:64 draft_ver=0 FMR[1]: Ipv6_address_prefix64: 0123:4567:89ab:cdef end_user_ipv6_prefix:32 draf_ver=1
根據虛擬區域網路(vlan)和網路封包由IPv6網路通訊協定封裝於封包外層的IPv6封包標頭中的目的主機網路位址(DIP)決定出使用轉譯以映射位址與埠口的方法(MAP-T),以此執行IPv6封包至IPv4封包的轉換(步驟S901)。此時根據MAP-T關聯的控制查表,在MAP-T封包處理方法中,當IPv6封包形式為單層IPv6網路通訊協定封裝的封包,則移除(pop)封包中的IPv6封包標頭,並插入(insert)IPv4封包標頭(步驟S903)。在此一提的是,在此將IPv6封包轉換為IPv4封包的下行資料流處理流程中,須根據以下規則插入IPv4標頭中的來源主機網路位址(SIP)與目的主機網路位址(DIP)。
針對來源主機網路位址(SIP)的處理如下。在轉換到IPv4網路通訊協定時需在封包標頭插入來源主機網路位址(SIP),其中將原來IPv6封包的來源主機網路位址比對轉送映射規則表(FMR table)中所有的紀錄,如轉送映射規則表記載的IPv6封包前綴位址(ipv6_address_prefix64)與終端使用者IPv6封包前綴(end_user_ipv6_prefix),以進行最長前綴匹配(longest prefix match)(步驟S905)。在此一提的是,最長前綴匹配是在路由器中進行路由選擇的算法,也就是在路由表中選擇標頭前綴中與目的地位址表項(entry)匹配最多的路徑。
這是流程判斷是否有匹配成功(步驟S907),若有匹配(是),則引用此轉送映射規則表,根據其中草稿版本(draft_ver)取出IPv4封包的來源主機網路位址(步驟S909),可參考圖1與圖2的封包標頭範例。
反之,若沒有匹配成功(否),則表示需使用預設映射規則表(DMR table)轉換成IPv4封包的來源主機網路位址(步驟S911),即使用控制查表中MAP-T前綴長度(mapt_prefix_len)根據預設映射規則表描述(如圖3範例)取出IPv4封包的來源主機網路位址。
列舉一範例,若來源主機網路位址為:0123:4567:89ab:cdef:0004:0a0a:0a0a:008d ,查轉送映射規則表,比對上述列舉表中的FMR[0],64bits全部匹配,比對FMR[1],32bits也全匹配,表示FMR[0]與FMR[1]都算查到表,此時根據最長前綴匹配原則,FMR[0]匹配的位元數較多,所以選FMR[0],根據FMR[0].draft_ver=0,參考圖2可得IPv4的來源主機網路位址:SIP=0x0a0a0a0a=10.10.10.10。
在一範例中,若來源主機網路位址為:0000:0001:0002:0003:000a:0a0a:0a06:0007(IPv6),當查轉送映射規則表沒有匹配成功,則以預設映射規則轉換回IPv4的來源主機網路位址,根據圖3,control.mapt_prefix_len=64,可得知轉回來的後的IPv4的來源主機網路位址為:0x0a0a0a0a=10.10.10.10。
接著是針對目的主機網路位址(DIP)的處理,在下行轉換到IPv4網路的流程中,根據控制查表中MAP-T草稿版本(mapt_draft_ver)辨認出原本IPv6封包標頭記載的目的主機網路位址中IPv4的目的主機網路位址的組成(步驟S913),即參考圖1與圖2所示範例。如此,即完成IPv6封包轉為IPv4封包的步驟。
列舉一範例,目的主機網路位址為:0123:4567:89ab:cdef:0000:0b0b:0b0b:009e,根據控制查表中MAP-T草稿版本(mapt_draft_ver=0),對照圖2範例,可得IPv4封包的目的主機網路位址:DIP=0x0b0b0b0b=11.11.11.11。
綜上所述,根據上述網路封包轉換方法的實施例所描述採用MAP-E/MAP-T的上行與下行封包轉換流程,所述方法可以電路或軟體方法實現,較佳地可以運行於單晶片系統(SoC)實現的特定應用積體電路(ASIC)的韌體中,其中主要設計有執行現行通用的IPv4轉換到IPv6網路通訊協定上行封包轉換的硬體表格設計,其中主要包括IPv4轉換到IPv6的產生方式,這是通過內容查表加上控制查表的欄位設計來控制產生基本的IPv6封包標頭,以及可採用使用轉譯以映射位址與埠口的方法(MAP-T)或使用封裝以映射位址與埠口的方法(MAP-E)通過轉送映射規則表(FMR table)欄位設計,來執行上行封包中IPv6目的主機網路位址(DIP)轉換,以及採用MAP-T對下行封包執行IPv6到IPv4的來源主機網路位址(SIP)與目的主機網路位址(DIP)的轉換,以集執行草稿版本相容性的控制。
以上所公開的內容僅為本發明的優選可行實施例,並非因此侷限本發明的申請專利範圍,所以凡是運用本發明說明書及圖式內容所做的等效技術變化,均包含於本發明的申請專利範圍內。
500:電路系統 50:網路裝置 501:區域網路通訊模組 502:廣域網路通訊模組 511:IPv4網路 512:IPv6網路 步驟S401~S413上下行網路封包轉換流程 步驟S601~S619針對上行封包使用MAP-E的封包轉換流程 步驟S701~S719針對上行封包使用MAP-T的封包轉換流程 步驟S801~S805針對下行封包使用MAP-E的封包轉換流程 步驟S901~S913針對下行封包使用MAP-T的封包轉換流程
圖1顯示為IPv4轉換到IPv6目的主機網路位址的封包格式範例之一;
圖2顯示為IPv4轉換到IPv6目的主機網路位址的封包格式範例之二;
圖3顯示依照前綴長度IPv4轉換到IPv6目的主機網路位址的轉換表範例;
圖4顯示上下行網路封包轉換方法實施例流程;
圖5顯示執行所述網路封包轉換方法的電路系統實施例;
圖6顯示針對上行封包使用封裝以映射位址與埠口的方法(MAP-E)所實現的網路封包轉換方法之實施例流程圖;
圖7顯示針對上行封包使用轉譯以映射位址與埠口的方法(MAP-T)所實現的網路封包轉換方法之實施例流程圖;
圖8顯示針對下行封包使用封裝以映射位址與埠口的方法(MAP-E)所實現的網路封包轉換方法之實施例流程圖;
圖9顯示針對下行封包使用轉譯以映射位址與埠口的方法(MAP-T)所實現的網路封包轉換方法之實施例流程圖。
S401:執行IPv4與IPv6之間封包轉換
S403:根據內容查表記載修改IPv4封包標頭前綴
S405:根據控制查表,更新IPv6封包標頭的長度欄位
S407:根據轉送映射規則表決定IPv6封包中的DIP
S409:更新IPv6封包DIP的IPv4封包組成的部分
S411:決定採用MAP-E或MAP-T
S413:根據控制查表與IPv6封包形式決定轉換至IPv4封包的標頭

Claims (10)

  1. 一種網路封包轉換方法,用以轉換一網路通訊協定第4版下的封包(IPv4封包)為一網路通訊協定第6版下的封包(IPv6封包),包括: 根據一內容查表記載的一IPv6封包標頭的長度欄位插入至一IPv4封包標頭前綴; 根據一控制查表中記載插入該IPv6封包標頭的長度欄位,以更新插入至該IPv4封包標頭前綴的該IPv6封包標頭的長度欄位; 根據是否指定一轉送映射規則表來決定該IPv6封包中的一目的主機網路位址;以及 更新該IPv6封包中該目的主機網路位址的IPv4封包組成的部分,即完成IPv4封包轉為IPv6封包的轉換。
  2. 如請求項1所述的網路封包轉換方法,其中,根據IPv4封包路由決定輸出的介面採用一使用封裝以映射位址與埠口的方法或一使用轉譯以映射位址與埠口的方法。
  3. 如請求項2所述的網路封包轉換方法,其中,於該使用封裝以映射位址與埠口的方法中,於決定該IPv6封包中的該目的主機網路位址步驟中,若指定該轉送映射規則表,根據該轉送映射規則表記載的IPv6封包前綴位址欄位更新該IPv6封包的該目的主機網路位址;若不指定該轉送映射規則表,不需要修改該IPv6封包標頭中的該目的主機網路位址。
  4. 如請求項3所述的網路封包轉換方法,其中,於決定該IPv6封包的該目的主機網路位址的步驟中,進一步地決定該目的主機網路位址的一埠設識別符欄位,其中: 判斷該轉送映射規則表中的一重填埠設識別符是否為0,若為0,無須動態修改該IPv6封包中的該目的主機網路位址中的該埠設識別符欄位;以及 若該轉送映射規則表中的該重填埠設識別符不為0,根據該轉送映射規則表中一埠設識別符偏移開始與一埠設識別符偏移結束兩個欄位資訊取出的該埠設識別符來動態修改該IPv6封包中該目的主機網路位址的該埠設識別符欄位。
  5. 如請求項2所述的網路封包轉換方法,其中,於該使用轉譯以映射位址與埠口的方法中,於決定該IPv6封包中的該目的主機網路位址步驟中,若指定該轉送映射規則表,根據該轉送映射規則表記載的IPv6封包前綴位址欄位更新該IPv6封包的該目的主機網路位址;若不指定該轉送映射規則表,即根據一預設映射規則表中一控制查表的一使用轉譯以映射位址與埠口的方法的前綴長度欄位和該IPv4封包中一目的主機網路位址,修改該IPv6封包中的該目的主機網路位址。
  6. 如請求項5所述的網路封包轉換方法,其中,於決定該IPv6封包的該目的主機網路位址的步驟中,進一步地決定該目的主機網路位址的一埠設識別符欄位,其中: 判斷該轉送映射規則表中的一重填埠設識別符是否為0,若為0,無須動態修改該IPv6封包中的該目的主機網路位址中的該埠設識別符欄位;以及 若該轉送映射規則表中的該重填埠設識別符不為0,根據該轉送映射規則表中一埠設識別符偏移開始與一埠設識別符偏移結束兩個欄位資訊取出的該埠設識別符來動態修改該IPv6封包中該目的主機網路位址的該埠設識別符欄位。
  7. 如請求項5所述的網路封包轉換方法,其中,當移除該IPv6封包標頭中原本IPv4的標頭部分,即完成該IPv4封包轉為該IPv6封包的步驟。
  8. 如請求項1至7中任一項所述的網路封包轉換方法,其中該內容查表儲存一使用轉譯以映射位址與埠口的方法和一使用封裝以映射位址與埠口的方法插入轉換後的該IPv6封包標頭;該控制查表用以決定加上該IPv6封包標頭後需要更新的欄位控制;該轉送映射規則表用以決定上行IPv6封包的目的主機網路位址的轉換,以及下行IPv4封包的來源主機網路位址與目的主機網路位址的轉換。
  9. 一種網路封包轉換方法,用以轉換一網路通訊協定第6版下的封包(IPv6封包)為一網路通訊協定第4版下的封包(IPv4封包),包括: 根據一虛擬區域網路和一IPv6封包標頭中記載的一目的主機網路位址決定採用一使用封裝以映射位址與埠口的方法或一使用轉譯以映射位址與埠口的方法;以及 根據一控制查表,根據該IPv6封包形式,決定轉換至一IPv4封包的標頭,完成該IPv6封包轉換為該IPv4封包的步驟。
  10. 如請求項9所述的網路封包轉換方法,其中,於該使用封裝以映射位址與埠口的方法中,即根據該使用封裝以映射位址與埠口的方法關聯的該控制查表,當該IPv6封包形式為外層為該IPv6網路通訊協定而內層為該IPv4網路通訊協定封裝的封包,即移除外層為該IPv6網路通訊協定的標頭。
TW110136976A 2021-10-05 2021-10-05 網路封包轉換方法 TWI783709B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW110136976A TWI783709B (zh) 2021-10-05 2021-10-05 網路封包轉換方法
US17/958,622 US20230107822A1 (en) 2021-10-05 2022-10-03 Method for converting network packets and circuit system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW110136976A TWI783709B (zh) 2021-10-05 2021-10-05 網路封包轉換方法

Publications (2)

Publication Number Publication Date
TWI783709B true TWI783709B (zh) 2022-11-11
TW202316839A TW202316839A (zh) 2023-04-16

Family

ID=85773856

Family Applications (1)

Application Number Title Priority Date Filing Date
TW110136976A TWI783709B (zh) 2021-10-05 2021-10-05 網路封包轉換方法

Country Status (2)

Country Link
US (1) US20230107822A1 (zh)
TW (1) TWI783709B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130235871A1 (en) * 2012-03-12 2013-09-12 Comcast Cable Communications, Llc Stateless Protocol Translation
US20130287025A1 (en) * 2012-04-25 2013-10-31 Hong-June Hsue Device for realizing upstream aggregation and downstream translation of a virtual local area network and method thereof
TW201926975A (zh) * 2017-11-27 2019-07-01 南韓商三星電子股份有限公司 通訊系統、通訊裝置、應用處理器以及通訊系統的網路位址轉換方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4347497B2 (ja) * 2000-04-03 2009-10-21 株式会社日立製作所 通信制御装置及びパケット変換方法
JP5018654B2 (ja) * 2008-06-06 2012-09-05 沖電気工業株式会社 通信システム
US11570137B2 (en) * 2020-08-06 2023-01-31 Charter Communications Operating, Llc Method and system for MAP-T border relay data plane verification
US11611639B2 (en) * 2020-08-06 2023-03-21 Charter Communications Operating, Llc Apparatus and method for an accelerated and offload dual border relay
US11456988B1 (en) * 2021-06-11 2022-09-27 Charter Communications Operating, Llc MAP-T border relay controller

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130235871A1 (en) * 2012-03-12 2013-09-12 Comcast Cable Communications, Llc Stateless Protocol Translation
US20130287025A1 (en) * 2012-04-25 2013-10-31 Hong-June Hsue Device for realizing upstream aggregation and downstream translation of a virtual local area network and method thereof
TW201926975A (zh) * 2017-11-27 2019-07-01 南韓商三星電子股份有限公司 通訊系統、通訊裝置、應用處理器以及通訊系統的網路位址轉換方法

Also Published As

Publication number Publication date
US20230107822A1 (en) 2023-04-06
TW202316839A (zh) 2023-04-16

Similar Documents

Publication Publication Date Title
US9240944B2 (en) Overlay services in communication networks
EP2958280B1 (en) Routing based on the content of packets
US9894003B2 (en) Method, apparatus and system for processing data packet
JP4038223B2 (ja) パケット転送方法及び装置
JP4505168B2 (ja) パケットネットワークのインターフェイシング
KR100803273B1 (ko) 패킷 터널링하는 isatap 라우터 및 그 방법
JP6269999B2 (ja) パケット処理方法および装置
EP2928123B1 (en) Method for processing VXLAN data units
US7440460B2 (en) Apparatus and method for forwarding mixed data packet types in a high-speed router
US20150295729A1 (en) Hardware accelerator for tunnel processing
US7386699B1 (en) Aligning IP payloads on memory boundaries for improved performance at a switch
JP6369175B2 (ja) パケット処理装置、制御プログラム、及びパケット処理装置の制御方法
JP6098192B2 (ja) アドレス生成装置
CN113242181B (zh) 基于ESP封装和压缩IP在overlay层实现源路由的报文及发送方法
JP6590546B2 (ja) パケットのコンテンツからハッシュ入力を形成する方法およびその装置
US7742471B2 (en) Methods and systems for routing packets with a hardware forwarding engine and a software forwarding engine
CN105515995B (zh) 报文处理方法及装置
US10397113B2 (en) Method of identifying internal destinations of network packets and an apparatus thereof
TWI783709B (zh) 網路封包轉換方法
CN115996211A (zh) 网络封包转换方法
TW200425685A (en) Packet forwarding method and system
KR20080052856A (ko) IPv6 터널링 장치 및 그 방법
JP4443266B2 (ja) パケット更新装置
KR100572693B1 (ko) 인터넷 프로토콜 패킷 룩업 방법