Quy tắc VPN trên router: khớp nguồn và đích
Một quy tắc VPN trên router có hai đầu: thiết bị gửi lưu lượng và đích cần dùng đường hầm. Hãy quyết định phần giao nhau và hành vi dự phòng trước.
Các trang mua router trình bày định tuyến VPN như một ô kiểm duy nhất, và cụm từ đó che giấu ba câu hỏi khác nhau. Quy tắc khớp với thiết bị gửi lưu lượng, với máy chủ nhận lưu lượng, hay với cả hai? Điều gì xảy ra với lưu lượng không khớp với bên nào? Và khi hai quy tắc chồng lên nhau, quy tắc nào thắng? Viết câu trả lời thành một cặp nguồn và đích biến danh sách tính năng mơ hồ thành một thiết kế có thể kiểm thử.
Tên tính năng che giấu hai đầu
Trình phát media cần dùng đường hầm là khớp nguồn. Tiền tố văn phòng riêng cần truy cập được qua đường hầm là khớp đích. Máy trạm chỉ cần dùng đường hầm cho một dịch vụ là cả hai, và phần giao nhau đó chính là trường hợp mà hầu hết firmware tiêu dùng xử lý kém.
Viết yêu cầu thành một cặp trước khi so sánh sản phẩm. Cặp đó là thứ bạn sẽ kiểm thử sau này.
Một sản phẩm cung cấp danh sách thiết bị hoặc danh sách đích toàn cục có thể không diễn đạt được «chỉ thiết bị này, chỉ những đích này». Khoảng cách không phải hình thức: quy tắc đích toàn cục gửi lưu lượng của mọi thiết bị đến trang đó qua đường hầm, còn quy tắc thiết bị gửi toàn bộ lưu lượng của thiết bị đó. Cả hai đều không phải yêu cầu. Hãy thử trường hợp đó với hai thiết bị trước khi tin vào màn hình.
Xây dựng quy tắc như phần giao nhau
Một bảng giữ cho thiết kế trung thực. Đặt kịch bản ở bên trái, sau đó gọi riêng phần khớp người gửi và phần khớp mục tiêu:
| Scenario | Sender match | Target match | Rule shape |
|---|---|---|---|
| Media player uses the tunnel | Player address | Any internet destination except the LAN | Source only |
| Office prefix reachable | Authorized LAN devices | 10.40.0.0/16 | Target only |
| One app on one laptop | Laptop address | The service address set | Source and target |
| Guest network never tunnels | Guest subnet | Any | Deny, evaluated first |
Hàng thứ ba mới thú vị, vì nó cần cả hai nửa cùng lúc. Nếu firmware chỉ diễn đạt được một trục, yêu cầu phải được tách thành hai quy tắc hoặc chuyển sang thiết bị có thể làm được.
Giữ danh tính nguồn ổn định. Đặt trước DHCP, một phân đoạn riêng hoặc cơ chế danh tính thiết bị đều hoạt động, nhưng một địa chỉ thay đổi sau khi hết hạn thuê thì không. Bao gồm IPv6, vì một địa chỉ IPv4 không nhận diện toàn bộ lưu lượng của một thiết bị.
Mức ưu tiên quyết định phần chồng lấn
Các quy tắc chồng lấn là bình thường. Một quy tắc thiết bị rộng và một quy tắc đích hẹp có thể cùng mô tả một luồng, và thứ tự ưu tiên được ghi lại quyết định quy tắc nào thắng. Một màn hình cài đặt hấp dẫn không cho bạn biết thứ tự đó.
Đọc hướng dẫn về thứ tự và về trường hợp không khớp, sau đó thử cả hai bằng lưu lượng bạn có thể quan sát:
ip rule show
ip route get 203.0.113.10
Nếu tài liệu không nêu thứ tự, hãy giả định quy tắc hẹp hơn có thể không thắng và thiết kế xoay quanh điều đó. Hai quy tắc không thể xung đột thì dễ hỗ trợ hơn một quy tắc thông minh có quyền ưu tiên không được ghi lại.
Tên cần một chính sách làm mới
Một đích được viết dưới dạng tên miền thêm một vấn đề bảo trì. Router phải phân giải nó, làm mới ánh xạ, xử lý nhiều địa chỉ và tên miền con, và đối phó với DNS của ứng dụng vốn bỏ qua trình phân giải mong đợi.
Sao chép một kết quả tra cứu vào quy tắc IP là ảnh chụp, không phải chính sách tên miền.
Quyết định một câu trả lời có thể cũ đến mức nào trước khi quy tắc sai, và router làm gì khi phân giải thất bại. Một quy tắc giữ địa chỉ đã biết cuối cùng có thể sống sót qua việc di chuyển dịch vụ; một quy tắc bỏ mục nhập có thể âm thầm dừng đường hầm. Cả hai hành vi đều chấp nhận được nếu chúng được ghi cạnh quy tắc.
Định nghĩa trạng thái không khả dụng
Một ưu tiên tuyến đường không bắt buộc lưu lượng chỉ qua VPN. Khi đường hầm ngừng, router có thể chặn luồng, gửi trực tiếp hoặc dùng đường hầm khác, và mỗi lựa chọn có dấu hiệu lỗi khác nhau.
Quyết định yêu cầu cần cái nào, sau đó xác minh bằng cách dừng đường hầm và quan sát luồng:
curl -sS -o /dev/null -w "%{http_code}" --max-time 5 https://service.example/
ping -c 2 203.0.113.10
Lưu lượng bắt nguồn từ chính router là một phạm vi riêng. Chuyển tiếp DNS, kiểm tra cập nhật và giám sát có thể khởi tạo luồng mới từ chính router thay vì kế thừa phần khớp nguồn của thiết bị. Hãy tính đến những luồng đó một cách rõ ràng, nếu không chúng sẽ xuất hiện như những rò rỉ không giải thích được trong nhật ký.