CreateYourVPN Academy
Kursus: Cara Kerjanya

Monitoring server dan jaringan mesh

Bagaimana CreateYourVPN mengawasi kesehatan server: pemeriksaan diri, jaringan mesh dari pemeriksaan timbal balik antar-server, dan penyembunyian otomatis server yang tidak terjangkau dari pengguna.

Sebuah server bisa mengecewakan Anda di saat yang paling buruk: sebuah layanan mogok, penyedia hosting me-restart mesin — atau, yang lebih buruk lagi, server tersebut diblokir di negara pengguna dan berhenti terjangkau meski secara teknis masih hidup. Pengguna Anda seharusnya tidak pernah menyadari semua ini. Pelajaran ini membahas bagaimana CreateYourVPN mengawasi server Anda dan apa yang terjadi ketika salah satunya bermasalah.

Dua lapisan pemeriksaan

Sistem melihat setiap server dari dua sudut.

1. Server memeriksa dirinya sendiri

Setiap beberapa menit, masing-masing server melapor: apakah pendengar trafik di port 443 masih hidup, dan apakah layanan VPN sedang berjalan? Metrik dari pelajaran 3 datang bersama laporan yang sama. Jika laporan mengatakan "saya tidak sehat," server mendapat status "Server tidak tersedia". Jika laporan berhenti sama sekali, statusnya menjadi "Tidak ada data dari server" — mesinnya mungkin mati atau kehilangan jaringan.

2. Server saling "mengetuk"

Pemeriksaan diri tidak bisa menangkap kasus paling licik: sebuah server percaya dirinya sehat, tapi dari luar tidak dapat dijangkau — misalnya, IP-nya telah diblokir. Untuk itulah semua server Anda tergabung dalam jaringan mesh dari pemeriksaan timbal balik: setiap server secara berkala mencoba menjangkau setiap tetangganya — dengan cara yang sama seperti aplikasi pengguna akan melakukannya.

Selanjutnya, sebuah "voting" mengambil alih:

  • Satu kali ketukan yang gagal tidak berarti apa-apa — mungkin jaringannya hanya sekejap bermasalah. Hanya rentetan kegagalan yang berkelanjutan yang dihitung.
  • Sebuah server ditandai "Tidak dapat dijangkau dari server Anda" hanya ketika beberapa server independen secara konsisten gagal menjangkaunya — pendapat satu server bukanlah putusan.
  • Ada juga perlindungan terhadap "saksi yang tidak dapat diandalkan": jika suatu server tiba-tiba mengklaim tidak bisa melihat separuh tetangganya, masalahnya kemungkinan besar ada pada dirinya sendiri — dan suaranya diabaikan.

Skema inilah yang persis menangkap pemblokiran: jika sebuah server diblokir di negara tempat server Anda yang lain berada, tetangga-tetangga dari negara itu akan segera berhenti menjangkaunya, kuorum pun terbentuk, dan sistem menandai server tersebut tidak dapat dijangkau. Sementara itu, server-server di negara tanpa pemblokiran akan terus melihatnya — dan perbedaan pendapat ini membuat gambarannya jelas.

Ketika pemeriksaan koneksi antara dua server tidak tembus

Pemungutan suara menangkap pemblokiran ketika Anda punya beberapa server di negara yang menutup akses. Namun lebih sering di sana hanya ada satu: server itu berhenti melihat server luar negeri Anda, sementara server-server luar negeri saling melihat dengan baik. Untuk gambaran seperti itu kuorum tidak akan pernah terkumpul.

Kami tetap menyadarinya, tetapi kami jujur mengatakan apa yang tidak kami ketahui. Dari «A tidak melihat B» tidak bisa disimpulkan alamat siapa yang diblokir: itu satu dan pernyataan yang sama tentang jalur di antara keduanya, dan dari luar kedua kasus terlihat sama persis. Karena itu:

  • Secara bawaan kami tidak menuduh siapa pun. Kami menandai «Tidak terjangkau» titik masuk sisi yang tidak dijangkau pemeriksaan, dan kedua sisi jika tidak tembus di kedua arah. Alasannya menyebut kedua server (terlihat jika Anda membuka titik masuk di kartu server). Keputusan server mana yang diganti ada pada Anda: biasanya server yang tidak dijangkau pelanggan Anda.
  • Tidak ada satu pun yang disembunyikan. Menyembunyikan pasangan itu akan mengeluarkan server yang sepenuhnya sehat dari langganan sekaligus. Pelanggan tetap menerima titik masuk kedua server, dan penyeimbangan cukup memilih yang sehat jika rute memilikinya.

Server pemeriksa

Untuk mendapat jawaban pasti alih-alih «salah satu dari keduanya», tandai server yang penilaiannya Anda percayai: kartu server → «Gunakan server ini untuk memeriksa pemblokiran server lain».

Aturannya kemudian sederhana: jika server pemeriksa berhenti melihat server biasa, kami menganggap alamat server biasa itu diblokir, mengirim email dengan saran mengganti IP-nya, dan berhenti memberikan titik masuknya kepada pelanggan selama rute masih punya alternatif. Sebaliknya, server biasa yang tidak melihat server pemeriksa, tidak berarti apa-apa.

Server pemeriksa terbaik berada di negara yang sama dengan pelanggan Anda: sudut pandangnya paling dekat dengan apa yang dilihat aplikasi pengguna. Anda bisa menandai beberapa. Namun jika semua server ditandai, arahnya hilang lagi: tidak ada yang tersisa untuk menilai, dan pasangan kembali ke perilaku bawaan. Perhatikan bahwa server pemeriksa sendiri tidak lagi ditandai oleh sinyal ini: kami menilai dari sisinya, jadi tidak ada yang tersisa untuk menilainya.

Apa yang terjadi pada server yang bermasalah

Status-status ini langsung memengaruhi balancing: server dengan status "Server tidak tersedia" dan "Tidak dapat dijangkau dari server Anda" ditarik keluar dari rotasi — tidak ada koneksi baru yang diarahkan ke sana, dan dalam langganan pengguna tempatnya digantikan oleh server-server sehat dari rute yang sama. Satu-satunya pengecualian adalah pasangan terputus tanpa server pemeriksa: di sana titik masuk ditandai, tetapi tidak ada yang dikeluarkan.

Pada saat yang sama, sistem berhati-hati — ia dibangun dengan prinsip "jangan sampai merugikan":

  • Rute tidak pernah dibiarkan kosong. Jika semua server dalam sebuah rute ternyata "buruk", sistem akan tetap melayani pengguna dengan opsi terbaik yang tersedia daripada daftar kosong — jika tidak, aplikasi akan menyimpulkan bahwa server-servernya sudah hilang dan menghapusnya.
  • Keheningan bukanlah putusan. Status "Tidak ada data dari server" dengan sendirinya tidak mengeluarkan sebuah server dari rotasi: tanpa data segar, sistem tidak membuat gerakan mendadak.

Semuanya sembuh dengan sendirinya

Tidak ada satu pun status yang "melekat" selamanya — statusnya diturunkan ulang dari data yang segar:

  • server kembali mengirim laporan sehat → status "Server tidak tersedia" dicabut;
  • tetangga mulai bisa menjangkaunya lagi → rentetan kegagalan direset, dan tanda "Tidak dapat dijangkau dari server Anda" hilang;
  • laporan berlanjut kembali → "Tidak ada data dari server" menghilang.

Perbaiki servernya (atau tunggu hingga blokirnya dicabut) — dan ia akan kembali sendiri ke dalam layanan. Tidak ada "nyalakan kembali" secara manual.

Di mana melihat ini di panel

Buka kartu pengguna mana pun → daftar servernya: di sebelah setiap server ada titik status, dan ketika ada masalah — sebuah keterangan dengan alasannya: "Server tidak tersedia", "Tidak dapat dijangkau dari server Anda" (termasuk berapa banyak server Anda yang tidak bisa melihatnya), atau "Tidak ada data dari server". Tanda-tanda tidak langsung juga muncul di kartu server: lencana "kedaluwarsa" pada metrik dan "Tidak ada data — agen tidak merespons".

Pemeriksaan mesh sangat hemat: ini adalah sentuhan probe yang sangat kecil dengan batas volume harian yang ketat — pemeriksaan ini tidak berdampak pada trafik atau performa server Anda.

Yang perlu diingat

  • Dua lapisan kontrol: server memeriksa dirinya sendiri, dan tetangga mesh-nya memeriksa dari luar.
  • Pemblokiran ditangkap melalui "voting" dari beberapa server — tanpa panik atas gangguan sesaat.
  • Server bermasalah keluar dari rotasi; pengguna diam-diam berpindah ke server yang sehat.
  • Semuanya menyembuhkan diri sendiri: begitu server hidup kembali, ia bergabung kembali secara otomatis.
  • Jika pemeriksaan koneksi antara sepasang server tidak tembus dan tidak ada server pemeriksa, kami menandai titik masuk sisi yang tak terjangkau (atau keduanya, jika tidak tembus di kedua arah) dan tidak menyembunyikan satu pun: keputusan ada pada Anda.

Selanjutnya

Infrastrukturnya tahu cara memperbaiki dirinya sendiri, tapi ada satu hal yang layak dilindungi secara terpisah — basis data pengguna Anda.

On this page