Ứng dụng khách OpenVPN cho toàn bộ LAN trên OpenWrt: một thứ tự làm việc
Quyền sở hữu giao diện, chính sách vùng, masquerade và bảng định tuyến theo SSID là bốn việc riêng biệt. Làm đúng thứ tự và đường hầm phủ toàn bộ router sẽ thôi chống lại bạn.
Bốn công việc độc lập đưa toàn bộ LAN của router ra sau một đường hầm. Thiết bị đường hầm cần một chủ sở hữu, một vùng tường lửa, một đích dịch chuyển về phía uplink và, nếu một số máy khách phải ở ngoài VPN, định tuyến theo địa chỉ nguồn. Một đường hầm kết nối mà không có gì đi qua thường thiếu một trong bốn thứ đó. Làm việc theo thứ tự phụ thuộc nghĩa là lỗi ở cuối thuộc về bước bạn vừa thay đổi. Mỗi bước dưới đây kết thúc bằng một thứ bạn có thể quan sát, và điều đó giữ bước tiếp theo khỏi thành phỏng đoán.
Quyết định ai chia sẻ đường hầm
Router phát Wi-Fi và DHCP có thể tự chạy máy khách. Cách này đưa mọi thiết bị kết nối ra sau đường hầm mà không cần cấu hình từng thiết bị, và đó là cách bố trí mà hầu hết các điểm nhỏ muốn. Đây cũng là cách có phạm vi ảnh hưởng rộng nhất khi đường hầm sập, vì mọi thiết bị mất đường đi của mình cùng lúc. Không còn gì trên LAN giữ một đường ra hoạt động.
Router thứ hai sau router đầu, chạy máy khách với subnet riêng, giới hạn đường hầm cho các thiết bị của nó. Nó dễ gỡ hơn và dễ giải thích hơn cho người kế thừa. Cái giá là khả năng với tới giữa hai bên mà không có tuyến hay chuyển tiếp cổng.
Dù thế nào, hãy làm các subnet của LAN khác nhau. Các dải trùng nhau khiến một bên trông như kết nối trực tiếp, và hố đen sinh ra từ đó được đọc như một lỗi VPN hàng giờ.
Trao chủ sở hữu cho đường hầm
Khai báo đường hầm là một giao diện mạng có tên, có thiết bị và không có giao thức riêng. Hệ thống mạng sau đó tạo và quản lý thiết bị, và mọi thứ phía sau tham chiếu giao diện bằng tên thay vì bằng thiết bị. Đó là điều cho phép vùng tìm thấy nó.
Đừng tạo cùng một thiết bị ở hai nơi. Một đường hầm làm tay bên cạnh một giao diện đã khai báo tạo ra thiết bị tồn tại nhưng không thuộc vùng nào, hoặc thiết bị biến mất khi tải lại. Cả hai đều trông như máy khách hỏng, và không cái nào phát ra lỗi nêu đúng nguyên nhân. Chọn con đường khai báo và xóa cái làm tay.
Giữ tên giống hệt nhau trong cấu hình mạng, tường lửa và VPN. Vùng liệt kê mạng theo tên, nên một lỗi gõ để đường hầm ngoài mọi vùng trong khi bản thân giao diện trông khỏe mạnh. Một giao diện khỏe mạnh mà không có chính sách là trạng thái khó phát hiện nhất.
Đưa vào vùng, rồi chuyển tiếp vào đó
Vùng tường lửa là nơi chính sách sống: vào, ra, chuyển tiếp và masquerade. Một đường hầm không thuộc vùng nào bị điều khiển bởi các giá trị mặc định bạn không chọn, và đó hiếm khi là thứ máy khách router cần. Các khối dưới đây khai báo giao diện, đặt nó vào một vùng và cho phép lưu lượng LAN đi vào vùng đó.
config interface 'vpn'
option device 'tun0'
option proto 'none'
config zone
option name 'vpn'
list network 'vpn'
option input 'REJECT'
option output 'ACCEPT'
option forward 'REJECT'
option masq '1'
config forwarding
option src 'lan'
option dest 'vpn'
Trên các bản phát hành cũ hơn 21.02 cùng dòng giao diện được viết là option ifname, vì vậy hãy kiểm tra firmware đã cài hiểu dạng nào trước khi dán. Khối chuyển tiếp là quyền cho phép lưu lượng LAN dùng đường hầm. Không có nó, thiết bị vẫn bật, máy khách vẫn kết nối, và không máy chủ LAN nào tới được đường hầm. Đó là báo cáo phổ biến nhất về kết nối nhưng không có internet trên máy khách router.
Masquerade trên vùng VPN gộp mọi địa chỉ LAN vào địa chỉ đường hầm của router trước khi gói tin rời đi. Điều đó loại bỏ nhu cầu về một tuyến quay lại subnet của bạn ở phía bên kia.
Nếu phía bên kia đã định tuyến LAN của bạn, tắt masquerade giữ địa chỉ nguồn hiển thị và làm nhật ký theo từng máy khách có ý nghĩa. Hãy chọn một và ghi lại chọn cái nào, vì hai lựa chọn tạo ra những câu hỏi hỗ trợ khác nhau về sau. Bỏ chuyển tiếp mặc định từ LAN sang WAN là một quyết định riêng với hệ quả riêng. Bỏ nó đi và quyền truy cập internet của chính router cũng mất theo.
Đặt tên đúng uplink trong NAT
Trên firmware nơi quy tắc dịch được viết tay, giao diện đi ra là trường hay sai. Quy tắc đặt tên vlan2 không làm gì khi phiên kết thúc trên ppp0. Một quy tắc không có giao diện nào có thể dịch cả lưu lượng lẽ ra phải ở riêng. Cả hai lỗi đều không tự thông báo, vì đường hầm vẫn chạy.
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
Thay ppp0 trong quy tắc đó bằng giao diện từ ip route hoặc danh sách giao diện đang chạy, rồi xem bộ đếm khi một máy chủ LAN tải trang. Trên router một nhà cung cấp, một quy tắc masquerade cho uplink thường là đủ. Quy tắc thứ hai cho giao diện đường hầm không thay thế quy tắc thứ nhất.
Sau đó thêm các tùy chọn máy khách quyết định cái gì đi vào đường hầm. Chỉ thị redirect-gateway gửi lưu lượng internet của máy khách qua VPN, và không có nó đường hầm chỉ chở các tuyến mà máy chủ đẩy xuống. Kiểm tra bảng định tuyến thu được trước khi chạm vào DNS.
Chia Wi-Fi bằng bảng thứ hai
Một bảng định tuyến không thể chứa hai tuyến mặc định. Vì vậy SSID thứ hai phải vòng qua đường hầm cần subnet riêng và bảng riêng. Gán cho SSID đi đường hầm dải riêng của nó, rồi chỉ định tuyến dải đó vào đường hầm bằng một quy tắc chọn bảng.
Các gói định tuyến theo chính sách trên OpenWrt diễn đạt đúng tổ hợp đó. Làm tay cũng được, với một quy tắc nguồn và một bảng có mặc định trỏ tới thiết bị đường hầm.
Kiểm tra việc chia tách từ cả hai mạng. Máy khách trên SSID đi đường hầm phải hiển thị địa chỉ ra của VPN, và máy khách trên SSID thường phải hiển thị địa chỉ của nhà cung cấp. Khi cả hai trông giống nhau, quy tắc khớp sai nguồn hoặc bảng không bao giờ được hỏi tới. Hãy thử cả sau khi kết nối lại, vì quy tắc phụ thuộc tên giao diện sẽ hỏng khi thiết bị được đánh số mới.
Nghi ngờ đồng hồ và cờ thiết bị
Cờ persist-tun giữ thiết bị đường hầm tại chỗ qua các lần khởi động lại. Điều đó hợp với máy chủ và gây nhầm lẫn cho máy khách mà trạng thái phải được dựng lại từ đầu. Gỡ nó khi chẩn đoán máy khách router, vì một thiết bị sống sót qua cuộc thương lượng thất bại sẽ che mất bước nào thực sự hỏng. Đặt lại sau khi máy khách kết nối ổn định, và không sớm hơn.
Đồng hồ là lỗi im lặng còn lại. Một router không có đồng hồ pin khởi động từ kỷ nguyên, nghĩa là các kiểm tra chứng chỉ thất bại cho tới khi NTP bắt kịp. Hãy so dấu thời gian trong nhật ký với thời gian thực trước khi chạm vào chứng chỉ, vì một máy khách kết nối một phút sau khi khởi động thường đang chờ đồng bộ thời gian.