• If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below.
Xin chào ! Nếu đây là lần đầu tiên bạn đến với diễn đàn, xin vui lòng danh ra một phút bấm vào đây để đăng kí và tham gia thảo luận cùng VnPro.

Announcement

Collapse
No announcement yet.

Nguyên lý làm việc của cơ chế chuyển đổi Tunneling

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Nguyên lý làm việc của cơ chế chuyển đổi Tunneling

    5.3.2.a Đặc điểm chung

    Cơ sở hạ tầng mạng Internet hoạt động trên nền IPv4, hoạt động khá ổn định và
    quy mô hết sức rộng lớn. Tận dụng khả năng này, các nhà thiết kế IPv6 đã đưa ra giải pháp thực hiện cơ chế Tunneling như sau: Automatic Tunneling và Configured Tunneling.
    Sau đây là một số đặc điểm của các loại Tunneling và một số khái niệm liên
    quan đến các kỹ thuật Tunneling:

    - IPv4-only Node : Là một Host hay Router hoạt động trên nền IPv4, những
    Host hoặc Router này không hiểu IPv6, các Host này chiếm phần lớn các
    thiết bị trên mạng Internet hiện nay. Các Node này còn được gọi là Node
    thuần IPv4.
    - IPv6/IPv4 Node : Là các Node có khả năng thực hiện trên nền IPv4 hoặc
    IPv6. Đây chính là các Dual-stack Node.
    - IPv6-only Node: là những Node chỉ có khả năng hoạt động trên nền IPv6,
    không có khả năng hoạt động trên nền IPv4. Các Node này được gọi là
    Node thuần IPv6.
    - IPv6 Node: Bao gồm những Node sau: Node thuần IPv6, Dual-stack Node
    IPv6/IPv4.
    - IPv4 Node: Bao gồm những Node sau: Node thuần IPv4, Dual-stack Node
    IPv6/IPv4.
    - IPv4-compatible IPv6 address: Là một địa chỉ IPv6, được gán cho các Node
    đôi IPv6/IPv4 (định dạng địa chỉ này đã mô tả ở phần trên). Dạng địa chỉ
    này được sử dụng trong cơ chế Tunnel IPv6 trên nền IPv4 sẽ được mô tả
    dưới đây.
    - IPv6-only address: Là những địa chỉ IPv6 còn lại.
    - IPv6-over-IPv4 Tunneling: Kỹ thuật này thực hiện việc đóng gói các
    Datagram theo cấu trúc IPv6 vào phần dữ liệu của Datagram IPv4 để có thể mang gói tin IPv6 qua mạng IPv4. Ta gọi cơ chế này là Tunnel IPv6 trên nền IPv4.

    Có hai phương thức Tunnel như đã nói đến ở trên: Automatic Tunneling và
    Configured Tunneling được định nghĩa như sau:

    - Automatic Tunneling: Theo phương thức này, địa chỉ cuối cùng trong Tunnel
    là địa chỉ IPv4-compatible IPv4.
    - Configured Tunneling: Theo phương thức này, địa chỉ cuối cùng trong
    Tunnel được xác định nhờ thông tin cấu hình tại các nút thực hiện đóng, mở
    gói IPv6 thành gói IPV4 và ngược lại.
    Cơ chế Tunneling được mô tả như sau: Các Node IPv6/IPv4 sẽ thực hiện đóng
    gói các Datagram IPv6 vào thành phần dữ liệu trong Datagram IPv4 (phần tải của gói tin IPv4 truyền trên hạ tầng mạng là gói tin IPv6) và do đó, gói tin này có thể truyền qua trên nền IPv4.



    Hình 5.3.2.a Mô tả cơ chế Tunneling.

    Các kết nối có thể áp dụng cơ chế Tunneling là:
    - Router-to-Router: Các Router IPv6/IPv4 kết nối với nhau bởi cơ sở hạ tầng
    mạng IPv4, do đó, có thể thực hiện chuyển các Datagram theo định dạng
    IPv6 trên nền IPv4. Trong trường hợp này, Tunnel trãi rộng từ điểm bắt đầu
    tới điểm kết thúc của đoạn mạng IPv4.
    - Host-to Router: Một Dual-stack Host IPv6/IPv4 có thể thực hiện Tunnel
    IPv6 trên nền IPv4 để chuyển các gói tin tới các Router trung gian cũng
    được cấu hình là các Node đôi IPv6/IPv4. Trong trường hợp này, Tunnel trãi
    rộng trong phạm vi từ Host tới Router đó.
    - Host-to-Host: Hai Host IPv6/IPv4 có thể truyền các Datagram theo định
    dạng IPv6 trên nền IPv4. Trong trường hợp này, cơ chế Tunnel trãi rộng từ
    điểm đầu đến điểm cuối.
    - Router-to-Host: IPv6/IPv4 Router có thể dùng Tunnel kết nối với IPv6/IPv4
    Host thông qua hạ tầng mạng IPv4.
    Trong hai phương pháp đầu: Router-to-Router và Host-to Router, gói tin IPv6
    được Tunneled vào Router và điểm cuối của đường hầm này là một Router, Router
    này có nhiệm vụ mở gói “IPv4” vừa ra khỏi đường hầm để tách ra gói IPv6 ban đầu, sau đó chuyển gói IPv6 vừa tách tới đích, địa chỉ IPv6 trong gói tin được đưa qua Tunnel không liên quan (không hỗ trợ) đến địa chỉ điểm cuối của Tunnel. Do đó, các thông tin này phải được cấu hình cố định trên Router hay Node thực hiện đóng gói.
    Theo cơ chế xác định địa chỉ đầu cuối như vậy, điểm cuối của Tunnel phải được khai báo trước. Trường hợp này gọi là Configured Tunneling . Hai phương pháp còn lại, Host-to-Host và Router-to-Host gói IPv6/IPv4 được Tunneled từ Host hoặc Router đến đích là một Host. Trong trường hợp này địa chỉ đầu cuối của Tunnel và địa chỉ Host đích phải giống nhau. Nếu địa chỉ IPv6 dùng cho Node đầu cuối là IPv4-compatible IPv6, địa chỉ cuối của Tunnel có thể tự động tạo ra từ địa chỉ IPv6 đó. Vì vậy không cần khai báo các thông số cho Tunneling. Kỹ thuật này gọi là Automatic Tunneling.

    Hai kỹ thuật Automatic Tunneling và Configured Tunneling có điểm khác nhau
    cơ bản nhất chính là việc quyết định địa chỉ cuối của quá trình Tunneling, còn lại về cơ bản, hai cơ chế này giống nhau. Cụ thể như sau:

    - Điểm khởi tạo Tunnel (điểm đóng gói tin) tạo một Header IPv4 đóng gói và
    truyền gói tin vừa đóng gói.
    - Node kết thúc của quá trình Tunnel (điểm mở gói tin) nhận được gói tin
    đóng gói, tách bỏ phần Header IPv4, sửa đổi một số trường của Header IPv6
    và xử lý phần dữ liệu này như một gói tin IPv6.
    - Node đóng gói cần duy trì các thông tin về trạng thái của mỗi quá trình
    Tunneling. Ví dụ tham số MTU để xử lý các gói tin IPv6 bắt đầu thực hiện
    Tunneling. Vì số lượng các quá trình Tunneling có thể tăng lên một số lượng
    khá lớn, trong khi đó các thông tin này thường lặp lại và do đó, có thể sử
    dụng kỹ thuật cáche và được loại bỏ khi cần thiết.

    5.3.2.b Cơ chế đóng gói khi thực hiện Tunneling IPv6-over-IPv4.



    Hình 5.3.2.b: Cơ chế đóng gói khi thực hiện Tunneling

    Cấu trúc phần Header packet IPv4 khi thực hiện Tunneling đóng gói IPv6
    packet trong một Datagram IPv4 như sau:



    Bảng 5.3.2.b Cấu trúc vùng Header của IPv4 khi thực hiện Tunneling.
    Email : vnpro@vnpro.org
    ---------------------------------------------------------------------------------------------------------------
Trung Tâm Tin Học VnPro
149/1D Ung Văn Khiêm P25 Q.Bình thạnh TPHCM
Tel : (08) 35124257 (5 lines)
Fax: (08) 35124314

Home page: http://www.vnpro.vn
Support Forum: http://www.vnpro.org
- Chuyên đào tạo quản trị mạng và hạ tầng Internet
- Phát hành sách chuyên môn
- Tư vấn và tuyển dụng nhân sự IT
- Tư vấn thiết kế và hỗ trợ kỹ thuật hệ thống mạng

Network channel: http://www.dancisco.com
Blog: http://www.vnpro.org/blog

  • #2
    5.3.2.c Lựa chọn giá trị MTU và phân đoạn

    Giá trị giới hạn kích thước gói tin trong tầng Datalink của giao thức TCP/IP gọi
    là MTU (Maximum Transfer Unit). Đối với mỗi giao thức trên tầng Datalink khác
    nhau có một giá trị MTU khác nhau (Ví dụ MTU của Ethernet là 1518 octet). Do có nhiều phương thức khác nhau đối với luồng traffic trong mạng Internet nên sẽ xảy ra hiện tượng các giá trị MTU tại các điểm gateway nhỏ hơn giá trị MTU của các mạng bên trong. Do đó, sẽ xảy ra hiện tượng phân đoạn tại các điểm gateway này. Sau đó quá trình tái hợp sẽ được thực hiện tại các điểm đích.



    Hình 5.3.2.c Phân đoạn và tái hợp gói tin.

    Node đóng gói lúc mới khởi tạo có thể xem IPv4 như là lớp liên kết có MTU rất
    lớn ( 65535 – 20 byte; 20 byte: kích thước của IPv4 Header) Node thực hiện việc đóng gói chỉ cần thông báo các bản tin ICMPv6 “packet too big” trở về nguồn nếu gói tin nguồn vi phạm MTU này. Tuy nhiên, điều này có thể gây ra vấn đề không hiệu quả sau:

    - Có thể dẫn đến phân đoạn nhiều hơn. Việc phân đoạn lớp IPv4 nên tránh vì
    vấn đề hiệu năng sử dụng. Bất cứ sự phân đoạn IPv4 nào bên trong Tunnel phải
    được tái hợp tại các điểm cuối Tunnel.
    - Việc phân đoạn bên trong Tunnel có thể được hạn chế bằng cách Node đóng
    gói theo dõi Path MTU IPv4 qua Tunnel, sử dụng giao thức Path MTU
    Discovery và ghi nhận giá trị Path MTU cuối cùng. Lớp IPv6 trong Node đóng
    gói có thể xem Tunnel như lớp liên kết với MTU bằng với Path MTU của mạng
    IPv4, trừ đi kích thước của IPv4 Header đóng gói. Tuy nhiên, điều này cũng
    không loại trừ hoàn toàn vấn đề phân đoạn nếu Path MTU của mạng IPv4 nhỏ
    hơn MTU IPv6 tối thiểu (1280). Trong trường hợp này lớp IPv6 xem IPv4 như
    lớp liên kết có MTU là 1280 byte. Vì vậy Node đóng gói buộc phải phân đoạn
    IPv4 để truyền gói tin 1280 IPv6.

    Sau đây là thuật toán được sử dụng:
    Nếu ((IPv4 Path MTU) - 20) nhỏ hơn hay bằng 1280
    {
    Nếu gói tin lớn hơn 1280 byte
    {
    Gởi bản tin ICMPv6 “packet too big” với MTU = 1280 về nguồn;
    Hủy gói;
    }
    Ngược lại:
    {
    Đóng gói nhưng DF = 0 trong IPv4 Header.
    Gói tin IPv4 kết quả có thể bị phân đoạn bơi lớp IPv4 trên Node đóng gói
    hay bởi các router trung gian trong đường hầm IPv4.
    }
    Kết thúc
    }
    Ngược lại
    {
    Nếu gói tin lớn hơn (IPv4 Path MTU - 20)
    {
    Gửi ICMPv6 “packet too big” với MTU = ((Path MTU IPv4)- 20);
    Hủy gói;
    }
    Ngược lại
    {
    Đóng gói với DF = 1 trong tiêu đề IPv4;
    }
    Kết thúc
    }
    Kết thúc

    Đối với IPv4 giá trị MTU tối thiểu chỉ là 576 byte, giá trị này có thể nhỏ hơn
    giá trị của một gói tin IPv6. Như vậy các Node entry-point khi thực hiện đóng các gói tin IPv6 sẽ kiểm tra gói tin IPv6 mà nó đóng gói xem có vượt qua giá trị MTU cho phép hay không. Nếu vượt qua thì phải phân đoạn gói tin IPv6. Việc phân đoạn này dẫn đến các hiện tượng sau:

    - Ở phía nhận sẽ nhận được rất nhiều đoạn nhỏ được tách ra từ gói tin lớn,
    phải mất nhiều thời gian và bộ nhớ để tái hợp các đoạn trước khi mở gói.
    - Trong trường hợp một gói tin phân đoạn bị mất, các đoạn còn lại sẽ chiếm
    giữ không gian bộ đệm cho đến khi vượt quá thời gian TTL mới bị hủy.
    Toàn bộ gói tin IPv6 trong trường hợp này bị mất và phải truyền lại (trong
    trường hợp dùng TCP ở lớp Transport). Tóm lại, việc tách gói làm giảm
    phẩm chất khi thực hiện Tunneling giữa các máy chủ.
    - Như vậy việc thực hiện phân đoạn các gói tin là không hiệu quả. Để xác
    định giá trị MTU hợp lý, người ta đã xây dựng giao thức MTU Discovery
    Protocol. Giao thức này được mô tả trong khuyến nghị RFC 1191.
    Để giảm được việc phải phân nhỏ gói tới mức nhỏ nhất, Router ở hai đầu
    Tunnel thực hiện tìm kiếm giá trị MTU được coi là hợp lý nhất. Chúng sẽ bắt đầu từ MTU của Tunnel đến MTU của giao diện cục bộ của chúng. Nếu như các bản tin ICMP được trả về chỉ thị rằng gói tin quá lớn, chúng sẽ chuyển đến một MTU thấp hơn. Trong một vài trường hợp, chúng có thể gửi bản tin thử để khám phá ra khả năng tăng của MTU. Khi MTU của Tunnel vẫn còn lớn hơn kích thước gói nhỏ nhất mà IPv6 hỗ trợ.

    5.3.2.d Giới hạn các Node trên đường đi (Hop Limit)

    Đường hầm IPv6-over-IPv4 được xác định như là một chặng đường đơn (singlehop). Do đó, Hop Limit của IPv6 sẽ giảm đi 1 khi gói tin IPv6 di chuyển qua đường hầm. Mô hình single-hop ẩn đi sự tồn tại của đường hầm đối với người dùng và không bị phát hiện bởi các công cụ chẩn đoán mạng, ví dụ như traceroute. Nói cách khác, đường hầm là trong suốt (transparent) đối với Network Layer.
    Mô hình single-hop được thực hiện bằng cách các Node đóng gói và mở gói xử
    lý trường “Hop Limit” của IPv6 như chúng đã từng làm bình thường.

    5.3.2.e Nắm bắt lỗi có nguồn gốc từ IPv4 ICMP

    Node thực hiện viêc đóng gói các bản tin IPv4 (các Node đầu Tunnel hay còn
    gọi là Encapsulation Node) có thể nhận các bản tin IPv4 ICMP báo lỗi từ các router trung gian trong hạ tầng IPv4, các router mà Tunnel đi qua. Các Node này nhận được IPv4 ICMP vì nó được xem như nguồn của các gói tin IPv4.
    IPv4 Path MTU Discovery xử lý các bản tin ICMP “Packet Too Big” và ghi
    nhận kết quả về Path MTU ở IP layer. Ngoài ra còn xử lý những lỗi khác. Cách mà
    Encapsulation Node xử lý các bản tin tùy thuộc vào lượng thông tin trong “Packet
    Error” field của các bản tin. Nhiều router IPv4 cũ chỉ trả về 8 byte dữ liệu theo sau
    IPv4 Header của gói tin bị lỗi. Thông tin này không đủ để chứa trường địa chỉ trong IPv6 Header. Nhiều router IPv4 hiện đại hơn trả về nhiều dữ liệu lỗi hơn, bao gồm toàn bộ IPv6 Header, thậm chí cả dữ liệu của gói tin IPv6.
    Nếu gói tin lỗi chứa đủ dữ liệu, Node đóng gói có thể lấy lại gói tin IPv6 đã
    đóng gói và sử dụng nó để phát sinh một bản tin ICMPv6 trở về Node IPv6 ban đầu.



    Hình 5.3.2.e Bản tin ICMPv4 báo lỗi gửi về Encapsulation Node.

    5.3.2.f Cơ chế mở gói khi thực hiện Tunneling IPv6-over-IPv4

    Khi một Host hay Router cuối đường hầm nhận được một Datagram IPv4 có
    kiểu giao thức là 41, nó sẽ tách bỏ phần Header IPv4 trong gói tin và giữ lại phần data (chính là một gói IPv6 hoàn chỉnh).



    Hình 5.3.2.f Cơ chế mở gói khi kết thúc Tunneling.

    Chú ý khi mở gói IPv6 (IPv6 được đóng trong gói IPv4), phần Header của IPv6
    không bị biến đổi. Nếu đó là gói tin đích đến cuối cùng, giá trị trong trường hop-limits sẽ giảm xuống 1 đơn vị. Phần Header IPv4 đóng gói bị loại bỏ. Các Node thực hiện việc mở gói sẽ thực hiện việc tái hợp giữa các Datagram IPv4 đóng gói bị loại bỏ trước khi thực hiện mở gói IPv6. Do đó, tất cả các giá trị option IPv6 vẫn giữ nguyên như trước khi đóng gói. Sau khi thực hiện việc mở gói, mọi quá trình xử lý tiếp theo giống với những tiến trình thực hiện khi xử lý một gói IPv6 thông thường. Kỹ thuật Tunneling được phân loại dựa trên phương thức nào được sử dụng để quyết định địa chỉ của Node cuối cùng được cấu hình Tunnel. Trong hai phương thức Tunnel đã mô tả ở trên là Router-to-Router và Host-to-Router, gói tin IPv6 được đưa vào Tunnel và đến địa chỉ cuối cùng tại Router. Do đó, điểm cuối cùng của các Tunnel này là các Router trung gian. Các Router này có nhiệm vụ mở gói tin truyền qua Tunnel và chuyển nó tới đích cuối cùng.

    Theo 2 phương thức sau: Host-to-Host và Router-to-Host, gói tin IPv6 được
    Tunnel trên tất cả hành trình của chúng cho tới khi đến đích. Theo cơ chế này, Node cuối cùng được xác định Tunnel có thể được quyết định từ địa chỉ đích của gói tin IPv6.

    5.3.2.g IPv6 Manual Configured Tunnel

    Manualy Tunneling thường được dùng để thiết lập các kết nối thường trực giiữa
    các Site IPv6 thông qua IPv4 Backbone. Các kết nối loại này thông dụng khi có yêu cầu thiết lập các kết nối an toàn (Secure connection) giữa các Router biên, hoặc giữa End System với Router biên, qua đó các Site IPv6 truyền thông với nhau. Các kết nối này được xem như Point-to-point. Địa chỉ IPv6 được gán cố định cho các Tunnel interface, địa chỉ IPv4 được gán cho hai đầu Tunnel. Trong mô hình ứng dụng loại Tunnel này: hạ tầng mạng IPv4 có thể sử dụng các Router IPv4 thuần, các biên mạng bắt buộc phải dùng Dual-stack Router.

    Địa chỉ IPv4 và địa chỉ IPv6 gán cho Tunnel là độc lập với nhau. Do đó, về
    nguyên tắc, có thể sử dụng bất cứ địa chỉ IPv4 và địa chỉ IPv6 nào hợp lệ.

    5.3.2.h IPv6 Automatic Configured Tunnel

    Cũng như Manual Tunneling, Automatic Tunneling cũng được dùng thiết lập
    kết nối giữa các Site IPv6. Tuy nhiên, điểm khác biệt của loại này là: Các kết nối tạo bởi Automatic Tunneling không phải là Point-to-point mà là Point-to-multipoint. Đối với loại hình Tunneling này, các Router biên không cần phải cấu hình từng đôi một. Automatic Tunneling xem hạ tầng mạng IPv4 như một môi trường ảo gồm các kết nối Non-Broadcast-Multi-Access (NBMA).

    Khi các Site IPv6 có nhu cầu truyền thông với nhau thông qua Automatic
    Tunneling, các gói IPv6 được đóng gói trong các gói IPv4 có thể dùng địa chỉ IPv4- embeded-IPv6, hoặc địa chỉ IPv4-compatible để xác định đầu ra của Tunnel, dạng địa chỉ này đã được trình bày ở phần trên. Khi dùng địa chỉ IPv4-embeded-IPv6 hoặc địa chỉ IPv4-compatible, vị trí đầu kia của Tunnel được xác định dựa vào địa chỉ IPv4 tách ra được từ các loại địa chỉ IPv4-embeded-IPv6 (hoặc IPv4-compatible) mang trong IPv6 Header.



    Hình 5.3.2.h Automatic Tunneling dùng địa chỉ IPv4-compatible IPv6.

    Trong ví dụ trên: khi gói tin IPv6 xuất phát từ Site A đến Site B, địa chỉ đích của gói tin IPv6 là “::172.168.0.1”. Khi gói tin đến router biên (một Dual-stack Router), router biên sẽ thiết lập một Tunnel, ký hiệu là Tunnel A-B có nguồn là
    “203.162.0.1”, đích là “172.168.0.1”. Gói tin IPv6 sẽ được đóng vào gói tin IPv4 có địa chỉ nguồn và đích trong IPv4 Header lần lượt là: “203.162.0.1” và “172.168.0.1”.

    Hạ tầng mạng IPv4 sẽ chuyển các gói tin IPv4 này từ Router biên của Site A đến
    Router biên của Site B. Tại đây, các gói tin IPv6 được phục hồi lại như cũ. Gói tin
    IPv6 được phục hồi có địa chỉ đích là “::172.168.0.1” sẽ được hạ tầng mạng IPv6 tại Site B đưa đến đích.

    Quá trình phân tích các địa chỉ cũng như thiết lập các Tunnel được thực hiện
    một cách tự động. Các Tunnel này chỉ tồn tại trong thời gian có sự truyền thông giữa các Site IPv6.
    Email : vnpro@vnpro.org
    ---------------------------------------------------------------------------------------------------------------
    Trung Tâm Tin Học VnPro
    149/1D Ung Văn Khiêm P25 Q.Bình thạnh TPHCM
    Tel : (08) 35124257 (5 lines)
    Fax: (08) 35124314

    Home page: http://www.vnpro.vn
    Support Forum: http://www.vnpro.org
    - Chuyên đào tạo quản trị mạng và hạ tầng Internet
    - Phát hành sách chuyên môn
    - Tư vấn và tuyển dụng nhân sự IT
    - Tư vấn thiết kế và hỗ trợ kỹ thuật hệ thống mạng

    Network channel: http://www.dancisco.com
    Blog: http://www.vnpro.org/blog

    Comment


    • #3
      Mình đang làm đề tài về Ipv6, thực sự bài viết của Admin rất bổ ích, tuy nhiên phần hình ảnh đem kèm ko thể xem đc. Vậy bạn nào có thể cho biết source của bài này là trong quyền sách nào đc ko ạ? Mình đang cần đọc thêm.
      Thân
      Last edited by xitrumdl; 19-09-2008, 10:30 AM.

      Comment


      • #4
        sao mãi ko thấy admin trả lời vậy mình cũng rất cần hình ảnh minh họa của bài viết này

        Comment


        • #5
          Originally posted by khongtamhut View Post
          sao mãi ko thấy admin trả lời vậy mình cũng rất cần hình ảnh minh họa của bài viết này
          nếu có admin post lên ngay nhé ae đang rất cần

          Comment


          • #6
            Bác phải bình tĩnh, từ từ sẽ trả lời. Bác lấy đề tài ra hỏi và bắt admin trả lời là không giỏi rồi, nên xem lại việc học của mình đi bác ơi.

            Comment


            • #7
              sao bài này chẳng có cái hình nào thế anh ơi????
              Bài rất hay nhưng không mấy chỗ có hình thì chẳng thấy gì cả.
              Mong Admin post cho anh em mấy hình đó để bọn em xem hoàn thiện bài viết này.
              thanks!!!

              Comment


              • #8
                Bài này post rất lâu rồi, hình ảnh post lên host hình ảnh đã die link, mình sẽ cố gắng kiếm lại thử xem
                Cuộc sống có bao lâu mà hững hờ

                Comment

                • Working...
                  X