Tôi có một mạng máy tính nhỏ có thể di chuyển giữa các trang web.
Các máy tính này được kết nối với một bộ chuyển mạch và một trong số chúng hoạt động như máy chủ DHCP và máy chủ DNS thông qua dnsmasq cho mạng này, hãy gọi nó là MAINPC.
DNS chỉ được sử dụng để cung cấp độ phân giải tên giữa các máy tính này và nếu bạn thêm một máy tính khác vào mạng LAN, nó sẽ được thêm vào DNS thông qua dnsmasq.
Phần còn lại của các tên DNS phải được xử lý bởi máy chủ DNS phụ, đây là vấn đề của tôi.
Tôi không muốn mã hóa cứng một máy chủ DNS thứ cấp như 8.8.8.8, vì đôi khi bạn sẽ cắm toàn bộ mạng này vào trong một mạng khác, với máy chủ DNS của chính nó. Tôi muốn dnsmasq cung cấp DNS phụ cho DNS do Trình quản lý mạng cung cấp.
Những gì tôi đã làm được thiết lập dns=mặc định
trong một tập tin conf trong /etc/NetworkManager/conf.d/
.
Điều này khiến Trình quản lý mạng ghi DNS được ủy quyền DHCP thành /etc/resolv.conf, được đọc bởi dnsmasq. Điều này giải quyết hầu hết các vấn đề.
PC đang sử dụng MAINPC làm máy chủ DNS hoạt động tốt, chúng chuyển hướng các truy vấn của mình tới MAINPC, sẽ trả lời từ miền cục bộ nếu có thể và nếu không chuyển hướng tới DNS do Trình quản lý mạng ủy quyền.
Nhưng bản thân MAINPC chỉ sử dụng DNS do NetworkManager ủy quyền và không thể phân giải các PC khác trong mạng. Tóm lại, nó không sử dụng máy chủ DNS của chính nó làm chính.
Làm thế nào điều này có thể đạt được?
Về cơ bản, tôi chỉ cần /etc/resolv.conf của mình trông giống như:
# Được tạo bởi Trình quản lý mạng
tìm kiếm internal_domain other_domain
máy chủ định danh MAINPC_IP
máy chủ tên IP_MANDATED_BY_NETWORK_MANAGER
Hiện tại, tôi đã quản lý để có được nó như thế, bằng cách buộc máy chủ DNS MAINPC ở chế độ /etc/netplan/
tập tin:
# Được tạo bởi Trình quản lý mạng
tìm kiếm internal_domain other_domain
máy chủ tên IP_MANDATED_BY_NETWORK_MANAGER
máy chủ định danh MAINPC_IP