CHƯƠNG 4: CHUYỂN DỊCH ĐỊA CHỈ MẠNG VÀ ĐỊA CHỈ IPv6 (PHẦN 2)
III. CẤU HÌNH CƠ CHẾ NAT
1. Cấu hình NAT tĩnh
Ví dụ dưới đây mô tả cấu hình NAT tĩnh. Về mặt khái niệm, router dùng cơ chế NAT phải xác định cổng nào là bên trong (gắn vào địa chỉ của doanh nghiệp) hay cổng nào là bên ngoài (gắn vào mạng Internet). Ngoài ra, việc ánh xạ giữa địa chỉ Inside Local và Inside Global phải được cấu hình. Trong ví dụ này, mặc dù không cần thiết, địa chỉ Outside cũng có thể được ánh xạ tĩnh. Cổng E0/0 được gắn vào mạng bên trong của doanh nghiệp vì vậy nó được cấu hình như là cổng bên trong.
interface Ethernet0/0
ip address 10.1.1.3 255.255.55.0
ip nat inside
Cổng S0/0 gắn vào Internet vì vậy nó được định nghĩa như là cổng bên ngoài.
interface Serial0/0
ip address 200.1.1.251 255.255.255.0
ip nat outside
Kế tiếp, hai địa chỉ bên trong sẽ được ánh xạ, với địa chỉ đầu tiên khai báo địa chỉ Inside Local và lệnh kết tiếp khai báo địa chỉ Inside Global.
ip nat inside source static 10.1.1.2 200.1.1.2
ip nat inside source static 10.1.1.1 200.1.1.1
Dưới đây, bảng NAT sẽ liệt kê ra các phiên NAT tĩnh từ cấu hình nêu trên.
NAT# show ip nat translations
Pro Inside Global Inside Local Outside Local Outside Global
--- 200.1.1.1 10.1.1.1 --- ---
--- 200.1.1.2 10.1.1.2 --- ---
Router đang thực hiện NAT chỉ cho những địa chỉ bên trong. Kết quả là, router xử lý các gói tin đi vào cổng E0/0 bằng cách kiểm tra địa chỉ IP nguồn. Đây là các gói tin có thể được gửi bởi các máy bên trong. Bất kỳ gói tin nào có địa chỉ nguồn liệt kê trong cột Inside Local của lệnh show ip nat translations sẽ được đổi địa chỉ nguồn thành 200.1.1.1 hoặc 200.1.1.2 tương ứng.
Trong trường hợp địa chỉ bên ngoài cũng được cấu hình NAT tĩnh, router cũng tìm địa chỉ đích IP khi gói tin được gửi từ cổng bên trong sang cổng bên ngoài. Khi gói tin gửi từ cổng bên ngoài vào cổng bên trong, tiến trình NAT cũng tìm địa chỉ nguồn IP khi gói tin gửi từ cổng bên ngoài vào cổng bên trong.
2. Cấu hình NAT động không dùng PAT
Ví dụ trong hình 4.2 mô tả một dãy 5 địa chỉ Inside Global từ 200.1.1.1 đến 200.1.1.5. NAT cũng được cấu hình để chuyển dịch bất cứ địa chỉ Inside Local nào bắt đầu bằng 10.1.1.X với X là số bất kỳ. Các số 1, 2 và 3 trong hình muốn chỉ đến thứ tự các sự kiện.
Bước 1: Máy 10.1.1.2 bắt đầu gửi gói tin đầu tiên đến máy chủ ở địa chỉ 170.1.1.1
Bước 2: Khi gói tin đi vào router thực hiện NAT, router sẽ áp dụng một vài thuật toán so sánh để quyết định xem gói tin có nên áp dụng NAT hay không. Bởi vì thuật toán đã được cấu hình để “chuyển đổi địa chỉ Inside Local bắt đầu bằng 10.1.1.X”, router sẽ thêm vào một hàng trong bảng NAT cho địa chỉ 10.1.1.2 là địa chỉ Inside Local.
Bước 3: Router NAT cần phải cấp phát một địa chỉ tương ứng từ một dãy các địa chỉ Inside Global hợp lệ. Nó chọn địa chỉ đầu tiên có sẵn (200.1.1.1) trong trường hợp này và thêm nó vào bảng NAT để hoàn tất hàng đó.
Bước 4: Với việc hoàn tất bước 3, router thực hiện NAT đã chuyển đổi địa chỉ IP nguồn của gói tin và gửi gói tin đi với địa chỉ IP nguồn mới.
Lưu ý rằng khi vẫn còn tồn tại phiên NAT trong bảng NAT, thì chỉ có duy nhất một máy là 10.1.1.2 được chuyển dịch thành địa chỉ Inside Global là 200.1.1.1.
3. Cấu hình PAT
Cũng giống như cấu hình NAT tĩnh, cấu hình NAT động bắt đầu bằng cách chỉ ra cổng bên trong và cổng bên ngoài. Thêm vào đó, tập hợp các địa chỉ Inside Local được cấu hình bằng lệnh ip nat Inside. Nếu bạn đang cấu hình một dãy các địa chỉ công cộng, tập hợp các địa chỉ này được định nghĩa bằng lệnh ip nat pool.
Ví dụ dưới đây mô tả một cấu hình NAT động. Ví dụ này định nghĩa một dãy gồm 256 địa chỉ Inside Local và 2 địa chỉ Inside Global.
Đầu tiên, lệnh ip nat pool cisco liệt kê một dãy các địa chỉ IP. Lệnh ip nat Inside source list 1 pool cisco tham chiếu đến ACL 1 như là địa chỉ Inside Local, tham chiếu đến tên của dãy địa chỉ.
interface Ethernet0/0
ip address 10.1.1.3 255.255.55.0
ip nat inside
!
interface Serial0/0
ip address 200.1.1.251 255.255255.0
ip nat outside
!
ip nat pool cisco 200.1.1.1 200.1.1.2 netmask 255.255.255.252
ip nat inside source list 1 pool cisco
!
access-list 1 permit 10.1.1.0 0.0.0.255
Lúc này bảng NAT chưa có bất cứ thông tin gì, bởi vì không có phiên kết nối nào được tạo ra ở thời điểm đó.
Router# show ip nat translations
Các thống kê NAT cho biết không có các thông tin khớp với điều kiện cũng như lệch với điều kiện của một phiên có sẵn trong bảng NAT. Các thông tin khớp sẽ xảy ra khi NAT tìm kiếm trong bảng ánh xạ và tìm thấy một hàng thoả mãn điều kiện. Hiện tượng không khớp xảy ra khi NAT tìm kiếm một hàng trong bảng NAT để thoả mãn điều kiện nhưng không tìm thấy và cần phải thêm vào.
NAT# show ip nat statistics
Total active translations: 0 (0 static, 0 dynamic; 0 extended)
Outside interfaces:
Serial0/0
Inside interfaces:
Ethernet0/0
Hits: 0 Misses: 0
Expired translations: 0
Dynamic mappings:
-- Inside Source
access-list 1 pool fred refcount 0
pool fred: netmask 255.255.255.252
start 200.1.1.1 end 200.1.1.2
type generic, total addresses 2, allocated 0 (0%), misses 0
Ở thời điểm này, một phiên telnet từ địa chỉ nguồn 10.1.1.1 đến 170.1.1.1 bắt đầu.
Dưới đây, một thông báo không khớp có nghĩa là gói tin đầu tiên từ địa chỉ 10.1.1.1 không có một hàng nào so trùng trong bảng NAT và gói tin đó kích hoạt NAT để thêm một hàng vào bảng NAT. Máy 10.1.1.2 đã gửi thêm 69 gói tin, lúc này các gói tin sẽ được cho là khớp bởi vì đã có một hàng trong bảng NAT.
NAT# show ip nat statistics
Total active translations: 1 (0 static, 1 dynamic; 0 extended)
Outside interfaces:
Serial0/0
Inside interfaces:
Ethernet0/0
Hits: 69 Misses: 1
Expired translations: 0
Dynamic mappings:
-- Inside Source
access-list 1 pool fred refcount 1
pool fred: netmask 255.255.255.252
start 200.1.1.1 end 200.1.1.2
type generic, total addresses 2, allocated 1 (50%), misses 0
Thông tin về NAT động được hiển thị trong bảng dưới
NAT# show ip nat translations
Pro Inside Global Inside Local Outside Local Outside Global
--- 200.1.1.1 10.1.1.2 --- ---
Cấu hình dưới đây dùng PAT thông qua thông số quá tải (overload). Ta có thể dùng lệnh ip nat Inside source list 1 interface s0/0 overload để thay thế, dùng một địa chỉ thật duy nhất. Câu lệnh no ip nat Inside source list 1 pool cisco dùng để bỏ câu lệnh ip nat Inside source list 1 pool cisco trước đó đã cấu hình.
Router(config)# no ip nat inside source list 1 pool cisco
Router(config)# ip nat inside source list 1 pool cisco overload
Để kiểm tra, các hàng NAT sẽ được xóa sau khi thay đổi cấu hình NAT. Trước khi lệnh kế tiếp được thực thi, máy 10.1.1.1 đã tạo ra hai phiên telnet và máy 10.1.1.2 đã tạo ra thêm một kết nối TCP. Câu lệnh clear ip nat translation * dùng để xoá hết tất cả các phiên NAT đang có trong bảng.
Router# clear ip nat translations *
Trước khi lệnh kế tiếp được thực thi, máy 10.1.1.1 nằm bên trong đã tạo ra hai phiên telnet, và một máy khác bên trong 10.1.1.2 cũng tạo ra thêm một phiên TCP. Chú ý rằng cả ba phiên làm việc này dùng địa chỉ chung là 200.1.1.1.
Router# show ip nat translations
Pro Inside Global Inside Local Outside Local Outside Global
tcp 200.1.1.1:3212 10.1.1.1:3212 170.1.1.1:23 170.1.1.1:23
tcp 200.1.1.1:3213 10.1.1.1:3213 170.1.1.1:23 170.1.1.1:23
tcp 200.1.1.1:38913 10.1.1.2:38913 170.1.1.1:23 170.1.1.1:23
IV. Một số tính năng nâng cao của NAT
Cú pháp cấu hình dãy địa chỉ đã được mở rộng để cho phép một dãy không liên tục các địa chỉ. Sử dụng cú pháp lệnh sau đây:
ip nat pool <name> { netmask <mask> | prefix-length <length> } [ type {
rotary }]
Lệnh này sẽ đưa người dùng vào chế độ IP NAT pool, trong đó một dãy địa chỉ có thể được cấu hình. Chỉ có một lệnh được cấu hình trong chế độ này:
address <start> <end>
Ví dụ:
Router(config)#ip nat pool fred prefix-length 24
Router(config-ipnat-pool)#address 171.69.233.225 171.69.233.226
Router(config-ipnat-pool)#address 171.69.233.228 171.69.233.238
Cấu hình tạo ra một dãy chứa các địa chỉ 171.69.233.225 đến 171.69.233.226 và dãy địa chỉ 171.69.233.228 đến 171.69.233.238 (địa chỉ 171.69.233.227 đã bị loại bỏ).
Để giúp người dùng muốn dịch tất cả các địa chỉ bên trong gán đến một cổng trên router, NAT cho phép ta đặt tên cho cổng của router khi cấu hình NAT động.
ip nat inside source list <number> interface <interface> overload
Nếu không có địa chỉ nào trên cổng, hay nếu cổng là không được bật, NAT sẽ không xảy ra.
Ví dụ:
ip nat inside source list 1 interface Serial0 overload
Khi chuyển dịch địa chỉ đến địa chỉ của một cổng, các kết nối đến router xuất phát từ bên ngoài (chẳng hạn như email) sẽ cần các cấu hình thêm để có thể chuyển các kết nối vào các máy bên trong. Lệnh này cho phép người dùng ánh xạ vài dịch vụ đến vài máy bên trong.
ip nat inside source static { tcp | udp } <Localaddr> <Localport>
<Globaladdr> <Globalport>
Ví dụ:
ip nat inside source static tcp 192.168.10.1 25 171.69.232.209 25
Trong ví dụ này, các kết nối SMTP từ bên ngoài đến cổng 25 sẽ được gửi vào máy bên trong ở địa chỉ 192.168.10.1.
Các lệnh thực hiện NAT động có thể chỉ ra một route map để xử lý thay vì là một access-list. Một route map cho phép người dùng lựa ra một sự kết hợp của access-list, next-hop và địa chỉ cổng ra (output interface) để xác định dãy địa chỉ nào sẽ được dùng.
ip nat inside source route-map <name> pool <name>
Ví dụ:
ip nat pool provider1-space 171.69.232.1 171.69.232.254 prefix-length 24
ip nat pool provider2-space 131.108.43.1 131.108.43.254 prefix-length 24
ip nat inside source route-map provider1-map pool provider1-space
ip nat inside source route-map provider2-map pool provider2-space
!
interface Serial0/0
ip nat outside
!
interface Serial0/1
ip nat outside
!
interface Fddi1/0
ip nat inside
!
route-map provider1-map permit 10
match ip address 1
match interface Serial0/0
!
route-map provider2-map permit 10
match ip address 1
match interface Serial0/1
Từ khóa “extendable”: cho phép người dùng cấu hình vài luật chuyển đổi không tường minh, ví dụ như các luật có cùng địa chỉ Local và Global.
ip nat inside source static <Localaddr> <Globaladdr> extendable
Một vài khách hàng muốn dùng nhiều hơn một nhà cung cấp dịch vụ và sẽ dịch vào từng không gian địa chỉ của nhà cung cấp dịch vụ. Ta có thể dùng route map để việc chọn lựa dựa trên địa chỉ toàn cục hay trên những cổng ra hoặc dựa vào access list. Dưới đây là một ví dụ:
ip nat pool provider1-space
ip nat pool provider2-space
ip nat inside source route-map provider1-map pool provider1-space
ip nat inside source route-map provider2-map pool provider2-space
!
route-map provider1-map permit 10
match ip address 1
match interface Serial0/0
!
route-map provider2-map permit 10
match ip address 1
match interface Serial0/1
Ta cũng muốn định nghĩa các ánh xạ tĩnh cho một host đặc biệt trên từng không gian địa chỉ của người dùng. Hệ điều hành IOS của Cisco không cho phép hai câu lệnh cấu hình tĩnh có cùng địa chỉ cục bộ vì nó sẽ gây ra sự không tường minh từ phía bên trong. Router sẽ chấp nhận các câu lệnh tĩnh này và giải quyết việc không tường minh bằng cách tạo ra các câu lệnh ánh xạ đầy đủ và nếu việc ánh xạ được đánh dấu như là “extendable”. Đối với một dòng từ bên ngoài vào, các luật route map động sẽ được dùng đến tạo ra việc chuyển đổi.
Tạo ra các tên cho các dãy địa chỉ: Nhiều khách hàng muốn cấu hình NAT để dịch các địa chỉ cục bộ sang địa chỉ toàn cục được cấp phát từ những địa chỉ không dùng trong một dãy địa chỉ mạng. Điều này yêu cầu router trả lời những yêu cầu ARP cho những địa chỉ này để các gói tin đi về địa chỉ toàn cục được chấp nhận bởi router và được thực hiện NAT. Tiến trình định tuyến trong router sẽ quản lý gói tin này khi địa chỉ toàn cục được cấp phát từ một địa chỉ ảo, không kết nối vào đâu. Khi một dãy địa chỉ NAT dùng một địa chỉ Inside Global hoặc Outside Local bao gồm các địa chỉ trên một subnet, phần mềm sẽ tạo ra một tên giả cho địa chỉ mà router sẽ trả lời ARP.
Quá trình đặt tên tự động này cũng diễn ra cho các địa chỉ Inside Global hay Outside Global trong các hàng cấu hình tĩnh. Cơ chế này có thể tắt bằng cách dùng lệnh no-alias:
ip nat inside source static <Local-ip-address> <Global-ip-address> no-alias
Lưu giữ địa chỉ host
Để dễ cho việc quản trị, một vài hệ thống chỉ muốn đổi phần địa chỉ mạng, không đổi phần địa chỉ. Nghĩa là họ muốn phần địa chỉ đã chuyển đổi phải có cùng địa chỉ phần host giống như ban đầu. Dĩ nhiên là hai địa chỉ mạng phải có cùng chiều dài tiền tố (prefix length). Đặc điểm này có thể được bật bằng cách cấu hình NAT động như thường lệ nhưng cấu hình phần dãy địa chỉ thêm vào từ khóa match-host.
ip nat pool fred <start> <end> prefix-length <len> type match-host
Các lệnh sau đây đã được hỗ trợ để mở rộng thời gian chuyển dịch
Router(config)#ip nat translation ?
icmp-timeout //Xác định thời gian hết hạn cho luồng NAT ICMP
syn-timeout //Xác định thời gian hết hạn cho các luồng NAT TCP sau gói tin SYN và không có dữ liệu
Hệ điều hành IOS của Cisco có thể được cấu hình để giới hạn số lượng các phiên NAT được tạo ra. Mặc định là không giới hạn.
Router(config)#ip nat translation max-entries <n>
V. ĐỊA CHỈ IPv6
1. Ưu điểm của địa chỉ IPv6
Hai vấn đề lớn mà IPv4 đang phải đối mặt là việc thiếu hụt các địa chỉ, đặc biệt là các không gian địa chỉ tầm trung (lớp B) và việc phát triển về kích thước rất lớn của các bảng định tuyến trên mạng Internet.
Trong những năm 1990, CIDR được xây dựng dựa trên khái niệm mặt nạ địa chỉ (address mask). CIDR đã tạm thời khắc phục được những vấn đề nêu trên. Khía cạnh tổ chức mang tính thứ bậc của CIDR đã cải tiến khả năng mở rộng của IPv4. Mặc dù có thêm nhiều công cụ khác ra đời như kỹ thuật chia nhỏ mạng subnetting (1985), kỹ thuật hỗ trợ mặt nạ mạng con có thể thay đổi được VLSM (1987) và định tuyến liên vùng không phân cấp CIDR (1993), các kỹ thuật trên đã không giúp IPv4 ra khỏi một vấn đề đơn giản đó chính là không đủ địa chỉ cho các nhu cầu tương lai. Có khoảng 4 tỉ địa chỉ IPv4 nhưng khoảng địa chỉ này là sẽ không đủ trong tương lai với những thiết bị kết nối vào Internet và các thiết bị ứng dụng trong gia đình có thể yêu cầu địa chỉ IP.
Một vài giải pháp tạm thời, chẳng hạn như dùng RFC1918 trong đó dùng một phần không gian địa chỉ làm các địa chỉ dành riêng và NAT là một công cụ cho phép hàng ngàn host truy cập vào Internet chỉ với một vài IP hợp lệ. Tuy nhiên giải pháp mang tính dài hạn là việc đưa vào IPv6 với cấu trúc địa chỉ 128 bit. Không gian địa chỉ rộng lớn của IPv6 không chỉ cung cấp nhiều không gian địa chỉ hơn IPv 4 mà còn có những cải tiến về cấu trúc. Với 128 bit, sẽ có 340.282.366.920.938.463.463.374.607.431.768.211.456 địa chỉ.
Trong năm 1994, IETF đã đề xuất IP phiên bản 6 trong RFC 1752. IPv6 khắc phục vào một số vấn đề như thiếu hụt địa chỉ, chất lượng dịch vụ, tự động cấu hình địa chỉ, vấn đề xác thực và bảo mật. Đối với một doanh nghiệp đã dùng hạ tầng mạng theo IPv4, để chuyển sang IPv6 không phải là việc dễ dàng. Một giao thức IP mới sẽ yêu cầu các phần mềm mới, các phần cứng mới và các phương pháp quản trị mới. Cũng có thể, IPv4 và IPv6 sẽ cùng tồn tại, ngay cả bên trong một hệ thống tự trị (Autonomous System – AS) trong khoảng thời gian sắp tới.
IPv6 có các lợi ích như sau
Không gian địa chỉ rộng lớn
Địa chỉ unicast và địa chỉ multicast
Tổng hợp địa chỉ (address aggregation)
Tự động cấu hình (autoconfiguration)
Tái cấu hình địa chỉ (renumbering)
Cấu trúc header đơn giản, hiệu quả
Bảo mật
Cơ động
Các tuỳ chọn để chuyển đổi từ IP phiên bản 4 sang IP phiên bản 6
2. Đặc điểm của IPv6
Như được định nghĩa trong RFC1884 và RFC2373, các địa chỉ IPv6 dài 128 bit dùng để nhận dạng cho các cổng của các router và tập các cổng của các router.
2.1. Có ba kiểu địa chỉ tồn tại
Unicast: là địa chỉ cho một giao tiếp. Một gói dữ liệu được gửi tới một địa chỉ Unicast sẽ được phân phối tới cổng giao tiếp được chỉ ra bởi địa chỉ đó.
Anycast: là địa chỉ cho tập hợp các cổng giao tiếp. Các tập này thông thường thuộc về các node khác nhau. Một gói dữ liệu được gửi tới một địa chỉ anycast sẽ được phân phối đến cổng giao tiếp gần nhất hay đầu tiên trong nhóm anycast.
Multicast: địa chỉ cho một tập hợp các cổng giao tiếp (thông thường thuộc về các node khác nhau). Khi một gói được gửi đến một địa chỉ multicast, tất cả các cổng giao tiếp sẽ nhận được gói dữ liệu này.
Để viết một địa chỉ dạng 128 bit ở dạng dễ đọc hơn, kiến trúc của IP phiên bản 6 đã loại bỏ dạng cú pháp dấu chấm thập phân của IPv4 mà chỉ dùng dạng thập lục phân. Vì vậy, IPv6 có thể được viết bao gồm 32 ký tự dạng hex với dấu hai chấm “:” tách địa chỉ ra thành tám phần, mỗi phần có chiều dài 16 bit.
Theo các kế hoạch hiện tại, các node chạy IPv6 kết nối vào Internet sẽ dùng một kỹ thuật gọi là địa chỉ khả kết toàn cục (aggregatable global unicast address). Trong đó có nhiều điểm tương đồng với kỹ thuật tóm tắt như trong IPv4.
2.2. Địa chỉ tích hợp của IPv6 có ba mức
Mức sơ đồ công cộng (public topology): là tập hợp các nhà cung cấp kết nối Internet.
Mức vùng: mức này là cục bộ đối với các tổ chức.
Mức cổng giao tiếp: mức này ảnh hưởng đến các cổng giao tiếp riêng lẻ. Địa chỉ liên kết cục bộ (link-local address) là địa chỉ chỉ được sử dụng trên 1 kết nối (hay 1 cổng của router) và địa chỉ này phải duy nhất trong liên kết đó. Địa chỉ này có thể được sử dụng trong mạng cục bộ (các máy có chung địa chỉ mạng) và có thể không có router trong mạng này. Địa chỉ này có dạng :FE80::<MAC>. Subnet ID của loại địa chỉ này được gán là 0. Do đó loại địa chỉ này không thể được sử dụng để giao tiếp ra khỏi subnet cục bộ được.
2.3. Dạng địa chỉ của IPv6
Địa chỉ IPv6 rất khác so với địa chỉ IPv4. Không chỉ khác nhau về kích thước (dài hơn gấp 4 lần) mà sự khác nhau còn trong dạng biểu diễn ở dạng thập lục phân so với dạng thập phân. Các dấu “:” sẽ tách các số dạng thập lục phân là các thành phần của địa chỉ 128 bit. Một ví dụ của địa chỉ IPv6 là như sau: 4021:0000:240E:0000:0000:0AC0:3428:121C
Để tránh nhầm lẫn, lỗi và các trạng thái phức tạp không cần thiết, các luật sau sẽ được xác định:
Các số dạng thập lục phân không phân biệt chữ thường và chữ hoa.
Bất cứ một số 0 nào đứng trước các vùng 16 bit có thể được bỏ qua và được tượng trưng bằng dấu “:”. Một cặp dấu :: chỉ ra rằng các giá trị 16 bit của các số 0 đã được rút gọn. Quá trình nhận dạng số sẽ dễ dàng nhận ra số chữ số 0 đã bị thu gọn bằng cách thêm vào số chữ số 0 cho đến khi nào thu được một địa chỉ dài 128 bit
Chỉ có một cặp các dấu “:” là cho phép tồn tại trong một địa chỉ bởi vì quá trình nhận dạng sẽ không thể chỉ ra có bao nhiêu số 0 trong mỗi vị trí.
Ví dụ địa chỉ 4021:0000:240E:0000:0000:0AC0:3428:121C có thể được viết ở dạng 4021:0:240E::0AC0:3428:121C
Mặc dù không thể có hai phiên bản của hai dấu “::”, các vùng với nhiều chữ số 0 chỉ có thể được biểu diễn như 0. Trong ví dụ nêu trên, các chữ số 0 trong vùng thứ hai của địa chỉ được thu gọn lại thành một chữ số 0. Nếu một địa chỉ không có phần host, địa chỉ có thể kết thúc ở dạng “::”. Ví dụ 4021:0:240E::
2.4. IPv6 có thể có nhiều dạng và nó có khả năng giải quyết các hạn chế của IPv4.
Cấu trúc ba mức này được thể hiện thông qua cấu trúc của địa chỉ tích hợp của IP phiên bản 6, trong đó bao gồm các vùng sau:
Vùng tiền tố FP: 3 bit của FP sẽ được dùng để chỉ ra kiểu của địa chỉ (là unicast, Multicast…). Giá trị 001 chỉ ra đây là địa chỉ toàn cục
Vùng TLA ID (top level aggregation) được dùng để chỉ ra mức thẩm quyền cho địa chỉ này. Các Router trên Internet sẽ duy trì các bảng cần thiết cho tất cả các giá trị TLA. Với 13 bit, vùng này có thể có đến 8.192 TLA.
Trường RES (8 bit): kiến trúc của IPv6 định nghĩa vùng dành riêng sao cho các giá trị TLA hoặc NLA có thể mở rộng. Hiện tại, giá trị này bằng 0.
NLA ID (24 bit): vùng này được dùng để chỉ ra ISP. Vùng này có thể được sắp xếp để phản ánh mối quan hệ giữa các ISP.
LSA ID (16 bit): được dùng bởi các tổ chức để tạo ra các kiến trúc địa chỉ bên trong của nó và để chỉ ra các mạng con.
Định danh giao tiếp (Interface ID - 64 bit): chỉ ra các cổng giao tiếp riêng lẻ trên một kết nối. Vùng này là tương tự như vùng host trên IPv4 nhưng nó được dẫn xuất từ dạng địa chỉ IEEE EUI 64 bit. Dạng địa chỉ này tương tự như địa chỉ MAC nhưng thêm vào một vùng 16 bit.
Thêm vào dạng địa chỉ tích hợp toàn cục nêu trên, IPv6 hỗ trợ các địa chỉ nội bộ, tương tự như các địa chỉ RFC1918. Nếu một node không được gán một địa chỉ toàn cục hay một địa chỉ cục bộ nêu trên, nó có thể được định vị bằng địa chỉ kết nối cục bộ, chỉ ra một phân đoạn mạng. Địa chỉ Unicast được sử dụng cục bộ: được gọi là địa chỉ đơn hướng dùng nội bộ, được dùng cho một tổ chức có mạng máy tính riêng (dùng cục bộ) chưa nối với mạng Internet toàn cầu hiện tại nhưng sẵn sàng nối được khi cần. Ngoài ra địa chỉ này còn được chia thành 2 loại là:
Link-Local ( nhận dạng đường kết nối cục bộ) sẽ được sử dụng ngay lần đầu khi thiết bị IPv6 bật lên. Do khả năng tự cấu hình của IPv6, nên khi thiết bị được bật lên, tự động một địa chỉ là Link-Local sẽ được gán. Chú ý là địa chỉ này không phải do người quản trị gán mà do máy tự gán để giao tiếp trong nội bộ kết nối, nghĩa là với các host có chung địa chỉ subnet.
Site-Local (nhận dạng trong phạm vi nội bộ có thể nhiều nhóm Node – Subnet): khi thấy có router tồn tại trong mạng thì máy sẽ gửi các gói tin xin phép (router solicitation) và quảng cáo (advertising) để xin router 1 định danh của subnet nhằm tạo Site-Local để sử dụng giao tiếp giữa các subnet. Chú ý là 2 địa chỉ này không được định tuyến ra Internet.
2.5. Địa chỉ Multicast của IPv6
Một địa chỉ multicast là một địa chỉ xác định một nhóm các cổng của router, thông thường trên các hệ thống đầu cuối khác nhau. Các gói tin sẽ được phân phối đến tất cả các hệ thống được chỉ ra trong địa chỉ multicast. Sử dụng địa chỉ multicast thì hiệu quả hơn địa chỉ broadcast, trong đó yêu cầu tất cả các hệ thống đầu cuối phải ngừng tất cả các việc đang xử lý. Bởi vì một địa chỉ multicast là một địa chỉ của một nhóm các máy tính, nếu một máy tính không phải là thành viên của nhóm địa chỉ này, nó sẽ loại bỏ các gói ở lớp 2. Tuy nhiên broadcast vẫn được xử lý trước khi các hệ thống xác định rằng dạng broadcast này không liên quan đến nó. Các thiết bị lớp 2 thường lan truyền các broadcast bởi vì các địa chỉ broadcast không được lưu trữ trong bảng CAM. Không giống như router (hành động mặc định của router là loại bỏ các gói tin trong đó phần địa chỉ là không biết), switch sẽ phát tán tất cả các khung tin với phần địa chỉ là không xác định ra tất cả các cổng của switch. Về mặt lý thuyết, điều này cũng đúng với các địa chỉ multicast mặc dù một vài thiết bị có các cơ chế thông minh để giới hạn các dạng truyền multicast.
IPv6 không dùng cơ chế broadcast mà chỉ dựa vào địa chỉ multicast. Mặc dù IPv4 dùng địa chỉ multicast như định nghĩa RFC2356, nó sử dụng theo một cách khác. Các địa chỉ IP phiên bản 6 có các dãy địa chỉ khác nhau. Tất cả các địa chỉ IPv6 bắt đầu với 8 bit đầu tiên gán bằng 1. Vì vậy tất cả các địa chỉ multicast sẽ bằng đầu với giá trị F. Dãy địa chỉ multicast là FF00::/8 - FFFF::/8
Giá trị octet thứ hai, theo sau octet đầu tiên, chỉ ra tầm vực và thời gian sống của địa chỉ multicast. Theo cách này, IPv6 có hàng triệu nhóm địa chỉ multicast.
2.6. Tóm tắt địa chỉ
Quá trình tóm tắt các tuyến, bất cứ khi nào có thể, là quan trọng trong Internet. Bảng định tuyến thì dễ quản lý hơn với cách hiện thực CIDR. Mặc dù tất cả các sơ đồ địa chỉ trong IPv6 cho phép cấp phát hầu như vô tận các địa chỉ, kiến trúc của IPv6 vẫn cho phép triển khai theo dạng có cấu trúc sao cho nó không bị quá tải. Như trong IPv4, các bit bên trái của địa chỉ được dùng để tóm tắt các địa chỉ mạng xuất hiện ở phía phải của cấu trúc địa chỉ. Như vậy, địa chỉ IPv4 là 140.108.128.0/17 có thể bao gồm các subnet 140.108.225.0/24. Điều này có nghĩa là bảng định tuyến có thể định tuyến đến tất cả các subnet nhưng thay vì có 128 địa chỉ subnet nằm trong bảng định tuyến, chỉ còn 1 dòng duy nhất tượng trưng cho tất cả các tuyến. Để chỉ ra một subnet nhỏ hơn, các qui luật thông thường trong định tuyến vẫn được tuân theo và gói tin được gởi tới cho router quảng bá mạng 140.108.128.0/17. Router này trong bảng định tuyến của nó có nhiều thông tin chi tiết hơn, sẽ chuyển gói cho đến khi nó đến được mạng đích.
Trong IP phiên bản 6, kiến trúc địa chỉ cho phép điều chỉnh tốt hơn dạng địa chỉ được dùng trong Internet. Địa chỉ thì rất dài và mỗi phần phục vụ một chức năng khác nhau. 48 bit đầu tiên của địa chỉ được dùng bởi IANA cho quá trình định tuyến động trong Internet để tạo ra các địa chỉ khả kết toàn cục. Ba bit đầu tiên được gán giá trị 001 để chỉ ra một địa chỉ toàn cục.
2.7. Tự động cấu hình
Các địa chỉ cục bộ hay các router kết nối trực tiếp gửi tiền tố (prefix) ra các kết nối cục bộ và ra tuyến đường mặc định. Các thông tin này được gửi đến tất cả các node trên hệ thống mạng, cho phép các host còn lại tự động cấu hình địa chỉ IPv6. Router cục bộ sẽ cung cấp 48 bit địa chỉ toàn cục và SLA hoặc các thông tin subnet đến các thiết bị đầu cuối. Các thiết bị đầu cuối chỉ cần đơn giản thêm vào địa chỉ lớp 2 của nó. Địa chỉ lớp 2 này, cùng với 16 bit địa chỉ subnet tạo thành một địa chỉ 128 bit. Khả năng gắn một thiết bị vào mà không cần bất cứ một cấu hình nào hoặc dùng DHCP sẽ cho phép các thiết bị mới thêm vào Interner, chẳng hạn như dùng điện thoại di động, dùng các thiết bị không dây và mạng Internet trở thành dạng có thể chạy ngay khi dùng (plug-and-play).
2.8. Tái cấu hình địa chỉ
Khả năng kết nối đến các thiết bị ở xa một cách tự động cho phép đơn giản hóa nhiều tác vụ trước đây là các cơn ác mộng cho các nhà quản trị. Tính năng tự động cấu hình của IPv6 cho phép các router cung cấp tất cả các thông tin cần thiết đến tất cả các host trên mạng của nó. Điều này có nghĩa là các thiết bị có thể cấu hình lại địa chỉ của nó dể dàng hơn. Trong IPv6, các thay đổi này là trong suốt đối với người dùng cuối.
2.9. Header đơn giản và hiệu quả
Phần header của IPv6 đã được đơn giản hóa để tăng tốc độ xử lý và tăng hiệu quả cho router. Các cải tiến bao gồm:
Có ít vùng hơn trong header.
Các vùng bao gồm 64 bit.
Không còn phần kiểm tra lỗi (trường checksum).
Do có ít vùng hơn, quá trình xử lý cũng ngắn hơn. Bộ nhớ dùng hiệu quả hơn với các trường 64 bit. Điều này cho phép quá trình tìm kiếm trở nên rất nhanh bởi vì các bộ xử lý ngày nay cũng là các bộ xử lý 64 bit. Trở ngại duy nhất là việc sử dụng địa chỉ 128 bit, lớn hơn kích thước một từ hiện hành. Việc loại bỏ phần kiểm tra lỗi cũng giảm thiểu thời gian xử lý nhiều hơn nữa.
2.10. Bảo mật
Với các kết nối trực tiếp thông qua các không gian địa chỉ rộng lớn, vấn đề bảo mật là một chọn lựa nhiều thực tế cho IPv6. Bởi vì nhu cầu dùng tường lửa và các quá trình NAT giữa các thiết bị đầu cuối giảm, các giải pháp về bảo mật có thể được thực hiện bằng cách mã hóa giữa các hệ thống. Mặc dù IPSec đã sẵn có trong IPv4, nó đã trở thành một thành phần trong IPv6. Việc sử dụng các thành phần mở rộng cho phép một giao thức cung cấp giải pháp đầu cuối - đầu cuối.
2.11. Tính cơ động
Địa chỉ IP phiên bản 6 được thiết kế với tính cơ động được tích hợp vào trong Mobile IP. Mobile IP cho phép các hệ thống đầu cuối thay đổi vị trí mà không mất các kết nối. Đặc điểm này rất cần thiết cho những sản phẩm không dây chẳng hạn như điện thoại IP và các hệ thống GPS trong xe hơi. Định dạng phần header cho phép các thiết bị đầu cuối thay đổi địa chỉ IP bằng cách dùng một địa chỉ gốc như là nguồn của gói tin. Địa chỉ gốc này là ổn định, cho phép các địa chỉ duy trì tính cơ động.
3. Chuyển đổi IPv4 lên IPv6
Chìa khóa cho thành công của IPv6 không chỉ nằm trong chức năng của nó mà còn trong khả năng chuyển đổi các hệ thống mạng hiện tại sang một giao thức mới. Điều này đòi hỏi nhiều thứ, bao gồm địa chỉ mới, cài đặt giao thức mới, các ứng dụng có thể giao tiếp với giao thức mới.
Lý thuyết cho vấn đề này là bạn nên bắt đầu triển khai IPv6 ở ngoài rìa của mạng và di chuyển dần vào lớp lõi theo một cách chậm, kiểm soát được. Điều này có nghĩa là một trong ba chọn lựa trên phải xảy ra: các lưu lượng của IPv6 cần phải được mang thông qua các mạng IPv4 sao cho IPv6 cần thiết chạy trên toàn mạng. Điều này có nghĩa là cả IPv4 và IPv6 có thể cùng tồn tại hay một giao thức có thể cần được chuyển đổi sang một giao thức khác.
IP phiên bản 6 tạo đường hầm qua IPv4: Cơ chế này được thực hiện đóng gói một gói tin IPv6 theo chuẩn IPv4 để có thể mang gói tin đó trên nền kiến trúc IPv4. Trong cơ chế tạo đường hầm (tunneling), các node IPv6/IPv4 sẽ thực hiện việc đóng gói các dữ liệu IPv6 vào thành phần dữ liệu trong dữ liệu IPv4. Do đó gói tin này sẽ có thể được truyền qua nền IPv4.
Các kết nối có thể áp dụng cơ chế đường hầm
Router đến Router
Host đến Router
Host đến Router
Trong 2 phương thức router đến router và host đến router, gói tin IPv6 được tạo đường hâm đến địa chỉ cuối cùng là tại router. Do đó, điểm cuối cùng của quá trình tạo đường hầm là các router trung gian. Các router này phải có nhiệm vụ “mở gói” tin được tạo đường hầm và chuyển nó tới đích cuối cùng. Địa chỉ trong gói tin IPv6 được tạo đường hầm, không hỗ trợ địa chỉ IPv4 của điểm cuối cùng của đường hầm. Thay vào đó thì địa chỉ điểm cuối cùng đường hầm phải được quyết định từ các thông tin cấu hình trên node thực hiện đóng gói. Theo cơ chế xác định địa chỉ cuối như vậy, ta gọi là “tunnel configured”. Có nghĩa là địa chỉ điểm cuối cùng của quá trình tạo đường hầm đã được khai báo trước.
Gói tin IPv6 được tạo đường hầm trên tất cả hành trình của chúng cho tới khi đến được đích theo 2 phương thức sau: host đến host và router đến host . Theo cơ chế này, các node cuối cùng được xác định địa chỉ đích của gói tin IPv6. Vì vậy, điểm cuối cùng của đường hầm có thể quyết định từ địa chỉ đích của gói tin IPv6. Nếu địa chỉ này là một địa chỉ tương đương với địa chỉ IPv4, theo cấu trúc của địa chỉ này thì 32 bit thấp sẽ được lấy làm địa chỉ của các node đích, và được sử dụng làm địa chỉ đích của các node cuối cùng được tạo đường hầm. Kỹ thuật này tránh được việc khai báo trước địa chỉ đích của các node cuối cùng được tạo đường hầm, gọi là tự động tạo đường hầm” (automatic tunneling).
Cả 2 kỹ thuật tự động và cấu hình khác nhau cơ bản nhất là việc quyết định địa chỉ cuối của quá trình tạo đường hầm. Còn lại về cơ bản hoạt động của 2 cơ chế này là giống nhau.
Điểm khởi tạo đường hầm (điểm đóng gói tin) tạo một header của IPv4 đóng gói và truyền gói tin đã được đóng gói.
Các node kết thúc của quá trình tạo đường hầm (điểm mở gói tin) nhận đuợc gói tin đóng gói, xóa bỏ header của IPv4, sửa đổi một số trường của header của IPv6, và xử lý phần dữ liệu này như một gói tin IPv6.
Các 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 tạo đường hầm, ví dụ các tham số MTU để xử lý các gói tin IPv6 bắt đầu thực hiện tạo đường hầm. Vì số lượng các tiến trình tạo đường hầm 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 bộ đệm cache và được loại bỏ khi cần thiết.
4. Các giao thức định tuyến cho IPv6
Các giao thức định tuyến hỗ trợ IPv6 là RIPng, OSPF, IS-IS, và BGPv4. Các giao thức này được hỗ trợ trong IOSv12.2T. Giao thức RIPng là một giao thức nội và được hỗ trợ bởi IOS của Cisco. Chức năng của nó tương đương với RIPv2. RIPng là một giao thức nhóm vector khoảng cách (distance vector) nên có sử dụng phương pháp cắt dọc (split horizon) và đánh dấu tuyến xấu (poison reverse), số lượng chặng tối đa (maximum hop count). Giao thức BGPv4+ là một giao thức ngoại vùng. Nó được dùng để kết nối các AS khác nhau trên Internet.
RIPng có các đặc điểm sau:
Dùng địa chỉ multicast cho các gói tin cập nhật định tuyến.
IPv6 dùng danh sách tiền tố.
Các gói tin cập nhật định tuyến được gửi đi sẽ đóng gói trong IPv6.