Tổng quan về IPv6
1. Đặc điểm IPv6:
a) Tăng kích thước của tầm địa chỉ:
· IPv6 sử dụng 128 bit địa chỉ trong khi IPv4 chỉ sử dụng 32 bit; nghĩa là IPv6 có tới 2128 địa chỉ khác nhau; 3 bit đầu luôn là 001 được giành cho các địa chỉ khả định tuyến toàn cầu (Globally Routable Unicast –GRU). Nghĩa là còn lại 2125 địa chỉ, nghĩa là có khoảng 4,25.1037 địa chỉ, trong khi IPv4 chỉ có tối đa 3,7.109 địa chỉ, nghĩa là IPv6 sẽ chứa 1028 tầm địa chỉ IPv4.
b) Tăng sự phân cấp địa chỉ:
· IPv6 chia địa chỉ thành một tập hợp các tầm xác định hay boundary: 3 bit đầu cho phép biết được địa chỉ có thuộc địa chỉ khả định tuyến toàn cầu (GRU) hay không, giúp các thiết bị định tuyến có thể xử lý nhanh hơn. Top Level Aggregator (TLA) ID được sử dụng vì 2 mục đích: thứ nhất, nó được sử dụng để chỉ định một khối địa chỉ lớn mà từ đó các khối địa chỉ nhỏ hơn được tạo ra để cung cấp sự kết nối cho những địa chỉ nào muốn truy cập vào Internet; thứ hai, nó được sử dụng để phân biệt một đường (Route) đến từ đâu. Nếu các khối địa chỉ lớn được cấp phát cho các nhà cung cấp dịch vụ và sau đó được cấp phát cho khách hàng thì sẽ dễ dàng nhận ra các mạng chuyển tiếp mà đường đó đã đi qua cũng như mạng mà từ đó Route xuất phát. Với IPv6, việc tìm ra nguồn của 1 Route sẽ rất dễ dàng. Next Level Aggregator (NLA) là một khối địa chỉ được gán bên cạnh khối TLA, những địa chỉ này được tóm tắt lại thành những khối TLA lớn hơn, khi chúng được trao đổi giữa các nhà cung cấp dịch vụ trong lõi Internet, ích lợi của loại cấu trúc địa chỉ này là: Thứ nhất, sự ổn định về định tuyến, nếu chúng ta có 1 NLA và muốn cung cấp dịch vụ cho các khách hàng, ta sẽ cố cung cấp dịch vụ đầy đủ nhất, tốt nhất. Thứ hai, chúng ta cũng muốn cho phép các khách hàng nhận được đầy đủ bảng định tuyến nếu họ muốn, để tạo việc định tuyến theo chính sách, cân bằng tải... Để thực hiện việc này chúng ta phải mang tất cả các thông tin về đường đi trong Backbone để có thể chuyển cho họ.
c) Đơn giản hóa việc đặt địa chỉ Host:
· IPv6 sử dụng 64 bit sau cho địa chỉ Host, trong 64 bit đó có cả 48 bit là địa chỉ MAC của máy, do đó, phải đệm vào đó một số bit đã được định nghĩa trước mà các thiết bị định tuyến sẽ biết được những bit này trên subnet. Ngày nay, ta sử dụng chuỗi 0xFF và 0xFE (:FF:FE: trong IPv6) để đệm vào địa chỉ MAC. Bằng cách này, mọi Host sẽ có một Host ID duy nhất trong mạng. Sau này nếu đã sử dụng hết 48 bit MAC thì có thể sẽ sử dụng luôn 64 bit mà không cần đệm.
d) Địa chỉ Anycast:
· IPv6 định nghĩa một loại địa chỉ mới: địa chỉ Anycast. Một địa chỉ Anycast là một địa chỉ IPv6 được gán cho một nhóm các máy có chung chức năng, mục đích. Khi packet được gửi cho một địa chỉ Anycast, việc định tuyến sẽ xác định thành viên nào của nhóm sẽ nhận được packet qua việc xác định máy gần nguồn nhất.Việc sử dụng Anycast có 2 ích lợi: Một là, nếu chúng ta đang đến một máy gần nhất trong một nhóm, chúng ta sẽ tiết kiệm được thời gian bằng cách giao tiếp với máy gần nhất. Thứ hai là việc giao tiếp với máy gần nhất giúp tiết kiệm được băng thông. Địa chỉ Anycast không có các tầm địa chỉ được định nghĩa riêng như Multicast, mà nó giống như một địa chỉ Unicast, chỉ có khác là có thể có nhiều máy khác cũng được đánh số với cùng scope trong cùng một khu vực xác định. Anycast được sử dụng trong các ứng dụng như DNS...
e) Việc tự cấu hình địa chỉ đơn giản hơn:
· Một địa chỉ Multicast có thể được gán cho nhiều máy, địa chỉ Anycast là các gói Anycast sẽ gửi cho đích gần nhất (một trong những máy có cùng địa chỉ) trong khi Multicast packet được gửi cho tất cả máy có chung địa chỉ (trong một nhóm Multicast). Kết hợp Host ID với Multicast ta có thể sử dụng việc tự cấu hình như sau: khi một máy được bật lên, nó sẽ thấy rằng nó đang được kết nối và nó sẽ gửi một gói Multicast vào LAN; gói tin này sẽ có địa chỉ là một địa chỉ Multicast có tầm cục bộ (Solicited Node Multicast address). Khi một Router thấy gói tin này, nó sẽ trả lời một địa chỉ mạng mà máy nguồn có thể tự đặt địa chỉ, khi máy nguồn nhận được gói tin trả lời này, nó sẽ đọc địa chỉ mạng mà Router gửi; sau đó, nó sẽ tự gán cho nó một địa chỉ IPv6 bằng cách thêm Host ID (được lấy từ địa chỉ MAC của interface kết nối với subnet đó) với địa chỉ mạng, Do đó, tiết kiệm được công sức gán địa chỉ IP.
f) Header hợp lý:
· Header của IPv6 đơn giản và hợp lý hơn IPv4. IPv6 chỉ có 6 trường và 2 địa chỉ, trong khi IPv4 chứa 10 trường và 2 địa chỉ. IPv6 cung cấp các đơn giản hóa sau:
- Định dạng được đơn giản hóa: IPv6 Header có kích thước cố định 40 octet với ít trường hơn IPv4 nên giảm được thời gian xử lý Header, tăng độ linh hoạt.
- Không có Header checksum: Trường checksum của IPv4 được bỏ đi vì các liên kết ngày nay nhanh hơn và có độ tin cậy cao hơn vì vậy chỉ cần các Host tính checksum còn Router thì khỏi cần.
- Không có sự phân đoạn theo từng hop: Trong IPv4, khi các packet quá lớn thì Router có thể phân đoạn nó. Tuy nhiên, việc này sẽ làm tăng them Overhead cho packet. Trong IPv6 chỉ có Host nguồn mới có thể phân đoạn một packet theo các giá trị thích hợp dựa vào một MTU path mà nó tìm được. Do đó, để hỗ trợ Host thì IPv6 chứa một hàm giúp tìm ra MTU từ nguồn đến đích.
g) Bảo mật:
· IPv6 tích hợp tính bảo mật vào trong kiến trúc của mình bằng cách giới thiệu 2
Header mở rộng tùy chọn: Authentication Header (AH) và Encrypted Security Payload (ESP) Header. Hai Header này có thể được sử dụng chung hay riêng để hỗ trợ nhiều chức năng bảo mật.
· Quan trọng nhất trong Header này là trường Integriry Check Value (ICU). ICU được tính bởi nguồn và được tính lại bởi đích để xác minh. Quá trình này cung cấp việc xác minh tính toàn vẹn và xác minh nguồn gốc của dữ liệu. AH cũng chứa cả một số thứ tự để nhận ra một tấn công bằng các packet replay giúp ngăn các gói tin được nhân bản.
· ESP Header: ESP Header chứa một trường : Security Parameter Index (SPI) giúp đích của gói tin biết payload được mã hóa như thế nào. ESP Header có thể được sử dụng khi tunneling, trong tunnelling thì cả Header và payload gốc sẽ được mã hóa và bỏ vào một ESP Header bọc ngoài, khi đến gần đích thì các gateway bảo mật sẽ bỏ Header bọc ngoài ra và giải mã để tìm ra Header và payload gốc.
h) Tính di động:
· IPv6 hỗ trợ tốt các máy di động như laptop. IPv6 giới thiệu 4 khái niệm giúp hỗ trợ tính toán di động gồm: Home address; Care-of address; Binding; Home agent.
· Trong IPv6 thì các máy di động được xác định bởi một địa chỉ Home address mà không cần biết hiện tại nó được gắn vào đâu. Khi một máy di động thay đổi từ một subnet này sang subnet khác; nó phải có một Care-of address qua một quá trình tự cấu hình. Sự kết hợp giữa Home address và Care-of address được gọi là một Binding. Khi một máy di động nhận được một Care-of address, nó sẽ báo cho Home agent của nó bằng gói tin được gọi là Binding update để Home agent có thể cập nhật lại Binding cáche của Home agent về Care-of address của máy di động vừa gửi. Home agent sẽ duy trì một ánh xạ giữa các Home address và Care-of address và bỏ nó vào Binding cáche. Một máy di động có thể được truy cập bằng cách gửi một packet đến các Home address của nó. Nếu máy di động không được kết nối trên subnet của Home agent thì Home agent sẽ gửi packet đó cho máy di động qua Care-of address của máy đó trong Binding cáche của Home agent (Lúc này, Home agent được xem như máy trung gian để máy nguồn có thể đến được máy di động). Máy di động sau đó sẽ gửi một gói tin Binding update cho máy nguồn của gói tin. Máy nguồn sau đó sẽ cập nhật Binding cáche của nó, thì sau này máy nguồn muốn gửi đến máy di động, chỉ cần gửi trực tiếp đến cho máy di động qua Care-of address chứa trong Binding cáche của nó mà không cần phải gửi qua Home address. Do đó, chỉ có gói tin đầu tiên là qua Home agent.
i) Hiệu suất:
IPv6 cung cấp các lợi ích sau:
· Giảm được thời gian xử lý Header, giảm Overhead vì chuyển dịch địa chỉ: vì trong IPv4 có sử dụng private address để tránh hết địa chỉ, Do đó, xuất hiện kỹ thuật NAT để dịch địa chỉ, nên tăng Overhead cho gói tin. Trong IPv6 do không thiếu địa chỉ nên không cần private address, nên không cần dịch địa chỉ.
· Giảm được thời gian xử lý định tuyến: nhiều khối địa chỉ IPv4 được phân phát cho các user nhưng lại không tóm tắt được, nên phải cần các entry trong bảng định tuyến làm tăng kích thước của bảng định tuyến và thêm Overhead cho quá trình định tuyến. Ngược lại, các địa chỉ IPv6 được phân phát qua các ISP theo một kiểu phân cấp địa chỉ giúp giảm được Overhead.
· Tăng độ ổn định cho các đường: trong IPv4, hiện tượng route flapping thường xảy ra, trong IPv6, một ISP có thể tóm tắt các route của nhiều mạng thành một mạng đơn, chỉ quản lý mạng đơn đó và cho phép hiện tượng flapping chỉ ảnh hưởng đến nội bộ của mạng bị flapping.
· Giảm Broadcast: trong IPv4 sử dụng nhiều Broadcast như ARP, trong khi IPv6 sử dụng Neighbor Discovery Protocol để thực hiện chức năng tương tự trong quá trình tự cấu hình mà không cần sử dụng Broadcast.
· Multicast có giới hạn: trong IPv6, một địa chỉ Multicast có chứa một trường scope có thể hạn chế các gói tin Multicast trong các Node, trong các link, hay trong một tổ chức.
· Không có checksum.
1. Đặc điểm IPv6:
a) Tăng kích thước của tầm địa chỉ:
· IPv6 sử dụng 128 bit địa chỉ trong khi IPv4 chỉ sử dụng 32 bit; nghĩa là IPv6 có tới 2128 địa chỉ khác nhau; 3 bit đầu luôn là 001 được giành cho các địa chỉ khả định tuyến toàn cầu (Globally Routable Unicast –GRU). Nghĩa là còn lại 2125 địa chỉ, nghĩa là có khoảng 4,25.1037 địa chỉ, trong khi IPv4 chỉ có tối đa 3,7.109 địa chỉ, nghĩa là IPv6 sẽ chứa 1028 tầm địa chỉ IPv4.
b) Tăng sự phân cấp địa chỉ:
· IPv6 chia địa chỉ thành một tập hợp các tầm xác định hay boundary: 3 bit đầu cho phép biết được địa chỉ có thuộc địa chỉ khả định tuyến toàn cầu (GRU) hay không, giúp các thiết bị định tuyến có thể xử lý nhanh hơn. Top Level Aggregator (TLA) ID được sử dụng vì 2 mục đích: thứ nhất, nó được sử dụng để chỉ định một khối địa chỉ lớn mà từ đó các khối địa chỉ nhỏ hơn được tạo ra để cung cấp sự kết nối cho những địa chỉ nào muốn truy cập vào Internet; thứ hai, nó được sử dụng để phân biệt một đường (Route) đến từ đâu. Nếu các khối địa chỉ lớn được cấp phát cho các nhà cung cấp dịch vụ và sau đó được cấp phát cho khách hàng thì sẽ dễ dàng nhận ra các mạng chuyển tiếp mà đường đó đã đi qua cũng như mạng mà từ đó Route xuất phát. Với IPv6, việc tìm ra nguồn của 1 Route sẽ rất dễ dàng. Next Level Aggregator (NLA) là một khối địa chỉ được gán bên cạnh khối TLA, những địa chỉ này được tóm tắt lại thành những khối TLA lớn hơn, khi chúng được trao đổi giữa các nhà cung cấp dịch vụ trong lõi Internet, ích lợi của loại cấu trúc địa chỉ này là: Thứ nhất, sự ổn định về định tuyến, nếu chúng ta có 1 NLA và muốn cung cấp dịch vụ cho các khách hàng, ta sẽ cố cung cấp dịch vụ đầy đủ nhất, tốt nhất. Thứ hai, chúng ta cũng muốn cho phép các khách hàng nhận được đầy đủ bảng định tuyến nếu họ muốn, để tạo việc định tuyến theo chính sách, cân bằng tải... Để thực hiện việc này chúng ta phải mang tất cả các thông tin về đường đi trong Backbone để có thể chuyển cho họ.
c) Đơn giản hóa việc đặt địa chỉ Host:
· IPv6 sử dụng 64 bit sau cho địa chỉ Host, trong 64 bit đó có cả 48 bit là địa chỉ MAC của máy, do đó, phải đệm vào đó một số bit đã được định nghĩa trước mà các thiết bị định tuyến sẽ biết được những bit này trên subnet. Ngày nay, ta sử dụng chuỗi 0xFF và 0xFE (:FF:FE: trong IPv6) để đệm vào địa chỉ MAC. Bằng cách này, mọi Host sẽ có một Host ID duy nhất trong mạng. Sau này nếu đã sử dụng hết 48 bit MAC thì có thể sẽ sử dụng luôn 64 bit mà không cần đệm.
d) Địa chỉ Anycast:
· IPv6 định nghĩa một loại địa chỉ mới: địa chỉ Anycast. Một địa chỉ Anycast là một địa chỉ IPv6 được gán cho một nhóm các máy có chung chức năng, mục đích. Khi packet được gửi cho một địa chỉ Anycast, việc định tuyến sẽ xác định thành viên nào của nhóm sẽ nhận được packet qua việc xác định máy gần nguồn nhất.Việc sử dụng Anycast có 2 ích lợi: Một là, nếu chúng ta đang đến một máy gần nhất trong một nhóm, chúng ta sẽ tiết kiệm được thời gian bằng cách giao tiếp với máy gần nhất. Thứ hai là việc giao tiếp với máy gần nhất giúp tiết kiệm được băng thông. Địa chỉ Anycast không có các tầm địa chỉ được định nghĩa riêng như Multicast, mà nó giống như một địa chỉ Unicast, chỉ có khác là có thể có nhiều máy khác cũng được đánh số với cùng scope trong cùng một khu vực xác định. Anycast được sử dụng trong các ứng dụng như DNS...
e) Việc tự cấu hình địa chỉ đơn giản hơn:
· Một địa chỉ Multicast có thể được gán cho nhiều máy, địa chỉ Anycast là các gói Anycast sẽ gửi cho đích gần nhất (một trong những máy có cùng địa chỉ) trong khi Multicast packet được gửi cho tất cả máy có chung địa chỉ (trong một nhóm Multicast). Kết hợp Host ID với Multicast ta có thể sử dụng việc tự cấu hình như sau: khi một máy được bật lên, nó sẽ thấy rằng nó đang được kết nối và nó sẽ gửi một gói Multicast vào LAN; gói tin này sẽ có địa chỉ là một địa chỉ Multicast có tầm cục bộ (Solicited Node Multicast address). Khi một Router thấy gói tin này, nó sẽ trả lời một địa chỉ mạng mà máy nguồn có thể tự đặt địa chỉ, khi máy nguồn nhận được gói tin trả lời này, nó sẽ đọc địa chỉ mạng mà Router gửi; sau đó, nó sẽ tự gán cho nó một địa chỉ IPv6 bằng cách thêm Host ID (được lấy từ địa chỉ MAC của interface kết nối với subnet đó) với địa chỉ mạng, Do đó, tiết kiệm được công sức gán địa chỉ IP.
f) Header hợp lý:
· Header của IPv6 đơn giản và hợp lý hơn IPv4. IPv6 chỉ có 6 trường và 2 địa chỉ, trong khi IPv4 chứa 10 trường và 2 địa chỉ. IPv6 cung cấp các đơn giản hóa sau:
- Định dạng được đơn giản hóa: IPv6 Header có kích thước cố định 40 octet với ít trường hơn IPv4 nên giảm được thời gian xử lý Header, tăng độ linh hoạt.
- Không có Header checksum: Trường checksum của IPv4 được bỏ đi vì các liên kết ngày nay nhanh hơn và có độ tin cậy cao hơn vì vậy chỉ cần các Host tính checksum còn Router thì khỏi cần.
- Không có sự phân đoạn theo từng hop: Trong IPv4, khi các packet quá lớn thì Router có thể phân đoạn nó. Tuy nhiên, việc này sẽ làm tăng them Overhead cho packet. Trong IPv6 chỉ có Host nguồn mới có thể phân đoạn một packet theo các giá trị thích hợp dựa vào một MTU path mà nó tìm được. Do đó, để hỗ trợ Host thì IPv6 chứa một hàm giúp tìm ra MTU từ nguồn đến đích.
g) Bảo mật:
· IPv6 tích hợp tính bảo mật vào trong kiến trúc của mình bằng cách giới thiệu 2
Header mở rộng tùy chọn: Authentication Header (AH) và Encrypted Security Payload (ESP) Header. Hai Header này có thể được sử dụng chung hay riêng để hỗ trợ nhiều chức năng bảo mật.
· Quan trọng nhất trong Header này là trường Integriry Check Value (ICU). ICU được tính bởi nguồn và được tính lại bởi đích để xác minh. Quá trình này cung cấp việc xác minh tính toàn vẹn và xác minh nguồn gốc của dữ liệu. AH cũng chứa cả một số thứ tự để nhận ra một tấn công bằng các packet replay giúp ngăn các gói tin được nhân bản.
· ESP Header: ESP Header chứa một trường : Security Parameter Index (SPI) giúp đích của gói tin biết payload được mã hóa như thế nào. ESP Header có thể được sử dụng khi tunneling, trong tunnelling thì cả Header và payload gốc sẽ được mã hóa và bỏ vào một ESP Header bọc ngoài, khi đến gần đích thì các gateway bảo mật sẽ bỏ Header bọc ngoài ra và giải mã để tìm ra Header và payload gốc.
h) Tính di động:
· IPv6 hỗ trợ tốt các máy di động như laptop. IPv6 giới thiệu 4 khái niệm giúp hỗ trợ tính toán di động gồm: Home address; Care-of address; Binding; Home agent.
· Trong IPv6 thì các máy di động được xác định bởi một địa chỉ Home address mà không cần biết hiện tại nó được gắn vào đâu. Khi một máy di động thay đổi từ một subnet này sang subnet khác; nó phải có một Care-of address qua một quá trình tự cấu hình. Sự kết hợp giữa Home address và Care-of address được gọi là một Binding. Khi một máy di động nhận được một Care-of address, nó sẽ báo cho Home agent của nó bằng gói tin được gọi là Binding update để Home agent có thể cập nhật lại Binding cáche của Home agent về Care-of address của máy di động vừa gửi. Home agent sẽ duy trì một ánh xạ giữa các Home address và Care-of address và bỏ nó vào Binding cáche. Một máy di động có thể được truy cập bằng cách gửi một packet đến các Home address của nó. Nếu máy di động không được kết nối trên subnet của Home agent thì Home agent sẽ gửi packet đó cho máy di động qua Care-of address của máy đó trong Binding cáche của Home agent (Lúc này, Home agent được xem như máy trung gian để máy nguồn có thể đến được máy di động). Máy di động sau đó sẽ gửi một gói tin Binding update cho máy nguồn của gói tin. Máy nguồn sau đó sẽ cập nhật Binding cáche của nó, thì sau này máy nguồn muốn gửi đến máy di động, chỉ cần gửi trực tiếp đến cho máy di động qua Care-of address chứa trong Binding cáche của nó mà không cần phải gửi qua Home address. Do đó, chỉ có gói tin đầu tiên là qua Home agent.
i) Hiệu suất:
IPv6 cung cấp các lợi ích sau:
· Giảm được thời gian xử lý Header, giảm Overhead vì chuyển dịch địa chỉ: vì trong IPv4 có sử dụng private address để tránh hết địa chỉ, Do đó, xuất hiện kỹ thuật NAT để dịch địa chỉ, nên tăng Overhead cho gói tin. Trong IPv6 do không thiếu địa chỉ nên không cần private address, nên không cần dịch địa chỉ.
· Giảm được thời gian xử lý định tuyến: nhiều khối địa chỉ IPv4 được phân phát cho các user nhưng lại không tóm tắt được, nên phải cần các entry trong bảng định tuyến làm tăng kích thước của bảng định tuyến và thêm Overhead cho quá trình định tuyến. Ngược lại, các địa chỉ IPv6 được phân phát qua các ISP theo một kiểu phân cấp địa chỉ giúp giảm được Overhead.
· Tăng độ ổn định cho các đường: trong IPv4, hiện tượng route flapping thường xảy ra, trong IPv6, một ISP có thể tóm tắt các route của nhiều mạng thành một mạng đơn, chỉ quản lý mạng đơn đó và cho phép hiện tượng flapping chỉ ảnh hưởng đến nội bộ của mạng bị flapping.
· Giảm Broadcast: trong IPv4 sử dụng nhiều Broadcast như ARP, trong khi IPv6 sử dụng Neighbor Discovery Protocol để thực hiện chức năng tương tự trong quá trình tự cấu hình mà không cần sử dụng Broadcast.
· Multicast có giới hạn: trong IPv6, một địa chỉ Multicast có chứa một trường scope có thể hạn chế các gói tin Multicast trong các Node, trong các link, hay trong một tổ chức.
· Không có checksum.