Loading...

Bài 11: Địa chỉ IPv6 — Cấu trúc, cách rút gọn, các loại địa chỉ

💡 Liên hệ thực tế

Việt Nam từng dùng hệ thống số điện thoại 7 số, rồi 8 số, rồi 10 số — mỗi lần dân số và số lượng thuê bao tăng lên, hệ thống cũ không đủ chỗ chứa, buộc phải mở rộng số chữ số. Địa chỉ IPv4 (32-bit, khoảng 4.3 tỷ địa chỉ) đang gặp đúng vấn đề đó: với hàng chục tỷ thiết bị IoT, điện thoại, laptop trên toàn cầu, 4.3 tỷ địa chỉ đã cạn kiệt từ lâu.

🌐 Giải pháp: IPv6 — hệ thống địa chỉ mới với 128-bit, cho ra một con số khổng lồ tới mức đủ cấp cho mỗi hạt cát trên Trái Đất một địa chỉ riêng mà vẫn còn dư. Anh Nam bên VNExperts hiện đã bắt đầu tư vấn triển khai IPv6 song song IPv4 (gọi là "dual-stack") cho nhiều khách hàng doanh nghiệp, chuẩn bị cho tương lai gần khi IPv4 không còn đủ dùng.


📘 Kiến thức cốt lõi

Cấu trúc địa chỉ IPv6: gồm 128 bit, chia thành 8 nhóm, mỗi nhóm 16-bit, viết dưới dạng số thập lục phân (hexadecimal), cách nhau bởi dấu hai chấm :.

Ví dụ đầy đủ:
2001:0db8:0000:0000:0000:ff00:0042:8329

So với IPv4 (192.168.1.10 — 4 nhóm, dạng thập phân), IPv6 dài hơn hẳn — nhưng có 2 quy tắc rút gọn giúp viết ngắn lại rất nhiều:

📐 Quy tắc rút gọn 1 — Bỏ số 0 dẫn đầu trong mỗi nhóm: 0db8db8 | 00000 | 004242

📐 Quy tắc rút gọn 2 — Thay 1 dãy nhóm toàn số 0 liên tiếp bằng dấu :: (chỉ được dùng 1 lần duy nhất trong 1 địa chỉ):

Trước rút gọn: 2001:0db8:0000:0000:0000:ff00:0042:8329
Sau quy tắc 1: 2001:db8:0:0:0:ff00:42:8329
Sau quy tắc 2: 2001:db8::ff00:42:8329

Cách rút gọn địa chỉ IPv6 qua 2 bước Cách rút gọn địa chỉ IPv6 qua 2 bước 2001:0db8:0000:0000:0000:ff00:0042:8329 Đầy đủ 2001:db8:0:0:0:ff00:42:8329 Bỏ số 0 dẫn đầu 2001:db8::ff00:42:8329 Thay dãy số 0 bằng ::

⚠️ Lỗi thường gặp nhất: dùng :: hai lần trong cùng 1 địa chỉ. Ví dụ 2001::db8::42sai — vì máy tính không biết mỗi cụm :: đại diện cho bao nhiêu nhóm số 0, gây ra địa chỉ mơ hồ, không xác định được.

🏷️ 3 loại địa chỉ IPv6 chính (thay thế khái niệm Broadcast của IPv4):

LoạiÝ nghĩaGhi chú
Unicast Gửi đến 1 thiết bị cụ thể Tương đương IP thường của IPv4
Multicast Gửi đến 1 nhóm thiết bị đã đăng ký nhận Giống Class D của IPv4
Anycast Gửi đến thiết bị gần nhất trong nhóm nhiều thiết bị giống nhau Không tồn tại khái niệm tương đương ở IPv4

🌍 Ví dụ thực tế dễ hình dung nhất về Anycast: hệ thống DNS toàn cầu và CDN (Cloudflare, Google DNS). Google DNS (8.8.8.8) có hàng trăm server đặt rải rác khắp thế giới, nhưng tất cả dùng chung 1 địa chỉ IP duy nhất. Khi bạn ở Việt Nam gõ 8.8.8.8, yêu cầu của bạn tự động được định tuyến đến server Google gần Việt Nam nhất (có thể ở Singapore hoặc Hong Kong) — trong khi người dùng ở Mỹ gõ cùng địa chỉ đó lại được dẫn đến server ở Mỹ. Đây chính là Anycast: cùng 1 địa chỉ, nhưng "ai gần thì người đó phục vụ" — giúp giảm độ trễ và phân tải rất hiệu quả trên quy mô toàn cầu.

💬 Mẹo phân biệt nhanh: Unicast = "gọi đích danh 1 người". Multicast = "gọi cả nhóm đã đăng ký". Anycast = "gọi vào tổng đài, ai gần nhất bắt máy".

💡 IPv6 không có địa chỉ Broadcast — đây là điểm khác biệt lớn so với IPv4. Multicast đã đảm nhiệm tốt vai trò "gửi cho nhiều máy cùng lúc" mà không cần "hét cho tất cả" như Broadcast, giúp mạng hiệu quả hơn.

📏 Một điều cần lưu ý: IPv6 cũng dùng ký hiệu /số giống CIDR ở IPv4 — nhưng số này đếm trên 128-bit chứ không phải 32-bit. Ví dụ fe80::/10 nghĩa là: 10 bit đầu tiên của địa chỉ được cố định là 1111111010 (dạng nhị phân), dùng để nhận diện đây là một địa chỉ Link-Local — 118 bit còn lại có thể thay đổi tùy theo thiết bị. Cách hiểu hoàn toàn giống ký hiệu /24 bạn đã học ở IPv4 (Bài 8), chỉ khác ở chỗ đây là một dải/phạm vi địa chỉ (network prefix) được IANA quy định sẵn cho từng mục đích, chứ không phải subnet mask do bạn tự chia.

🔒 Địa chỉ IPv6 đặc biệt cần nhớ:

Địa chỉÝ nghĩa
::1 Loopback — tương đương 127.0.0.1 của IPv4
fe80::/10 Link-Local — tự động sinh ra trên mọi interface, chỉ dùng trong mạng cục bộ
:: Địa chỉ "không xác định", tương đương 0.0.0.0 của IPv4

🔎 NDP (Neighbor Discovery Protocol) — Link-Local dùng để làm gì trong thực tế?

Nhắc lại Bài 4, để gửi được dữ liệu trong mạng LAN, thiết bị cần biết địa chỉ MAC (địa chỉ vật lý) của thiết bị đích, không chỉ địa chỉ IP. Với IPv6, việc "tìm MAC ứng với 1 địa chỉ IP" — cùng nhiều việc khác như tự tìm Router, tự cấu hình địa chỉ — được thực hiện bởi giao thức NDP, hoạt động dựa trên ICMPv6 và luôn dùng địa chỉ Link-Local (fe80::/10) vừa học ở trên để trao đổi.

(Khi học đến Bài 16 nói về ARP bên IPv4, bạn có thể quay lại so sánh với NDP đã học ở đây — 2 giao thức giải quyết chung 1 bài toán nhưng theo 2 cách khác nhau.)

NDP gồm 4 loại message chính:

MessageVai tròTương đương bên IPv4
RS (Router Solicitation) Host mới bật lên, chủ động hỏi "có Router nào ở đây không?" Không có tương đương trực tiếp
RA (Router Advertisement) Router trả lời/quảng bá định kỳ: prefix mạng, Default Gateway, hỗ trợ tự cấu hình địa chỉ (SLAAC) Gần giống DHCP, nhưng chủ động phát ra từ Router
NS (Neighbor Solicitation) Hỏi địa chỉ MAC ứng với 1 địa chỉ IPv6 cụ thể trong mạng LAN ARP Request
NA (Neighbor Advertisement) Trả lời NS, cung cấp địa chỉ MAC ARP Reply

💡 Đây chính là lý do vì sao mọi interface IPv6 bắt buộc phải có địa chỉ Link-Local, kể cả khi không cấu hình IPv6 thủ công — không có Link-Local thì NDP không có địa chỉ nguồn để gửi RS/RA/NS/NA, và thiết bị sẽ không thể tự động tìm Router hay tìm MAC của thiết bị khác trong cùng mạng.


💬 Hỏi & Đáp nhanh

❓ Vì sao dấu :: chỉ được dùng 1 lần trong 1 địa chỉ, không được dùng nhiều lần?

✅ Vì nếu dùng 2 lần, máy tính không thể xác định chính xác mỗi cụm :: đại diện cho bao nhiêu nhóm số 0 — gây ra địa chỉ mơ hồ, không giải mã lại được chính xác 128-bit ban đầu. Quy tắc chỉ cho phép 1 lần để đảm bảo mỗi địa chỉ rút gọn luôn có duy nhất 1 cách hiểu.

❓ IPv6 có thay thế hoàn toàn IPv4 ngay lập tức không?

❌ Không — quá trình chuyển đổi diễn ra dần dần qua nhiều năm. Hiện tại phần lớn mạng doanh nghiệp và ISP đang chạy dual-stack (chạy song song cả IPv4 và IPv6) để đảm bảo tương thích ngược, trong lúc chờ hệ sinh thái IPv6 hoàn thiện hơn.

❓ Vì sao fe80::/10 lại có /10 — con số này có liên quan gì đến subnet mask không?

✅ Có liên quan về mặt ký hiệu nhưng khác về bản chất sử dụng: /10 vẫn đếm số bit cố định giống CIDR, nhưng ở đây fe80::/10dải địa chỉ được quy định sẵn để nhận diện loại Link-Local (giống như biển số xe được cấp theo tỉnh — 10 bit đầu là "mã tỉnh" cố định, phần còn lại mỗi xe mỗi khác). Khi bạn tự subnetting IPv6 để chia mạng nội bộ, con số sau dấu / mới là subnet mask do bạn tự quyết định — bài học IPv6 Subnetting tiếp theo sẽ đi sâu vào việc này.

❓ Địa chỉ Link-Local (fe80::/10) dùng để làm gì trong thực tế?

✅ Mỗi khi một interface được bật lên (dù chưa cấu hình IPv6 thủ công), nó tự động sinh ra một địa chỉ Link-Local để giao tiếp với các thiết bị khác trong cùng mạng cục bộ — ví dụ dùng trong các giao thức định tuyến IPv6 (OSPFv3) để trao đổi thông tin giữa các router lân cận mà không cần cấu hình IP thủ công.

❓ NDP có làm được nhiều việc hơn so với việc chỉ tìm MAC không?

✅ Có — NDP làm được nhiều hơn thế: ngoài việc tìm MAC (qua NS/NA), NDP còn giúp host tự động tìm Router và tự cấu hình địa chỉ IPv6 (qua RS/RA, cơ chế gọi là SLAAC) mà hoàn toàn không cần DHCP. Đây là điểm IPv6 làm tốt hơn hẳn IPv4 — một thiết bị mới cắm vào mạng có thể tự có địa chỉ IPv6 hợp lệ và biết luôn Default Gateway, chỉ nhờ NDP.


📝 Bài tập đánh giá

Câu 1: Địa chỉ IPv6 2001:0db8:0000:0000:0000:0000:0000:0001 sau khi rút gọn đúng quy tắc sẽ là gì?

  • A. 2001:db8::1
  • B. 2001::db8::1
  • C. 2001:0db8:0:1
  • D. 2001-db8-1

Câu 2: Loại địa chỉ IPv6 nào dùng để gửi dữ liệu đến thiết bị gần nhất trong một nhóm các thiết bị giống nhau?

  • A. Unicast
  • B. Multicast
  • C. Anycast
  • D. Broadcast

Câu 3: Trong NDP, message nào đảm nhiệm vai trò "hỏi địa chỉ MAC ứng với 1 địa chỉ IPv6 cụ thể" trong mạng LAN?

  • A. RS (Router Solicitation)
  • B. RA (Router Advertisement)
  • C. NS (Neighbor Solicitation)
  • D. NA (Neighbor Advertisement)

👉 Đáp án:

Câu 1: A — Bỏ số 0 dẫn đầu và thay dãy nhóm toàn số 0 liên tiếp (6 nhóm 0000) bằng :: một lần duy nhất, kết quả là 2001:db8::1.

Câu 2: C — Anycast gửi đến thiết bị gần nhất trong nhóm nhiều thiết bị giống nhau — đây là loại địa chỉ mới, không có khái niệm tương đương ở IPv4.

Câu 3: C — NS dùng để hỏi địa chỉ MAC ứng với 1 địa chỉ IPv6 cụ thể trong mạng LAN; NA là message phản hồi lại, cung cấp địa chỉ MAC đó.


📚 Bài viết thuộc khóa học CCNA của VNExperts

🧭 Điều hướng

⬅️ Bài trước🏠 Mục lục khóa họcBài kế tiếp ➡️
Bài 10: VLSM Mục lục khóa học CCNA Bài 12: IPv6 Subnetting cơ bản