Giao thức Internet chỉ nhìn vào địa chỉ IP đích khi định tuyến các gói. Họ không quan tâm một gói đến từ đâu. Họ không quan tâm rằng gói có thể là một phần của phiên hoặc kết nối hoặc ứng dụng lớn hơn. Điều duy nhất quan trọng là địa chỉ IP đích. IP sau đó nhìn vào bảng định tuyến để xác định phải làm gì với từng gói, chỉ dựa trên địa chỉ đích. (Về mặt kỹ thuật, những thứ như tường lửa đầy đủ trạng thái và định tuyến kiểm soát có thể khiến điều này trở thành lời nói dối, nhưng nó sẽ phù hợp với các mục đích hiện tại.)
Như @Nikita đã chỉ ra và đầu ra của tuyến đường(8)
chương trình, máy chủ như 192.168.0.3
(và, có lẽ, các máy chủ khác trên mạng của bạn) chỉ biết gửi các gói đến bộ định tuyến của bạn tại 192.168.0.1
. Họ không có gì để yêu cầu họ gửi các gói đến hệ thống OpenVPN của bạn tại 192.168.0.2.
. Cho nên .3
và bạn bè sẽ gửi tất cả lưu lượng truy cập của họ đến bộ định tuyến của bạn. Bộ định tuyến của bạn không biết về VPN của bạn. Bộ định tuyến của bạn sẽ loại bỏ các gói hoặc gửi chúng đến Internet công cộng (nơi bộ định tuyến chặng tiếp theo có thể sẽ loại bỏ nó).
Có nhiều giải pháp khả thi.
Giải pháp số 1 - Dễ dàng nhưng không hiệu quả
Nói với bộ định tuyến của bạn rằng 10.8.0.0/24
có thể truy cập thông qua cổng tại 192.168.0.2
. Điều này sẽ dẫn đến một lộ trình kẹp tóc - các gói sẽ đi từ các máy chủ như .3
, tới giao diện mạng LAN của bộ định tuyến tại .1
, sau đó sao lưu cùng một giao diện bộ định tuyến và tới cổng OpenVPN tại .2
. Điều này là không hiệu quả, nhưng nên làm việc.
Bạn không nói bộ định tuyến của mình là gì, nhưng nếu đó là Linux, lệnh sẽ giống như:
tuyến ip thêm 10.8.0.0/24 qua 192.168.0.2
Giải pháp #2 - Không xâm phạm nhưng tẻ nhạt
Bạn có thể định cấu hình một tuyến tĩnh trên mỗi máy chủ LAN, cho chúng biết thông tin định tuyến giống như #1, nhưng ở mọi nơi. Đây sẽ là một khó khăn nhỏ để định cấu hình và bảo trì, nhưng sẽ là giải pháp hiệu quả nhất giúp duy trì cấu trúc liên kết mạng hiện tại của bạn. Lệnh tương tự như trên (dành cho Linux), nhưng bạn phải chạy nó trên mọi máy chủ LAN. Bạn cũng cần làm điều đó trên tất cả các thiết bị khác sẽ hoạt động qua VPN, bao gồm hộp Windows, máy in, máy tính bảng, điện thoại, bóng đèn wifi, v.v. Cuối cùng, bạn sẽ quên một thiết bị và tự hỏi tại sao nó không hoạt động, hãy dành thời gian kéo mái tóc của bạn ra, và sau đó cảm thấy như một dope khi bạn nhớ tại sao.
Giải pháp #3 - Tinh vi nhưng đột phá
Bạn có thể đặt cổng VPN của mình trên đường dẫn định tuyến tới Internet. Có hai lựa chọn thay thế phụ ở đây.
Giải pháp #3A - VPN trên bộ định tuyến
Ngay cả các bộ định tuyến của người tiêu dùng đôi khi cũng có thể chạy triển khai OpenVPN ngày nay, đặc biệt nếu bạn sử dụng chương trình cơ sở của bên thứ ba (OpenWRT, DD-WRT, v.v.). Tuy nhiên, chúng thường thiếu mã lực CPU để có hiệu suất phù hợp. Bạn cũng có thể thay thế người tiêu dùng bằng thứ gì đó tốt hơn -- một bộ định tuyến thương mại hoặc một Linux khác. Bạn thậm chí có thể thử lại cổng VPN của mình dưới dạng VPN+bộ định tuyến+tường lửa.
Trong trường hợp này, VPN và bộ định tuyến giống nhau, vì vậy bạn không phải lo lắng về việc bộ định tuyến có khớp với cổng VPN hay không. Điều này có thể là hiệu quả nhất, về mặt thiết kế mạng.
Giải pháp #3B - Cổng ngăn xếp và Bộ định tuyến
Bạn có thể đặt cổng VPN giữa bộ định tuyến và phần còn lại của mạng LAN, với các mạng con IP khác nhau ở hai bên của cổng VPN. Tất cả các máy chủ LAN khác gửi đến cổng VPN để truy cập Internet. Cổng VPN gửi và chuyển tiếp đến bộ định tuyến để truy cập Internet.
Điều này sẽ yêu cầu đặt hai giao diện mạng trong cổng VPN -- một cho mạng LAN và một cho chuyển giao cho rotuer. (Hoặc thực hiện một lộ trình kẹp tóc trên cổng VPN, điều này còn tệ hơn #1 vì bây giờ tất cả các Lưu lượng truy cập Internet đang kẹp tóc).
Ưu điểm chính của phương pháp này là: Bạn có thể giữ bộ định tuyến hiện tại của mình (có thể ISP của bạn khiến bạn sử dụng thiết bị của họ, có thể nó có một số thuộc tính hữu ích khác cho bạn). Nếu hộp VPN bị hỏng, bạn có thể kéo nó ra khỏi bức tranh và (có thể) nhanh chóng định cấu hình lại bộ định tuyến để thế chỗ.