Tác giả:
Trần Lâm Đăng Khoa
Trần Lâm Đăng Khoa
ĐẶT TÊN KHI KHÔNG CÓ MÁY CHỦ DNS
1. Không gian tên Zeroconf:
- Để đặt tên cho các thiết bị tham gia vào mạng cục bộ. Zeroconf sử dụng công nghệ của DNS để đặt tên cho các thiết bị trong mạng. Điểm khác biệc chủ yếu giữa các thiết bị đặt tên bằng cơ chế của Zeroconf và các thiết bị đặt tên bằng DNS server là trong mạng Zeroconf có thể có hoặc không có sự tồn tại của máy chủ DNS. Khi máy chủ DNS không tồn tại thì các thiết bị vẫn hoạt động tốt và vẫn lấy được tên tham chiếu.
1.1 Miền local:
- Để phân biệt các tên miền cục bộ so với các tên miền đã tồn tại khác, Zeroconf cung cấp một tên miền cấp cao giả có tên là .local. Giống như các giá trị địa chỉ trong miền 169.254 chỉ là các địa chỉ cục bộ và không phải là địa chỉ duy nhất trên thế giới các tên miền thuộc miền .local cũng chỉ mang ý nghĩa cục bộ. Điểm thuận lợi của các tên miền này là không cần phải có người đứng ra cấp quyền và không phải trả tiền để có thể sử dụng chúng. Tuy nhiên, cũng chính vì điều này mà chúng ta cũng không có quyền chiếm giữ một tên nào mà chúng ta thích và không cho người khác sử dụng nó, nhưng nó cũng bao gồm một vài quy tắc cho phép các thiết bị phát hiện ra sự xung đột khi mà có hai thiết bị trùng tên tại cùng một thời điểm. Quy tắc đặt tên chính là chọn một tên sao cho nó có thể gợi nhớ đến chức năng của các thiết bị trong mạng.- Cơ chế tìm kiếm các tên trong nhóm .local luôn là multicast. Còn trong cấu trúc chuẩn của DNS. Các tên luôn được truy vấn bằng các gói tin unicast gửi trực tiếp đến máy chủ DNS. Vào một thời điểm nào nó, nếu máy chủ DNS hư hoặc không thể kết nối được đến Internet để truy vấn một địa chỉ nằm ngay trong mạng Ethernet của bạn. Lúc này người sử dụng có thể chọn cơ chế multicast để truy vấn trực tiếp đến các thiết bị có tên tương ứng. Các thiết bị giao tiếp ngang hàng với nhau và điểm đặt biệt là vẫn có thể truy cập đến một thiết bị dựa trên tên mà máy chủ DNS đã cung cấp cho nó trước đó.
1.2 Multicast DNS:
- Multicast DNS (mDNS) là một dịch vụ DNS chạy trên từng máy, đảm bảo cho quá trình phân giải tên trong mạng cục bộ. Các yêu cầu được gửi đến một địa chỉ Multicast và nếu thiết bị nào có tên trùng với tên yêu cầu thì sẽ trả lời thông tin phản hồi lại cho phía gửi.- Bất cứ truy vấn nào kết thúc bằng .local đều gửi đến địa chỉ 224.0.0.251 là địa chỉ IPv4 dành riêng cho multicast DNS. Trong IPv6 địa chỉ multicast là FF02::FB .Các khái niệm về phân giải địa chỉ là như nhau trong các câu truy vấn mDNS kể cả trong IPv4 hay IPv6.
- Bởi vì các địa chỉ 224.0.0.251 và FF02::FB là các địa chỉ dành riêng cho liên kết cục bộ nên nó sẽ không bao giờ được gửi ra ngoài phạm vi của một mạng liên kết nội hoặc gửi từ bên ngoài vào trong mạng này.
- Các câu truy vấn Multicast DNS bao gồm ba loại: một câu truy vấn có một câu trả lời, một câu truy vấn có nhiều câu trả lời và câu truy vấn ‘ongoing’.
- Câu truy vấn thuộc loại đầu tiên thực hiện như sau: DNS client thực hiện truy vấn thông qua cổng 5353, nếu tên kết thúc bằng local thì địa chỉ của DNS server được đặt là 224.0.0.251. Khi có thông tin trả lời đến DNS client xử lí nó như là các yêu cầu DNS thông thường. Nếu không có câu trả lời thì DNS client gửi yêu cầu truy vấn thêm vài lần khác như là Unicast DNS thông thường.
- Dạng thứ hai một câu truy vấn có nhiều hơn một câu trả lời. DNS client gửi yêu cầu đến 224.0.0.251. Khi DNS client gửi truy vấn đi thì nó nhận đươc nhiều hơn một câu trả lời. Lúc này DNS client phải chờ trong một khoảng thời gian để có thể nhận hết tất cả các gói tin đến. Bởi vì DNS client phải gửi lại câu truy vấn nhiều lần nêu sẽ có trường hợp cùng một nút mạng đáp ứng nhiều hơn một lần. Để tránh trường hợp này, mỗi nút mạng có một danh sách gọi là Known Answer. Nếu một nút mạng đã trả lời câu truy vấn đến từ địa chỉ nào đó, nó sẽ đánh dấu lại để lần sau không gửi tiếp thông tin này đi nữa.
- Loại thứ ba là các câu truy vấn liên tục.Nếu muốn xem danh sách các thiết bị trong mạng, chúng ta thực hiện truy vấn đến mDNS . Sau khi có các kết quả trả về trong một khoảng thời gian nhất định, có thể sau khoảng thời gian này, danh sách này đã không còn phản ánh được trạng thái hiện tại.Vì vậy việc duy trì thông tin cập nhật bằng cách gửi tuần tự các yêu cầu truy vấn là cần thiết. Mỗi record được trả về có thời gian tồn tại nhất định trước khi bị xóa khỏi cache của client và thực hiện truy vấn lại.
- Do các câu truy vần đến và đi trong cùng một địa chỉ multicast nên khi mạng có sự thay đổi. một đối tượng trong mạng gửi câu truy vần đến địa chỉ multicast và nhận được các câu trả lời thì các thiết bị khác tuy rằng không gửi câu truy vấn nhưng vẫn có thể nhận được câu trả lời và cập nhật lại trạng thái của mạng. Điều này làm giảm băng thông cần thiết để phục vụ cho multicast DNS và tăng khả năng cập nhật thông tin của các thiết bị.
(còn tiếp)
Comment