STUN thấy địa chỉ nguồn nào khi có VPN trên router?
Tuyến, cách chọn nguồn và bản dịch quyết định địa chỉ mà bộ phản xạ báo về. Ba sự thật cần ghi lại, rồi một truy vấn để xác nhận tuyến nào thắng.
Câu hỏi nghe như một lần tra cứu và thực ra là ba quyết định. Binding request đi theo tuyến nào, nhân hệ điều hành chọn nguồn nào cho tuyến đó, và có thứ gì trên đường ghi đè nguồn đó không. Đổi bất kỳ điều nào trong ba, địa chỉ mà máy chủ STUN báo về cũng đổi theo. Vì thế nói VPN nằm trên router gần như không cho biết gì nếu đứng một mình.
Quyết định dựa trên ba sự thật
Thứ nhất là tuyến: các quy tắc chính sách và bảng định tuyến quyết định gói tin ra khỏi đường hầm hay ra WAN thường, và một đích bị loại trừ sẽ đi theo tuyến thứ hai ngay cả khi đường hầm đang hoạt động. Thứ hai là nguồn: nhân hệ điều hành chọn nguồn cho tuyến đã chọn, và lựa chọn đó phụ thuộc vào nguồn ưu tiên của tuyến và mọi quy tắc khớp. Thứ ba là bản dịch: NAT trên đường thay thế nguồn đã chọn. Địa chỉ phản xạ là tích của cả ba, không phải thuộc tính của đường hầm.
Đổi một trong ba và câu trả lời đổi, trong khi mọi thành phần vẫn trông khỏe trong nhật ký của riêng nó. Đó là lý do thường gặp khiến chẩn đoán này bế tắc.
Ghi ba sự thật cho luồng bạn đang kiểm tra trước khi bắt đầu. Giao diện, tuyến và quy tắc dịch là đủ để dự đoán kết quả, và chính dự đoán trước khiến một bất ngờ trở nên có ích. Nếu không điền được một trong ba, khoảng trống đó chính là phát hiện thật.
Theo một binding request dọc theo tuyến
Một binding request của STUN yêu cầu máy chủ báo địa chỉ vận chuyển nguồn mà nó quan sát được. Câu trả lời mô tả tuyến mà yêu cầu đã đi, không phải bản kiểm kê giao diện trên máy khách. Hai yêu cầu qua hai tuyến sẽ báo trung thực hai địa chỉ khác nhau.
| Path taken | Source the reflector sees | What it means |
|---|---|---|
| Tunnel to a public exit that translates | The exit's public address | The reflector learns nothing about the LAN |
| Tunnel to a private reflector, translated to the tunnel address, no later translation | That tunnel address | An internal identifier is disclosed to that reflector |
| Excluded flow over the ordinary WAN | The WAN address | The tunnel was not used at all |
Đọc bảng đó như một tập điều kiện, không phải thực đơn nhà cung cấp. Hàng giữa đòi hỏi bộ phản xạ riêng phải tiếp cận được dưới định tuyến và chính sách ngang hàng của chính đường hầm; đó là sự thật cấu hình bạn kiểm tra được, không phải điều gì mức tài khoản hàm ý. Hàng dưới thường là hàng quan trọng với chính sách, vì lưu lượng đó lẽ ra phải ở trong đường hầm. Giữa hai hàng là trường hợp thường gặp, khi đầu ra dịch và bộ phản xạ chỉ thấy đầu ra.
Ứng viên máy chủ và ứng viên phản xạ phía máy chủ đến từ cơ chế khác nhau, nên danh sách ứng viên không nói tuyến nào phương tiện thực sự dùng. Đọc cặp được chọn, không phải nhật ký thu thập, khi muốn biết phiên đã đi đâu.
Địa chỉ đường hầm của router không phải là gì
Địa chỉ đường hầm gán cho router thuộc về một giao diện trên router. Trình duyệt trên máy chủ LAN có địa chỉ giao diện riêng và không thấy trực tiếp giao diện đường hầm của router. Coi hai thứ là thay thế được cho nhau sẽ tạo ra câu trả lời sai một cách tự tin về những gì một trang web có thể biết.
Chuyển tiếp là thứ nối hai bên. Yêu cầu đi qua router như lưu lượng được định tuyến, và nguồn của nó là thứ mà định tuyến và bản dịch tạo ra.
Nếu tuyến đường hầm giữ nguyên nguồn LAN, bộ phản xạ riêng có thể biết địa chỉ LAN đó, đây là sự tiết lộ thật và khác với địa chỉ đường hầm. Nếu tuyến dịch sang địa chỉ đường hầm, bộ phản xạ biết địa chỉ đường hầm thay vào đó. Cả hai kết quả đều nhất quán với cùng một trình duyệt trên cùng một máy chủ, nên một quan sát phải gắn với một luồng cụ thể. Hỏi nhân hệ điều hành xem nó sẽ dùng nguồn nào trước khi đổ lỗi cho ứng dụng.
Tiết lộ so với vượt qua: hai phát hiện, hai cách sửa
Địa chỉ đường hầm phản xạ tiết lộ một định danh nội bộ qua tuyến bạn đã cho phép. Yêu cầu trực tiếp qua WAN vượt qua tuyến bạn muốn bắt buộc. Cái đầu là câu hỏi thông tin, cái sau là câu hỏi thực thi, và chúng được sửa ở chỗ khác nhau. Gộp cả hai vào một từ sẽ tạo ra cách sửa không giải quyết cái nào.
WebRTC làm điều này rõ hơn mà không làm sai, vì thu thập một ứng viên không giống với chọn nó.
ip route get 203.0.113.7 from 192.0.2.25
ip rule showChạy truy vấn tuyến cho mọi địa chỉ bộ phản xạ bạn cho phép, với nguồn bạn kỳ vọng luồng đó mang, rồi chạy lại cho các dải bị loại trừ để xem phương án dự phòng chọn gì. So sánh hai câu trả lời với chính sách bạn đã ghi. Khi chúng khác theo cách bạn không định, bạn đã tìm ra điểm sửa mà không cần diễn giải danh sách ứng viên của trình duyệt.