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.

CẤU TRÚC VÀ ĐẶC ĐIỂM CỦA IPv6

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

  • CẤU TRÚC VÀ ĐẶC ĐIỂM CỦA IPv6

    Sinh viên thực hiện: Lê Trung Trực

    CHƯƠNG 2. CẤU TRÚC VÀ ĐẶC ĐIỂM CỦA IPv6

    2.1 Hình thức biểu diễn

    IPv6 Address gồm 8 nhóm, mỗi nhóm 16 bits được biểu diễn dưới dạng số Thập lục phân (Hexa-Decimal)
    Ta có các quy tắc đơn giản để biểu diễn như sau:
    • Cho phép bỏ các số (0) nằm trước trong mỗi nhóm (octet)
    • Thay bằng một số (0) cho nhóm có toàn số không
    • Thay bằng dấu :: cho các nhóm liên tiếp có toàn số (0)
    • Dấu :: chỉ được xuất hiện 1 lần trong toàn bộ địa chỉ IPv6

    Ví dụ: Ta có địa chỉ 2001:0FAC:0000:0000:000C:100A:0000:89FB
    Dựa vào các quy tắc trên ta có thể viết lại như sau:
    2001:FAC:0:0:C:100A:0:89FB hoặc 2001:FAC::C:100A:0:89FB
    2.2 Phân loại IPv6

    2.2.1 Địa chỉ Unicast

    Một địa chỉ unicast xác định duy nhất 1 interface của 1 node IPv6. Một gói tin có đích đến là 1 địa chỉ unicast thì gói tin đó sẽ được chuyển đến 1 interface duy nhất có địa chỉ đó
    Các loại địa chỉ sau thuộc Unicast
    • Global unicast addresses
    • Link local addresses
    • Site local addresses
    • Unique local IPv6 unicast addresses
    • Special addresses

    2.2.1.1 Global unicast addresses (GUA)

    GUA là địa chỉ IPv6 toàn cầu (tương tự như địa chỉ public của IPv4). Phạm vi định vị của GUA là toàn hệ thống IPv6 trên thế giới

    Hình 2.1 Định dạng của GUA


    001: Ba bít đầu luôn có giá trị là 001(Prefix= 2000:: /3)
    Global Routing Prefix: gồm 45 bít. Là địa chỉ được cung cấp cho công ty, cơ quan, hay một tổ chức nào đó khi đăng kí địa chỉ IPv6 toàn cầu ( public IP)
    Subnet ID: Gồm 16 bít, là địa chỉ do các tổ chức tự cấp
    Interface ID: Gồm 64 bít, là địa chỉ của các interface trong subnet
    Có thể đơn giản hóa thành dạng như sau:

    Hinh 2.2 Định dạng GUA rút gọn


    2.2.1.2 Link local addresses (LLA)

    Bao gồm các địa chỉ dùng cho các host trong cùng 1 link và quy trình xác định các node (Neighbor Discovery Process), qua đó các node trong cùng link cũng có thể liên lạc với nhau (tương tự IPv4= 169.254.X.X). Phạm vi sử dụng của LLA là trong cùng 1 link( do vậy có thể trùng nhau ở link khác). Khi dùng HĐH Windows, LLA được cấp tự động như sau:

    Hình 2.3 Định dạng LLA


    64 bít đầu = FE80 là giá trị cố định(Prefix = FE80:: /64)
    Interface ID = gồm 64 bít kết hợp cùng với địa chỉ MAC
    2.2.1.3 Site local addresses (SLA)

    SLA tương tự các địa chỉ private trong IPv4 (10.x.x.x, 172.16.x.x, 192.168.x.x) được sử dụng trong hệ thống nội bộ. Phạm vi sử dụng SLA là trong cùng 1 site

    Hình 2.4 Định dạng SLA
    1111 1110 11: 10 bít đầu là giá trị cố định (Prefix= FEC0 /10)
    Subnet ID: gồm 54 bít dùng để xác định các subnet trong cùng site
    Interface ID: Gồm 64 bít là địa chỉ của các interface trong subnet
    (*) Chú thích
    Hai dạng địa chỉ Unicast ( LLA và SLA) vừa trình bày phía trên được gọi chung là các địa chỉ unicast trong nội bộ (Local Use Unicast Address). Với cấu trúc như thế thì các Local Use Unicast address có thể bị trùng lặp (trong các Link khác hoặc Site khác). Do vậy khi sử dụng các Local Use Unicast Address có 1 thông số định vị được thêm vào (Additional Identifier) gọi là Zone_ID với cú pháp:
    Address%Zone_ID
    Vd: ping fa54:cafe1:12ea::ff09%3
    Zone ID có thể được xác định bằng cách vào cửa sổ cmd và gõ các lệnh:
    • Đối với LLA: Zone ID là số thứ tự của interface (trong host) kết nối với Link. Có thể xem bằng lệnh: netsh interface ipv6 show interface
    • Đối với SLA: Zone ID là Site ID, được gán cho Site trong Organization. Đối với các Organization chỉ có 1 Site, Zone ID = Site ID = 1 và có thể xem bằng lệnh : netsh interface ipv6 show address level=verbose

    2.2.1.4 Unique- local addresses (ULA)

    Đối với các tổ chức có nhiều Site, Prefix của SLA có thể bị trùng lặp. Có thể thay thế SLA bằng ULA (RFC 4193), ULA là địa chỉ duy nhất của một Host trong hệ thống có nhiều Site với cấu trúc:

    Hình 2.5 Định dạng ULA


    1111 110: 7 bít đầu là giá trị cố định FC00 /7. L=0: Local. => Prefix= FC00 /8
    Global ID: Địa chỉ site. Có thể gán tùy ý
    Subnet ID: Địa chỉ subnet trong site
    Với cấu trúc này, ULA sẽ tương tự và khác với GUA ở phần Prefix như sau:


    Hình 2.6 So sánh ULA và GUA


    2.2.1.5 Các địa chỉ đặc biệt (Special addresses)

    Các địa chỉ đặc biệt trong IPv6 gồm:
    0:0:0:0:0:0:0:0 :Địa chỉ không xác định( Unspecified address)
    0:0:0:0:0:0:0:1 :Địa chỉ loopback (tương đương IPv4 127.0.0.1)
    IPv4-Compatible Address (IPv4CA) :
    Định dạng : 0:0:0:0:0:0:w.x.y.z Trong đó w,x,y,z là các địa chỉ IPv4
    Vd : 0:0:0:0:0:0:0:192.168.1.2
    IPv4CA là địa chỉ tương thích của một IPv4/IPv6 Node. Khi sử dụng IPv4CA như một IPv6 Destination, gói tin sẽ được đóng gói (Packet) với IPv4 Header để truyền trong môi trường IPv4.
    IPv4-mapped address (IPv4MA)

    Định dạng: 0:0:0:0:0:FFFF:w.x.y.z (::FFFF:w.x.y.z) Trong đó w,x,y,z là các địa chỉ IPv4
    Vd : 0:0:0:0:0:FFFF:192.168.1.2
    IPv4MA là địa chỉ của một IPv4 Only Node đối với một IPv6 Node, IPv4MA chỉ có tác dụng thông báo và không được dùng như Resource hoặc Destination Address.
    6to4 Address
    Là địa chỉ sử dụng trong liên lạc giữa các IPv4/IPv6 nodes trong hệ thống hạ tầng IPv4 (IPv4 Routing Infrastructure). 6to4 được tạo bởi Prefix gồm 64 bits như sau :
    Prefix = 2002/16 + 32 bits IPv4 Address =64 bits
    6to4 Address là địa chỉ của Tunnel (Tulneling Address) định nghĩa bởi RFC 3056.
    2.2.2 Địa chỉ Multicast

    Một địa chỉ multicast xác định nhiều interface của 1 node IPv6. Một gói tin có đích đến là multicast thì gói tin đó được chuyển đến tất cả các interface có cùng địa chỉ multicast.
    Một IPv6 Node có thể tiếp nhận tín hiệu của nhiều Multicast Address cùng lúc. IPv6 Node có thể tham gia hoặc rời khỏi một IPv6 Multicast Address bất kỳ lúc nào.
    Cấu trúc địa chỉ multicast như sau:



    8 bít đầu của địa chỉ là Prefix, để nhận dạng kiểu địa chỉ đa hướng
    4 bít tiếp theo là các bít cờ với giá trị( 0 0 0 T ), 3 bít đầu chưa dùng đến nên bằng 0, bít thứ tư có giá trị là T. nếu T=0 có nghĩa là địa chi này được NIC phân cố định. Nếu T=1 có nghĩa đây chỉ là địa chỉ cố định.
    Kế tiếp là 4 bít phạm vi, có giá trị Hexal từ 0 đến F nếu:
    • Scope=1: Dùng cho node local
    • Scope=2: Dùng cho link local
    • Scope=5: Dùng cho site local
    • Scope=8: Dùng cho organization local
    • Scope=E: Global scope : địa chỉ internet toàn cầu
    • Còn lại đều đang dự phòng

    Ví dụ về một số IPv6 Multicast Address được sử dụng :
    FF01::1 (địa chỉ multicast cho tất cả các node trong phạm vi các interface )
    FF02::1 (địa chỉ multicast cho tất cả các node trong phạm vi 1 Link)
    FF01::2 (địa chỉ multicast cho tất cả các router trong phạm vi các interface)
    FF02::2 (địa chỉ multicast cho tất cả các router trong phạm vi 1 Link)
    FF05::2 (địa chỉ multicast cho tất cả các router trong phạm vi 1 site)
    2.2.3 Địa chỉ Anycast

    Một địa chỉ anycast xác định nhiều interface của 1 node IPv6. Một gói tin có đích đến là anycast thì gói tin đó sẽ được chuyển đến 1 interface gần nhất có cùng địa chỉ anycast ( khái niệm gần được tính theo khoảng cách định tuyến). Hiện nay, địa chỉ anycast chỉ được dùng như địa chỉ đích cho các router.
    Trong giao thức IPv6, địa chỉ anycast không có cấu trúc đặc biệt. Các địa chỉ anycast trong 1 phần không gian của địa chỉ unicast. Do đó, về mặt cấu trúc địa chỉ anycast không thể phân biệt với địa chỉ unicast. Khi những địa chỉ unicast được gán nhiều hơn cho 1 interface thì nó trở thành địa chỉ anycast. Đối với những node được gán địa chỉ này phải được cấu hình với ý nghĩa của địa chỉ anycast.
    Sử dụng địa chỉ anycast có những hạn chế sau:
    • Một địa chỉ anycast không được sử dụng làm địa chỉ nguồn của một gói tin IPv6.
    • Một địa chỉ anycast không được phép gán cho một host IPv6, do vậy nó chỉ được gán cho một router IPv6.

    2.3 Interface ID

    Trong tất cả các loại địa chỉ nói trên đều có giá trị interface ID dùng để xác định interface. Giá trị interface ID được xem xét và tạo nên theo các yếu tố sau:
    • Xác định bởi Extended Unique Identifier (EUI)-64 address (*). EUI-64 address có thể do gán hoặc kết hợp với MAC address của thiết bị.
    • Được gán tạm thời với giá trị ngẫu nhiên (RFC 3041).
    • Được tạo thành bởi link-layer address hoặc serial number khi cấu hình Point-To-Point Protocol (PPP).
    • Tự cấp (manual address configuration).
    • Là một giá trị phát sinh ngẫu nhiên và gán thường trực cho interface.


    Extended Unique Identifier (EUI)-64 address (*)
    EUI-64 address xác định phương thức tạo 64 bít interface ID bằng cách kết hợp MAC address (48 bít) theo quy tắc sau:

    Hình 2.8 Phương thức tạo interface ID


    Mac Address = 6 nhóm 8 bits = 48 bits. Trong đó 24 bits là mã nhà sản xuất, 24 bits là mã số thiết bị.
    Bước 1 : Tách đôi MAC Address làm 2 nhóm (mổi nhóm 24 bits), chèn vào giữa 16 bits giá trị FFFE.
    Bước 2 : Đảo ngược giá trị bit thứ 7 của nhóm đầu.
    Ví dụ : Network Adapter có MAC address = 00-AA-00-3F-2A-1C.
    Bước 1 à 00-AA-00-FF:FE-3F-2A-1C.
    Bước 2 à 02-AA-00-FF-FE-3F-2A-1C à Interface ID= 2AA:00FF:FE3F:2A1C.
    Lâm Văn Tú
    Email :
    cntt08520610@gmail.com
    Viet Professionals Co. Ltd. (VnPro)
    149/1D Ung Văn Khiêm P25 Q.Bình thạnh TPHCM
    Tel: (08) 35124257 (5 lines)
    Fax (08) 35124314
    Tập tành bước đi....



  • #2
    2.4 Headder IPv6

    2.4.1 Header cơ bản của IPv6

    So với header của IPv4, header của IPv6 bỏ đi rất nhiều trường và thêm vào một số trường mới.
    Dưới đây là header của IPv4.

    Hình 2.9 Header IPv4
    Trong IPv6, một số trường của IPv4 header được bỏ đi vì các lý do sau:
    Header Length- IPv4 header chỉ dài 20 byte. Tuy nhiên IPv6 header đã được cố định chiều dài là 40 byte. Trường header length của IPv4 chỉ ra tổng chiều dài gói tin bao gồm cả trường Option. Khi trường Option xuất hiện trong header của IPv4 thì nó làm tăng chiều dài của Header lên. Để thay thế cho trường Option thì IPv6 sử dụng trường Extension. Trường Extension được xử lý khác cái cách mà IPv4 xử lý trường Option.
    Identification, Flags, Fragment Offset - Quá trình phân mảnh gói tin được xử lý khác ở IPv6. Nó không được thực hiện bởi các router trung gian trong mạng nữa mà bằng các node nơi bắt nguồn gói tin. IPv6 Header xóa bỏ trường Fragmentation làm tăng khả năng xử lý của CPU khi gói tin đi qua các router trung gian thay vào đó IPv6 dùng path MTU discovery để tránh việc phải phân mảnh các gói tin.
    Header Checksum – Công nghệ ở lớp 2(Link Layer) đã thực hiện việc tính toán và kiểm soát lỗi, hơn nữa độ tin cậy của lớp 2 là rất tốt và các giao thức ở lớp trên như UDP và TCP đều có kiểm tra lỗi, riêng kiểm tra lỗi của UDP trong IPv4 là tùy chọn nhưng trong IPv6 là bắt buộc, vì lý do đó mà trường header checksum là không cần thiết ở IPv6 và nó cũng làm giảm đi việc xử lý của các router khi mỗi gói tin đi qua.
    Options and Pading – Trường options được thay đổi hoàn toàn trong IPv6, nó được thay thế bằng Extension Headers. Trường Pading cũng được loại bỏ trong header của IPv6, việc loại bỏ các trường này làm cho header của IPv6 đơn giản hơn. Như vậy về cơ bản header của IPv6 có chiều dài cố định là 40 byte, nó cho phép các router xử lý ít hơn so với IPV4.
    Dưới đây là header IPv6

    Hình 2.10 Header IPv6
    IPv6 là bản nâng cấp của IPv4 , như trong hình trường Flow Label và Extension headers là những trường được thêm mới vào trong IPv6
    Các trường cơ bản của IPv6 Header:
    Version(4-bit) – Phiên bản của giao thức IP. Trường này chứa giá trị 6 khác với giá trị 4 của IPv4
    Traffic Class(8-bit) – Trường này có chức nay tương tự trường Type of Service(ToS) trong IPv4. Nó được đánh dấu gói tin IPv6 với mã Differentiated Services Code Point(DSCP), khi một gói tin được đánh dấu DSCP thì các router sẽ biết gói tin được xử lý ưu tiên như thế nào.
    Flow Label(20-bit) – Trường này có tác dụng đánh dấu luồng cho gói tin IPv6, nó giúp cho các router chuyển gói tin một cách liên tục từ nguồn tới đích . Flow Label được sử dụng trong IPv6 sẽ hỗ trợ tốt hơn khi thực thi QoS.
    Khái niệm một dòng (flow):
    Một dòng (flow) là một chuỗi các gói tin được gửi từ một nguồn tới một đích nhất định (có thể là unicast hay multicast). Nguồn sẽ yêu cầu các router có các xử lí đặc biệt đối với các gói tin thuộc một flow. Việc cần phải xử lí như thế nào đối với gói tin có thể được truyền tới router bằng một thủ tục điều khiển, hoặc cũng có thể là thông tin chứa trong chính gói tin của dòng, ví dụ như header mở rộng hop-by-hop của gói tin.
    Giữa một nguồn và một đích có thể có nhiều dòng. Việc kết hợp giữa địa chỉ nguồn và một số Flow label khác 0 sẽ xác định duy nhất một dòng. Những gói tin không thuộc dòng nào cả sẽ được thiết lập toàn bộ các bít Flow Label có giá trị 0.
    Mọi gói tin thuộc cùng một dòng phải được gửi với cùng địa chỉ nguồn, cùng địa chỉ đích, và cùng có một số Flow label khác 0. Router xử lý gói tin sẽ thiết lập trạng thái xử lý đối với một label cụ thể và có thể lựa chọn lưu trữ thông tin (cache), sử dụng giá trị địa chỉ nguồn và flow label làm khoá. Đối với những gói tin sau đó, có cùng địa chỉ nguồn và giá trị flow label, router có thể áp dụng cách thức xử lý dựa trên thông tin hỗ trợ từ vùng cache.
    Một nguồn IPv6 có thể sử dụng 20 bít flow label trong IPv6 header để xác định gói tin gửi đi trong một dòng nhất định, yêu cầu cách thức cư xử đặc biệt của router. Ví dụ nguồn yêu cầu chất lượng dịch vụ không mặc định hoặc dịch vụ thời gian thực.
    Tại thời điểm hiện nay, việc sử dụng trường này trong thực thi QoS vẫn nằm ở mức thử nghiệm, các tiêu chuẩn hoá trường này còn chưa hoàn thiện. Hiện nay chưa có một cấu trúc thông dụng cho việc sử dụng nó. IETF đang tiếp tục tiêu chuẩn hoá và đưa ra những yêu cầu rõ ràng hơn cho Internet về hỗ trợ trường Flow Label. Nhiều router, host chưa hỗ trợ việc sử dụng trường label. Đối với những router và host này, toàn bộ các bít của trường label sẽ được thiết lập giá trị 0 và các host, router này bỏ qua trường đó khi nhận được gói tin.
    Payload Length(16-bit) - Dùng để đo chiều dài của phần thông tin theo sau IPv6 Header
    Next Header(8-bit) – Trường này dùng để xác định loại thông tin đi sau header cơ bản của
    IPv6. Các loại thông tin có thể là một giao thức ở lớp trên như TCP hay UDP, hoặc nó cũng có thể là Extension header. Trường này giống với trường Protocol của IPv4

    Hình 2.11 Next header
    Hop Limit(8-bit) – Trường này xác định số hop lớn nhất hay số router trung gian mà gói tin có thể đi qua.
    Source Address(128-bit) – Xác định địa chỉ IPv6 nguồn của nơi gửi
    Destination Address(128-bit) – Xác định địa chỉ IPv6 đích của nơi nhận
    2.4.2 Header mở rộng của IPv6 (IPv6 extension headers)

    IPv6 Extension headers là một lựa chọn có thể theo sau header cơ bản của IPv6. Một gói tin IPv6 có thể không có, có một hoặc là nhiều extension headers. Như trong hình ..... khi có nhiều extension headers cùng được sử dụng trong gói tin IPv6, thì chúng được tạo thành một chuỗi các danh sách headers và được xác định bởi trường Next header của header trước nó.

    Hình 2.12 Extention header
    Khi gói đi từ nguồn đến đích, các Node trung gian không được phép xử lý các Extension Header đến khi đến trạm đích, hoặc những trạm đích (trong trường hợp Multicast) trừ một vài trường hợp ngoại lệ. Và việc xử lý các Header này cũng phải diễn ra theo đúng tuần tự mà các Header sắp xếp trong gói tin IPv6. Không bao giờ được phép xảy ra trường hợp trạm đích quét qua toàn bộ gói tin và chọn ra một Header nào đó để xử lý trước.
    Trường hợp ngoại lệ như vừa đề cập chính là trường hợp Hop-by-hop Extension Header. Sự hiện diện của Hop-by-hop Extension Header buộc gói tin phải bị kiểm tra bởi tất cả các Node trung gian trên đường từ nguồn đến đích, bao gồm cả trạm nguồn và đích. Vì vậy, Hop-by-hop Extension Header luôn phải đứng sau IPv6 Header. Sự hiện diện của Extension Header này được chỉ thị bởi giá trị 0 trong Next-Header của IPv6 Header.
    Hop – by – Hop: là extension header được đặt đầu tiên ngay sau header cơ bản. Header này được sử dụng để xác định những tham số nhất định tại mỗi bước (hop) trên đường truyền dẫn gói tin từ nguồn tới đích. Do vậy sẽ được xử lý tại mọi router trên đường truyền dẫn gói tin.
    Destination: được sử dụng để xác định các tham số truyền tải gói tại đích tiếp theo hoặc đích cuối cùng trên đường đi của gói tin. Nếu trong gói tin có extension header mở "Routing" thì extension header "Destination" mang thông tin tham số xử lý tại mỗi đích tới tiếp theo. Ngược lại, nếu trong gói tin không có extension header "Routing" thì thông tin trong extension header "Destination" là tham số xử lý tại đích cuối cùng.
    Routing: đảm nhiệm xác định đường dẫn định tuyến của gói tin. Nếu muốn gói tin được truyền đi theo một đường xác định (không lựa chọn đường đi của các thuật toán định tuyến), node IPv6 nguồn có thể sử dụng extension header “Routing” để xác định đường đi, bằng cách liệt kê địa chỉ của các router mà gói tin phải đi qua. Các địa chỉ thuộc danh sách này sẽ được lần lượt dùng làm địa chỉ đích của gói tin IPv6 theo thứ tự được liệt kê và gói tin sẽ được gửi từ router này đến router khác, theo danh sách liệt kê trong extension header “Routing”.
    Fragment: extension header “Fragment” mang thông tin hỗ trợ cho quá trình phân mảnh và tái tạo gói tin IPv6, được sử dụng khi nguồn IPv6 gửi đi gói tin lớn hơn giá trị MTU (Maximum Transmission Unit) nhỏ nhất trong toàn bộ đường dẫn từ nguồn tới đích. Trong hoạt động của địa chỉ IPv4, mọi router trên đường dẫn cần tiến hành phân mảnh gói tin theo giá trị của MTU đặt cho mỗi giao diện, điều này làm giảm hiệu suất của router. Bởi vậy trong địa chỉ IPv6, router không thực hiện phân mảnh gói tin. Việc này được thực hiện tại nguồn gửi gói tin. Node nguồn IPv6 sẽ thực hiện thuật toán tìm kiếm giá trị MTU nhỏ nhất trên toàn bộ một đường dẫn nhất định từ nguồn tới đích (gọi là giá trị PathMTU) và điều chỉnh kích thước gói tin tuỳ theo giá trị này trước khi gửi chúng. Nếu tại nguồn áp dụng phương thức này, nó sẽ gửi dữ liệu có kích thước tối ưu, và không cần thiết xử lý tại tầng IP. Tuy nhiên, nếu ứng dụng không sử dụng phương thức này, nó phải chia nhỏ gói tin có kích thước lớn hơn PathMTU. Trong trường hợp đó, những gói tin này cần được phân mảnh tại tầng IP của node nguồn và mào đầu mở rộng “Fragment” được sử dụng để mang những thông tin phục vụ cho quá trình phân mảnh và tái tạo gói tin IPv6 tại các đầu cuối đường kết nối.
    Authentication and Encapsulating Security Payload : trong hoạt động của địa chỉ IPv6, thực thi IPSec được coi là một đặc tính bắt buộc. Tùy từng trường hợp mà IPSec được sử dụng. Khi IPSec được sử dụng, gói tin IPv6 cần có các dạng extension header “Xác thực và Mã hoá". Extension header “Xác thực” dùng để xác thực và bảo mật tính đồng nhất của dữ liệu .Extension header “Mã hoá” dùng để xác định những thông tin liên quan đến mã hoá dữ liệu.
    Lâm Văn Tú
    Email :
    cntt08520610@gmail.com
    Viet Professionals Co. Ltd. (VnPro)
    149/1D Ung Văn Khiêm P25 Q.Bình thạnh TPHCM
    Tel: (08) 35124257 (5 lines)
    Fax (08) 35124314
    Tập tành bước đi....


    Comment

    Working...
    X