Giám sát máy chủ và mạng lưới mesh
Cách CreateYourVPN theo dõi tình trạng máy chủ: tự kiểm tra, mạng lưới mesh gồm các kiểm tra chéo lẫn nhau giữa các máy chủ, và tự động ẩn các máy chủ không thể truy cập khỏi người dùng.
Một máy chủ có thể làm bạn thất vọng vào đúng thời điểm tệ nhất: một dịch vụ bị sập, nhà cung cấp hosting khởi động lại máy — hoặc tệ hơn, máy chủ bị chặn ở quốc gia của một người dùng và ngừng có thể truy cập được dù về mặt kỹ thuật nó vẫn đang chạy. Người dùng của bạn không bao giờ nên nhận thấy bất kỳ điều gì trong số đó. Bài học này nói về cách CreateYourVPN trông chừng máy chủ của bạn và điều gì xảy ra khi một trong số chúng gặp sự cố.
Hai lớp kiểm tra
Hệ thống nhìn vào mỗi máy chủ từ hai góc độ.
1. Máy chủ tự kiểm tra chính nó
Cứ sau vài phút, mỗi máy chủ lại báo cáo: bộ lắng nghe lưu lượng trên cổng 443 có còn sống không, và dịch vụ VPN có đang chạy không? Các số liệu từ bài 3 cũng đến kèm cùng báo cáo đó. Nếu báo cáo nói "tôi không khỏe", máy chủ sẽ nhận trạng thái "Máy chủ không khả dụng". Nếu báo cáo ngừng đến hoàn toàn, trạng thái trở thành "Không có dữ liệu từ máy chủ" — máy có thể đã bị tắt nguồn hoặc mất mạng.
2. Các máy chủ "gõ cửa" lẫn nhau
Việc tự kiểm tra không thể phát hiện trường hợp tinh vi nhất: một máy chủ tin rằng nó khỏe mạnh, nhưng từ bên ngoài không thể truy cập được — chẳng hạn, IP của nó đã bị chặn. Đó là lý do tất cả các máy chủ của bạn được nối vào một mạng lưới mesh kiểm tra chéo lẫn nhau: mỗi máy chủ định kỳ cố gắng liên lạc với mọi máy hàng xóm — giống hệt cách ứng dụng của người dùng sẽ làm.
Từ đó, một cuộc "bỏ phiếu" sẽ diễn ra:
- Một lần gõ thất bại đơn lẻ không có nghĩa gì cả — mạng có thể chỉ vừa chớp tắt. Chỉ những chuỗi thất bại liên tục mới được tính.
- Một máy chủ chỉ được đánh dấu là "Không thể tiếp cận từ máy chủ của bạn" khi nhiều máy chủ độc lập liên tục không thể liên lạc được với nó — ý kiến của một máy chủ duy nhất không phải là bản án.
- Còn có cả biện pháp bảo vệ chống lại "nhân chứng không đáng tin": nếu một máy chủ nào đó đột nhiên tuyên bố rằng nó không thấy được một nửa số hàng xóm của mình, vấn đề nhiều khả năng nằm ở chính nó — và các phiếu bầu của nó bị loại bỏ.
Đây chính xác là cơ chế bắt được các trường hợp bị chặn: nếu một máy chủ bị chặn ở một quốc gia nơi các máy chủ khác của bạn cũng đang sống, các hàng xóm từ quốc gia đó sẽ nhanh chóng ngừng liên lạc được với nó, một số phiếu đủ để thành định lượng (quorum) sẽ tích lũy, và hệ thống sẽ đánh dấu máy chủ là không thể tiếp cận. Trong khi đó, các máy chủ ở những quốc gia không bị chặn sẽ vẫn tiếp tục thấy nó — và sự khác biệt về ý kiến khiến bức tranh trở nên rõ ràng.
Khi kiểm tra kết nối giữa hai máy chủ không đi qua được
Cơ chế bỏ phiếu bắt được việc bị chặn khi bạn có vài máy chủ trong quốc gia đã đóng đường truyền. Nhưng thường ở đó chỉ có đúng một máy: nó không còn thấy máy chủ ở nước ngoài của bạn, trong khi các máy ở nước ngoài vẫn thấy nhau rất tốt. Với bức tranh như vậy, số phiếu cần thiết sẽ không bao giờ đủ.
Chúng tôi vẫn nhận ra điều đó, nhưng nói thật những gì mình không biết. Từ «A không thấy B» không thể suy ra địa chỉ của bên nào bị chặn: đó là một và cùng một khẳng định về đường đi giữa hai máy, và nhìn từ bên ngoài cả hai trường hợp giống hệt nhau. Vì vậy:
- Mặc định chúng tôi không buộc tội ai. Chúng tôi đánh dấu «Không truy cập được» các điểm vào của phía mà kiểm tra không tới được, và của cả hai phía nếu nó không đi qua theo cả hai chiều. Phần lý do nêu tên cả hai máy chủ (thấy được khi bạn mở một điểm vào trong thẻ máy chủ). Bạn là người quyết định thay máy nào: thường là máy mà khách của bạn không kết nối tới được.
- Không máy nào bị ẩn đi. Ẩn cả cặp sẽ đồng thời loại khỏi gói đăng ký một máy chủ hoàn toàn khỏe mạnh. Khách vẫn tiếp tục nhận điểm vào của cả hai máy chủ, còn bộ cân bằng đơn giản là ưu tiên máy khỏe nếu tuyến có.
Máy chủ kiểm tra
Để nhận câu trả lời chính xác thay vì «một trong hai», hãy đánh dấu máy chủ mà bạn tin vào kết quả kiểm tra của nó: thẻ máy chủ → «Dùng máy chủ này để kiểm tra tình trạng chặn của các máy khác».
Quy tắc khi đó rất đơn giản: nếu máy kiểm tra không còn thấy một máy chủ thường, chúng tôi coi địa chỉ của máy chủ thường đó là bị chặn, gửi email khuyên bạn đổi IP và ngừng cấp các điểm vào của máy đó cho khách khi tuyến vẫn còn lựa chọn khác. Chiều ngược lại, máy chủ thường không thấy máy kiểm tra, không có ý nghĩa gì.
Máy kiểm tra tốt nhất là máy đặt ở cùng quốc gia với khách của bạn: góc nhìn của nó gần nhất với những gì ứng dụng người dùng thấy. Bạn có thể đánh dấu nhiều máy. Nhưng nếu đánh dấu tất cả, hướng lại biến mất: sẽ không còn ai để phán xét, và các cặp quay về hành vi mặc định. Lưu ý rằng bản thân máy kiểm tra sẽ không còn bị tín hiệu này đánh dấu: chúng tôi xét theo phía của nó, nên không còn ai để xét chính nó.
Điều gì xảy ra với một máy chủ có vấn đề
Các trạng thái được đưa thẳng vào cân bằng tải: các máy chủ có trạng thái "Máy chủ không khả dụng" và "Không thể tiếp cận từ máy chủ của bạn" sẽ bị loại khỏi vòng xoay — không có kết nối mới nào được gửi đến chúng, và trong đăng ký của người dùng, vị trí của chúng được thay bằng các máy chủ khỏe mạnh từ cùng những tuyến đó. Ngoại lệ duy nhất là cặp bị đứt mà chưa chọn máy kiểm tra: ở đó các điểm vào bị đánh dấu, nhưng không điểm nào bị loại khỏi danh sách.
Đồng thời, hệ thống rất cẩn trọng — nó được xây dựng theo nguyên tắc "không gây hại":
- Một tuyến không bao giờ bị bỏ trống. Nếu mọi máy chủ trên một tuyến hóa ra đều "xấu", hệ thống sẽ phục vụ người dùng phương án tốt nhất hiện có thay vì một danh sách trống — nếu không, ứng dụng sẽ cho rằng các máy chủ đã biến mất và xóa chúng đi.
- Sự im lặng không phải là bản án. Trạng thái "Không có dữ liệu từ máy chủ" không tự động loại một máy chủ khỏi vòng xoay: không có dữ liệu mới, hệ thống sẽ không đưa ra động thái đột ngột nào.
Mọi thứ tự chữa lành
Không trạng thái nào "dính chặt" mãi mãi — trạng thái luôn được tính lại từ dữ liệu mới:
- máy chủ gửi lại một báo cáo khỏe mạnh → "Máy chủ không khả dụng" được gỡ bỏ;
- các hàng xóm bắt đầu liên lạc được với nó trở lại → chuỗi thất bại được đặt lại, và nhãn "Không thể tiếp cận từ máy chủ của bạn" biến mất;
- báo cáo tiếp tục đến → "Không có dữ liệu từ máy chủ" biến mất.
Hãy sửa máy chủ (hoặc chờ nó được gỡ chặn) — và nó sẽ tự đưa mình trở lại hoạt động. Không cần "bật lại" thủ công.
Xem điều này ở đâu trong bảng điều khiển
Mở thẻ của bất kỳ người dùng nào → danh sách máy chủ của họ: bên cạnh mỗi máy chủ có một chấm trạng thái, và khi có gì đó không ổn — một dòng chú thích với lý do: "Máy chủ không khả dụng", "Không thể tiếp cận từ máy chủ của bạn" (kèm theo số lượng máy chủ của bạn không thể thấy nó), hoặc "Không có dữ liệu từ máy chủ". Các dấu hiệu gián tiếp cũng xuất hiện trên thẻ máy chủ: huy hiệu "cũ" trên số liệu và "Không có dữ liệu — agent không phản hồi".
Các kiểm tra mesh cực kỳ tiết kiệm: chúng là những lần chạm thăm dò rất nhỏ với hạn mức khối lượng hàng ngày nghiêm ngặt — chúng không có tác động gì đến lưu lượng hay hiệu năng của máy chủ bạn.
Những điểm chính cần nhớ
- Hai lớp kiểm soát: một máy chủ tự kiểm tra chính nó, và các hàng xóm mesh của nó kiểm tra nó từ bên ngoài.
- Các trường hợp bị chặn được bắt bằng "bỏ phiếu" của nhiều máy chủ — không hoảng loạn vì một trục trặc đơn lẻ.
- Các máy chủ có vấn đề bị loại khỏi vòng xoay; người dùng lặng lẽ chuyển sang các máy khỏe mạnh.
- Mọi thứ tự chữa lành: ngay khi một máy chủ sống lại, nó tự động tái gia nhập.
- Nếu kiểm tra kết nối giữa một cặp máy chủ không đi qua được mà chưa chọn máy kiểm tra, chúng tôi đánh dấu điểm vào của phía không tới được (hoặc của cả hai, nếu nó không đi qua theo cả hai chiều) và không ẩn điểm nào: quyết định thuộc về bạn.
Tiếp theo
Hạ tầng biết cách tự sửa mình, nhưng có một thứ đáng để bảo vệ riêng — cơ sở người dùng của bạn.
Truy cập khẩn cấp: khi mạng chặn tất cả
Truy cập khẩn cấp (OLCRTC) trong CreateYourVPN: kênh dự phòng ngụy trang thành cuộc gọi video cho những mạng dùng danh sách trắng — nó tốn gì của máy chủ, cái gì tự bật cùng Pro và bạn cần nói trước điều gì với người dùng.
Sao lưu: lưu và khôi phục người dùng của bạn
Tại sao bạn nên sao lưu cơ sở người dùng của mình, cách thiết lập bản sao tự động lên Google Drive hoặc S3, và cách khôi phục từ một bản sao lưu.