Một Azure VM cần đường hầm: ứng dụng khách trong máy hay cổng VPN?
Ba điều kiện quyết định liệu một Azure VM duy nhất có nên chạy ứng dụng khách VPN riêng hay kết nối thuộc về lớp mạng.
Một khối lượng công việc trong một Azure VM phải đến được mạng riêng qua một đường hầm. Câu hỏi quyết định thiết kế không phải là sản phẩm VPN nào tốt hơn, mà là liệu có máy nào khác sẽ cần đường đi đó hay không. Trả lời điều đó trước và phần còn lại của kiến trúc thường tự chọn. Nếu sai, bạn sẽ thừa hưởng một VM âm thầm trở thành bộ định tuyến mà không ai ghi lại.
Hai công việc trông giống nhau
Một VM có thể là điểm cuối hoặc điểm trung chuyển, và khác biệt không nằm ở phần mềm bạn cài mà ở việc ai sử dụng đường hầm. Là điểm cuối, máy khách chạy ứng dụng cho các tiến trình của chính nó. Là điểm trung chuyển, nó chuyển tiếp gói tin của các khối lượng công việc khác, khiến nó trở thành một phần của cấu trúc liên kết mạng.
| Công việc | VM làm gì | Ai sở hữu việc định tuyến |
|---|---|---|
| Điểm cuối của khối lượng công việc | Chạy ứng dụng khách được hỗ trợ cho các tiến trình của chính nó | Các tuyến của máy khách chọn đích đã được phê duyệt |
| Thiết bị trung chuyển | Chuyển tiếp các khối lượng công việc khác vào kết nối trang | Bảng tuyến của mạng con, chuyển tiếp NIC, chính sách máy khách và đường quay về |
Phần lớn yêu cầu cho một VM là công việc thứ nhất khoác ngôn ngữ của công việc thứ hai. Ai đó nói “VM là VPN của chúng tôi” khi thực ra muốn nói một ứng dụng trên đó cần đến cơ sở dữ liệu ở phía bên kia.
Điều kiện một: có thứ gì khác cần phía xa không?
Nếu câu trả lời là không, hãy cài ứng dụng khách trong máy và ngừng thiết kế. Không gì trong lựa chọn đó đòi hỏi cổng được quản lý, và không gì biến VM thành cổng cho các máy lân cận. Bạn chỉ đang thêm một tuyến bên trong một hệ điều hành.
Nếu câu trả lời là có, hoặc có lẽ có trong vòng một năm, hãy coi đó là thiết kế mạng ngay bây giờ. Các VM khác chỉ đến được VM trung chuyển khi bảng tuyến của mạng con gửi chúng tới đó và NIC chấp nhận lưu lượng được chuyển tiếp, nên công việc là bảng tuyến và quyền chuyển tiếp, không phải cài thêm ứng dụng khách.
Điều kiện hai: bạn có giữ được đường quản trị không?
Một ứng dụng khách VPN cài tuyến rộng có thể chiếm đường bạn dùng để quản trị VM. Nếu danh sách đích của đường hầm trùng với mạng quản trị, phiên SSH hoặc RDP của bạn rớt ngay khi ứng dụng khách kết nối, và việc sửa phải làm qua bảng điều khiển nối tiếp hoặc dựng lại.
Kiểm tra trước và sau. Trên Linux, ip route get <management-ip> cho biết nhân sẽ dùng giao diện và nguồn nào ngay lúc này; so sánh với câu trả lời khi đường hầm đang bật. Đường hầm chia tách với danh sách đích rõ ràng dễ bảo vệ hơn tuyến mặc định, và thường đó chính là thứ khối lượng công việc thực sự cần.
Điều kiện ba: ai vá nó lúc nửa đêm?
Ứng dụng khách trong máy nghĩa là hệ điều hành của bạn, phiên bản ứng dụng khách của bạn và chứng chỉ của bạn. Điều đó ổn khi bạn đã vận hành VM và chu kỳ vá của nó. Đó là một trao đổi tồi khi VM chỉ tồn tại để giữ đường hầm. Hãy đếm giờ vá trước khi nói ứng dụng khách trong máy rẻ hơn. Một bản nâng cấp ứng dụng khách cần khởi động lại là gián đoạn mà bạn tự lên lịch cho một cỗ máy tồn tại chỉ để giữ đường hầm hoạt động.
Cổng được quản lý chuyển việc bảo trì đó sang nền tảng. Bạn vẫn sở hữu danh tính, quyền và các đường mạng phía sau, nhưng bạn không khởi động lại máy để áp dụng bản cập nhật ứng dụng khách.
Cổng được quản lý không làm gì
Azure VPN Gateway là dịch vụ kết nối VNet với các bố trí site-to-site và point-to-site riêng. Nó không phải quy tắc cấm phần mềm VPN trong máy, và không phải thứ thay thế trực tiếp cho ứng dụng khách mà một ứng dụng cần.
Điều nó mang lại là kết nối ở lớp mạng, nhiều khối lượng công việc có thể đến được qua định tuyến. Điều nó không mang lại là đường hầm chỉ một tiến trình trên một VM dùng và giới hạn trong danh tính của tiến trình đó. Ranh giới đó không phải khuyết điểm cần xin lỗi; đó chính là ý nghĩa của thiết kế ứng dụng khách trong máy. Một ứng dụng, một tuyến, một bộ thông tin xác thực, không ảnh hưởng tới các VM khác trong mạng con.
Vậy so sánh không phải giữa được quản lý và phần mềm. Đó là kết nối theo phạm vi mạng so với kết nối theo phạm vi tiến trình, và cái sau là chính đáng khi chỉ một tiến trình cần nó.
Lập kế hoạch đường phát triển trước khi cần
Nếu yêu cầu phát triển từ một VM thành một mạng con, hãy dựng lại thiết kế thay vì mở rộng các tiền tố được phép của ứng dụng khách. Dùng lại một phiên tiện lợi như bộ định tuyến không được ghi lại sẽ gắn mọi người dùng với vòng đời của VM đó, thông tin xác thực và cửa sổ vá của nó.
Điểm khởi đầu đúng, khi kết nối thuộc phạm vi mạng chứ không phải khối lượng công việc, là tổng quan về Azure VPN Gateway.
Trước khi chọn, hãy viết ba dòng: điều gì cần phía xa, ai quản trị VM và ai vá đường hầm. Nếu cả ba câu trả lời đều chỉ về một khối lượng công việc, ứng dụng khách trong máy là thiết kế trung thực. Nếu bất kỳ câu nào chỉ về một mạng con, hãy thiết kế lớp mạng ngay bây giờ.