Kỹ thuật hai ngăn xếp(Dual-Stack)

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu triển khai mô hình mạng ứng dụng IP version 6 (Trang 93)

CHƢƠNG 5 : SỰ CHUYỂN ĐỔI GIỮA IPv4 VÀ IPv6

5.1. Kỹ thuật hai ngăn xếp(Dual-Stack)

Một nút dual-stack hồn tồn có thể hỗ trợ cho cả hai phiên bản của IP. Kiểu nút này thường được xem như một nút IPv6/IPv4. Khi liên lạc với một nút IPv6, nó đối xử như một nút với chỉ IPv6, còn khi liên lạc với một nút IPv4, nó lại đối xử như một nút chỉ IPv4. Khi triển khai có thể cấu hình để cho phép hoặc cấm một trong các ngăn xếp, vì vậy nút này có thể có ba chế độ hoạt động. Khi ngăn xếp IPv4 được cho phép và ngăn xếp IPv6 bị cấm, thì nút được đối xử như một nút chỉ chạy IPv4. Khi ngăn xếp IPv6 được cho phép và IPv4 bị cấm, nó đối xử như một nút chỉ chạy IPv6. Khi cả hai ngăn xếp được cho phép, nút có thể sử dụng cả hai giao thức. Một nút IPv6/IPv4 có ít nhất một địa chỉ cho mỗi loại. Nó sử dụng các cơ chế IPv4 được cấu hình cho một địa chỉ IPv4 (cấu hình tĩnh hoặc DHCP) và sử dụng các cơ chế IPv6 được cấu hình cho một địa chỉ IPv6 (cấu hình tĩnh hoặc tự động cấu hình).

DNS được sử dụng với cả hai phiên bản giao thức để chuyển đổi giữa tên miền và các địa chỉ IP. Một nút IPv6/IPv4 cần một bộ chuyển đổi DNS mà có khả năng chuyển cả hai loại bản ghi địa chỉ DNS. Bản ghi DNS A chuyển đổi các địa chỉ IPv4, và bản ghi DNS AAAA chuyển đổi các địa chỉ IPv6.

Trong một số trường hợp, DNS được cấu hình để quảng bá chỉ các địa chỉ IPv4 hoặc IPv6. Nếu một host mà được phân giải như một host hai ngăn xếp, DNS phải trả lại cả hai loại địa chỉ. Thông thường các ứng dụng mà được viết để chạy trên các nút hai ngăn xếp cần một cơ chế để xác định xem chúng được liên lạc với một nút IPv6 hay một nút IPv4.

Một mạng mạng ngăn xếp là một cơ sở hạ tầng mà trong đó các router sẽ cho phép forward cả lưu lượng IPv4 lẫn IPv6. Nhược điểm của kỹ thuật này là phải thực hiện một sự nâng cấp phần mềm cho toàn mạng để chạy hai loại ngăn xếp giao thức riêng biệt. Tất cả các bảng (như bảng định tuyến) được giữ đồng thời với các giao thức định tuyến được cấu hình cho cả hai giao thức này. Về phương diện quản lý mạng, trên một vài hệ điều hành vẫn có thể có các lệnh riêng tùy thuộc vào giao thức (ví dụ ping cho IPv4 và ping6 cho IPv6), và nó cần nhiều bộ nhớ và năng lực xử lý của CPU hơn.

5.1.1. Các ứng dụng hỗ trợ cả IPv4 và IPv6

Trước khi có thể sử dụng được cả hai ngăn xếp trong các nút, các ứng dụng dựa trên IPv4 phải được sửa đổi để hỗ trợ giao thức IPv6. Về cơ bản, API của các ứng dụng chỉ chạy IPv4 được mã hóa để sử dụng chỉ các địa chỉ IPv4. Như trình bày trong hình 5.1, ứng dụng chỉ với IPv4 có thể sử dụng TCP hoặc UDP như là lớp giao vận để truyền tải dữ liệu. Sau khi đến ngăn xếp, dữ liệu được đặt vào các gói tin IPv4. Sau đó nó được gửi tới giao diện mạng của nút. Giá trị nhận dạng giao thức được sử dụng trong các khung Ethernet cho các gói tin IPv4 là 0x0800. Đây là một ví dụ đơn giản trình bày quá trình dữ liệu được đưa từ một ứng dụng chỉ chạy IPv4 tới giao diện mạng thông qua ngăn xếp giao thức IPv4.

Hình 5.1 - Ứng dụng chỉ chạy IPv4 sử dụng ngăn xếp IPv4 để gửi gói tin

Khi một ứng dụng chỉ chạy IPv4 được sửa đổi để sử dụng cả IPv4 và IPv6, thì ứng dụng có thể tiếp tục chạy như trước đây trên IPv4. Sau khi được nâng cấp để hỗ trợ IPv6, ứng dụng có thể chọn hoặc là ngăn xếp IPv4 hoặc là IPv6 để tạo các gói tin.

Hình 5.2 trình bày một ứng dụng hỗ trợ cả hai giao thức IPv4 và IPv6. Ứng dụng sử dụng TCP và UDP như là giao thức giao vận, nhưng nó chọn ngăn xếp IPv6 hơn là IPv4. Các gói tin IPv6 được tạo ra và gửi tới giao diện mạng. Giá trị nhận dạng giao thức sử dụng trong các khung Ethernet cho các gói tin IPv6 là 0x86DD.

Hình 5.2 - Ứng dụng hỗ trợ cả IPv4 và IPv6 có thể sử dụng cả hai ngăn xếp

5.1.2. Sự lựa chọn ngăn xếp giao thức

Mặc dù một ứng dụng được mã hóa để sử dụng cả hai loại giao thức IPv4 và IPv6, nhưng một nút hai ngăn xếp thì khơng tự quyết định ngẫu nhiên xem sẽ sử dụng ngăn xếp nào để liên lạc. Có hai phương pháp để buộc một nút hai ngăn xếp sử dụng ngăn xếp IPv6 của nó khi khả năng kết nối IPv6 là cho phép:

Cấu hình bằng tay bởi ngƣời dùng: Nếu người dùng biết một địa chỉ IPv6

của một host IPv6 đích, thì có thể ghi vào địa chỉ IPv6 để thiết lập một phiên kết nối. Tuy nhiên, như đã trình bày ở trên, khn dạng bắt buộc của một địa chỉ IPv6 phải được sử dụng. Đối với các ứng dụng web, đừng quên sử dụng các khuôn dạng địa chỉ cụ thể sử dụng trong URL. Nhập bằng tay một địa chỉ IPv6 thì tốt cho việc kiểm tra, sữa chữa, nhưng đây không phải là cách tốt nhất để hàng ngày sử dụng các ứng dụng.

Sử dụng một dịch vụ tên miền: Như chúng ta đã biết có thể cấu hình một tên

miền FQDN trong dịch vụ tên miền với cả địa chỉ IPv4 và IPv6. Một FQDN có thể có được thơng qua một địa chỉ IPv4 được đặc trưng bởi một bản ghi A hoặc thông qua một địa chỉ IPv6 được đặc trưng bởi một bản ghi AAAA trong DNS server. Cuối cùng, cũng FQDN đó có thể có được với cả địa chỉ IPv4 và IPv6. Điều này có nghĩa là DNS server có thể được yêu cầu để cung cấp thông tin về khả năng của server và dịch vụ host hoặc là trên IPv4 hoặc trên IPv6.

Yêu cầu cho một địa chỉ IPv4: Ứng dụng chỉ chạy IPv4 yêu cầu các dịch vụ

tên miền phân giải FQDN thành một bản ghi A (địa chỉ IPv4). Nếu ứng dụng nhận được bản ghi A, nó liên lạc với host name sử dụng địa chỉ IPv4 nhận được.

Yêu cầu cho một địa chỉ IPv6: Ứng dụng chỉ chạy IPv6 yêu cầu dịch vụ tên

miền phân giải FQDN thành một bản ghi AAAA (địa chỉ IPv6). Nếu ứng dụng nhận được bản ghi AAAA, nó liên lạc với host name sử dụng địa chỉ IPv6 nhận được.

Yêu cầu cho cả hai loại địa chỉ: Ứng dụng với cả IPv4 và IPv6 hỗ trợ u

AAAA trước. Nếu nó khơng tìm thấy bản ghi AAAA, nó tìm kiếm bản ghi A để liên lạc với host name đó.

5.1.2.1. Yêu cầu dịch vụ tên miền cho một địa chỉ IPv4

Nếu một ứng dụng chỉ chạy IPv4 (không hỗ trợ IPv6), nó sẽ chỉ yêu cầu DNS server cung cấp địa chỉ IPv4 của host cần liên lạc. Như trình bày trong hình 5.3, đầu tiên một ứng dụng chỉ chạy IPv4 trên nút hai ngăn xếp X yêu cầu DNS server Y phân giải tên miền FQDN www.example.org thành bản ghi A. Sau đó DNS server Y trả lời cho nút X, chỉ ra địa chỉ IPv4 là 206.123.31.2 của www.example.org. Cuối cùng, ứng dụng chỉ chạy IPv4 trên nút X bắt nút X thiết lập một phiên kết nối tới địa chỉ đích IPv4 206.123.31.2.

Hình 5.3 - Ứng dụng hỗ trợ chỉ IPv4 yêu cầu một bản ghi A của FQDN từ DNS 5.1.2.2. Yêu cầu dịch vụ tên miền cho một địa chỉ IPv6 5.1.2.2. Yêu cầu dịch vụ tên miền cho một địa chỉ IPv6

Trái với ở trên, một ứng dụng cũng có thể chỉ hỗ trợ giao thức IPv6. Trong trường hợp này, ứng dụng yêu cầu DNS server phân giải một FQDN để cung cấp cho nó một địa chỉ IPv6 của host cần liên lạc. Như trình bày trong hình 5.4, đầu tiên ứng dụng IPv6 trên nút hai ngăn xếp X yêu cầu DNS server Y phân giải tên miền FQDN

www.example.org thành bản ghi AAAA. Sau đó DNS server Y trả lời nút X, chỉ ra địa

chỉ IPv6 đích là 3ffe:b00:ffff:a::1. Cuối cùng, ứng dụng IPv6 trên nút X bắt nút này thiết lập một phiên kết nối tới địa chỉ đích IPv6 3ffe:b00:ffff:a::1.

5.1.2.3. Yêu cầu dịch vụ tên miền cho cả hai loại địa chỉ

Nếu một ứng dụng mà hỗ trợ cả IPv4 và IPv6 sẽ yêu cầu DNS server cung cấp cho nó cả hai loại địa chỉ. Đầu tiên ứng dụng tìm bản ghi AAAA. Nếu nó khơng tìm thấy, nó tìm tiếp bản ghi A để liên lạc với host name. Một ứng dụng hỗ trợ cả IPv4 và IPv6 thơng thường được mã hóa để nhận được một địa chỉ IPv6 trước. Như trình bày trong hình 5.5, một ứng dụng với cả IPv4 và IPv6 được hỗ trợ trên một nút hai ngăn xếp X yêu cầu DNS server Y phân giải tên miền FQDN www.example.org thành bản ghi AAAA và A. Sau đó DNS server Y trả lời cho nút X, chỉ ra địa chỉ 3ffe:b00:ffff:a:1 như là địa chỉ đích IPv6 và 206.123.31.2 như là địa chỉ đích IPv4. Cuối cùng, ứng dụng trên nút X dùng địa chỉ IPv6 3ffe:b00:ffff:a:1 để thiết lập một phiên kết nối tới nút đích.

Hình 5.5 - Ứng dụng với IPv4 và IPv6 yêu cầu một bản ghi A và AAAA của FQDN từ DNS

5.2. Kỹ thuật đường hầm(Tunneling)[1],[7],[5]

Các cơ chế đường hầm có thể được sử dụng để triển khai một cơ sở hạ tầng truyền dẫn IPv6 trong khi toàn bộ cơ sở hạ tầng IPv4 vẫn là nền tảng và sẽ không hoặc là không thể được thay đổi và nâng cấp.

Kỹ thuật tunneling thực chất là q trình đóng gói các gói tin để truyền trên một đường hầm. Với sự đóng gói này, một giao thức ( ở đây là IPv6) được đóng gói trong tiêu đề của một giao thức khác (trong trường hợp này là IPv4) và được truyền trên cơ sở hạ tầng của giao thức thứ hai (IPv4). Q trình đóng gói có ba giai đoạn:

 Sự đóng gói tại đầu vào đường hầm

 Sự tháo gói tại đầu ra đường hầm

 Sự quản lý đường hầm

Vì vậy đường hầm có thể được sử dụng để mang lưu lượng IPv6 bằng việc đóng gói nó trong các gói tin IPv4 và truyền nó trên cơ sở hạ tầng định tuyến IPv4. Ví

dụ, nếu nhà cung cấp vẫn chỉ có cơ sở hạ tầng IPv4, tunneling cho phép có một mạng IPv6 riêng và một đường hầm xuyên qua mạng IPv4 của nhà cung cấp dịch vụ để tới các host hoặc các mạng IPv6 khác. Hoặc có thể triển khai các vùng IPv6 trong mạng riêng của các tổ chức trong khi mạng lõi vẫn là IPv4. Các gói tin IPv6 đi từ vùng IPv6 này tới vùng IPv6 kia có thể đi qua đường trục được đóng gói trong các gói tin IPv4. Các kỹ thuật đường hầm và sự đóng gói các gói tin IPv6 trong các gói tin IPv4 được định nghĩa trong một vài RFC. Có hai loại đường hầm thơng thường.

Đường hầm được cấu hình bằng tay của IPv6 trên IPv4

Các gói tin IPv6 được đóng gói trong các gói tin IPv4 được mang trên các cơ sở hạ tầng định tuyến IPv4. Đây là các đường hầm điểm-điểm mà cần được cấu hình bằng tay.

Đường hầm tự động của IPv6 trên IPv4

Các nút IPv6 có thể sử dụng hai loại địa chỉ khác nhau, như 6to4 hoặc các địa chỉ ISATAP, tạo đường hầm tự động truyền các gói tin IPv6 trên một cơ sở hạ tầng định tuyến IPv4. Các địa chỉ unicast IPv6 đặc biệt này mang một địa chỉ IPv4 trong một số phần của các trường địa chỉ IPv6.

5.2.1. Hoạt động của đường hầm

Đường hầm thường được sử dụng trên một mạng để mang các giao thức khơng tương thích hoặc dữ liệu riêng biệt trên một mạng đã có sẵn. Ví dụ, Các đường hầm giao thức định tuyến Multicast véc tơ khoảng cách (DVMRP) mang các gói tin multicast trên các mạng unicast. IPSec trong cơ chế đường hầm, giao thức đường hầm lớp 2 (L2TP), và các cơ chế mạng riêng ảo khác (VPN) truyền dữ liệu nhạy cảm trên các mạng IP công cộng sử dụng các giao thức đường hầm bảo mật.

Để triển khai IPv6 trong phạm vi cơ sở hạ tầng mạng IPv4 đang có ở bất cứ chỗ nào trên mạng, đường hầm cung cấp một phương pháp cơ bản cho các host IPv6 hoặc các vùng mạng tạo bởi các host IPv6, các server, và các router có thể liên lạc được với các vùng mạng IPv6 khác, và các mạng IPv6 này sử dụng các miền định tuyến IPv4 như là lớp vận chuyển. Như trình bày trong hình 5.6, một đường hầm được triển khai giữa hai vùng tạo bởi các nút IPv6 trên một mạng IPv4 thuần túy (chẳng hạn như Internet). Các router biên tại biên của các vùng mạng IPv6 và Internet có thể đóng gói các gói tin IPv6 vào trong IPv4 và gửi đi trên đường hầm.

Khi một gói tin IPv6 được đóng trong IPv4, tiêu đề gốc của nó và phần dữ liệu không bị thay đổi. Một tiêu đề IPv4 được chèn vào đằng trước gói tin IPv6. Vì vậy, tiêu đề bên trong chứa địa chỉ nguồn và đích của phiên kết nối IPv6 từ đầu cuối đến đầu cuối, và tiêu đề bên ngồi chứa địa chỉ nguồn và đích của hai đầu đường hầm. Tại mỗi đầu đường hầm, q trình đóng gói và gỡ gói được thực hiện. Các thiết bị tại mỗi đầu đường hầm phải hỗ trợ cả hai loại giao thức IPv4 và IPv6 (dual-stack) để đóng và gỡ các gói tin IPv6 trong IPv4.

Hình 5.6 – Đường hầm được thiết lập trên mạng IPv4 giữa hai vùng mạng IPv6

Như trình bày trong hình 5.7, host IPv6 A biết địa chỉ đích IPv6 của host IPv6 B, muốn thiết lập một phiên kết nối tới host B. Cả hai mạng IPv6 bị cách ly, nhưng chúng được kết nối sử dụng một mạng IPv4. Một đường hầm mang các gói tin IPv6 trong IPv4 được thực hiện giữa router R1 và R2. Để bắt đầu một phiên kết nối, host A gửi gói tin IPv6 đầu tiên, tạo bởi một tiêu đề IPv6 và dữ liệu của nó, tới địa chỉ IPv6 của host B như là địa chỉ đích. Bởi vì host đích nằm trên một miền định tuyến IPv6 khác, gói tin được truyền trên IPv6 tới router biên R1, hoạt động như điểm đầu vào của đường hầm. Vì vậy, router R1 đóng gói gói tin IPv6 trong gói tin IPv4 bằng việc chèn một tiêu đề IPv4 vào. Sau đó nó gửi gói tin IPv4 mới này tới R2 trên mạng IPv4. Sau khi nhận được gói tin IPv4, router R2, hoạt động như điểm đầu ra của đường hầm, thực hiện việc gỡ gói và gửi gói tin IPv6 trên mạng IPv6 tới host đích B. Có thể thấy rằng tiêu đề và dữ liệu của gói tin IPv6 khơng hề bị thay đổi trong khi truyền.

Hình 5.7 – Q trình đóng gói và gửi đi trên đường hầm

Hình 5.8 trình bày q trình đóng gói một gói tin IPv6 trong một gói tin IPv4. Các trường trong tiêu đề IPv4 bao gồm: Trường Total Length trong tiêu đề IPv4 chứa độ dài của tiêu đề IPv4 cộng với chiều dài của gói tin IPv6 (ở đây gói tin IPv6 bây giờ được đối xử như phần dữ liệu). Nếu gói tin được đóng gói phải phân mảnh, sẽ có các giá trị tương ứng trong trường Flags và Fragment Offset. Giá trị trường Time to Live (TTL) tùy thuộc vào quá trình thực hiện. Số giao thức được đặt

bằng 41, giá trị được gán cho IPv6. Địa chỉ nguồn IPv4 thường là địa chỉ của giao diện ra của điểm đầu vào đường hầm. Địa chỉ đích IPv4 là địa chỉ IPv4 của điểm đầu ra đường hầm. Đường hầm IPv6-over-IPv4 được xem như một hop đơn. Trường Hop Limit trong tiêu đề IPv6 vì vậy bị giảm đi một.

Hình 5.8 – Q trình đóng gói

Khi điểm đầu ra đường hầm nhận được một gói tin IPv4 với giá trị giao thức bằng 41, nó biết rằng gói tin này đã được đóng gói. Trước khi forward gói tin IPv6 đã được gỡ bỏ, điểm đầu ra đường hầm phải kiểm tra xem địa chỉ nguồn của đường hầm là có thể chấp nhận được khơng. Nếu đường hầm được cấu hình là một đường hầm hai

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu triển khai mô hình mạng ứng dụng IP version 6 (Trang 93)

Tải bản đầy đủ (PDF)

(152 trang)