Thứ tự bản ghi resolvconf trên Debian: đưa bản ghi VPN lên đầu
Máy chủ tên của VPN liên tục tụt xuống dưới máy chủ tên của LAN vì resolvconf sắp xếp tên bản ghi. Sửa interface-order, tạo lại và kiểm tra hai truy vấn.
Máy chủ tên của VPN liên tục rơi xuống dưới máy chủ tên của LAN, và sửa /etc/resolv.conf chỉ khắc phục được vài phút. Tệp đó được tạo tự động, nên bản sửa không bao giờ tồn tại lâu. Trong resolvconf của Debian, đầu vào sắp xếp là /etc/resolvconf/interface-order, và nó sắp xếp tên bản ghi chứ không phải địa chỉ DNS. Hãy xác nhận chồng resolver nào thực sự phụ trách trước khi chạm vào bất kỳ tệp nào trong hai tệp.
Xác nhận resolvconf sở hữu đầu ra
Bắt đầu bằng câu hỏi cái gì đã ghi tệp hiện tại và cái gì sẽ ghi lại nó. Gói resolvconf tự mô tả là khuôn khổ cấu hình resolver động, và một máy chủ chạy systemd-resolved hoặc resolver do NetworkManager quản lý có thể trông giống hệt từ bên ngoài nhưng lại dùng chính sách hoàn toàn khác.
readlink -f /etc/resolv.conf
dpkg -l resolvconf 2>/dev/null | tail -n 1
Nếu đường dẫn đã phân giải không dẫn vào thư mục runtime của resolvconf, hãy dừng ở đây: hướng dẫn này thuộc về chồng khác.
Chỉ sau lần kiểm tra đó mới đáng liệt kê các bản ghi mà resolvconf đang giữ.
Đọc các bản ghi trước khi viết mẫu
interface-order khớp với tên bản ghi của nhà cung cấp, không phải địa chỉ và không phải tên giao diện của nhân. Liệt kê những gì đã đăng ký để mẫu của bạn trỏ tới các mục có thật.
ls /run/resolvconf/interfaces
cat /etc/resolvconf/interface-order
Tên bản ghi thường mang hậu tố nhận diện nhà cung cấp, nên bản ghi đường hầm và bản ghi DHCP có thể dùng chung tiền tố giao diện mà vẫn sắp xếp khác nhau. Sao chép tên chính xác từ danh sách thư mục. Đừng suy ra tên từ tên giao diện, vì chính tích hợp phía máy khách quyết định đăng ký gì. Một cái tên bạn tự đặt sẽ không bao giờ khớp, và bản ghi sẽ rơi vào mẫu bắt tất cả mà không có bất kỳ thông báo lỗi nào.
Viết thứ tự dưới dạng mẫu khớp đầu tiên
Tệp là danh sách các mẫu glob của shell, mỗi dòng một mẫu. Một bản ghi chiếm vị trí của mẫu đầu tiên mà nó khớp, nên một mẫu rộng đặt trên mẫu cụ thể sẽ khiến dòng cụ thể không thể chạm tới.
# /etc/resolvconf/interface-order
lo*
tun_work.*
enp*
*
Đặt mẫu đường hầm cụ thể lên trên mẫu bắt tất cả và trên mẫu giao diện vật lý.
Giữ các dòng khác mà tệp đã có. Thay toàn bộ chính sách bằng một ví dụ là cách các nhà cung cấp không liên quan lặng lẽ dịch chuyển; chỉ đổi một dòng, tạo lại và so sánh. Mẫu không được chứa khoảng trắng, dấu gạch chéo hay dấu chấm hoặc dấu ngã ở đầu, còn dòng trống và chú thích bằng dấu thăng thì bị bỏ qua.
Tạo lại và kiểm tra kết quả
Thứ tự có hiệu lực khi các script cập nhật dựng lại tệp. Hãy chạy đường cập nhật được hỗ trợ thay vì sửa đầu ra đã tạo, sau đó đọc những gì resolver thực sự nhận được.
resolvconf -u
cat /etc/resolv.conf
Kiểm tra hai truy vấn chứ không phải một: một tên riêng cần được phân giải qua đường hầm, và một tên đối chứng công khai. Nếu tên riêng vẫn thất bại trong khi thứ tự trông đúng, vấn đề là định tuyến không gian tên chứ không phải ưu tiên bản ghi, và không việc sắp xếp lại nào chữa được. So sánh từng câu trả lời với máy chủ đã trả nó, không chỉ với thành công. Một tên riêng được resolver sai trả lời vẫn là thất bại, và với người dùng nó trông như sự cố DNS.
Cho bản ghi cũ ngừng hoạt động thay vì hạ thấp nó
Một bản ghi VPN cũ cứ xuất hiện lại sau khi ngắt kết nối là lỗi vòng đời trong tích hợp phía máy khách. Chuyển nó xuống cuối che giấu triệu chứng và để lại một resolver chết trong danh sách.
Cho nó ngừng hoạt động qua thành phần đăng ký nó, rồi xác nhận thư mục bản ghi không còn liệt kê nó.
Ghi lại tên nhà cung cấp, mẫu bạn đã đổi và hai truy vấn bạn đã chạy. Người tiếp theo cần những cái tên đó hơn là câu chuyện.