Quản Trị Mạng - Trong bài viết dưới đây, chúng tôi sẽ hướng dẫn các bạn cách truy cập máy tính từ xa sử dụng DNS trên thiết bị router đã được kích hoạt tính năng DD-WRT. Cách đây không lâu, chúng tôi đã giới thiệu về tính năng DHCP tĩnh trên router với DD-WRT và cách làm thế nào để hệ thống client luôn luôn nhận được địa chỉ IP giống nhau từ router.
Đó là trường hợp chúng ta muốn truy cập tới 1 máy tính bất kỳ trong hệ thống khi biết địa chỉ IP cụ thể, nhưng trên thực tế, không phải lúc nào người sử dụng cũng có thể nhớ được hết dãy địa chỉ IP này. Bên cạnh đó, thời điểm khái niệm UPnP xuất hiện, sự bất tiện khi sử dụng địa chỉ IP ngày càng lớn. Và đây cũng là lý do DNS xuất hiện.
Vấn đề là khi người sử dụng cố gắng kết nối từ 1 máy tính hoặc thiết bị ngoại vi trên hệ thống mạng bằng địa chỉ IP (ví dụ với lệnh ping), nhưng cách này chỉ hoạt động trong một vài trường hợp nhất định. Vậy vấn đề xảy ra là như thế nào? Và cách giải quyết như thế nào?
Về mặt kỹ thuật, thiết bị đang được sử dụng không biết làm cách nào để chuyển từ giá trị tên máy thông thường sang địa chỉ IP, bởi vì còn thiếu mất yếu tố quan trọng nhất, đó là DNS suffix. Khi quá trình này yêu cầu 1 máy tính bất kỳ chuyển từ giá trị tên sang địa chỉ IP, thì sẽ có 2 cách để giải quyết, cách cơ bản nhất là gửi yêu cầu qua server Domain Naming System (DNS). Tuy nhiên, để làm được điều này thì hệ thống client phải giải quyết hết các thông tin trong phần Fully Qualified Domain Name (FQDN).
1 thành phần FQDN có chứa giá trị hostname như mydesktop và phần DNS, ví dụ như geek.lan. Cụ thể, trong bài thử nghiệm của chúng ta, phần FQDN của host sẽ là mydesktop.geek.lan và mylaptop.geek.lan. Khi 1 máy trong client không có yếu tố DNS, thì tất nhiên sẽ không thể yêu cầu DNS về 1 giá trị tên được chỉ định rõ ràng. Do vậy, khi chúng ta muốn truy cập tới host bằng phần tên tương ứng, thì phải thực hiện lệnh ping trước (ví dụ ping mydesktop.geek.lan). Tuy nhiên, nếu DNS suffix đã được khởi tạo trước bằng cách nào đó, thì hệ thống client cũng sẽ tự động chèn thêm các yêu cầu tới hostname cũng như server DNS. Còn nếu DNS suffix chưa được tạo, thì clent sẽ cố gắng tự tìm giá trị tên tương ứng bằng cách sử dụng DNS broadcast.
Do vậy, cách giải quyết duy nhất là thiết lập, khởi tạo giá trị DNS suffix trên DHCP của router. Quá trình này sẽ khiến cho router có thêm dịch vụ server DNS động, và từng máy tính trong hệ thống client có thể tự gán vào danh sách đó, đồng thời phân bổ DNS suffix cũng như từng phần của DHCP tới client. Để thực hiện, các bạn mở trang quản trị, cấu hình chính của router:
Chọn mục Services, thay đổi giá trị Used Domain thành LAN & WLAN, trong phần LAN Domain các bạn điền tên domain (trong bài thử nghiệm này là geek.lan). Trong khi sử dụng DHCP tĩnh thì nên xác định rõ phần hostname để trùng với tên của máy tính hoặc thiết bị trong hệ điều hành, nhấn Save và Apply Settings.
Tuy nhiên, có 1 ngoại lệ đối với trường hợp này là nếu chúng ta sử dụng .local thì hệ điều hành Windows sẽ giải quyết khá gọn gàng, còn Linux sẽ gán những phần thông tin này theo chuẩn mDNS – Multicast DNS và bỏ qua toàn bộ tín hiệu server DNS. Và để kiểm tra kết quả của quá trình này, các bạn mở Command Prompt và gõ lệnh ipconfig, chúng ta sẽ thấy phần DNS suffix không hiển thị như hình dưới:
Gõ ipconfig /release và sau đó là ipconfig /renew, kết quả hiển thị sẽ như sau:
Tiếp tục thực hiện quá trình này trên từng máy tính client, và chỉ sử dụng hostname. Chúng ta sẽ thấy rằng hệ thống client này không tự động hiểu được tên đầy đủ của thiết bị đang được ping tới:
Tuy nhiên, nếu các bạn gặp phải một số vấn đề khá phức tạp và khó hiểu thì hãy kiểm tra lại một số điểm như:
- Xóa bộ nhớ đệm DNS: vì phần DNS cache có thể làm tràn bộ nhớ đệm cần thiết, và sẽ gây nhầm lẫn trong quá trình chuyển đổi DNS. Với Windows thì sẽ được giải quyết bằng ipconfig /flushdns
- Đảm bảo rằng hệ thống client đang sử dụng router cũng như DNS đã được thiết lập FQDN, đặc biệt là khi sử dụng VPN hoặc hệ thống mạng phức tạp khác. Cách đơn giản là sử dụng nslookup để xác định DNS nào đang được áp dụng trong hệ thống:
Chúc các bạn thành công!