DHCPv6

Dynamic Host Configuration Protocol version 6 (DHCPv6 - giao thức cấu hình động máy chủ phiên bản 6) 
là một Giao thức truyền thông để cấu hình các host IPv6 với địa chỉ IPv6, tiền tố IP và các dữ liệu cấu hình khác cần thiết để hoạt động trong mạng IPv6. Đây là phiên bản IPv6 tương đương với Dynamic Host Configuration Protocol (DHCP - giao thức cấu hình động máy chủ) của IPv4.

Host IPv6 có thể tự động tạo ra các địa chỉ IP nội bộ bằng cách sử dụng cấu hình tự động địa chỉ không trạng thái (stateless address autoconfiguration: SLAAC) hoặc nó có thể được cấp một địa chỉ và những thông số hoạt động với DHCPv6. Đây là dạng thức cấu hình tự động địa chỉ có trạng thái (stateful autoconfiguration).

Host IPv6 sử dụng cấu hình tự động không trạng thái có thể yêu cầu thông tin khác với địa chỉ IP hoặc tuyến đường. DHCPv6 có thể được sử dụng để thu thập thông tin này, mặc dù nó không được sử dụng để cấu hình địa chỉ IP. DHCPv6 không cần thiết để cấu hình host với các địa chỉ của các máy chủ DNS, vì chúng có thể được cấu hình sử dụng Neighbor Discovery Protocol, đây cũng là cơ chế tự động cấu hình không trạng thái.

Nhiều bộ định tuyến IPv6, ví dụ như routers cho mạng trong nhà (HAN), phải được định cấu hình tự động mà không cần sự can thiệp của người vận hành. Các bộ định tuyến như vậy không chỉ yêu cầu một địa chỉ IPv6 để sử dụng trong giao tiếp với các bộ định tuyến thượng nguồn (upstream router) mà còn cần một tiền tố IPv6 để sử dụng trong việc cấu hình các thiết bị ở phía hạ lưu (downstream) của router. DHCPv6 prefix delegation cung cấp một cơ chế để cấu hình các router như vậy.

==Các thành phần của DHCPv6==
Giống như DHCP cho IPv4, các thành phần của DHCPv6 cũng bao gồm:
- DHCPv6 Client: Gửi yêu cầu cung cấp các thông tin cấu hình.
- DHCPv6 Server: Cung cấp các thông tin cấu hình.
- DHCP Relay Agent: Điểm chuyển tiếp các gói tin giữa client và server, khi chúng không thuộc cùng một vùng mạng.

==Cấu hình==
Một DHCPv6 client sẽ thực hiện chế độ cấu hình tự động bằng cách sử dụng DHCPv6 dựa trên các cờ (flag) trong gói tin quảng bá của router (RA).

DHCPv6 có thể được cấu hình theo 2 dạng: 
- DHCPv6 không trạng thái: Trong trường hợp này, cờ O (O = Other Configuration) được thiết lập trong gói tin quảng bá của router (Router Advertisement), chỉ dẫn nút tự tạo ra địa chỉ IPv6 cho nó, chỉ sử dụng DHCPv6 để lấy các thông số cấu hình khác có sẵn (ví dụ: địa chỉ máy chủ DNS, DNS-Suffix, NTP-Server...)
- DHCPv6 có trạng thái: Hoạt động tương đương với hoạt động của một nút IPv4 sử dụng DHCPv4 để nhận toàn bộ cấu hình IP của nó. Trong trường hợp này, M flag (M = Managed Configuration) được thiết lập ctrong gói tin quảng bá của router, nó chỉ thị cho nút lấy một địa chỉ IPv6 từ máy chủ DHCPv6 bên cạnh những thông số khác.

== Nguyên lý hoạt động của DHCPv6==
===Chế độ DHCPv6 có trạng thái===
Chế độ này có được khi cả hai cờ “M” và cờ “O” trong gói tin quảng bá đều được thiết lập là 1. Cách thức trao đổi gói tin DHCPv6 như sau:

1. Client sẽ gửi một gói tin multicast “Solicit” để tìm kiếm máy chủ DHCPv6 và yêu cầu cấp phát.

2. Bất kỳ máy chủ nào đáp ứng yêu cầu của client có thể hồi đáp với một gói tin “Advertise”.

3. Client lựa chọn một trong các máy chủ và gửi một gói tin “Request” để yêu cầu cấp phát địa chỉ IPv6 và các thông số khác.

4. Máy chủ đáp ứng với một gói tin “Reply”, bao gồm địa chỉ và các thông số cấu hình để hoàn tất quá trình cấp phát.

Trong trường hợp Rapid Commit có thể thực hiện nhanh hơn với chỉ hai gói tin Solicit và Reply.

Trong trường hợp giữa Client và Server còn có thêm điểm chuyển tiếp, thực hiện trao đổi gói tin có thêm các bước:
- Relay-Forw: Dùng để chuyển tiếp các gói tin
Solicit và Request từ client đến server.
- Relay-Reply: Dùng để chuyển tiếp các gói tin Advertise và Reply từ server đến client.

===Chế độ Stateless DHCPv6 không trạng thái===
Chế độ này được thiết lập khi cờ “M” được thiết lập 0 và cờ “O” được thiết lập 1 trong gói tin quảng
bá.Trong mạng IPv6, router được cấu hình để cung cấp các địa chỉ prefix cho các máy trạm IPv6, vì vậy DHCPv6 chỉ dùng để cấp phát các thông tin cấu hình khác như: máy chủ DNS, tên miền và các cấu hình khác mà trong gói tin quảng bá của router không có.
Vì các lý do này, chế độ Stateless DHCPv6 chỉ có hai dạng gói tin:

- Information-Request: Gửi bởi client để yêu cầu các thông số cấu hình khác từ máy chủ DHCP
(không phải địa chỉ IP).
- Reply: Gửi bởi server cho client, bao gồm các thông tin về thông số cấu hình được yêu cầu cấp phát.

==Thông số hoạt động của giao thức DHCPv6==
Các cổng hoạt động:
- UDP port 546: Các client thực hiện lắng nghe (listen) gói tin DHCP.
- UDP port 547: Các máy chủ và điểm chuyển tiếp lắng nghe (listen) gói tin DHCP.
Các địa chỉ IPv6 multicast được sử dụng với DHCPv6:
- “FF02::1:2”: Dùng cho tất cả điểm chuyển tiếp và máy chủ DHCPv6.
- “FF05::1:3”: Dùng cho tất cả các máy chủ DHCPv6.

Cách thức nhận biết DHCPv6 Client:
- DHCPv6 sử dụng DUID (DHCP Unique Identifier) để xác định tính duy nhất cho các DHCPv6 Client. Mỗi DHCPv6 client sẽ có một DUID, được sử dụng để xác định các thiết bị khi trao đổi gói tin DHCPv6.

==Xem thêm==
- DHCP