Bài viết chuyên đề

GIỚI THIỆU VỀ IPV6

14/11/2017 09:30:32

Bài sô 1: Chuyên đề về IPv6

Giới thiệu về IPv6

Hiện nay không gian IPv4 trên toàn cầu đã cạn kiệt. Vào tháng 02/2011, IANA (Internet Assigned Numbers Authority) – tổ chức quản lý địa chỉ  IP và số hiệu mạng trên toàn thế giới đã công bố rằng địa chỉ IPv4 đã được cấp phát hết. Dải IPv4 còn sử dụng đến ngày nay đều nằm trong kho IP của các cơ quan quản lý IP cấp vùng hoặc các ISP; không còn IP mới để cấp phát. Việc sử dụng IPv4 hiện nay đều được các ISP quy hoạch hết sức cẩn thận để không gây lãng phí một tài nguyên mạng đã cạn kiệt.

Địa chỉ IPv4 dài 32 bit nhị phân, theo lý thuyết cung cấp cho thế giới khoảng hơn 4 tỉ địa chỉ IP, vào thời điểm ra đời được cho là một dải địa chỉ nhiều vô tận không thể sử dụng hết, đến thời điểm này đã cạn kiệt. Tốc độ phát triển của Internet cũng như các công nghệ chạy trên nền IP trong nhiều năm qua đã tăng đến chóng mặt, nằm ngoài dự liệu của các tổ chức xây dựng nên chồng giao thức TCP/IP ban đầu. Để giải quyết vấn đề hao tốn địa chỉ IP quá nhanh, nhiều biện pháp giúp hạn chế tốc độ tiêu thụ IP đã được đưa ra. Trong số đó, hai biện pháp tỏ ra rất hiệu quả và vẫn còn được sử dụng cho đến ngày nay là sử dụng CIDR cho giao thức IPv4 và chia không gian IPv4 thành hai không gian Private IP và Public IP đồng thời sử dụng kỹ thuật NAT để chuyển đổi Private – Public. Nhờ những biện pháp này mà chúng ta vẫn còn địa chỉ IPv4 để sử dụng thêm một khoảng thời gian dài nữa.

Tuy nhiên, cuối cùng thì không gian IPv4 cũng sẽ vẫn cạn kiệt do sự phát triển như vũ bão của Internet. Để giải quyết triệt để “vấn nạn” thiếu hụt IP cũng như khắc phục những hạn chế vốn có của giao thức IPv4 cũ, một phiên bản mới hoàn toàn của giao thức IP đã được phát triển và đưa vào sử dụng. Phiên bản mới của giao thức IP này được gọi là IP version 6 – IPv6.

Trong bài viết này, chúng ta cùng trao đổi một số đặc điểm khái quát về giao thức IPv6 và cấu trúc địa chỉ IPv6.

Những ưu điểm nổi bật của giao thức IPv6

Ưu điểm nổi trội đầu tiên của IPv6 là cung cấp một không gian địa chỉ lớn hơn rất nhiều so với IPv4. Nếu IPv4 chỉ sử dụng 32 bit nhị phân để cấu thành một địa chỉ IP, thì IPv6 sử dụng tới 128 bit nhị phân để cấu thành một địa chỉ IP. Với 32 bit nhị phân, không gian IPv4 cung cấp được tối đa 2^32 địa chỉ, tức là xấp xỉ 4 tỉ địa chỉ IP; với 128 bit nhị phân, không gian IPv6 cung cấp được tối đa 2^128 địa chỉ, hay xấp xỉ 3,4 x 10^38 địa chỉ IP. Để hình dung được số lượng địa chỉ này lớn như thế nào, chúng ta hãy thử thực hiện chia đều toàn bộ không gian IPv6 cho tất cả mọi người trên Thế giới cùng sử dụng. Với dân số hiện nay vào khoảng 7 tỉ người, số lượng địa chỉ IPv6 được phân bổ sẽ là (3,4 x 10^38) / (7 x 10^9), hay xấp xỉ (5 x 10^28) IP cho mỗi người! Như vậy, về mặt lý thuyết, sau khi triển khai xong IPv6, mỗi người trên Trái Đất có thể được cấp phát 50 tỉ tỉ tỉ địa chỉ IP! Một con số lớn vô cùng, và ta có thể xem như không gian IPv6 là vô hạn.

Với không gian địa chỉ lớn như vậy, IPv6 cung cấp một số đặc điểm nổi trội khác so với IPv4 như sau:

  • Địa chỉ Global:

Trước đây, do sự thiếu hụt địa chỉ, một phần không gian IPv4 phải được sử dụng như là địa chỉ Private để có thể thực hiện được cơ chế sử dụng lại địa chỉ từ mạng nội bộ này qua mạng nội bộ khác. Với số lượng địa chỉ khổng lồ của IPv6, các địa chỉ đều có thể được sử dụng như IP Public: mỗi host trong mạng doanh nghiệp có thể được truy nhập trực tiếp trên toàn thế giới.

  • End – to – end without NAT:

Đặc điểm trên dẫn đến ưu điểm nổi trội thứ 2 của IPv6: không cần NAT. NAT thường được sử dụng để chuyển đổi IP Private thành IP Public để các host Private có thể truy nhập được các server trên môi trường Public. Tuy nhiên, nếu như tất cả mọi host đều sử dụng địa chỉ Public thì chúng ta không cần NAT nữa. Điều này đem lại một sự “cởi trói” rất lớn cho hoạt động của các thiết bị mạng.

Thật vậy, NAT rất hữu ích, nhưng NAT cũng gây ra nhiều vấn đề trong truyền dữ liệu như: làm chậm lại việc chuyển gói tin do phải đọc sâu vào các thông tin lớp Transport để thực hiện chuyển đổi địa chỉ; ảnh hưởng lớn đến hoạt động của IP Sec – VPN khi VPN phải đi ngang qua một router có thực hiện NAT,v.v…

Không còn phải NAT, việc trao đổi dữ liệu trên các hệ thống mạng sẽ trở nên hiệu quả hơn rất nhiều.

Về mặt hoạt động, IPv6 cũng cải tiến rất nhiều điểm từ IPv4:

  • Tích hợp trong giao thức IP các cơ chế Mobile – IP và IP Security: Với IPv4, để có thể sử dụng được các tính năng này, các thiết bị mạng phải chạy các hệ điều hành có tích hợp các module phần mềm tương ứng. Với IPv6, các tính năng này được tích hợp sẵn trong giao thức IP, các hệ điều hành có hỗ trợ IPv6 mặc định có thể sử dụng các tính năng này.
  • Không sử dụng địa chỉ Broadcast: IPv6 không sử dụng địa chỉ Broadcast như với IPv4. IPv6 chỉ sử dụng cơ chế Multicast cho các hoạt động trao đổi dữ liệu theo nhóm.
  • Sử dụng gói tin với cấu trúc header đơn giản hơn nhưng hiệu quả hơn so với IPv4: Số lượng trường thông tin được giảm hẳn, một số trường không còn cần thiết được lược bỏ, một số trường mới được thêm vào. Với header đơn giản hơn, hiệu suất của các hoạt động chuyển mạch và định tuyến trên các thiết bị lớp 3 sẽ tăng lên đáng kể.

Tuy mang nhiều ưu điểm xuất sắc như trên nhưng không dễ dàng để chỉ trong một thời gian ngắn IPv6 có thể thay thế hoàn toàn cho IPv4. Thực ra, cũng không có bất kỳ một quy định ràng buộc nào được đưa ra để yêu cầu chuyển đổi ngay từ IPv4 sang IPv6 và quá trình chuyển đổi hiện nay trên thế giới cũng đang diễn ra một cách từ tốn, chậm rãi nhưng chắc chắn và hoàn toàn trong suốt với người dùng. Có nhiều phương pháp chuyển đổi được đưa ra để hỗ trợ cho quá trình chuyển đổi này:

  • Dual – Stack: Mạng sẽ vừa chạy IPv4 vừa chạy IPv6 trong quá trình chuyển đổi.
  • Các kỹ thuật Tunnel: Giúp cho các host IPv6 có thể trao đổi dữ liệu với nhau thông qua một hệ thống mạng IPv4.
  • NAT – PT: Giúp cho một host IPv6 có thể trao đổi dữ liệu với một host IPv4 (Lưu ý: đây không phải là kỹ thuật NAT Private – Public như IPv4, đây là một kỹ thuật chuyển đổi cấu trúc gói tin từ v6 sang v4 và ngược lại).

Tiếp theo, chúng ta cùng điểm qua các đặc điểm của địa chỉ IPv6.

Cấu trúc địa chỉ IPv6

Địa chỉ IPv6 là một dãy nhị phân dài 128 bit, được thể hiện dưới dạng hexa trong các giao diện với người dùng. Cứ 4 bit nhị phân ta đổi sang được một số hexa nên một địa chỉ IPv6 sẽ được thể hiện thành 32 số hexa. 32 số hexa này lại được chia thành 8 cụm 4 số gọi là các trường (field).

Ví dụ: 2031:0000:130F:0000:0000:09C0:876A:130B.

Địa chỉ IPv6 nhìn chung dài, khó ghi chép nên có một vài luật được đưa ra để cho phép rút gọn địa chỉ IPv6:

  • Các số 0 dẫn đầu trong một trường được quyền lược bỏ.
  • Các trường 0 liên tiếp của một địa chỉ IPv6 được phép thay thế bằng một cụm hai dấu hai chấm “::”, và chỉ được thay thế một lần duy nhất cho một địa chỉ.

Ví dụ về rút gọn địa chỉ IPv6:

Địa chỉ “2031:0000:130F:0000:0000:09C0:876A:130B” có thể được rút gọn như sau:

  • 2031:0:130F:0:0:9C0:876A:130B. Hoặc:
  • 2031:0:130F::9C0:876A:130B.

Khi sử dụng các luật rút gọn này, ta thấy có nhiều trường hợp địa chỉ IPv6 gọn đến bất ngờ, ví dụ:

  • FF01:0000:0000:0000:0000:0000:0001 → FF01::1.
  • 0000:0000:0000:0000:0000:0000:0000:0001 → ::1.
  • 0000:0000:0000:0000:0000:0000:0000:0000 → ::

Địa chỉ IPv6 cũng được chia thành hai phần giống như IPv4 nhưng không dùng tên gọi là “phần network” và “phần host” mà có tên là “phần prefix” và “ phần interface – id” (hình 1). Địa chỉ IPv6 cũng không sử dụng subnet – mask  mà sử dụng phương thức biểu diễn đính kèm prefix – length, ví dụ: 2001:1234:5678:ABCD::1/64. Như đã trình bày trong bài viết “Classful và Classless”, kiểu hiển thị địa chỉ IP này được gọi là kiểu hiển thị Classless.

Hình 1 – Phần PrefixInterface – id.

Các loại địa chỉ IPv6

Địa chỉ IPv6 được chia thành 3 loại chính: Unicast, Multicast và Anycast.

Địa chỉ Unicast

Là địa chỉ sử dụng được cho một host, dùng trong trao đổi dữ liệu unicast. Dải địa chỉ Unicast của không gian IPv6 lại được chia thành 3 dải unicast khác nhau:

Global Unicast:

Là dải IP được cấp phát và sử dụng được trên Internet, dải này tương đương với dải IP Public của không gian IPv4. Mọi địa chỉ Global unicast đều bắt đầu bằng 3 bit “001”, và như vậy các địa chỉ loại này thuộc về dải 2000::/3, bao gồm các địa chỉ từ 2000:: đến 3FFF::.

Việc cấp phát IPv6 Global unicast được thực hiện theo cơ chế phân cấp (hierachical) (hình 2), thông qua các cơ quan đăng ký Internet cấp vùng như ARIN hay APNIC,…. Phương pháp cấp phát IP theo kiểu phân cấp này được đề xuất trong tài liệu RIPE – 512 bởi tổ chức RIPE NCC – một tổ chức phi lợi nhuận chuyên hỗ trợ về các dịch vụ tài nguyên mạng và hạ tầng Internet uy tín của châu Âu. Chúng ta có thể tham khảo tài liệu này tại địa chỉ: http://www.ripe.net/ripe/docs/ripe-512

Dải Global unicast là một dải đặc biệt lớn – chiếm tới 1/8 tổng số địa chỉ của không gian IPv6. Một số dải Global unicast khác được sử dụng cho những mục đích đặc biệt, ví dụ: dải 2002::/16 được sử dụng cho kỹ thuật 6to4 tunnel.

Link – local Unicast:

Địa chỉ link – local là loại địa chỉ chỉ sử dụng trên nội bộ một đường link, các gói tin với các địa chỉ link – local không thể đi qua lại được giữa các interface và vì vậy các địa chỉ link – local có thể trùng nhau miễn là chúng được đặt trên các link khác nhau.

Các địa chỉ link – local thuộc về dải IPv6 FE80::/10. Dải link – local này, một cách tương đối, có thể coi như tương đương với dải IP 169.254.0.0/16 của IPv4.

Các gói tin với địa chỉ link – local hầu hết được sử dụng bởi hoạt động trao đổi thông tin trên nội bộ đường link của các giao thức control – plane của router, ví dụ như các giao thức định tuyến. Khi một interface được kích hoạt sử dụng IPv6, một địa chỉ link – local sẽ được tự động phát sinh ra trên interface ấy.

Unique – local Unicast:

Được định nghĩa trong RFC – 4193, là dải địa chỉ tương đương với dải IP Private trong không gian IPv4. Giống như IPv4 Private, địa chỉ Unique – local chỉ được sử dụng trong nội bộ mạng doanh nghiệp, có thể sử dụng đi sử dụng lại cùng một dải từ mạng nội bộ này qua mạng nội bộ khác và không được sử dụng trên môi trường Internet.

Địa chỉ Unique – local là toàn bộ dải FC00::/7.

Ghi chú:

  • Trước đây dải này có tên là dải Site – local, với các IP thuộc về subnet FEC0::/10. Dải Unique – local ra đời đã thay thế cho dải Site – local để đặt IP cho nội bộ mạng doanh nghiệp, dải Site – local không còn được sử dụng nữa.
  • Tuy có công dụng giống như IP Private của IPv4 nhưng dải Unique – local không phải được sử dụng cho mục đích tiết kiệm IP như với IPv4 mà được sử dụng để cho phép người quản trị có quyền “tự trị” hơn trên hệ thống mạng của mình với các host được đặt các địa chỉ biệt lập hoàn toàn với không gian địa chỉ chung của toàn thế giới.

Địa chỉ Multicast

Trong IPv4, dải IP dùng cho multicast là IP lớp D từ 224.0.0.0 đến 239.255.255.255. Trong IPv6, địa chỉ multicast là tất cả các IP nằm trong dải FF00::/8. Nói cách khác, một địa chỉ IPv6 multicast luôn luôn có byte đầu tiên có giá trị là FF.

Địa chỉ Anycast

Chính là dải địa chỉ Global unicast (2000::/3) nhưng mỗi địa chỉ trên dải này được phép đặt trên nhiều host của mạng IP.

Cấu hình địa chỉ IPv6 trên các cổng mạng của thiết bị

Đặt tĩnh địa chỉ IPv6 trên cổng mạng

Lệnh gán IPv6 trên cổng của router giống như gán IPv4 trên cổng, ngoại trừ việc thay từ khóa “ip” thành từ khóa “ipv6”. Ví dụ: chúng ta sẽ đặt địa chỉ IPv6 trên cổng F0/0 của router R1 là 2001:1::1.

R1(config)#interface f0/0

R1(config-if)#no shutdown

R1(config-if)#ipv6 address 2001:1::1/64

R1(config-if)#exit

Ta kiểm tra rằng các địa chỉ IPv6 đã được gán trên các cổng. Câu lệnh kiểm tra là “show ipv6 interface brief” ở mode Privilege:

R1#show ipv6 interface brief

FastEthernet0/0            [up/up]

    FE80::221:A0FF:FE3B:D828

    2001:1::1

FastEthernet0/1            [administratively down/down]

Từ kết quả show, ta thấy địa chỉ IPv6 đã được đặt trên các cổng của các router. Ngoài ra, ta còn thấy rằng trên cổng có thêm một địa chỉ link – local, địa chỉ link – local sẽ tự động phát sinh khi ta đặt địa chỉ IPv6 lên một cổng. Việc phát sinh các địa chỉ link – local này tuân theo một luật có tên là EUI – 64 sẽ được đề cập ở mục tiếp theo.

Đặt địa chỉ theo luật EUI – 64

Một phương pháp khác để đặt IPv6 trên một cổng của router là sử dụng luật EUI – 64. Luật này cho phép router sử dụng địa chỉ MAC trên cổng để làm phần interface – id của địa chỉ IPv6 gán trên cổng. 

Luật EUI – 64:

  • Đảo ngược giá trị của bit thứ 7 của địa chỉ MAC.
  • Chèn thêm hai byte “FFFE” vào giữa 3 byte đầu và 3 byte sau của địa chỉ MAC để đạt được độ dài 64 bit.

Thực hiện xong hai thao tác này, ta đã có được phần interface – id trên cổng.

Ví dụ: Xét một cổng mạng của router có địa chỉ MAC “0021.A03B.D828”. Nếu cổng này thuộc về subnet 2001:1::/64 thì phần interfae – id sẽ được tự phát sinh ra theo luật EUI – 64 như sau:

  • Ta thấy bit thứ 7 của địa chỉ MAC trên cổng này đang có giá trị bằng 0 (xét hai số hexa đầu tiên của địa chỉ MAC: 00, đổi ra nhị phân là 00000000, bit thứ 7 đang bằng 0). Đảo ngược bit 7, bit này sẽ nhận giá trị bằng 1 và địa chỉ MAC sẽ trở thành “0221.A03B.D828” (số hexa thứ 2 đã từ “0” chuyển thành “2”).
  • Chèn thêm dãy “FFFE” vào giữa địa chỉ MAC, ta có được giá trị “0221:A0FF:FE3B:D828”.

Vậy, ta có địa chỉ IPv6 nhận được trên cổng theo luật EUI – 64 là:

2001:1::0221:A0FF:FE3B:D828/64.

Có thể thực hiện cấu hình đặt địa chỉ IPv6 trên các cổng router theo luật EUI – 64:

R1(config)#interface f0/0

R1(config-if)#no ipv6 address 2001:1:1212::1/64

R1(config-if)#ipv6 address 2001:1::/64 eui-64

R1(config-if)#exit

Ta hiển thị thông tin các cổng đã đặt IPv6 để quan sát các địa chỉ mới được đặt:

R1#show ipv6 interface brief

FastEthernet0/0            [up/up]

    FE80::221:A0FF:FE3B:D828

    2001:1::221:A0FF:FE3B:D828

FastEthernet0/1            [administratively down/down]

Từ kết quả xuất ta thấy, các địa chỉ IPv6 trên các cổng của router đã được tự động phát sinh theo luật EUI – 64.

Như đã trình bày trước đó, các địa chỉ link – local sẽ được tự động phát sinh theo luật EUI – 64 mỗi khi IPv6 kích hoạt trên cổng. Ta có thể quan sát các địa chỉ link – local này trong các kết quả show ở trên.

Gán địa chỉ tự động

IPv6 hỗ trợ hai phương pháp cấp phát IP động: Stateless Auto – configurationStateful DHCPv6. Một host khi tham gia vào mạng sẽ tự động nhận được địa chỉ IP cho hoạt động của mình. Chúng ta cùng mô tả phương pháp Stateless; phương pháp cấp phát động sử dụng giao thức DHCP sẽ được khảo sát trong một bài viết khác.

Nguyên tắc của phương pháp Stateless Autoconfig được mô tả qua hình 2:

Hình 2 – Stateless Autoconfiguration.
  • Khi PC tham gia vào mạng mà chưa có địa chỉ IP, nó sẽ gửi ra một gói tin RS – Router Solicitation, gói tin này sử dụng Source IP là địa chỉ IPv6 link – local trên card mạng của PC, Destination IP là địa chỉ FF02::2 (địa chỉ multicast cho tất cả các router).
  • Khi router nhận được gói tin RS, nó sẽ hồi đáp về gói tin RA (Router Advertisement) với source IP là địa chỉ link – local trên cổng của router và destination IP là FF02::1 (địa chỉ multicast cho tất cả các host trên link). Gói tin RA chứa nhiều thông tin, trong đó quan trọng nhất là prefix (địa chỉ subnet) của mạng và địa chỉ link – local mà router đang sử dụng.
  • PC khi nhận được gói tin RA sẽ sử dụng prefix nhận được (trong ví dụ này là 2001:1::/64) ghép thêm phần interface – id được phát sinh bởi luật EUI – 64 để có một địa chỉ IPv6 cho card mạng. Như vậy, PC đã có được một địa chỉ IPv6 cho hoạt động của mình.
  • Bên cạnh việc gửi gói tin RA để đáp ứng cho các gói tin RS của các PC, router còn đều đặn gửi gói này ra khỏi cổng mạng của nó theo định kỳ mặc định là 200s/lần. Router không quản lý hay theo dõi các địa chỉ IP mà các PC nhận được nên ta gọi kiểu cấp phát động này là Stateless Auto – configuration. Ngược lại, với phương thức sử dụng giao thức DHCP, nếu ta cấu hình router thành DHCP Server để cấp IP cho các host, router sẽ lưu một bảng thông tin chỉ rõ nó đã cấp phát địa chỉ nào cho host nào (bảng DHCP binding), kiểu cấp phát này được gọi là Stateful DHCP.

Trên đây, chúng ta đã cùng nhau điểm qua một vài nét tổng quan về IPv6 cũng như một số đặc điểm của địa chỉ IPv6. Trong các bài viết tới, chúng ta sẽ cùng nhau tiếp tục khảo sát những vấn đề khác của IPv6.

                                                                                                                                                                                TRUNG TÂM WAREN