Masuk! Jaringan Pribadi 6PN

PenulisNameThomas PtacekTwitter@tqbf https://canopybandung.com/ Jasa Backlink PBN Murah

Lebih sering daripada tidak, aplikasi modern benar-benar ansambel layanan yang bekerja sama, berjalan secara independen dan bertransaksi satu sama lain melalui jaringan. Pada Fly.io, kami ingin tidak hanya mungkin untuk mengekspresikan aplikasi semacam ini, tetapi menyenangkan, bahkan mungkin membosankan.

Sampai sekarang, itu adalah janji yang sulit bagi kami untuk dipenuhi, karena layanan yang https://kangasep.com/jasa-backlink-pbn/ dikerahkan di Fly.io berjalan sebagai orang asing satu sama lain. Anda dapat mengatur agar layanan cache front-end berbicara dengan layanan aplikasi backend, tetapi mereka harus bertemu melalui alamat IP publik. Lebih membuat frustrasi, Anda perlu mengamankan koneksi mereka entah bagaimana, dan jawaban terbaik untuk itu biasanya mTLS dan sertifikat. Ack! Thbhtt!

Seharusnya tidak sekeras ini. Fly.io sepenuhnya terhubung melalui mesh WireGuard yang bergabung dengan setiap titik di jaringan kami di mana layanan dapat berjalan. Kami sudah menjanjikan transportasi yang aman untuk paket Anda. Anda mungkin mendapatkan kepuasan dari menjalankan CA Anda sendiri, dan jika itu hal Anda, kami tidak di sini untuk menilai. Tapi anda tidak harus. Dan sekarang Anda tidak. Memperkenalkan 6PN

6PN (untuk IPv[6] [P]rivate [N]etworking) adalah jawaban kami untuk fitur dasar “VPC” yang ditawarkan sebagian besar penyedia cloud. Ini akan segera menyala secara default dan tidak memerlukan konfigurasi tambahan. Jaringan 6PN menghubungkan semua aplikasi dalam organisasi Fly.io.

Setiap contoh dari setiap aplikasi di organisasi Anda sekarang memiliki alamat IPv6 tambahan – “alamat 6PN”, di /etc/hosts sebagai fly-local-6pn. Alamat tersebut hanya dapat dijangkau di dalam organisasi Anda. Ikat layanan untuk itu yang ingin Anda jalankan secara pribadi.

Sangat tidak efisien untuk menghubungkan dua titik akhir IPv6 dengan menebak alamat IPv6 secara acak, jadi kami menggunakan DNS untuk membuat beberapa perkenalan. Setiap aplikasi Fly Anda sekarang memiliki zona DNS internal. Jika aplikasi Anda menakutkan-bagel-43, zona DNS-nya menakutkan-bagel-43.internal – dns itu menyelesaikan semua alamat IPv6 6PN yang digunakan untuk aplikasi. Anda dapat menemukan host berdasarkan wilayah: nrt.fearsome-bagel-43.internal adalah instans Anda di Jepang. Anda dapat menemukan semua wilayah untuk aplikasi Anda: catatan TXT di regions.fearsom-bagel-43.internal. Dan Anda dapat menemukan aplikasi “saudara kandung” di organisasi Anda dengan catatan TXT di _apps.internal.

Untuk mengaktifkan fitur ini sepenuhnya, Anda perlu menambahkan cuplikan konfigurasi ke fly.toml Anda: [eksperimental]private_network = benarBeberapa Contoh Layanan Konsultasi

Katakanlah kita ingin menjalankan cache nginx sharded berkapasitas tinggi. Kita dapat membuat nginx.conf yang hampir vanila dengan hulu untuk node cache kita: pecahan hulu {hash “${scheme}fearsome-bagel-43${request-uri}” consistent;# SHARDS}server {listen 8080 default_server;location / {proxy_pass http://shards/;}}

Di Dockerfile untuk aplikasi ini, kami dapat menyertakan skrip yang mencari alamat 6PN untuk aplikasi kami — di bash, Anda cukup menggunakan dig aaaa fearsome-bagel-43.internal +short untuk mendapatkannya. Ganti mereka ke nginx.conf sebagai baris server:

server [fdaa:0:1:a01:a0a:dead:beef:2]:8080 ;

… lalu muat ulang nginx. Fitur hashing yang konsisten di nginx menyeimbangkan lalu lintas di seluruh pecahan Anda, dan meminimalkan gangguan saat instans bergabung dan pergi. Database

Berikut adalah contoh yang lebih sederhana: mari kita jalankan server Redis untuk aplikasi di organisasi kita. Kita bisa mulai dari Redis Dockerfile standar — DARI redis, dan menulis start.sh sepele: #!/bin/shredis-server —bind $(grep fly-local-6pn /etc/hosts | awk ‘{print $1}’)

Buat aplikasi Fly, seperti redis-bagel-43 (saya tidak tahu apa itu dengan saya hari ini). Sisa aplikasi Anda akan melihatnya setelah digunakan, seperti redis-bagel-43.internal.

Hal yang menyenangkan tentang ini adalah bahwa Redis terkunci secara default ke organisasi Anda, hanya sebagai konsekuensi dari cara kerja 6PN. Anda dapat menyiapkan sertifikat TLS untuk mengautentikasi klien, tetapi jika Anda tidak melakukan sesuatu yang rumit dengan organisasi Anda, mungkin tidak perlu. Pesan dengan NATS

Atau, bagaimana kalau menghubungkan semua aplikasi Anda dengan kain perpesanan global? Anda dapat menggunakannya untuk membuat aplikasi obrolan, atau untuk mengirimkan log, atau untuk membangun aplikasi berbasis acara. Sekali lagi: kita dapat menggunakan vendor Dockerfile yang hampir kata demi kata: DARI nats:2.1.9-scratchADD nats.conf /etc/nats.confCMD [“-c”, “/etc/nats.conf”]

Dan satu-satunya bagian menarik dari konfigurasi itu: cluster: {host: “fly-local-6pn”,rute: [“nats-route://nats-bagel-43.internal:4248”],}

NATS akan mengkonfigurasi dirinya dengan rekan-rekan yang tersedia, dan aplikasi Anda yang lain dapat mencapainya di nats-bagel-43.internal. Di balik layar

Saya akan meluangkan waktu sebentar untuk menjelaskan sedikit tentang cara kerjanya. Lewati ke depan jika Anda tidak peduli!

Alamat IPv6 sangat besar. Anda hanya tidak akan percaya betapa besar, sangat, membingungkan mereka. Sebenarnya, tidak, Anda akan; lebarnya 16 byte. Jadi, hanya “cukup besar”.

Kami menggunakan ruang itu untuk menyematkan informasi perutean dan akses; pengidentifikasi untuk organisasi Anda, pengidentifikasi untuk host Fly yang sedang dijalankan aplikasi Anda, dan pengidentifikasi untuk instans individual aplikasi Anda. Alamat ini ditetapkan langsung oleh sistem orkestrasi kami. Anda akan melihatnya dalam contoh Anda, di eth0; mereka adalah alamat yang dimulai di FDAA.

Kami merutekan dengan urutan program BPF kecil; mereka menegakkan kontrol akses (Anda tidak dapat berbicara dengan satu jaringan 6PN dari yang lain), dan melakukan beberapa alamat konyol menulis ulang gerak kaki sehingga kita dapat menggunakan routing cryptokey WireGuard untuk mendapatkan paket dari satu host ke host lain, tanpa menjalankan protokol routing dinamis.

Ini adalah detail yang membosankan, tetapi jika Anda bertanya-tanya: sistem penemuan layanan kami mengisi database pada setiap host tempat kami menjalankan server Rust DNS, untuk melayani domain “internal”. Kami menyuntikkan IP server DNS itu ke resolv.conf Anda — alamat IP server itu selalu fdaa::3. Di mana kepala kita berada

Ada tema untuk cara kita membangun hal-hal di Fly (atau setidaknya, Kurt memiliki tema bahwa ia terus memukul kita di atas kepala dengan). Kami menyukai internal yang menarik – WireGuard, Firecracker, Rust, eBPF – tetapi UX yang membosankan dan sederhana. Mengelola ansambel aplikasi Fly.io bahkan tidak boleh dekat dengan pekerjaan penuh waktu siapa pun.

Jadi kami telah menjaga 6PN membosankan seperti yang kami bisa. Anda dapat membuat hal-hal menarik dan aneh jika Anda mau! Jalankan kluster Serf di https://kangasep.com/ antara semua aplikasi Anda! Boot Konsul atau etcd. Siapkan CA. Anda dapat membuat penemuan layanan dan keamanan semenarik yang Anda inginkan. Kami akan mencoba untuk tetap keluar dari jalan.

Anda mungkin dapat menebak apa langkah selanjutnya: kami akan membuatnya membosankan untuk menghubungkan jaringan dan layanan lain ke jaringan pribadi Anda. Ikuti kami di community.fly.io untuk pengumuman awal fitur jaringan baru.

Luncurkan aplikasi Docker Anda di Fly dan panggang, jaringan pribadi yang aman antar instans.

Posting berikutnya ↑ VM baru: lebih banyak RAM, CPU ekstra, dan menu dolarPrevious post ↓Kami memotong harga bandwidth. Pergi kacang.