Tới được một máy in trên LAN của văn phòng qua một thành viên ZeroTier nghe như một quy tắc duy nhất, nhưng thực ra đó là ba quyết định ở ba nơi khác nhau. Lớp phủ phải biết LAN nằm ở đâu, máy chủ Linux phải sẵn sàng chuyển tiếp gói tin, và LAN phải biết cách gửi trả lời về. Một quy tắc vào mở một cổng trên cổng mạng không đụng tới bất kỳ điều nào trong số đó. Đó là công cụ sai áp dụng cho máy chủ đúng.

Ba việc, ba chủ sở hữu

Tuyến được quản lý thuộc về cấu hình mạng ZeroTier. Nó cho các thành viên biết rằng một tiền tố có thể tới được qua một địa chỉ thành viên cụ thể.

Việc chuyển tiếp thuộc về nhân Linux và bên nắm giữ chính sách tường lửa của nó. Nó quyết định liệu một gói tin đến trên lớp phủ có rời khỏi giao diện vật lý lần nữa hay không. Một máy chủ không chuyển tiếp sẽ âm thầm bỏ gói tin sau khi đã nhận nó. Bên gửi thấy hết thời gian chờ và không có gì xuất hiện trong nhật ký dịch vụ.

Đường quay về thuộc về LAN. Các máy chủ và bộ định tuyến của nó phải biết rằng tiền tố lớp phủ có thể tới được qua địa chỉ LAN của cổng mạng bạn, nếu không thì phải có thứ gì đó dịch lưu lượng để câu hỏi ấy không bao giờ nảy sinh.

Mỗi điều trong số đó có thể đúng trong khi những điều khác thất bại, và đó là lý do một bài kiểm tra chỉ ping cổng mạng không chứng minh được gì về dịch vụ phía sau nó.

Hướng tuyến được quản lý tới thành viên

Thêm một tuyến cho tiền tố LAN dự định qua địa chỉ lớp phủ của cổng mạng, không phải qua địa chỉ LAN của nó. Địa chỉ lớp phủ là địa chỉ mà các thành viên khác tới được; địa chỉ LAN chỉ có nghĩa trên dây.

Các thành viên phải chấp nhận tuyến được quản lý thì thiết kế mới hoạt động, và mạng cục bộ của họ không được đang dùng tiền tố bạn quảng bá. Một máy tính xách tay từ xa ở nhà trên 192.168.60.0/24 cũng không thể định tuyến 192.168.60.0/24 qua lớp phủ.

Giữ tiền tố được quảng bá hẹp như công việc cho phép. Quảng bá một tập hợp lớn hơn để ảnh hưởng tới ưu tiên cũng có thể đòi không gian địa chỉ không thuộc về bạn, và xung đột phát sinh sẽ hiện trên các thiết bị kết nối với cả hai mạng. Nó cũng có thể khiến một thành viên thích một đường không dẫn tới đâu. Giữ tuyến trung thực và để chính sách làm phần còn lại.

Viết tiền tố và địa chỉ thành viên vào cùng ghi chú với các quy tắc tường lửa, vì lỗi phổ biến nhất là một tuyến trỏ tới thành viên sai.

Bật chuyển tiếp trong nhân

Đọc giá trị chuyển tiếp đang chạy trước khi thay đổi bất kỳ điều gì, rồi làm cho thiết lập bền vững bằng cơ chế mà hệ thống của bạn đã dùng, không phải bằng một lệnh một lần biến mất khi khởi động lại.

Nếu UFW nắm giữ chính sách, các quy tắc tuyến của nó diễn đạt việc chuyển tiếp cho một cặp nguồn, đích và giao diện. Chúng tách biệt với các quy tắc vào mở một dịch vụ trên chính cổng mạng:

sysctl net.ipv4.ip_forward
sudo ufw route allow in on zt3f2a1c9d out on eth0 proto tcp to 192.168.60.20 port 443
sudo ufw status verbose

Tên giao diện là thiết bị lớp phủ thực tế trên máy chủ đó, bạn có thể đọc nó bằng ip link; nó không phải một chuỗi cố định ở mọi bản cài. Nếu máy chủ chuyển tiếp mặc định và UFW không nằm trên đường, quy tắc tuyến sẽ bị bỏ qua và các thiết lập của nhân mới là điều quan trọng.

Chọn cách các trả lời quay về

Khi giữ nguyên nguồn, dịch vụ trên LAN thấy địa chỉ lớp phủ thật và trả lời địa chỉ đó. Điều đó đòi một tuyến trên máy chủ LAN hoặc trên bộ định tuyến của nó trỏ tiền tố lớp phủ về cổng mạng của bạn, và đó là thay đổi ngoài chiếc hộp Linux.

Khi không thể thêm tuyến đó, việc dịch nguồn có phạm vi làm yêu cầu trông như đến từ cổng mạng trên LAN. Khi ấy các trả lời quay về tại chỗ và không cần thay đổi định tuyến LAN, đổi lại là mất nguồn gốc trong nhật ký dịch vụ.

Giới hạn việc dịch cho nguồn lớp phủ và đích LAN cụ thể. Dịch mọi thứ rời khỏi giao diện LAN là phiên bản rộng, phiên bản khiến bất kỳ ai đọc quy tắc sau này phải bất ngờ, và nó cũng che giấu lưu lượng lẽ ra phải bị chặn.

Không lựa chọn nào cấp quyền truy cập không được yêu cầu từ LAN trở lại các thành viên lớp phủ tùy ý. Nếu muốn điều đó, nó là một quy tắc riêng có đợt xem xét riêng.

Kiểm tra từ một thành viên thật

Kết nối từ một thành viên khác, không phải từ cổng mạng, và yêu cầu một dịch vụ được phép. Sau đó thử một dịch vụ phải tiếp tục đóng, và lặp lại cả hai bài kiểm tra sau khi kết nối lại và sau khi khởi động lại cổng mạng.

Một thành viên báo cáo ONLINE, hay một ping thành công tới địa chỉ lớp phủ của cổng mạng, không xác nhận tuyến, quy tắc chuyển tiếp hay đường quay về:

zerotier-cli listnetworks
ip -4 route get 192.168.60.20
sudo ufw status numbered

Lệnh thứ hai cho thấy gói tin sẽ dùng giao diện nào để tới máy chủ LAN, và lệnh thứ ba cho thấy quy tắc tuyến có tồn tại đúng dạng bạn định hay không. Nếu cả hai trông đúng mà dịch vụ vẫn hết thời gian chờ, đường quay về là nghi phạm còn lại.

Bài viết liên quan