Thêm VPN cho site bên cạnh router của ISP mà không cắt cuộc gọi
Giữ nguyên vai trò internet và thoại của router ISP, để gateway thứ hai đảm nhận đường riêng. Hãy làm năm kiểm tra này trước khi đổi bất kỳ tuyến nào.
Hầu hết site nhỏ đã có một thiết bị làm internet, DHCP và đường thoại, và thiết bị đó sẽ không chạy tunnel của site bạn. Thêm gateway thứ hai cho đường riêng hoạt động nếu bạn quyết định ai sở hữu từng tuyến trước khi chạm vào cáp. Rủi ro thật không phải tunnel, mà là âm thầm thay thiết bị giữ điện thoại ở trạng thái đã đăng ký. Làm năm kiểm tra theo thứ tự và dừng ở chỗ một kiểm tra thất bại.
Ghi lại các vai trò đang hoạt động
Ghi nhận gateway mặc định, máy chủ DHCP, bộ phân giải và thiết bị giữ đăng ký thoại của nhà cung cấp. Trong ví dụ này router ISP là 10.50.0.1, gateway mới sẽ ở 10.50.0.2 và site từ xa là 10.60.0.0/24. Không gì trong kế hoạch đó thay đổi ba vai trò đầu tiên, và đó chính là điểm mấu chốt. Sau đó xác nhận thiết bị thứ hai thực sự kết thúc được tunnel: xem giao thức, thông lượng dự kiến và việc nó có nhận cập nhật firmware hay gói hay không. Thiết bị có logo VPN mà không có đường cập nhật là gánh nặng, không phải bổ sung.
Nếu bạn không nói được dịch vụ thoại thuộc về ai, hãy dừng. Thay router đang giữ đăng ký mà không có kế hoạch hoàn tác biến dự án VPN thành sự cố điện thoại.
Cho gateway mới một địa chỉ và một nhiệm vụ
Giữ địa chỉ LAN của nó ngoài pool DHCP để nó không xê dịch sau khi khởi động lại, và không cấp cho nó tuyến mặc định riêng trừ khi bạn muốn nó thành đường internet. Nhiệm vụ của nó là giữ tunnel và trả lời cho các tiền tố từ xa. Trên các host LAN phải tới site từ xa, hãy chứng minh chúng đang đi tuyến nào và bạn muốn tuyến nào sau thay đổi; cùng hai lệnh trước và sau là bằng chứng rẻ nhất.
ip route get 10.60.0.55
ip neigh show 10.50.0.2
traceroute -n 10.60.0.55
Nếu truy vấn trả về router ISP và traceroute chết ở rìa internet, host chưa có tuyến từ xa, điều này là dự kiến. Nếu nó trả về điều bất ngờ, hãy xử lý trước, vì mọi bước sau đều giả định nền tảng này.
Chọn ai sở hữu tuyến tiền tố từ xa
Phương án A là router ISP: nó giữ tuyến tĩnh cho 10.60.0.0/24 trỏ tới gateway, và mỗi host đi theo gateway mặc định như trước. Phương án B là theo từng host: chỉ những máy cần site từ xa nhận tuyến rõ ràng qua 10.50.0.2, phần còn lại giữ nguyên. A sạch hơn khi có nhiều host, nhưng thường đòi router của nhà cung cấp chấp nhận tuyến tĩnh, điều mà một số không làm. B không cần sự hợp tác của nhà cung cấp nhưng để bạn duy trì cấu hình host, nên hợp với tập máy nhỏ đã được phê duyệt.
Cả hai trường hợp đều phải có chiều quay về. Nếu trả lời từ xa tới gateway và gateway chuyển thẳng tới một host LAN, lưu lượng bỏ qua trạng thái firewall mà router ISP giữ trên đường ra. Khi gateway không phải router mặc định của LAN, sự bất đối xứng đó là quyết định thiết kế, không phải lỗi có thể bỏ qua.
ip route add 10.60.0.0/24 via 10.50.0.2 dev eth0
ip route get 10.60.0.55 from 10.50.0.77
Hãy làm cho mục này bền vững qua chủ cấu hình của host, không qua script đăng nhập. Một tuyến chỉ tồn tại sau khi ai đó đăng nhập sẽ hỏng ngay lần đầu máy khởi động lại vì lý do không liên quan.
Chuẩn bị một điểm vào có thể tới được
Gateway cần một địa chỉ mà site từ xa có thể tới. Sau router ISP, điều đó nghĩa là chuyển tiếp cổng hoặc một mục DMZ, và cả hai phụ thuộc việc nhà cung cấp có thực sự chuyển lưu lượng hay không. Chuyển tiếp cục bộ không vượt được NAT cấp nhà mạng phía nhà cung cấp. Nếu nhà cung cấp không cho điểm tới được, hãy đảo chiều: để hai site chủ động kết nối tới một hub do bạn kiểm soát. Đó là thiết kế hợp lệ, nhưng nó thêm phụ thuộc thứ ba cho chuyển tiếp, tin cậy và sẵn sàng, và DNS động không thay thế được.
Xác nhận chuyển tiếp bằng bắt gói tại gateway, không bằng trang web quét cổng. Máy quét báo cổng đóng cho tới khi bộ lắng nghe được gắn, và một chuyển tiếp không bao giờ gửi lưu lượng trông từ ngoài giống hệt cổng đóng.
Chấp nhận dịch vụ riêng và đường thoại cùng lúc
Kiểm tra hoạt động dự kiến từ một host LAN, với DNS riêng và thông tin đăng nhập của chính ứng dụng. Tunnel có tuyến không làm việc duyệt web từ xa giống một phân đoạn Ethernet cục bộ, nên việc phát hiện và phân giải tên cần cách bố trí riêng.
curl -sS -o /dev/null -w '%{http_code}\n' https://files.example.net
ping -c 3 10.60.0.55
Sau đó xác nhận truy cập internet thông thường vẫn hoạt động từ cùng host và điện thoại vẫn đăng ký; hai kiểm tra đó bắt được thay đổi tuyến mặc định ngoài ý muốn, cách phổ biến nhất mà dự án này làm hỏng thứ nó chưa từng định chạm vào. Kết thúc bằng một ghi chú khôi phục bằng văn bản: thiết bị nào giữ vai trò nào, các địa chỉ đã giữ trước, và cách gỡ tuyến tiền tố từ xa trong một bước. Một đường riêng có thể rút lại sạch sẽ đáng giá hơn một đường chỉ chạy hôm nay.