Bạn đang dùng laptop Linux, tailscale status liệt kê các máy khác, và NAS ở 10.80.0.25 vẫn hết thời gian chờ. Tailnet khỏe mạnh, router mạng con đang trực tuyến, và không có gì trong đầu ra của ứng dụng nói vì sao LAN phía sau nó không truy cập được. Hướng dẫn dưới đây đi từ triệu chứng đó ra ngoài: cờ trên ứng dụng này, rồi quảng bá trên router, rồi phê duyệt, rồi chính sách, và chỉ sau đó mới đến đích. Mỗi cổng đều thất bại với cùng thời gian chờ, nên thứ tự quan trọng hơn các lệnh.

Ứng dụng Linux từ chối cài đặt điều gì

Ứng dụng Tailscale trên Linux không chấp nhận các tuyến mạng con được quảng bá trừ khi bạn yêu cầu. Không có thiết lập đó, ứng dụng tham gia tailnet và đến được địa chỉ của các máy ngang hàng, trong khi mỗi tiền tố router quảng bá vẫn không được dùng. Giá trị mặc định là có chủ ý, và đó là lý do triệu chứng trông như router hỏng chứ không phải quyết định cục bộ.

Ở đây hai thứ khác nhau được gọi là định tuyến, và chỉ một là của bạn. Router quảng bá một tiền tố vào tailnet; máy của bạn quyết định có cài hay không. Lỗi ở bất kỳ bên nào cũng cho cùng thời gian chờ, vì vậy đoán mò lãng phí cả buổi chiều. Tìm ra bên nào từ chối trước khi bạn sửa bất cứ thứ gì.

Bật chấp nhận tuyến cho máy này

Đặt tùy chọn trên ứng dụng, rồi xem điều gì đã thay đổi thay vì cho rằng lệnh đã có hiệu lực. Dạng hiện tại áp dụng thiết lập mà không lặp lại luồng đăng nhập, điều này quan trọng khi bạn đang ở giữa phiên.

sudo tailscale set --accept-routes
tailscale status
ip route show table 52

Tailscale cài các tuyến được chấp nhận vào bảng riêng của nó trên Linux, nên một tiền tố xuất hiện trong bảng 52 là bằng chứng trực tiếp rằng ứng dụng này đã cài quảng bá. Nếu dải của bạn không có trong bảng đó, hãy dừng lại: vấn đề là cục bộ và mọi việc làm trên router sẽ không thay đổi nó.

Các ứng dụng cũ hơn cung cấp cùng tùy chọn dưới dạng cờ của lệnh đăng nhập, nên sudo tailscale up --accept-routes là phương án thay thế khi thiếu tailscale set. Hãy dùng nó thay vì sửa tuyến bằng tay, vì daemon tự viết lại bảng của nó và chỉnh sửa của bạn biến mất ở lần kết nối lại tiếp theo. Kiểm tra phiên bản trước khi sao chép lệnh từ bài viết cũ.

Kiểm tra quảng bá và phê duyệt riêng rẽ

Trên router mạng con, tiền tố phải được quảng bá, và nhân phải chuyển tiếp gói giữa các giao diện. Quảng bá mà không chuyển tiếp cho bạn một tuyến đã phê duyệt nhưng âm thầm bỏ lưu lượng, và đây là cấu hình nửa vời phổ biến nhất.

sudo tailscale up --advertise-routes=10.80.0.0/24
sysctl net.ipv4.ip_forward
ip -br addr

So sánh tiền tố được quảng bá với địa chỉ bạn thực sự muốn đến, từng ký tự một. Router quảng bá 10.70.0.0/24 không nói gì về NAS ở 10.80.0.25, và sự không khớp là vô hình trong mọi đầu ra trạng thái vì cả hai con số trông đều hợp lý như nhau. Hầu hết báo cáo về tuyến hỏng kết thúc ở đây. Sửa quảng bá trước khi bạn chạm vào bất cứ thứ gì phía dưới.

Phê duyệt là cổng tiếp theo, và dễ bỏ qua khi router được cấu hình từ shell. Quảng bá phải được bật cho thiết bị đó trong bảng điều khiển quản trị trước khi các máy khác được dùng. Chấp nhận tuyến trên ứng dụng không phê duyệt gì và không ghi đè bất kỳ quy tắc truy cập nào.

Thử địa chỉ riêng trước tên máy chủ

Kết nối thành công tới địa chỉ tailnet của chính router chứng minh tailnet hoạt động, điều bạn đã biết. Phép thử hữu ích là dịch vụ bạn thực sự cần, trước tiên với địa chỉ riêng, để lỗi DNS không thể giả danh lỗi định tuyến.

tailscale ping 10.80.0.1
ping -c 2 10.80.0.25
nc -vz 10.80.0.25 445
getent hosts nas.internal.example

Nếu địa chỉ trả lời mà tên máy chủ không, bạn có vấn đề phân giải tên và nên ngừng coi đó là vấn đề tuyến. Nếu cả hai đều không trả lời, hãy lùi lại một mục và xác nhận quảng bá bao phủ địa chỉ. Hai lỗi trông giống nhau từ ứng dụng và được sửa ở những nơi khác nhau.

Một kiểm tra cục bộ đáng làm trước khi đổ lỗi cho tailnet. Khi LAN hiện tại dùng cùng tiền tố với mạng con từ xa, nhân ưu tiên tuyến kết nối trực tiếp và lưu lượng không bao giờ rời khỏi máy; đó là điều xảy ra khi một nhà và một văn phòng cùng chọn 192.168.1.0/24.

Vì sao cờ ứng dụng không phải thiết lập router

Đây là những vai trò khác nhau với yêu cầu khác nhau, và sao chép cờ ứng dụng lên router là cách một tailnet đang chạy có được vòng lặp. Máy quảng bá tuyến cần chuyển tiếp, quy tắc tường lửa cho phép lưu lượng được chuyển tiếp, và quyết định về các tiền tố nó quảng bá. Không điều nào trong đó được --accept-routes ngụ ý.

Tài liệu về router mạng con cảnh báo không nên bật chấp nhận tuyến trên các router dự phòng quảng bá một tiền tố, vì một nút chờ có thể đẩy lưu lượng vốn đã cục bộ ra ngoài qua nút đang hoạt động. Nếu bạn chạy cặp HA, hãy coi đó là ràng buộc thiết kế chứ không phải chú thích, và quyết định nút nào sở hữu tiền tố trước khi phê duyệt trên cả hai. Trên một router duy nhất, cùng cảnh báo đó được đọc như lời nhắc rằng việc chấp nhận thuộc về ứng dụng, không thuộc về máy quảng bá. Ghi lại cổng nào đã đóng.

Với ứng dụng thông thường, trình tự kết thúc bằng phép thử ứng dụng đã thất bại lúc đầu. Với router, hãy xem lại chuyển tiếp, quảng bá, phê duyệt và tường lửa theo thứ tự đó, vì cái đầu tiên thiếu tạo ra đúng thời gian chờ mà bạn đã bắt đầu.

Bài viết liên quan