Đường hầm dựng lên, máy khách hiện điểm xanh, và ssh 192.168.1.20 vẫn treo cho đến khi hết thời gian chờ. Tôi gặp đúng tình huống này sau khi thuê một phiên bản đám mây nhỏ và cài WireGuard lên đó: bắt tay tốt, DNS tốt, còn NAS trên bàn tôi thì không truy cập được như thể nó ở trên mặt trăng. Đường hầm không có gì sai. Endpoint nằm trong một mạng không có tuyến về nhà tôi. Vị trí endpoint quyết định những mạng nào ở cạnh nhau, nên hãy chọn theo tài nguyên bạn phải chạm trước và so sánh hosting sau.

Đường hầm chỉ đến được những mạng mà endpoint có thể định tuyến

VPN cấp cho máy khách một địa chỉ trong miền định tuyến của chính endpoint. Khi máy khách gửi gói tin đến 192.168.1.20, endpoint phải biết gói đó đi đâu. Bảng của một VM đám mây biết các mạng con VPC của nhà cung cấp; về LAN của bạn thì nó chưa từng nghe. Kết nối được và truy cập được là hai sự thật khác nhau, và phần lớn nhầm lẫn giữa nhà và đám mây đến từ việc lấy cái đầu làm bằng chứng cho cái sau.

Một lệnh giải quyết. Trên endpoint, ip route get 192.168.1.20 hoặc nêu tên một giao diện LAN hoặc trỏ tới tuyến mặc định. Trên máy ở nhà câu trả lời là phía LAN. Trên phiên bản đám mây gói tin đi ra internet và chết. Bật net.ipv4.ip_forward=1 và thêm quy tắc MASQUERADE không thay đổi điều đó, vì không có nơi nào để chuyển tiếp cho tới khi thứ gì đó phía nhà kết thúc liên kết vào đám mây.

Trường hợp tại nhà có nửa thứ hai: đường về. Các gói rời LAN qua hộp đường hầm bị NAT, hoặc LAN cần một tuyến tĩnh trở lại mạng con của đường hầm. Khi chỉ một chiều hoạt động, hãy kiểm tra sysctl net.ipv4.conf.all.rp_filter. Lọc tuyến ngược nghiêm ngặt loại bỏ các phản hồi đến trên giao diện khác với dự đoán của tuyến, và triệu chứng trông giống hệt một quy tắc tường lửa.

Đọc triệu chứng trước khi chạm vào cấu hình

Đường hầm không hình thành: khóa, địa chỉ endpoint hoặc cổng UDP bị chặn. Đường hầm lên nhưng máy chủ trong LAN chết: vị trí và định tuyến. Đường hầm lên nhưng duyệt web chết: chuyển tiếp, NAT hoặc DNS. Đó là ba tầng và ba kiểm tra khác nhau, và viết lại một cấu hình vốn đã đúng chỉ làm mất một buổi tối.

SymptomFirst suspectCheck
Handshake fails, no transferKeys, endpoint port, UDP blockedwg show, then the port from outside
Peer pings, LAN host times outNo route to the LANip route get on the endpoint
Tunnel up, name resolution failsDNS options in the peer configResolve a name from the client
Large transfers reset the connectionMTULower the tunnel MTU and retry

Khả năng truy cập vào từ nhà đáng được kiểm tra riêng, vì nó quyết định việc host tại nhà có khả thi hay không. So sánh địa chỉ WAN mà router báo cáo với địa chỉ mà một máy chủ bên ngoài nhìn thấy. Nếu nó rơi vào 100.64.0.0/10, hoặc hai địa chỉ không khớp, bạn đang ở sau NAT của nhà mạng và không chuyển tiếp cổng nào sẽ hoạt động. Lựa chọn thực tế là relay, một liên kết đám mây gọi ra ngoài từ nhà, hoặc di chuyển endpoint.

Host tại nhà mang lại gì và tốn bao nhiêu

Nhà là vị trí duy nhất mặc định nằm trong LAN, và đó là toàn bộ lý do đặt máy chủ ở đó. Các thiết bị chỉ trả lời trên phân đoạn cục bộ, như máy in và trang quản trị NAS từ chối mạng con không cục bộ, hoạt động mà không cần định tuyến thêm. Bạn cũng tự vận hành máy, router và đường truyền.

Chi phí là vật lý. Băng thông tải lên tại nhà là trần cho mọi máy khách cùng lúc, nên cuộc gọi video và bản sao lưu tranh nhau một đường ống. Điện, hao mòn ổ đĩa, bản vá, một địa chỉ động cần DDNS, một router phải chuyển tiếp UDP vào trong và có thể cả NAT kép đều đổ lên bạn. Điều người ta bỏ qua là khôi phục: nếu hộp chết khi bạn đi vắng, con đường duy nhất vào nhà cũng chết theo. Hãy giữ thiết bị thứ hai với cùng khóa, hoặc ít nhất một kế hoạch truy cập vật lý.

Nếu muốn truy cập LAN mà không có hộp ở nhà, hãy xây một liên kết thay vì giả vờ. Endpoint đám mây trở thành router: một đường hầm từ phía nhà với AllowedIPs = 192.168.1.0/24 trên peer đám mây, cộng chuyển tiếp và NAT trên hộp đám mây. Hướng dẫn chuyển tiếp của strongSwan đi qua nửa đường về của cấu hình đó, và đó là nơi phần lớn các nỗ lực này thất bại. Peer tại nhà giờ phải hoạt động để bất cứ thứ gì chạy, nên bạn đã đổi một phụ thuộc lấy một phụ thuộc khác và nên ghi lại điều đó.

Endpoint đám mây thực sự dùng để làm gì

Endpoint đám mây thay đổi lối ra công cộng của bạn. Lưu lượng đi ra từ dải địa chỉ của nhà cung cấp, và các trang web thấy địa chỉ đó thay vì địa chỉ nhà. Đó là giá trị, và cũng là lý do VPN đám mây không trao NAS cho bạn: bạn đã di chuyển lối ra, không phải LAN.

Bạn vẫn vận hành hệ thống khách, dịch vụ VPN và thông tin đăng nhập của nó trong khi nhà cung cấp vận hành hypervisor và mạng vật lý, và sự phân chia đó quan trọng khi có thứ gì hỏng lúc 2 giờ sáng. Endpoint công cộng bị quét liên tục, nên hãy đóng cổng quản trị, chỉ cho phép cổng VPN và vá theo lịch. Nhóm bảo mật và tường lửa của nhà cung cấp phải cho phép cổng đó, và một số đám mây bỏ lưu lượng được chuyển tiếp trừ khi bạn điều chỉnh kiểm tra nguồn và đích trên phiên bản.

Một phiên bản nhỏ phủ vài máy khách, nhưng mã hóa là việc của CPU, và một phiên bản burstable hết tín dụng hành xử không đều dưới tải liên tục. Hãy nhìn con đường bạn thực sự dùng, không phải bảng thông số.

Một quyết định có thể ghi lại

Nhiệm vụ quyết định vị trí, không phải nhãn trên hộp. Nếu cần một thiết bị trên LAN tại nhà, câu trả lời đúng rẻ nhất là một endpoint tại nhà; hộp đám mây chỉ chạy sau khi bạn xây liên kết trở về. Nếu cần một lối ra công cộng khác, câu trả lời là đám mây và câu hỏi về LAN không hề xuất hiện. Muốn cả hai là chính đáng, nhưng nó có nghĩa là hai endpoint, hai bộ khóa và hai tuyến được ghi lại.

What you needEndpoint locationWhat else must exist
Reach a NAS or printer on the home LANA box on that LANPort forward or relay, DDNS, recovery plan
Browse from an exit unrelated to homeCloud instanceFirewall and egress rules, patching
Both, reliablyTwo endpoints, or cloud plus a link homeSeparate keys, routes, documented failure modes

Xác minh từ máy khách theo thứ tự: bắt tay, địa chỉ peer, một máy chủ trong LAN, rồi IP lối ra. curl -s https://ifconfig.me cho thấy internet nhìn thấy gì, và ip route get 192.168.1.20 cho thấy endpoint tin điều gì. Khi kiểm tra lối ra đạt và kiểm tra NAS bị treo, bạn đã có câu trả lời về vị trí; chỉnh AllowedIPs trên máy khách sẽ không tạo ra tuyến. Một dòng chia như 10.8.0.0/24, 192.168.1.0/24 chỉ giữ lưu lượng LAN trong đường hầm khi tuyến đó thực sự tồn tại.

Bài viết liên quan