Dịch Địa Chỉ Dịch Giao Thức (SIIT VÀ NAT PT)

Một phần của tài liệu Triển khai IPV6 trên nền IPV4 (Trang 64)

- Dịch địa chỉ và dịch giao thức được phỏt triển trờn cơ sở cơ chế NAT trong IPv4 nhằm cho phộp cỏc nỳt mạng IPv4 và IPv6 kết nối với nhau. Cơ chế này hoạt

động trờn cơ sở chuyển đổi cỏc khỏc biệt giữa cỏc gúi tin IPv4 và IPv6. - Khỏc biệt vềđịa chỉ: Dịch địa chỉ IPv4- IPv6.

- Khỏc biệt về phần mởđầu header: Dịch giao thức thay đổi header gúi tin.

Thiết bị NAT- PT được cài đặt tại biờn giới giữa mạng IPv4 với Ipv6. Cơ chế này khụng đũi hỏi cỏc cấu hỡnh dặc biệt tai cỏc mỏy trạm và cỏc sự chuyển đổi gúi tin tại thiết bị NAT- PT hoàn toàn trong suốt với người dựng.

- Mỗi thiết bị NAT- PT duy trỡ một tập cỏc địa chỉ IPv4 dựng đẻ ỏnh xạ cỏc yờu cầu với địa chỉ IPv6.

- NAT- PT cú thờ mở rộng thành NAPT- PT cho phộp sử dụng một địa chỉ - - IPv4 cho nhiều phiờn làm việc khỏc nhau.

TRIỂN KHAI IPV6 TRấN NỀN IPV4

IPv4 Internet

NAT- PT cũng như NAT cũng như IPv4 khụng cú khả năng hoạt động với cỏc gúi tin cú chứa địa chỉ trong phần tải tin. Do đú, NAT- PT thường đi kốm với cơ chế

Cửa khẩu tầng ứng dụng ALG. Cơ chế này cho phộp xử xý cỏc gúi tin ứng với từng dịch vụ nhất định như DNS hay FTP, ...

- Ưu điểm:

+ Quản trị tập trung tại thiết bị NAT- PT.

+ Cú thể triển khai nhiều thiế bị NAT- PT để tăng hiệu năng hoạt động. - Nhược điểm:

+ Tạo lờn một điểm gõy lỗi loạn single poin of failure tại thiết bị NAT- PT. - Cỏc triển khai của NAT- PT: NAT- PT đó được thử nghiệm trờn cỏc hệđiều hành mạng như:

+ Linux, Free BSD, Microsoft Windows 2000.

+ Ngoài ra, nú cũng là một phần của hệ điều hành Cisco IOS IPv6 bản beta với hai phiờn bản dựa trờn IOS v11.3 và IOS v12.0. Cỏc triển khai này cú cho nhiều loại router khỏc nhau.

Hình 31: NAI- PT

- SIIT (Stateless IP/ICMP Translation Algorithm) là một chuẩn của IETF (RFC2765) mụ tả bộ dịch IPv6/IPv4 khụng lưu trạng thỏi (Stateless).

TRIỂN KHAI IPV6 TRấN NỀN IPV4

- Tương tự cơ chế NAT- PT ngoại trừ nú khụng cấp phỏt động địa chỉ IPv4 cho cỏc trạm IPv6. Chức năng chuyển đổi thực hiện giữa header IPv6 và IPv4. SIIT khụng bao gồm cỏc tựy chọn IPv4 và header mở rộng trong IPv6.

SIIT cũng thực hiện chuyển đổi cỏc thụng điệp điều khiển ICMP giữa hai giao thức. - Đối với quỏ trỡnh chuyển đổi IPv4 sang IPv6, một địa chỉ IPv4 tạm thời được gỏn cho nỳt mạng IPv6.

- Cỏc gúi tin đến thiết bi SIIT sẽđược chuyển đổi header và địa chỉ từ IPv4 sang cỏc

địa chỉ IPv4-dịch (IPv4- translated) và IPv4- ỏnh xạ (IPv4- mapped). Một địac hỉ

IPv4-dịch tương ứng với một nuts mạng IPv6 cũn địa chỉ IPv4- ỏnh xạ tương ứng một nỳt mạng IPv4. Đối với chiều ngược lại, cỏc địa chỉ này sẽ được chuyển đổi ngược lại thành địa chỉ IPv4.

- Do quỏ trỡnh chuyển đổi khụng lưu trạng thỏi, cú thể tồn tại nhiều bộ chuyển đổi giữa hai mạng IPv4 và IPv6. Khụng cú sự ràng buộc mỗi phiờn truyền phải đi qua một thiết bị duy nhất như trong NAT- PT.

2.3.9 MỘT SỐ CƠ CHẾ KHÁC

2.3.9.1 BIS (Bump Into the Stack )

- BIS là sự kết hợp của hai cơ chế NAT- PT và DNS- ALG nhưng được cài đặt ngay tại cỏc nỳt mạng IPv6. Qua đú, cỏc ứng dụng trờn cỏc trạm IPv4 cú thể kết nối với cỏc trạm IPv6.

- Ưu điểm:

+ Hỗ trợ nhanh chúng và đơn giản cỏc ứng dụng IPv4 cú thể kết nối với cỏc nỳt mạng IPv6 khỏc.

+ Cài đặt ngay trờn từng trạm nờn khụng phụ thuộc vào một thiết bị trung gian như NAT- PT. (adsbygoogle = window.adsbygoogle || []).push({});

TRIỂN KHAI IPV6 TRấN NỀN IPV4

+ Khụng hỗ trợ khả năng tự cấu hỡnh.

+ Cần cài đặt và cấu hỡnh riờng rẽ trờn từng nỳt mạng: card mạng, cấu hỡnh IP, NAT. Cỏc thụng số cấu hỡnh này cần được thực hiện lại mỗi khi cú sự thay đổi về topo và địa chỉ mạng.

+ Về lõu dài và với cỏc mạng cú kớch thước lớn, hoạt động khụng hiệu quả và chi phớ quản trị cao.

- Triển khai:

+Phần mềm Tụlnet6 hỗ trợ BIS hạn chế với một số card mang họ 3Com, NE2000 dưới dạng driver cho card mạng do cụng ty Hitachi cung cấp. Chương trỡnh hoạt động với Win9x và NT cho phộp kết nối với cỏc trạm IPv6.

+Sau7 khi cài đặt phần driver của card mạng, cần cấu hỡnh cỏc ỏnh xạ địa chỉ

IPv6- IPv4 trước khi cú thể thực hiện kết nối thụng qua chương trỡnh NAT MAnager.

2.3.9.2 BIA (Bump Into the API)

Phương phỏp này ỏp dụng cho cỏc dual- stack host (cỏc host hỗ trợ cả IPv4 và IPv6), cho phộp cỏc host IPv6 khỏc với cỏc ứng dụng IPv4 hiện cú.

Mục đớch của phương phỏp cũng giống như cơ chế Bump-in-the-stack (BIS) nhưng nú đưa ra cơ chế dịch giữa cỏc API IPv4 và IPv6. DO vậy, quỏ trỡnh đơn giản khụng cần dịch header gúi tin IP và khụng phụ thuộc vào cỏc giao thức tầng dưới và trỡnh

TRIỂN KHAI IPV6 TRấN NỀN IPV4

Host Translatorr( BIA)

IPv6 hative host

(API)

IP v6 network

IPv4 Applications

IPv6 hative host

Hình 32: BIA

- Phương phỏp BIA khụng sủ dụng được trong cỏc host chỉ hỗ trợ IPv4 như phương phỏp BIS. Nú chỉđược sử dụng trờn cỏc host IPv6/Ipv4 nhưng cú một số trỡnh ứng dụng IPv4 khụng thẻ hoặc khú chuyển đổi sang hỗ trợ IPv6.

- Do BIA hoạt động tại mức API socket nờn ta cú thể sử dụng cỏc giao thức an ninh tại tầng mạng (IPsec).

BIA hiện nay chỉ ỏp dụng được cho cỏc trao đổi kiểu Unicast, chưa ỏp dụng được cho kiểu Multicast. Cỏc tớnh năng mới của socket IPv6 khụng thể sử dụng.

- Phương thức hoạt động:

+ Phương phỏp BIA chốn thờm một bộ dịch API vào giữa module socket API và module TCP/IP trờn dual-stack host và dịch cỏc hàm API socket IPv4 thành cỏc hàm API socket IPv6 và ngược lại.

Để ỏp dụng phương phỏp này, host hỗ trợ cả TCP(UDP)/IPv4 và TCP(UDP)/IPv6. + Khi một ứng dụng IPv4 giao tiếp với một host IPv6 khỏc, bộ dịch API phỏt hiện

TRIỂN KHAI IPV6 TRấN NỀN IPV4

cỏc hàm APG socket mà ứng dụng sử dụng và gọi tương ứng cỏc hàm API socket IPv6 để giao tiếp với host IPv6 và ngược lại.

+ Quỏ trỡnh chuyển đổi IPv6 sang một tập cỏc địa chỉ IPv4 được thực hiện trong module ỏnh xạ tờn (name resolver).

- Kiến trỳc của dual-stack host sử dụng BIA. - Module BIA gồm 3 phần:

+ Module tra cứu tờn (Name resolver): Đỏp ứng cỏc yờu càu tra cứu tờn miền của cỏc ứng dụng IPv4. Khi một ứng dụng giửi một truy vấn cỏc bản ghi kiểu A tới name server, module này sẽ nhận truy vấn này, phõn tớch và tạo ra truy vấn tương (adsbygoogle = window.adsbygoogle || []).push({});

ứng với tờn mỏy đú cho cả cỏc bản ghi kiểu A và AAAA rồi giửi cho name server.

IPv4 Applications

Socket API (IPv4 , IPv6)

API Translator

TCP(UDP)/IPv4 TCP(UDP)/IPv6

Hình 33. Kiến trúc của dual- stack host sử dụng BIA

Name Resolver Address Mapper Function Mapper

TRIỂN KHAI IPV6 TRấN NỀN IPV4

Nếu trả lời từ name server chỉ cú bản ghi kiểu AAAA, module này sẽ yờu cầu module ỏnh xạ địa chỉ gỏn một địa chỉ IPv4 tương ứng với địa chỉ IPv6 này rồi tạo ra một trả lời kiểu A chứa địa chỉ IPv4 trả về cho ứng dụng

+ Module ỏnh xạđịa chỉ (Address mapper).

Duy trỡ một bảng cỏc cặp địa chỉ IPv4 và IPv6. Cỏc địa chỉ IPv4 được gỏn từ một tập cỏc địa chỉ này và cập nhật thờm một mục trong bảng. Quỏ trỡnh cập nhật xảy ra trong hai trường hợp:

Khi module ỏnh xạ tờn chỉ nhận được trả lời về bản ghi kiểu AAAA và khụng cú mục nào trong bảng chứa địa chỉ IPv6 tương ứng.

Khi module ỏnh xạ hàm nhận được một lời gọi hàm API socket từ dữ liệu thu nhận mà khụng cú mục nào trong bảng tương ứng với địa chỉ IPv6 nguồn.

+ Module ỏnh xạ hàm (Function mapper): Chuyển đổi cỏc hàm API socket IPv4 thành cỏc hàm API socket IPv6 và ngược lại.

- Cỏc vấn đề liờn quan

+ Chuyển đổi API socket.

Cỏc hàm API socket IPv4 được chuyển đổi tương ứng sang cỏc hàm API socket IPv6. Quỏ trỡnh này chuyển đổi cả cỏc địa chỉ IP nhỳng trong cỏc giao thức tầng

ứng dụng (FTP, DNS,...). Sự tương thớch giữa cỏc hàm API socket là khụng hoàn toàn do cỏc hàm API socket IPv6 cú nhiều tớnh năng hơn.

Cỏc hàm API socket được chuyển đổi:

bind() connect() sendmsg() sendto() accept() rrecvfrom()

TRIỂN KHAI IPV6 TRấN NỀN IPV4 recvmsg() getpeername() gétockname() gétocketopt() sétocketopt() recv() send()

Bảng 3- 1. Cỏc hàm API socket được chuyển đổi

Cỏc cấu trỳc và hàm API cơ bản

AF_ INET AF- INET6

sockaddr_in sockaddr_in6 gethostbyname() getaddrinfo() gethosbyaddr() getnameinfo() inet_ntoa()/inet_addr() inet_pton()/inet_ntop() INADDR_ANY in6addr_any Bảng 3- 2. Cỏc cấu trỳc và hàm API cơ bản

- Cỏc thụng điệp ICMPv4 được chuyển thành ICMPv6 và ngược lại giống trong phưong phỏp SIIT.

+ Tập cỏc địa chỉ IPv4 và bảng ỏnh xạđịa chỉ.

Để trỏnh hiện tượng dựng hết tập địa chỉ IPv4 dẫn đến khụng thể tiếp tục đỏp ứng cỏc yờu cầu trao đổi với bờn ngoài, BIA đưa ra cỏc cơ chếđể loại bỏ cỏc mục tồn tại lõu nhất trong bảng để sử dụng trong cỏc yờu càu mới.

TRIỂN KHAI IPV6 TRấN NỀN IPV4

Để trỏnh đụng độ vềđịa chỉ, BIA sử dụng cỏc địa chỉ khụng được cấp phỏt (0.0.0.0 (adsbygoogle = window.adsbygoogle || []).push({});

đến 0.0.0.255).

+ Vấn đề khụng phự hợp giữa kết quả DNS (AAAA) với phiờn bản ứng dụng (v4).

- Nếu server ứng dụng chưa hỗ trợ IPv6 nhưng chạy trờn một mỏy cú hỗ trợ IPv6 và cú tờn dưới kiểu bản ghi AAAA trong DNS, ứng dụng client cú thể khụng kết nối

được với server do cú sự khụng phự hợp giữa bản ghi kết quả DNS (AAAA) với phiờn bản ứng dụng server (IPv4).

- Một trong cỏc giải phỏp là thử tất cả cỏc địa chỉ trong DNS và khụng kết thỳc ngay sau lần thửđầu tiờn. Điều này cú thể ứng dụng bởi sự mở rộng module tra cứu tờn và bộ dich API trong BIA. BIA thực hiện lặp cụng việc tỡm kiếm cỏc địa chỉ hoạt

động sử dụng bởi cỏc ứng dụng khỏc bờn ngoài cỏc địa chỉ trả về từ name server.

2.3.9.3 CƠ CHẾ CHUYỂN ĐỔI HAI GIAO THỨC (DSTM)

- Cơ chế này cho phộp kết nối cỏc nỳt mạng stack kếp (IPv6/IPv4) trờn một mạng IPv6 với cỏc nỳt mạng IPv4 ở xa. DSTM khụng ỏp dụng được cho cỏc nỳt mạng chỉ

hỗ trợ IPv6.

- DSTM cấp một địa chỉ IPv4 toàn cục tạm thời cho nỳt mạng IPv6 và sử dụng

đường hầm IPv4-in-IPv6 để truyền gúi tin IPv4 trờn mạng IPv6.

- Đõy là cơ chế hai chiều, quỏ trỡnh truyền thụng cú thể bắt đầu từ nỳt mạng IPv6 hoặc nỳt mạng IPv4.

- Cỏch thức hoạt động:

+ DSTM được cài đặt trờn tất cả cỏc nỳt mạng trong mạng IPv6 và router biờn giới giữa hai miền IPv6 và IPv4. Nú cũng sử dụng DHCPv6. Do vậy, DSTM cần một server DHCPv6 và cỏc client tại mỗi nỳt mạng.

TRIỂN KHAI IPV6 TRấN NỀN IPV4

DHCP

Border router(Y) IPv4

IPv6

IPv4 only node (Z)

Dual stack node (X)

DNS

Hình 34. Cơ chế chuyển đổi hai giao thức (DSTM)

- Chức năng cỏc bộ phận như sau:

+ DHCPv6 Server: Cấp địa chỉ IPv4 tạm thời cho cỏc nỳt mạng muốn giao tiếp với nỳt mạng IPv4 ở xa. Nú cũng duy trỡ sự ỏnh xạ giữa địa chỉ IPv4 và IPv6. Để

hỗ trợ DSTM, DHCPv6 phải hỗ trợ một tựy chọn mới cho phộp nỳt mạng IPv6 nhận địa chỉ IPv4 tạm thời và thụng bỏo cho phớa client biết địa chỉ IPv6 của cuối đường hầm.

+ DSTM daemon: Sử dụng DHCPv6 client trờn nỳt mạng để yờu cầu địa chỉ

IPv4 toàn cục mỗi khi khởi tạo truyền thụng.

+ Giao diện đường hầm động (DTI): Đõy là một giao diện IPv4 ảo trongnut stack kộp để cho phộp truyền cỏc gúi tin IPv4 một cỏch trong suốt trờn mạng (adsbygoogle = window.adsbygoogle || []).push({});

TRIỂN KHAI IPV6 TRấN NỀN IPV4

IPv6. Cỏc gúi tin chuyển đến giao diện này được bọc trong gúi tin IPv6 và được giửi thụng qua giao diện IPv6 đến router biờn mạng.

+ Router biờn mạng: Đõy là một router stack kộp kết nối miền IPv4 với IPv6.

Đõy là nơi kết thỳc đường hầm 4 trong 6. Router cũng lưu cỏc ỏnh xạ giữa địa chỉ IPv6 với địa chỉ IPv4 tạm thời.

- Ưu điểm:

+ Trong suốt đối với mạng, chỉ cần duy trỡ định tuyến IPv6 trờn mạng, giảm chi phớ quản trị mạng.

+ Trong suốt đối với ứng dụng, cho phộp cỏc ứng dụng chỉ cho IPv4 hoạt động bỡnh thường trờn nỳt mạng IPv4/IPv6.

+ Khắc phuc sự thiếu hụt địa chỉ IPv4 bằng cỏch sử dụng DHCPv6. - Nhược điểm:

+ Đũi hỏi nhiều cơ chếđặc biệt. + Sử dụng cỏc địa chỉ IPv4 toàn cục. - Triển khai:

+Hiờn mới chỉ cú trờn hệđiều hành Free BSD.

2.4 Sử Dụng IPV6 Trong URL

Mặc dự cỏc mỏy chủ DNS cỳ thể truy cập vào một website bằng cỏch sử dụng tờn miền thay cho sử dụng một địa chỉ IP, nhưng bạn vẫn cú thể vào một địa chỉ IP thay cho một phần của một URL. Vớ dụ, một website cỏ nhõn sử dụng URL là

www.tenmien.com, tương ứng với nú là địa chỉ IP 123.26.85.16. Với địa chỉ IP như

vậy, tụi hoàn toàn cỳ thể truy cập vào website bằng cỏch nhập vào URL:

http://123.26.85.16

Hầu hết những người lướt web thường khụng sử dụng thúi quen nhập vào địa chỉ

IP. Tuy vậy, việc truy cập theo kiểu này vẫn tồn tại. Điều này đặc biệt đỳng với cỏc

ứng dụng web riờng lẻ. Khi khụng liờn quan đến một tờn miền, một ứng dụng cú khả năng trỏnh được người dựng trỏi phộp dũ dẫm và nhảy vào ứng dụng của bạn

TRIỂN KHAI IPV6 TRấN NỀN IPV4

một cỏch tỡnh cờ.

Khi một địa chỉ IP được sử dụng thay thế cho một tờn miền, thỡ số cổng đụi lỳc

được chỉ định như một phần của địa chỉ. Nếu bạn chỉ đơn giản nhập vào sau HTTP:// sau đú là một địa chỉ thỡ trỡnh duyệt sẽ thừa nhận rằng bạn muốn sử dụng cổng 80. Mặc dự vậy, bạn cỳ thể chỉ định bất kỳ cổng nào để truy cập đến website, vớ dụ nếu bạn muốn truy cập đến website www.tenmien.com bằng địa chỉ IP và cụ

thể là cổng 80 được sử dụng thỡ lệnh nờn dựng đú là http://123.26.85.16:80

Giao thức IPv6 cũng vậy, nú cũng được sử dụng như một phần của một URL. Nhưng nếu quan tõm đến định dạng IPv6 thỡ bạn nờn lưu ý rằng một địa chỉ IPv6 gồm cú rất nhiều dấu “:”. Điều này đú nảy sinh một vấn để khi trỡnh duyệt của bạn xử lý bất cứ những cỏi gỡ đú phớa sau dấu “:” như một số chỉ thị của cổng. Trong trường hợp đú, cỏc địa chỉ IPv6 được phõn biệt bờn trong dấu ngoặc khi chỳng được sử dụng như một phần của URL. Vớ dụ: nếu bạn đú sử dụng địa chỉ IPv6 mẫu trong một URL thỡ nỳ sẽ giống như thế này:

HTTP://[2001:0f68:0000:0000:0000:0000:1986:69af]/

Giống như cú thể chỉđịnh số của cổng với địa chỉ IPv4, bạn cũng cú thể chỉđịnh số cổng khi sử dụng địa chỉ IPv6. Số cổng phải đi sau cựng một định dạng bắt buộc như khi sử dụng IPv4. Và ở bờn ngoài cỏc dấu ngoặc. Vớ dụ, nếu bạn muốn truy cập vào website tại địa chỉ IPv6 mẫu trờn theo cổng 80 thỡ URL nhập vào sẽ như sau: HTTP://[2001:0f68:0000:0000:0000:0000:1986:69af]:80/

Lưu ý rằng số của cổng trong trường hợp này là 80, nằm giữa dấu đúng ngoặc và dấu sổ. Một dấu “:” cũng được sử dụng để định rừ số cổng như trong giao thức IPv4.

KẾT LUẬN CHƯƠNG:

Xõy dựng một mạng cú khả năng tương thớch, cú thể sử dụng cả hai dạng địa chỉ v4 và v6 là một trong những khú khăn của cỏc nhà quản trị mạng núi riờng, của người sử dụng núi chung. Chương này đó trỡnh bày một số giải phỏp để hai dạng

TRIỂN KHAI IPV6 TRấN NỀN IPV4 (adsbygoogle = window.adsbygoogle || []).push({});

Một phần của tài liệu Triển khai IPV6 trên nền IPV4 (Trang 64)