Cách đọc định tuyến DNS của VPN theo từng liên kết từ resolvectl
resolvectl status hiển thị máy chủ, miền và tuyến mặc định cho từng liên kết. Hãy đọc chúng cùng nhau, sau đó truy vấn tên và ghi lại liên kết nào đã trả lời.
Chạy resolvectl status và bạn nhận được một bức tường các khối theo từng liên kết, mỗi khối có máy chủ riêng và dòng miền riêng. Dòng quyết định định tuyến là danh sách miền, không phải địa chỉ máy chủ tên, vì stub cục bộ chuyển mọi truy vấn đến liên kết đang nhận tên đó. Hãy đọc các yêu cầu đó trước khi đọc câu trả lời, sau đó truy vấn tên và kiểm tra liên kết nào đã tạo ra nó. Một câu trả lời sai từ liên kết đúng là vấn đề khác với câu trả lời đúng từ liên kết sai.
Mỗi khối theo liên kết cho bạn biết điều gì
Mỗi khối liệt kê các máy chủ mà bộ phân giải sẽ dùng cho giao diện đó, danh sách miền và việc liên kết có phải tuyến mặc định hay không. Danh sách miền là một tập yêu cầu, và bộ phân giải áp dụng khớp hậu tố dài nhất: truy vấn cho host.corp.example được liên kết mang corp.example nhận trước liên kết chỉ mang tuyến mặc định. Hai liên kết cùng nhận một hậu tố để kết quả cho độ ưu tiên và thứ tự, vì thế các bản trùng đáng được chú ý trước. Dòng máy chủ hiện tại cho biết máy chủ nào trong danh sách đang được dùng tại thời điểm đó.
Một địa chỉ stub như 127.0.0.53 trong /etc/resolv.conf chỉ nói rằng stub đứng phía trước. Nó không nêu tên nguồn thượng lưu đã trả lời, vì thế chẩn đoán chỉ dựa vào resolv.conf sẽ bế tắc.
Đọc đúng ba loại mục miền
| Mục | Nhận gì | Lỗi thường gặp |
|---|---|---|
| corp.example | miền định tuyến và hậu tố tìm kiếm: các tên bên dưới đi đến liên kết này, và chuỗi được nối vào tên trần | bị xóa vì định tuyến có vẻ vẫn hoạt động |
| ~corp.example | chỉ tuyến: các tên bên dưới đi đến liên kết này, nhưng hậu tố không được nối | bị cho là cần thiết cho định tuyến |
| ~. | tuyến mặc định: nhận các truy vấn mà không liên kết nào khác bao phủ | để hoạt động trên hồ sơ chia tách, nên tên công cộng đi theo đường hầm |
Dấu ngã thay đổi hành vi tìm kiếm, không phải định tuyến. Mục không có dấu ngã vừa là miền định tuyến vừa là miền tìm kiếm, nên các tên bên dưới được gửi đến liên kết đó và tên một nhãn được nối thêm hậu tố. Mục có dấu ngã định tuyến cùng hậu tố nhưng giữ nó ngoài danh sách tìm kiếm. Vì thế bỏ dấu ngã thay đổi tên trần nào được phân giải, và vì thế thiếu dấu ngã là vấn đề tìm kiếm chứ không phải lỗi DNS chia tách.
Mục tuyến mặc định nhận mọi thứ mà không liên kết nào khác bao phủ. Hồ sơ đường hầm đầy đủ thường muốn nó còn hồ sơ chia tách thường không, vì tên công cộng khi đó đi đến bộ phân giải riêng và có thể thất bại ở đó. Hãy đọc bảng theo ý định của hồ sơ thay vì sao chép cờ giữa các hồ sơ. Khi hai liên kết cùng nhận một hậu tố, hãy giải quyết vấn đề ưu tiên trước khi sửa bất cứ thứ gì khác.
Truy vấn một tên và xem liên kết nào đã trả lời
Lệnh con query in địa chỉ, giao thức và liên kết hoặc phạm vi đã tạo ra câu trả lời. Hãy thử một tên mà hậu tố riêng phải nhận và một tên công cộng thông thường, sau đó so sánh các nguồn được báo cáo. Nếu tên riêng trả lời từ liên kết không dây thì yêu cầu bị thiếu hoặc đường hầm đang tắt; nếu một tên công cộng trên hồ sơ chia tách trả lời từ đường hầm thì tuyến mặc định quá rộng. Hai lỗi đó trông giống nhau trong trình duyệt và ngược nhau trong đầu ra này.
resolvectl status
resolvectl query host.corp.example
Cũng để ý giao thức được báo cáo, vì câu trả lời từ bộ nhớ đệm hoặc từ tệp hosts có thể đến mà không hỏi nguồn thượng lưu nào. Câu trả lời từ bộ nhớ đệm chứng minh tên đã từng được phân giải, không chứng minh chính sách hiện tại định tuyến đúng.
Tách định tuyến tên khỏi định tuyến gói
Quyết định của bộ phân giải không tạo ra đường đi. Máy chủ được chọn vẫn cần tuyến đến địa chỉ của nó, và địa chỉ trả về vẫn cần tuyến vào mạng riêng, nên một chính sách DNS đúng có thể tồn tại cùng với một kết nối không bao giờ mở. Khi tên được phân giải mà ứng dụng thất bại, hãy kiểm tra địa chỉ và tuyến thay vì đổi DNS lần nữa. Phân giải tên và khả năng tiếp cận là hai câu hỏi với hai chủ sở hữu khác nhau.
Ứng dụng có thể bỏ qua hoàn toàn bộ phân giải của hệ thống thông qua thiết lập DNS an toàn riêng hoặc bộ phân giải đi kèm. Kết quả của resolvectl mô tả đường đi của hệ thống, và trình duyệt bỏ qua nó sẽ không đồng ý với mọi thử nghiệm bạn làm. Hãy kiểm tra thiết lập đó trước khi kết luận chính sách đã hỏng.
Ghi lại địa chỉ mà tên đã phân giải tới bên cạnh liên kết. Một tên đúng trỏ đến địa chỉ sai là vấn đề bản ghi, không phải định tuyến.
Kiểm tra lại sau khi liên kết thay đổi
Kết nối lại hoặc chuyển mạng không dây tạo lại trạng thái liên kết, và trình quản lý mạng có thể cài lại các miền và máy chủ của nó đè lên mọi thứ đã đặt bằng tay. Sau đó truy vấn lại hai tên đó và so sánh với đường cơ sở đã ghi. Nếu một chỉnh sửa thủ công biến mất, bản sửa nằm trong hồ sơ kết nối chứ không phải trong lệnh shell. Chính việc ghi trước và sau làm điều đó hiển thị.
Chỉ chia sẻ những tên và ngữ cảnh máy chủ mà báo cáo cần, vì các hậu tố nội bộ tiết lộ cấu trúc mạng. Tài liệu systemd-resolved về định tuyến miền bao gồm quy tắc khớp dài nhất và hành vi của dấu ngã, và đọc một lần sẽ ngăn phần lớn lỗi trong bảng trên: định tuyến truy vấn trong systemd-resolved.