Tuyến của thiết bị OpenVPN: chủ sở hữu cấu hình hay script khởi động?
Một tuyến chi nhánh sống sót qua một lần khởi động lại vẫn có thể biến mất sau khi lưu trong GUI hoặc cập nhật firmware. Hãy so sánh chủ sở hữu cấu hình được hỗ trợ với một script vá.
Bạn thêm một tuyến chi nhánh, nó hoạt động, rồi một bản cập nhật firmware hoặc một lần lưu từ giao diện web xóa nó đi. Hai cách sửa trông hợp lý như nhau vào lúc đó: đặt tuyến vào nguồn cấu hình được hỗ trợ của thiết bị, hoặc nối nó vào tệp được tạo từ một script khởi động. Chúng hành xử giống nhau trong một tuần và tách ra ở lần nâng cấp thứ hai. Bài viết này so sánh mỗi cách thực sự sở hữu điều gì.
Hai ứng viên sở hữu những thứ khác nhau
Nguồn cấu hình được hỗ trợ là mọi thứ thiết bị coi như đầu vào: một trường GUI, một hồ sơ được nhập, một thư mục có tài liệu cho từng máy khách, một cơ sở dữ liệu cài đặt mà gói quản lý đọc. Tệp server.conf được tạo là đầu ra. Sửa đầu ra hoạt động cho đến khi trình tạo chạy lại, và điều đó xảy ra khi lưu, khi khởi động lại và khi nâng cấp.
Cách dùng script vá đầu ra đó sau khi trình tạo hoàn tất. Đó là một kỹ thuật hợp lý cho phòng thí nghiệm, và là mặc định sai cho một văn phòng chi nhánh, vì nó làm tuyến phụ thuộc vào khớp văn bản thay vì một trường có tài liệu.
| Question | Supported config source | Post-generation script |
|---|---|---|
| Survives a GUI save | Yes | Only if the save does not regenerate the file |
| Survives a package upgrade | Usually, when the field is documented | No guarantee; the wrapper can be replaced |
| Supportable by the vendor | Yes | No |
| Obvious to the next admin | Yes, it is in the UI | No, it lives in a wrapper |
Thiết bị tạo lại những gì, và khi nào
Các gói quản lý thường giữ cài đặt trong cơ sở dữ liệu hoặc một bộ mẫu và dựng cấu hình daemon khi khởi động. Một lần lưu từ giao diện web thường ghi lại toàn bộ tệp thay vì vá một dòng. Nếu thay đổi của bạn nằm trong tệp đó, giờ nó đã mất, và không có gì ghi cảnh báo, vì theo quan điểm của thiết bị không có gì bị mất.
Các trình bao khởi động có một chế độ hỏng thứ hai. Một grep cho một chỉ thị có khoảng trắng cụ thể ngừng khớp sau khi mẫu thay đổi, và script im lặng không làm gì. Tệ hơn, một bản cập nhật firmware có thể thay trình bao bằng phiên bản mới, mang theo bản vá. Khi đó bạn có một tuyến đã tồn tại một năm và biến mất trong lần bảo trì mà không ai gắn với định tuyến.
Chủ sở hữu được hỗ trợ phải diễn đạt gì
Một tiền tố chi nhánh cần ba phát biểu, không phải một. Máy khách phải học tuyến, máy chủ phải biết máy khách đã xác thực nào sở hữu tiền tố, và phía chi nhánh phải trả lưu lượng về địa chỉ đường hầm mà nó được cấp. Trong thuật ngữ OpenVPN, điều đó có nghĩa là một route được đẩy, một iroute khớp gắn với máy khách, và một đường trả về ở phía bên kia.
Đây là chỗ giao diện thiết bị gây hiểu nhầm. Một hộp kiểm ghi «cho phép máy khách truy cập LAN của máy chủ» mô tả lưu lượng hướng tới chính mạng của máy chủ. Chi nhánh của bạn là hướng ngược lại: một mạng sau một máy khách, tiếp cận được từ phía máy chủ. Cùng nhãn đó không ngụ ý hỗ trợ điều đó, và một chỉ thị hợp lệ trong tệp không phải lời hứa rằng gói sẽ giữ nó.
Khi không có điều khiển được hỗ trợ
Đôi khi bản phát hành đã cài thực sự không thể diễn đạt một tuyến riêng cho một đối tác. Khi đó các lựa chọn trung thực là một cổng khác do bạn kiểm soát, hoặc một chế độ site-to-site được hỗ trợ ở cả hai đầu. Cả hai đầu phải nói được nó. Một trang sản phẩm nói site-to-site không làm cho một hồ sơ OpenVPN tùy ý trở nên trao đổi được với đường hầm của giao thức khác, và việc ép cặp đó thường tạo ra một đường hầm kết nối nửa vời trông vẫn ổn trên trang trạng thái.
Chọn phương án bạn có thể mô tả trong một câu cho người kế thừa mạng. Nếu câu trả lời cần nhắc đến đường dẫn script và mẫu văn bản, thiết kế đã mong manh.
Làm cho ý định có thể kiểm toán
Ghi lại hợp đồng bên ngoài thiết bị: danh tính máy khách hiệu lực, tiền tố, cổng trả về và trường được hỗ trợ cung cấp từng thứ. Xuất cấu hình qua cơ chế được hỗ trợ để việc dựng lại có tham chiếu, và xác minh dịch vụ sau khi kết nối lại, khởi động lại và nâng cấp thay vì chỉ sau thay đổi.
Khi có gì đó hỏng, hãy so sánh kết quả được tạo với bản ghi đó, thay vì khôi phục một dòng không giải thích và hy vọng.tài liệu tham chiếu OpenVPN 2.6 là nơi xác nhận cách route và iroute tương tác trước khi bạn tranh luận với một giao diện.
Danh sách kiểm tra cho thay đổi tiếp theo: nêu tên chủ sở hữu, phát biểu hợp đồng ba phần, xuất ý định, và kiểm thử lại sau các sự kiện vòng đời của chính thiết bị, không phải sau chỉnh sửa của bạn.