• 沒有找到結果。

採 6to4 通道或 Automatic 通道 [25]的主機至少需有一個公用(Public)且可路由

(Routable)的 IPv4 位址才能進行建立通道,因此位於 NAT 後端私有網路並擁有 私有(Private)IPv4 位址的主機就無法以這些建立通道技術來進行 IPv6 通訊。

Teredo 技術讓這些主機能與 NAT 外端的 IPv6 網路進行通訊。

圖 B-3 Teredo 架構圖

Teredo 的架構如圖 B-3 所示。Teredo 中的主要三個網路元件分別為 Teredo Client、

Teredo Server 與 Teredo Relay。Teredo Client 是位於 NAT 後端且欲與 NAT 外端進 行 IPv6 通訊的主機。Teredo Server 協助 Teredo Cleint 連接 IPv6 網路與建立 Teredo IPv6 位址 [1]。Teredo Relay 負責轉達 Teredo Client 與 IPv6 網路之間的 IPv6 封包。

在 Teredo 的運作過程首先 Teredo Client 向 Teredo Server 取得建立 Teredo IPv6 位 址的資訊,並建立 Teredo IPv6 位址,然後 Teredo Client 與 Teredo Relay 建立通道。

最後 Teredo Client 透過通道與 IPv6 網路進行通訊。

圖 B-4 Teredo 封裝格式圖

Teredo 通道的封裝格式分為四種,如圖 B-4 所示。封裝型態○a 用來傳遞一般 IPv6 封包。封裝型態○b 主要用於 Teredo Client 向 Teredo Server 取得建立 Teredo IPv6 位址的資訊。封裝型態○c 是封裝型態○a 加上安全認證功能。封裝型態○d 是封裝型 態○b 加上安全認證功能。

Origin Indication 與 Authentication 標頭格式如圖 B-5 所示。Origin Indication 標頭 提供 Teredo Client 建立 Teredo IPv6 位址的資訊。Origin port 標頭欄位是 Teredo Client 於 NAT 外端的對應埠號值。Origin IPv4 Adderss 標頭欄位是 Teredo Client

IPv4 Network

IPv4

Network IPv6

Network IPv4 Header UDP Header

IPv6 Packet IPv4 Header UDP Header Authentication Origin Indication

IPv6 Packet IPv4 Header UDP Header Origin Indication

IPv6 Packet IPv4 Header UDP Header Authentication

a b c d

於 NAT 外端的對應 IPv4 位址值。Authentication 標頭用來進行安全認證,其標頭 欄位說明請參考 Teredo 標準文件。

圖 B-5 Origin Indication 與 Authentication 標頭格式圖

0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3

0x00 Origin port

0x00

0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3

Client identifier (Length:ID-len)

0x00 ID-len AU-len

Authentication value (Length:AU-len)

Nonce

Confirm

Origin IPv4 address

0x00

47

附錄 C SIGTRAN 標準

SIGTRAN 標準為 IETF SIGTRAN 工作小組所制定的技術標準,該標準規範如何 透過 IP 網路傳送以 PSTN 為基礎的信令(PSTN-based Signaling)。SIGTRAN 標 準包括 SCTP、IUA Layer、M2UA Layer 與 M3UA Layer,如圖 C-1 的粗體框線所 示。

Link Layer IP

TCP/UDP SCTP IUA/M2UA/M3UA

SS7

圖 C-1 PSTN-based Signaling Over IP 的通訊協定堆疊圖 C.1 SCTP

SIGTRAN 工作小組建議傳送以 PSTN 為基礎的信令時採用 SCTP 傳輸層協定,亦 可採用 TCP 傳輸層協定。SCTP 為連接導向(Connection-Oriented)與訊息導向

(Message-Oriented)的通訊協定。SCTP 的特點在於多串流(Multi-Stream)的支 援、Multi-Homing 的支援、非次序的可靠訊息傳送(Unordered Reliable Message Delivery)功能與安全性的加強 [2] 。

SCTP 的封包格式包括 SCTP Common 標頭與許多 Chunk 如圖 C-2 所示。SCTP Common 標頭中的 Source port number 欄位指名來源埠號、Destination port number 欄位元指名目的埠號、Verification tag 欄位用來作驗證 SCTP 封包發送端的合法性 與 Checksum 欄位為封包檢查碼。SCTP 標準定義的十二種 Chunk 與其功能如表 C-1 所列。

0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3

Source port number

Verification tag

Destination port number

Checksum

SCTP Chunks

圖 C-2 SCTP 封包格式圖 表 C-1 SCTP Chunk 功能說明表 Chunk 型態 Chunk 功能

Payload Data(DATA) 使用者資料

Initiation(INIT) 初始化 SCTP 連線

Initiation Acknowledgement(INIT ACK) 回應收到 INIT Chunk Selective Acknowledgement(SACK) 回應收到使用者資料 Heartbeat Request(HEARTBEAT) 用來確保 SCTP 連線持續 Heartbeat Acknowledgement(HEARTBEAT ACK)回應收到 HEARTBEAT Chunk

Abort(ABORT) 跳離 SCTP 連線

Shutdown(SHUTDOWN) 停止 SCTP 連線

Shutdown Acknowledgement(SHUTDOWN ACK)回應收到 SHUTDOWN Chunk Operation Error(ERROR) 回應錯誤訊息

State Cookie(COOKIE ECHO) 初始化 SCTP 連線,詳細定義 請參考 RFC2960

Cookie Acknowledgement(COOKIE ACK) 回應收到 COOKIE chunk C.2 IUA/M2UA/M3UA

IUA Layer 提供承載 Q.921 上層的 Signaling System Number 7(SS7)協定,如 Q.931。

M2UA Layer 上層提供承載 Message Transfer Part2(MTP2)上層的 SS7 協定,如 Message Transfer Part3(MTP3)。M3UA Layer 上層提供承載 MTP3 上層的 SS7 協定,如 Signaling Connection Control Part(SCCP)、ISDN User Part(ISUP)。

49

附錄 D 封包產生精靈

本系統為符合 2003 年第三屆國家高速電腦中心軟體程式設計競賽的程式需求,而 實作封包產生精靈,如圖 D-1 所示。封包產生精靈提供三種方式協助使用者產生 測試封包,分別為送出已擷取的封包、Step-by-step 產生封包與使用樣板產生封 包。送出已擷取的封包的目的是重現網路上的流量狀況。當網路設備因網路上的 封包流量發生故障時,網管人員可以先擷取封包以便分析設備故障的原因。當網 管人員完成網路設備的故障排除後可以利用本功能來重現故障時的網路流量狀 況,並驗證故障排除是否有效。Step-by-step 產生封包將逐步帶領使用者建立並送 出測試封包。使用樣板產生封包讓使用者可以快速的建立並送出測試封包。

圖 D-1 封包產生器精靈畫面圖

D.1 送出已擷取的封包

送出已擷取的封包流程圖 D-2 所示。使用者在啟動封包產生器精靈並選取要送出 測試封包的網路介面後,在下方導覽列選擇以送出已擷取封包(Send captured packets)的方式產生測試封包,如圖 D-2 步驟○1 所示。步驟○1 中點選下一步按鈕 後進入步驟○2 。使用者可以在步驟○2 中點選載入(Load)按鈕來載入欲送出的測 試封包擷取檔,此時進入步驟○3 。使用者可以於步驟○3 中確認測試封包,並點選 送出(Send)按鈕來送出測試封包。

Step

11

Step

Step

22

Step Step

3

圖 D-2 送出已擷取封包的步驟流程圖

D.2 Step-by-step 產生封包

Step-by-step 產生封包中,使用者將透過封包產生器精靈的協助,由上層通訊協定 往下層通訊協定的建置方式來建立測試封包,最後送出測試封包。比方產生 TCP 測試封包的步驟流程,首先使用者必須先建構 TCP 承載,然後建構 TCP 標頭,再 建構 IP 標頭,最後建構乙太網路標頭並將此測試封包送出。

圖 D-3 展示如何建立並送出 TCP/IPv6 的測試封包。使用者啟動封包產生器精靈並 選取送出測試封包的網路介面後,在下方導覽列選擇建立新封包(Create new packet)。步驟○1 中點選下一步按鈕進入步驟○2。步驟○2 中選取新封包承載(New packet payload),並點選下一步按鈕進入步驟○3。步驟○3 中,首先點選載入(Load)

按鈕載入檔案資料做為 TCP 承載,然後選取下層通訊協定為 TCP,並點選下一步 按鈕進入步驟○4,此時完成 TCP 承載建立。步驟○4 中,先填入相關的 TCP 標頭資 訊,然後選取下層通訊協定為 IPv6,並點選下一步按鈕進入步驟○5,此時完成 TCP 標頭建立。步驟○5 中,先填入相關的 IPv6 標頭資訊,然後選取下層通訊協定為乙 太網路,點選下一步按鈕進入步驟○6 ,此時完成 IPv6 標頭建立。步驟○6 中,先填 入相關的乙太網路標頭資訊,然後選取送出(Send Out)並點選下一步按鈕進入步 驟○7 ,此時完成乙太網路標頭建立。步驟○7 中,封包產生器精靈將顯示建立完成 的測試封包資訊。使用者確定無誤後,在步驟○7 中填入稍後欲送出的測試封包個 數與測試封包送出間隔,最後點選送出按鈕就可以將測試封包送出。

51

圖 D-3 TCP/IPv6 測試封包的建構步驟流程圖

Step

1

Step

2

Step

3

Step

4

Step

5

Step

6

Step

7

D.3 使用樣板產生封包

使用樣板產生封包協助使用者快速建立,並送出特定通訊協定的測試封包。首先 使用者選擇特定封包樣板,然後填入封包樣版中的必要封包資訊來建立測試封 包,最後送出測試封包。目前提供的封包樣板有 ARP 協定與 TCP 協定。

圖 D-4 展示如何透過樣板產生並送出 ARP 測試封包。使用者在啟動封包產生器精 靈並選取要送出測試封包的網路介面後,在下方導覽列選擇建立新封包(Create new packet),如圖 D-4 步驟○1 所示。步驟○1 中點選下一步按鈕進入步驟○2。步驟

2 中選取封包樣板(Packet template)並點選下一步按鈕進入步驟○3。步驟○3中,

選取 ARP 封包樣板並填入必要的 ARP 封包資訊,最後點選送出按鈕將測試封包 送出。

圖 D-4 ARP 測試封包的建構步驟流程圖

Step

1

Step

2

Step

3

53

附錄參考文獻

[1] C.Huitema. Teredo: Tunneling IPv6 over UDP through NATs. IETF Internet Draft, Feb.2004.

[2] R. Stewart, Q. Xie, K. Morneault, et al. Stream Control Transmission Protocol.

IETF RFC2960, Oct. 2000.

[3] Silvia Hagen. IPv6 Essentials. Oreilly. 2002.

相關文件