- Tailscale Peer Relays đã chính thức ra mắt, cho phép người dùng tận dụng thiết bị của mình làm nút relay hiệu năng cao
- Hỗ trợ trung chuyển lưu lượng ổn định và nhanh ngay cả trong các môi trường khó kết nối trực tiếp do tường lửa, NAT hoặc các ràng buộc mạng đám mây
- Hiệu năng được cải thiện đáng kể khi có nhiều client kết nối nhờ tăng throughput, giảm tranh chấp khóa và phân tán xử lý socket UDP
- Thông qua tích hợp endpoint tĩnh, có thể vận hành relay phía sau AWS NLB và các hạ tầng tương tự ngay cả trong môi trường đám mây không thể tự động khám phá
- Tích hợp khả năng quan sát và giám sát giúp nắm rõ đường đi lưu lượng, độ trễ và trạng thái relay, rất quan trọng khi vận hành mạng quy mô lớn
Tổng quan về Tailscale Peer Relays
- Peer Relays là tính năng cho phép chạy chức năng relay hiệu năng cao trên chính thiết bị của bạn
- Bên cạnh relay DERP hiện có, người dùng cũng có thể dùng các nút tự triển khai làm relay
- Kể từ giai đoạn beta, hiệu năng, độ ổn định và khả năng quan sát đã được cải thiện đáng kể để đạt mức sẵn sàng cho production
- Ban đầu đây là tính năng để vượt qua môi trường NAT phức tạp, sau đó được mở rộng thành một lựa chọn kết nối cho mạng quy mô lớn
- Cung cấp cấu trúc giúp các nhóm có được hiệu năng, khả năng kiểm soát và tính linh hoạt
Cải thiện hiệu năng và độ tin cậy
- Throughput tăng mạnh khi nhiều client kết nối thông qua relay
- Client sẽ tự động chọn giao diện và họ địa chỉ phù hợp nhất trong relay
- Relay nâng cao hiệu quả xử lý gói tin nhờ giảm tranh chấp khóa và phân tán xử lý qua nhiều socket UDP
- Những cải tiến này giúp tăng hiệu năng và độ ổn định trong lưu lượng hằng ngày, đồng thời mang lại hiệu năng gần với mạng mesh ngay cả khi không thể kết nối trực tiếp
Hỗ trợ endpoint tĩnh
- Trong môi trường đám mây công cộng, việc tự động khám phá endpoint thường gặp nhiều khó khăn
- Có những trường hợp không thể mở cổng tùy ý do quy tắc tường lửa, port forwarding hoặc load balancer
- Peer Relays có thể quảng bá cặp IP:cổng cố định thông qua cờ
--relay-server-static-endpoints
- Ngay cả khi nằm sau hạ tầng như AWS Network Load Balancer, client bên ngoài vẫn có thể chuyển tiếp lưu lượng qua relay
- Tính năng này giúp đảm bảo kết nối tốc độ cao trong môi trường đám mây bị hạn chế, đồng thời thay thế subnet router để xây dựng cấu hình full mesh
Tích hợp khả năng quan sát và giám sát
- Peer Relays được tích hợp trực tiếp với các công cụ quan sát của Tailscale, giúp hiểu rõ hoạt động của relay
- Có thể dùng lệnh
tailscale ping để kiểm tra relay có được sử dụng hay không, khả năng tiếp cận, độ trễ và ảnh hưởng tới độ tin cậy
- Khi có sự cố, có thể nhanh chóng xác định lưu lượng có đi qua relay hay không và relay có đang ở trạng thái bình thường hay không
- Cung cấp các chỉ số giám sát như
tailscaled_peer_relay_forwarded_packets_total, tailscaled_peer_relay_forwarded_bytes_total
- Có thể tích hợp với Prometheus, Grafana để phân tích mẫu lưu lượng, phát hiện bất thường và giám sát tình trạng mạng
Phát hành chính thức và cách triển khai
- Peer Relays đã phát hành chính thức và trở thành thành phần cốt lõi trong khả năng mở rộng của Tailscale
- Cung cấp kết nối tốc độ cao, độ trễ thấp khi không thể có đường đi trực tiếp
- Hoạt động trong môi trường đám mây bị hạn chế nhờ triển khai dựa trên endpoint tĩnh
- Hỗ trợ cấu hình full mesh trong subnet riêng và thiết lập đường điều khiển ingress/egress
- Vẫn duy trì các nguyên tắc bảo mật cơ bản của Tailscale như mã hóa end-to-end, truy cập theo đặc quyền tối thiểu và hành vi có thể dự đoán được
- Có thể kích hoạt qua CLI trên mọi node được hỗ trợ, đồng thời hỗ trợ kiểm soát dựa trên ACL và triển khai dần từng bước
- Peer Relays có thể sử dụng trên mọi gói cước, bao gồm cả gói Personal miễn phí
1 bình luận
Bình luận trên Hacker News
Nếu Tailscale được tin tưởng vì “mở” (
open), thì cũng cần biết rằng một số client lại là mã nguồn đóngChúng chỉ được phân phối qua các kênh phát hành chính thức (ví dụ: Apple App Store) và hoàn toàn nằm dưới sự kiểm soát của họ
Logic dùng để biện minh cho lập trường này khá khó chấp nhận: kiểu như “nếu người dùng chấp nhận dùng OS độc quyền thì Tailscale độc quyền cũng không sao”
Với cấu trúc như vậy, rất khó để tin tưởng trong các môi trường bị hạn chế kết nối
Dù có thể tốt hơn đối thủ về mặt kỹ thuật, rốt cuộc đây vẫn chỉ là kinh doanh. Nếu có thể, nên ủng hộ các lựa chọn thay thế là phần mềm tự do
Issue GitHub liên quan
Nếu người dùng có thể tự build từ mã nguồn thì họ vẫn có thể cải thiện hiệu năng, nhưng nếu không có quyền kiểm soát thì sẽ không có cách nào sửa những điểm chưa vừa ý
Phần mềm thương mại thường có chất lượng thấp, phụ thuộc vào cập nhật, và ưu tiên tốc độ phát hành hơn độ hoàn thiện
Có thể cài bằng lệnh
go install tailscale.com/cmd/tailscale{,d}@latest, và đã được giải thích trong wiki chính thứcGUI là mã nguồn đóng, nhưng CLI hoàn toàn mở nên vẫn có thể dùng trong môi trường mạng bị hạn chế
Nếu thật sự thấy phiền thì cứ dùng brew hoặc CLI để điều khiển
Tôi cũng đang phát triển một ứng dụng có cấu trúc tương tự: CLI sẽ được cung cấp hoàn toàn dưới dạng open source, còn GUI sẽ bán trả phí
Làm vậy mới có thể tiếp tục phát triển và duy trì sinh kế
Tôi đang phát triển cả GUI lẫn CLI dựa trên thư viện validate
Tôi mới thiết lập Tailscale gần đây, và ping giảm từ 16ms xuống 10ms còn băng thông tăng gấp ba
Dùng cùng Moonlight/Sunshine thì có thể stream game Windows từ desktop Linux sang MacBook ở mức 50Mbps/10ms
Tôi không port forward, chỉ cấu hình router làm peer node
Tôi muốn biết liệu Tailscale về cơ bản có tập trung vào chia sẻ giữa những người dùng đáng tin cậy hay không
Nếu vậy thì chẳng phải vẫn đang lộ ra Internet sao, nên tôi khá bối rối
Tôi tò mò về mô hình doanh thu của Tailscale. Tôi thích dịch vụ này, nhưng lo về tính bền vững lâu dài
Thỉnh thoảng tôi cũng có cảm giác bị rate limit
Khi đội ngũ lớn lên thì gói trả phí gần như là bắt buộc, và các tính năng như serve/funnel, SSH rất hữu ích
Trước đây chúng tôi dùng Zerotier, đã dùng miễn phí vài năm, rồi khi số người dùng tăng mới trả khoảng 5 USD/tháng
Tuy vậy, tùy môi trường mạng mà đôi khi vẫn cần relay
Các lựa chọn thay thế mã nguồn mở có Headscale và Netbird
Việc chuyển sang Peer Relay là một chiến thắng lớn cho những người self-host trong môi trường NAT
Không còn phải tự dựng DERP server nên UX được cải thiện
Peer Relay được triển khai bằng cách tái sử dụng hạ tầng subnet router và exit node hiện có nên gánh nặng triển khai không lớn
Đây cũng là yếu tố thiết yếu để có kết nối ổn định trong các môi trường NAT hạn chế như AWS
Kết quả là cả độ trễ lẫn trải nghiệm người dùng đều được cải thiện
Với Peer Relay, có lẽ khả năng xảy ra kiểu sự cố này sẽ còn giảm hơn nữa
Điểm cốt lõi là Peer Relay hỗ trợ UDP
DERP dựa trên TCP nên từng gây vấn đề về độ trễ (latency) trong game streaming hoặc thoại
Peer Relay dùng UDP nên phù hợp hơn nhiều với lưu lượng thời gian thực
Thậm chí không cần dựng instance DERP riêng, có thể bật trực tiếp từ subnet router hiện có
Kiểu bình luận AI như vậy làm xói mòn niềm tin của cộng đồng, nên tốt hơn là đừng làm
Khi có nhiều Relay, tôi thắc mắc liệu Tailscale có tự động chọn node có độ trễ thấp nhất hay không
Trong môi trường CGNAT thực tế, Tailscale đã giúp ích rất nhiều
Tôi đang chạy một hệ thống AI vision trên Google Cloud Run, nhưng ISP chặn port forwarding
Nhờ Tailscale, container Cloud Run và camera có thể giao tiếp như thể cùng ở trong một LAN
Tôi cũng kỳ vọng Peer Relay sẽ giảm được vấn đề độ trễ vốn xuất hiện khi container thường xuyên khởi động lại
Tuy nhiên, tôi tò mò không biết việc chọn Relay hoạt động ra sao trong môi trường node ephemeral (tạm thời)
Tôi hiện đang dùng một mạng WireGuard tự cấu hình, nên khá tò mò Tailscale thực sự làm gì bên trong
Nó có nhiều tính năng “ma thuật” tự động chỉnh DNS, routing, firewall v.v. nên tôi thấy không yên tâm
Tôi đã đọc tài liệu chính thức, nhưng vẫn thiếu chi tiết
Tôi muốn biết liệu nó có hoạt động tốt trong những cấu hình mạng phức tạp hay không
Trên Linux có rất nhiều kiểu cấu hình nên khá phức tạp
Điều này cũng được giải thích trong bài blog liên quan
Các hành vi chính như sau
/etc/resolv.confTrong môi trường quá tùy biến thì vẫn có thể phát sinh vấn đề, nhưng có thể xử lý thông qua hỗ trợ kỹ thuật
Tôi mở trang trên di động nhưng không thấy nút đóng nên không thể đóng modal
Xem ảnh chụp màn hình
Sau đó tôi có tìm ra, nhưng vị trí của nó khá kỳ cục