Ping địa chỉ đường hầm của người chơi khác và nhìn thấy game mà họ lưu trữ là hai thành tựu khác nhau. Danh sách trong sảnh chờ thường phụ thuộc vào một trao đổi khám phá được viết cho một mạng cục bộ duy nhất, trong khi phiên chơi là một kết nối bình thường tới một địa chỉ và cổng. Việc coi danh sách trống là lỗi định tuyến sẽ đẩy bạn về phía một cầu nối mà có thể bạn không cần, vì vậy hãy tách hai câu hỏi trước khi thay đổi bất cứ điều gì.

Tách việc tham gia phiên khỏi việc tìm ra phiên

Tham gia thất bại chỉ ra tuyến đường, quy tắc tường lửa và một dịch vụ đang lắng nghe. Tham gia thành công với danh sách trống chỉ ra khám phá, hoặc địa chỉ mà thông báo mang theo. Hai kết quả đó dẫn tới công việc hoàn toàn khác nhau, và bạn chỉ có thể phân biệt chúng bằng cách cố ý thử cái đầu tiên.

Ghi lại kết quả trước khi chạm vào cấu hình VPN. Đây là phép thử rẻ nhất trong toàn bộ cuộc điều tra và nó loại bỏ một nửa không gian thiết kế. Cũng ghi lại địa chỉ bạn đã dùng, vì nó trở thành điểm tham chiếu cho mọi phép thử sau này. Không có dòng đó trong ghi chú, phép so sánh tiếp theo chỉ là phỏng đoán.

Thử tham gia trực tiếp trước khi chạm vào đường hầm

Nếu game có tùy chọn kết nối trực tiếp, hãy dùng địa chỉ đường hầm của máy chủ và cổng game đã được tài liệu hóa, đồng thời để nguyên xác thực của chính game và các quy tắc tường lửa của máy chủ. Tham gia thành công thu hẹp vấn đề về khám phá. Tham gia thất bại vẫn cần cuộc điều tra riêng, và không relay nào sửa được nó.

Đừng cho rằng cổng khám phá và cổng phiên là cùng một con số. Các game thường công bố trên một cổng UDP và nhận người chơi trên cổng khác, và một relay được dựng cho cổng sai sẽ cho ra danh sách vẫn trống.

Cũng kiểm tra xem tiến trình lưu trữ đã chọn bộ điều hợp nào. Một tiến trình gắn với địa chỉ LAN trong nhà sẽ công bố địa chỉ đó, và người chơi từ xa không thể định tuyến tới đó dù thông báo có đến. Danh sách có thể được điền và việc tham gia vẫn có thể thất bại chỉ vì lý do đó.

Hiểu nơi phát sóng dừng lại

Một đường hầm TUN có định tuyến mang gói IP giữa các peer và không tái tạo phát sóng cục bộ trên mạng của từng peer. Địa chỉ phát sóng giới hạn 255.255.255.255 nằm lại bên trong giao diện phát ra nó, và phát sóng hướng tới mạng con là một trường hợp riêng chứ không phải giấy phép chung để router làm ngập thông báo.

Đó là một thuộc tính của thiết kế, không phải khuyết điểm để vá bằng một tùy chọn. OpenVPN và client-to-client thiết lập của nó điều khiển lưu lượng giữa các peer bên trong đường hầm và không phải relay khám phá, dù nó được đề xuất đúng cho mục đích này trong nhiều luồng. Relay là một thành phần riêng với cấu hình riêng và các kiểu hỏng riêng. Giả định rằng một tùy chọn sẵn có đã bao trùm điều này là cách phổ biến nhất khiến cuộc điều tra này bế tắc.

Khám phá multicast gặp cùng vấn đề với một lớp địa chỉ khác, và nó cần định tuyến multicast hoặc một relay chứ không phải một ngoại lệ phát sóng.

Khi một relay là chính đáng, hãy giữ nó hẹp

Nếu khám phá tự động là yêu cầu, trước hết hãy xác định trao đổi thực tế: phát sóng hay multicast, địa chỉ đích, cổng UDP, giao diện gửi nó, và địa chỉ bên trong phản hồi. Một relay phù hợp giao thức và giới hạn ở năm sự thật đó hẹp hơn nhiều so với việc mở rộng cả một đoạn Ethernet.

Chuyển tiếp gói mà không thay đổi vẫn có thể chưa đủ. Nếu tải trọng bảo bên nhận kết nối tới một địa chỉ mà nó không với tới, relay sẽ giao một câu trả lời vô ích, vì thế nên thử giao diện của chính game hoặc thiết lập địa chỉ được công bố trước khi có bất kỳ relay nào.

Giới hạn relay cho các giao diện và peer cần nó, và xác định cách các phản hồi tìm ra người yêu cầu. Lặp lại những phát sóng không liên quan sẽ phơi bày các dịch vụ cục bộ khác và tạo ra những vòng lặp khó gỡ lỗi về sau.

Chỉ cầu nối khi thiết kế cần Ethernet

Các khung Ethernet đi bên trong TAP, nên một đường hầm TAP có thể thuộc một miền phát sóng được cầu nối có chủ đích. Chỉ việc dev tun sang dev tap không xây cầu nối đó, không làm cấu hình máy chủ tương thích và không khiến ứng dụng chọn giao diện mới. Hướng dẫn cầu nối của OpenVPN mô tả cách bố trí rộng hơn, không phải phương thuốc cho một sảnh chờ trống.

Cầu nối cũng làm phẳng sơ đồ địa chỉ, vì thế quyết định này xứng đáng có lý do vượt ra ngoài sự sốt ruột. Hai mạng vốn tách biệt trở thành một, và mọi dịch vụ ở mỗi bên bắt đầu thấy phát sóng của bên kia. Hệ quả đó thuộc về nhật ký thay đổi trước khi ai đó bật nó. Không có quy tắc nào buộc máy khách game phải nằm trong dải 192.168; hãy chọn một sơ đồ không chồng lấn và kiểm tra các hạn chế của game cụ thể thay vì đánh số lại đường hầm vì một bài đăng diễn đàn đã làm thế.

Cuối cùng hãy giữ hai kết quả tách biệt: có tham gia được máy chủ hay không, và phản hồi khám phá có công bố một đích mà người chơi kia thực sự dùng được hay không. Sửa cái thứ hai mà không xác nhận cái thứ nhất chính là cách người ta cuối cùng phải duy trì một cầu nối cho một vấn đề chưa bao giờ liên quan tới phát sóng.

Bài viết liên quan