Trang chủ Thủ Thuật Cách chạy máy chủ DNS của riêng bạn trên mạng cục bộ...

Cách chạy máy chủ DNS của riêng bạn trên mạng cục bộ của bạn

0
16
Stylized illustration of

Cách chạy máy chủ DNS của riêng bạn trên mạng cục bộ của bạn

Stylized illustration of "DNS" text on a blue circuitry background
jivacore / Shutterstock.com

Chạy máy chủ DNS của riêng bạn là một cách tuyệt vời để tăng tốc độ phản hồi của mạng, giảm sự phụ thuộc của bạn vào cơ sở hạ tầng công cộng và hưởng lợi từ các chức năng bổ sung như định tuyến tên máy chủ. Đây là cách thiết lập máy chủ DNS trên máy Linux bằng Dnsmasq.

DNS là gì?

DNS là hệ thống dịch tên miền như example.com sang địa chỉ IP số của máy chủ. Điều này có thể trông giống như 127.0.0.1 . Bất cứ khi nào bạn thực hiện một yêu cầu mạng bằng tên miền, hệ thống của bạn sẽ thực hiện tra cứu DNS để xác định địa chỉ máy chủ mà nó sẽ liên hệ.

Điều này thêm chi phí cho mọi yêu cầu bạn đưa ra. Mặc dù thiết bị của bạn sẽ lưu các phản hồi DNS vào bộ nhớ cache, nhưng các lượt truy cập vào các miền mới sẽ phát sinh một vòng DNS trước khi yêu cầu thực sự bắt đầu. Điều này xảy ra ở cấp ngăn xếp mạng hệ điều hành, không hiển thị với bạn với tư cách là người dùng.

ISP thường chạy máy chủ DNS. Có thể bạn đang dựa vào máy chủ của ISP nếu bạn đang sử dụng cài đặt mặc định trên bộ định tuyến và thiết bị của mình. Các máy chủ DNS công cộng khác có sẵn từ các nhà cung cấp như Cloudflare và Google.

Tại sao chạy DNS của riêng bạn?

Chạy máy chủ DNS của riêng bạn cho phép bạn kiểm soát nhiều hơn mạng của mình. Một động lực phổ biến là có thể định cấu hình ánh xạ miền cấp độ mạng, chẳng hạn như web-server đến 192.168.0.101 . Định cấu hình bộ định tuyến của bạn để sử dụng DNS của bạn sẽ dẫn đến việc bất kỳ thiết bị nào được kết nối của bạn có thể truy cập 192.168.0.101 qua http://web-server .

Quảng cáo

Có máy chủ DNS của riêng bạn cho phép bạn tập trung cài đặt vào một vị trí thay vì áp dụng chúng riêng lẻ trong /etc/hosts trên mỗi thiết bị. Chúng sẽ áp dụng cho mọi thứ bạn kết nối với mạng của mình, bao gồm cả phần cứng nhúng không cung cấp cách nào khác để tùy chỉnh ngăn xếp định tuyến của nó.

Máy chủ DNS nội bộ cũng có thể cải thiện hiệu suất và cung cấp thêm một lớp khả năng phục hồi. Sự cố DNS trên diện rộng không phải là chưa từng xảy ra; sử dụng máy chủ tùy chỉnh có bộ nhớ đệm lâu dài cho các dịch vụ quan trọng mà bạn tương tác có thể giúp bạn loại bỏ thời gian chết tại nhà cung cấp ngược dòng đã chọn của bạn.

DNS với Dnsmasq

Dnsmasq là một máy chủ DNS nhẹ được bao gồm trong hầu hết các bản phân phối Linux. Nó cũng rất đơn giản để cấu hình.

Trước khi bắt đầu, bạn nên suy nghĩ về chức năng nào bạn cần máy chủ DNS của mình cung cấp. Trong hướng dẫn này, chúng ta sẽ xem xét thiết lập Dnsmasq với bộ nhớ đệm cục bộ, một số tuyến miền tùy chỉnh và 8.8.8.8 của Google với tư cách là nhà cung cấp DNS ngược dòng của chúng tôi.

Luồng định tuyến sẽ giống như sau:

  • Bộ định tuyến mạng nhận được yêu cầu từ một trong các thiết bị được kết nối của bạn. Bộ định tuyến sẽ được cấu hình để sử dụng máy chủ Dnsmasq làm máy chủ DNS của nó.
  • Dnsmasq sẽ kiểm tra xem nó có một tuyến đường xác định cho tên miền, chẳng hạn như web-server đến 192.168.0.101 . Nếu yêu cầu dành cho http://web-server/example-page , nó sẽ gửi 192.168.0.101 trở lại bộ định tuyến.
  • Khi Dnsmasq không có tuyến đường phù hợp, nó sẽ chuyển tiếp yêu cầu DNS tới 8.8.8.8 của Google, cho phép phân giải trên internet công cộng. Điều này đảm bảo bạn vẫn có thể truy cập web rộng hơn khi sử dụng DNS của riêng mình.

Bạn sẽ không cần thực hiện bất kỳ thay đổi cấu hình nào trên các thiết bị khách của mình. Mọi thứ đằng sau bộ định tuyến của bạn sẽ kết thúc việc thực hiện các truy vấn DNS thông qua Dnsmasq. Tuy nhiên, cần lưu ý rằng tất cả các hệ điều hành máy tính để bàn và di động phổ biến đều hỗ trợ thiết lập máy chủ DNS, vì vậy bạn có thể định cấu hình các thiết bị riêng lẻ để sử dụng Dnsmasq mà không cần bật nó ở cấp bộ định tuyến.

Bắt đầu

Chúng tôi sẽ cho rằng bạn đã có một máy Linux đang hoạt động sẵn sàng để lưu trữ Dnsmasq. Dnsmasq không đặc biệt tốn nhiều tài nguyên – nếu bạn có ít thiết bị khách, nó sẽ dễ dàng chạy trên Raspberry Pi.

Quảng cáo

Máy chủ của bạn phải được gán một IP tĩnh. Từ đây, IP 192.168.0.1 đề cập đến máy chủ Dnsmasq.

Đảm bảo rằng Dnsmasq đã được cài đặt:

# Giả sử hệ thống Debian
cập nhật apt
apt cài đặt dnsmasq

Tệp cấu hình của Dnsmasq thường được đặt tại /etc/dnsmasq.conf . Điều này được điền sẵn với các cài đặt ban đầu. Một số thay đổi cần được thực hiện để Dnsmasq hoạt động hiệu quả trong kịch bản mạng cục bộ. Chạy sudo nano /etc/dnsmasq.conf để mở tệp, sau đó sử dụng phím tắt Ctrl + W để tìm và bỏ ghi chú các dòng sau:

# miền cần thiết
# bogus-priv

Xóa # ở đầu mỗi dòng. Đây là những gì các cài đặt này đang bật:

  • domain-needed – Điều này ngăn Dnsmasq chuyển tiếp các tên cục bộ không có phần tên miền tới máy chủ DNS ngược dòng. Trong cài đặt của chúng tôi, điều đó có nghĩa là example.com sẽ đủ điều kiện để phân giải thông qua Google nhưng example hoặc web-server thì không. Nó dành riêng các tên không dấu chấm cho mạng cục bộ của bạn.
  • bogus-priv – Ngăn chuyển tiếp các truy vấn tra cứu ngược DNS tới máy chủ DNS ngược dòng. Nó có nghĩa là các IP nội bộ như 192.168.0.101 sẽ không bao giờ được hiển thị cho Google. Không bật điều này có thể vô tình làm rò rỉ kiến trúc của mạng nội bộ của bạn cho nhà cung cấp thượng nguồn của bạn.

Để đặt máy chủ DNS ngược dòng của bạn, hãy thêm một dòng mới vào tệp cấu hình của bạn:

máy chủ = 8.8.8.8
máy chủ = 4.4.4.4

Điều này hướng dẫn Dnsmasq chuyển tiếp các truy vấn chưa được giải quyết tới 8.8.8.8 . Nếu máy chủ đó không khả dụng, 4.4.4.4 sẽ được sử dụng thay thế. Các địa chỉ này là trình phân giải chính và phụ cho dịch vụ DNS của Google.

Tiếp theo điều chỉnh kích thước bộ nhớ cache. Điều này mặc định là giá trị tương đối thấp của 150 yêu cầu được lưu trong bộ nhớ cache. Việc tăng điều này sẽ cho phép Dnsmasq phục vụ nhiều tra cứu hơn từ bộ nhớ cache, giảm độ trễ mạng. Tìm cache-size , bỏ ghi chú và thay đổi giá trị của nó:

cache-size = 1000

Lưu và đóng tệp ngay bây giờ.

Ánh xạ tên máy chủ sang IP

Có một số cách khác nhau để ánh xạ tên máy chủ với địa chỉ IP của chúng. Đơn giản nhất là thêm các mục vào tệp /etc/hosts Dnsmasq tự động tải các quy tắc từ tệp này như một phần của cấu hình mặc định của nó.

Quảng cáo

Mở /etc/hosts và thêm các tuyến của bạn vào cuối tệp. Địa chỉ IP đứng trước, sau đó là tên để gán:

Máy chủ web 192.168.0.101
192.168.0.105 gateway.lan

Những dòng này có nghĩa là bất kỳ yêu cầu nào đến http://web-server sẽ được chuyển hướng đến 192.168.0.101 trong khi http://gateway.lan sẽ kết thúc ở 192.168.0.5 . Lưu và đóng tệp khi bạn đã hoàn thành ánh xạ các thiết bị của mình.

Kiểm tra máy chủ của bạn

Khởi động lại Dnsmasq để áp dụng tất cả các thay đổi của bạn:

dịch vụ sudo dnsmasq khởi động lại

Kiểm tra xem máy chủ đang chạy có chính xác không:

trạng thái dnsmasq dịch vụ sudo

Bạn sẽ thấy active (running) được hiển thị bằng màu xanh lá cây. Nếu không, hãy kiểm tra các dòng nhật ký ở cuối thông tin trạng thái để tìm ra điều gì sai.

579a47c7

Bây giờ bạn đã sẵn sàng để kiểm tra máy chủ của mình. Bạn có thể thực hiện các nỗ lực tra cứu DNS thủ công bằng công cụ dig Bạn có thể cần cài đặt dnsutils trước.

đào google.com @localhost
đào gateway.lan @localhost

Cả hai lệnh này sẽ hiển thị địa chỉ IP trong ANSWER SECTION . Trong trường hợp của gateway.lan , kết quả phải là 192.168.0.5 theo quy tắc định tuyến được thiết lập trong /etc/hosts . Phần @localhost của các lệnh hướng dẫn dig truy vấn máy chủ DNS cục bộ của bạn.

Định cấu hình mạng của bạn

Bước cuối cùng là định cấu hình bộ định tuyến mạng của bạn để thực hiện tra cứu DNS thông qua máy chủ Dnsmasq của bạn. Các bước cho việc này sẽ khác nhau tùy thuộc vào thiết bị định tuyến bạn đang sử dụng.

Quảng cáo

Khi bạn tìm thấy trang cài đặt chính xác, hãy đặt IP máy chủ của bạn ( 192.168.0.1 trong hướng dẫn này) làm máy chủ DNS chính của bộ định tuyến. Bạn nên định cấu hình một nhà cung cấp DNS công cộng, chẳng hạn như 8.8.8.8 của Google, làm máy chủ phụ. Điều này đảm bảo bạn sẽ vẫn có quyền truy cập Internet nếu máy chủ DNS của bạn gặp sự cố và chuyển sang chế độ ngoại tuyến.

Bây giờ tất cả các thiết bị được kết nối với bộ định tuyến của bạn sẽ thực hiện các truy vấn DNS thông qua phiên bản Dnsmasq của bạn. Họ sẽ có thể truy cập thiết bị của bạn bằng tên được chỉ định, chẳng hạn như web-servergateway.lan , đồng thời được hưởng lợi từ bộ nhớ đệm DNS cấp mạng.

Phần kết luận

DNS là một chủ đề phức tạp nhưng Dnsmasq giúp bạn dễ dàng vận hành một máy chủ cơ bản. Có nhiều cài đặt khác mà bạn có thể khám phá khi đã có chức năng cốt lõi hoạt động. Những điều này cho phép bạn lọc các truy vấn, quản lý rơ le và proxy, chạy tập lệnh khi sự kiện xảy ra và thiết lập các loại bản ghi DNS khác, chẳng hạn như kết quả MX cho máy chủ thư.

Dnsmasq thường không cần can thiệp thủ công nhiều khi nó hoạt động. Bạn có thể theo dõi nhật ký bằng cách sử dụng service dnsmasq status hoặc systemctl status dnsmasq . Giờ đây, bạn đã sẵn sàng hưởng lợi từ máy chủ DNS tự lưu trữ của mình, tối đa hóa hiệu suất và cho phép bạn sử dụng tên miền nội bộ để tiếp cận các thiết bị mạng cục bộ.

How to Get Started With DevSpace and Rapidly Develop Kubernetes Apps

Cách bắt đầu với DevSpace và phát triển nhanh ứng dụng Kubernetes

How To Properly Fork a Github Repository

Cách Fork đúng một kho lưu trữ Github

How to Move Changes to Another Branch in Git

Cách chuyển các thay đổi sang nhánh khác trong Git

How to Inspect a Docker Image’s Content Without Starting a Container

Cách kiểm tra nội dung của hình ảnh Docker mà không cần khởi động vùng chứa

How to Run MongoDB in a Docker Container

Cách chạy MongoDB trong Docker Container

What are Docker Storage Drivers and Which Should You Use?

Trình điều khiển lưu trữ Docker là gì và bạn nên sử dụng trình điều khiển nào?

Dịch từ: https://www.cloudsavvyit.com/14816/how-to-run-your-own-dns-server-on-your-local-network/

Hãy giúp chúng tôi đánh giá bài viết này!

BÌNH LUẬN

Vui lòng nhập bình luận của bạn
Vui lòng nhập tên của bạn ở đây