Cách đường hầm chia tách quyết định luồng nào dùng VPN
Đường hầm chia tách là một tập hợp các quyết định định tuyến và gắn kết, không phải một chế độ bạn bật. Xem cách các quy tắc theo ứng dụng, tiền tố, DNS và công tắc an toàn tương tác với nhau.
Đường hầm chia tách là một chính sách định tuyến được diễn đạt như một tập hợp quy tắc, và máy khách chỉ là thứ cài đặt chúng. Việc tách diễn ra ở hai nơi: các quy tắc khớp chọn đường cho từng gói, và các ràng buộc giữ một ứng dụng trên một giao diện bất kể bảng nói gì. Cơ chế nào máy khách của bạn dựa vào giải thích phần lớn những bất ngờ mà mọi người báo cáo.
Một chính sách bạn có thể phát biểu trong một dòng thì kiểm chứng được. Một chính sách được mô tả là duyệt web nhanh hơn thì không, và nó sẽ không cho bạn biết phải đổi quy tắc nào khi một yêu cầu đi sai hướng.
Máy khách cài đặt quy tắc, nhân hệ điều hành đưa ra lựa chọn
Khi đường hầm đi lên, máy khách thêm các tuyến và thường cả quy tắc chính sách vào cùng bảng mà các giao diện khác của bạn dùng. Mỗi gói sau đó đến một phép tra cứu so sánh đích của nó với từng tiền tố ứng viên và giữ lại kết quả khớp cụ thể nhất, trong khi độ ưu tiên giải quyết thế hòa giữa các quy tắc trỏ tới các bảng khác nhau. Không gì trong phép tra cứu đó biết rằng gói đến từ một thẻ trình duyệt chứ không phải từ một tác vụ sao lưu. Quy tắc thắng là quy tắc đặt đường đi, và bạn có thể đọc nó trước và sau thay đổi.
Đó là lý do một đường hầm chia tách có thể trông tùy tiện. Hai đích trong cùng một ứng dụng có thể đi những đường khác nhau chỉ vì một tiền tố hẹp hơn tiền tố kia.
Lựa chọn tương tự tồn tại trên mọi nền tảng, dù tên gọi thay đổi. Windows đẩy quyết định vào nền tảng bộ lọc của mình, Android phơi bày danh sách cho phép theo ứng dụng qua dịch vụ VPN, và macOS gắn đường hầm vào một thiết bị vẫn tuân theo bảng định tuyến. Ghi chú định tuyến của Microsoft đáng đọc cho trường hợp Windows, và một hướng dẫn viết cho một nền tảng hiếm khi chuyển sang nền tảng khác mà không thay đổi.
Gắn kết theo ứng dụng và tiền tố đích là những công cụ khác nhau
Chính sách đích hỏi gói đi đâu và tham khảo bảng tuyến hoặc một quy tắc chính sách. Chính sách theo ứng dụng hỏi chương trình nào đã mở ổ cắm, và nền tảng giữ chương trình đó trên giao diện đường hầm ngay cả khi một tuyến cụ thể hơn trỏ đi nơi khác. Cách thứ hai mạnh hơn vì nó sống sót qua thay đổi bảng, nhưng chỉ bao phủ những tiến trình mà nền tảng có thể quy gán. Một tiến trình phụ, một trình duyệt nhúng, hoặc một dịch vụ tự mở kết nối của mình có thể không thừa hưởng ràng buộc mà bạn giả định.
Không cách nào trong hai cách sống sót qua một chính sách dựa trên tên mà không có trợ giúp. Địa chỉ của các trang lớn quay vòng giữa các mạng nội dung, nên ghim một tên máy chủ vào vài tiền tố tạo ra một quy tắc lặng lẽ ngừng khớp. Một chính sách phải theo tên cần một thành phần hiểu trình phân giải thay vì một tuyến tĩnh.
DNS và công tắc an toàn tuân theo quy tắc riêng của chúng
Phân giải tên là một quyết định tách biệt khỏi định tuyến gói, và một đường hầm chia tách thường muốn hai trình phân giải: của công ty cho tên nội bộ, của cục bộ cho mọi thứ khác. Máy khách có thể cài đặt DNS theo giao diện, giao các truy vấn cho một trình phân giải trung gian, hoặc để mặc định hệ thống không bị đụng tới. Một trình duyệt có trình phân giải mã hóa riêng sẽ vượt qua cả ba cách sắp xếp. Hãy thử một tra cứu thay vì giả định trình phân giải đã theo tuyến.
Một công tắc an toàn thêm một bộ lọc lên trên, và bộ lọc đó không phải lúc nào cũng phân biệt một loại trừ có chủ đích với một rò rỉ tình cờ. Một số máy khách chặn mọi thứ ngoài đường hầm trong khi những máy khác cho phép các loại trừ mà chính sách khai báo, nên hãy đọc xem bản của bạn thực hiện hành vi nào trước khi dựa vào một trong hai.
Kiểm tra sự chia tách từ cả hai phía
Thử đường được bao gồm và đường bị loại trừ riêng rẽ, và đánh giá kết quả bằng tên giao diện chứ không phải bằng một địa chỉ công cộng. Các lệnh này giả định một máy chủ Linux đã dựng thiết bị đường hầm. Thay 203.0.113.10 bằng một đích mà chính sách của bạn định tuyến vào trong, và 198.51.100.25 bằng một đích mà nó gửi ra ngoài.
ip route get 203.0.113.10
ip route get 198.51.100.25
resolvectl query intranet.example.com
curl -s --interface tun0 https://example.com -o /dev/null -w '%{http_code}\n'
Đọc hai câu trả lời đầu tiên cùng nhau, vì giao diện được nêu trong mỗi câu cho biết việc chia tách có đặt đích đó lên đường hầm hay không. Truy vấn trình phân giải cho biết máy chủ nào đã trả lời tên nội bộ, và lệnh cuối chứng minh thiết bị đường hầm có thể chuyên chở một yêu cầu. Thất bại ở dòng thứ hai trong khi dòng đầu thành công nghĩa là chính sách đang làm đúng những gì được dặn.
Lặp lại bộ này sau khi kết nối lại và sau khi mạng thay đổi. Gia hạn thuê và xáo trộn giao diện là nơi một sự chia tách ngừng khớp với ý định mà nó được xây dựng, và đầu ra được lưu từ mỗi lần chạy làm cho độ lệch trở nên rõ ràng.