Kasus-kasus praktis ini adalah panduan pelatihan untuk memahami lebih baik bagaimana jaringan, keamanan dan teknologi ketersediaan tinggi bekerja.
Pertama, coba latihan berikut:
Step 1. Install Zevenet CE from GIT, SF or Docker https://www.zevenet.com/community Step 2. Create L4xNAT farm with 2 backends and NAT or DNAT mode https://www.zevenet.com/knowledge-base/ Step 3. Execute in a console of Zevenet CE and try to understand the result of: root# iptables -t mangle -n -L root# iptables -t nat -n -L
Keraguan dan komentar di pejabat daftar alamat!
Menjawab
Load balancer adalah perangkat jaringan yang bertugas memastikan arus lalu lintas antara klien dan server backend atau nyata, sehingga langkah-langkah 4 akan dijaga untuk memastikan arus, paket per paket koneksi pada lapisan 4:
1. Paket dari klien dikirim dari klien ke load balancer
2. Paket dikirim dari load balancer ke satu server nyata atau backend yang dipilih
3. Paket tersebut membalas dari server ke load balancer
4. Paket dikirim kembali ke klien sebagai tanggapan
Zevenet layer 4 (LSLB - profil L4xNAT) menangani semua paket ini menggunakan netfilter subsistem melalui iptables dan sistem perutean jaringan.
Untuk alasan ini, ketika mengkonfigurasi a DNAT mode farm dan jalankan perintah iptables kita dapat menemukan aturan yang dihasilkan dalam tabel mengoyakkan serta nat dari netfilter. Informasi lebih lanjut tentang Tabel Netfilter di sini .
Dalam majalah PREROUTING rantai dari mengoyakkan tabel itu menunjukkan aturan yang cocok:
- Semua paket masuk dari semua sumber atau klien yang tujuannya adalah alamat virtual dan port layanan (dalam contoh akan 192.168.101.250: 443)
- Kemudian tandai paket sesuai dengan algoritma tertentu, dalam hal ini adalah bobot berdasarkan metode probabilitas.
root@zevenet:~# iptables -L -t mangle -n Chain PREROUTING (policy ACCEPT) target prot opt source destination CONNMARK all -- 0.0.0.0/0 0.0.0.0/0 CONNMARK restore MARK tcp -- 0.0.0.0/0 192.168.101.250 statistic mode random probability 1.00000000000 multiport dports 443 /* FARM_app_1_ */ MARK set 0x20d MARK tcp -- 0.0.0.0/0 192.168.101.250 statistic mode random probability 0.50000000000 multiport dports 443 /* FARM_app_0_ */ MARK set 0x20c CONNMARK all -- 0.0.0.0/0 0.0.0.0/0 state NEW CONNMARK save Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination Chain POSTROUTING (policy ACCEPT) target prot opt source destination
Sekarang bahwa paket yang masuk ditandai, di PREROUTING rantai dari nat tabel kita menggunakan tanda paket untuk mengubah alamat tujuan paket ke satu backend atau yang lain. Untuk contoh ini, alamat IP 192.168.1.10 serta 192.168.1.11 adalah server yang sebenarnya.
root@zevenet:~# iptables -L -t nat -n Chain PREROUTING (policy ACCEPT) target prot opt source destination DNAT tcp -- 0.0.0.0/0 0.0.0.0/0 mark match 0x20c /* FARM_app_0_ */ to:192.168.1.10:443 DNAT tcp -- 0.0.0.0/0 0.0.0.0/0 mark match 0x20d /* FARM_app_1_ */ to:192.168.1.11:443 Chain INPUT (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination Chain POSTROUTING (policy ACCEPT) target prot opt source destination
The conntrack tabel mengelola terjemahan alamat tujuan dan di DNAT Dalam mode, paket kembali dikelola oleh rute karena load balancer akan menjadi gateway default dari backends.
Dalam kasus NAT, atau SNAT Seperti yang umumnya diketahui, conntrack tidak hanya mengatur terjemahan alamat tujuan tetapi juga terjemahan alamat sumber. Dalam hal ini, satu-satunya perbedaan dengan DNAT adalah bahwa paket yang dijawab tidak dikelola oleh sistem perutean tetapi oleh tabel conntrack. Jadi kami hanya dapat menemukan 2 aturan baru di POSTROUTING rantai tabel nat untuk melakukan MASQUERADING dengan alamat IP virtual tambak.
root@zevenet:~# iptables -L -t nat -n Chain PREROUTING (policy ACCEPT) target prot opt source destination DNAT tcp -- 0.0.0.0/0 0.0.0.0/0 mark match 0x20c /* FARM_app_0_ */ to:192.168.1.10:443 DNAT tcp -- 0.0.0.0/0 0.0.0.0/0 mark match 0x20d /* FARM_app_1_ */ to:192.168.1.11:443 Chain INPUT (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination Chain POSTROUTING (policy ACCEPT) target prot opt source destination SNAT tcp -- 0.0.0.0/0 0.0.0.0/0 mark match 0x20c /* FARM_app_0_ */ to:192.168.101.250 SNAT tcp -- 0.0.0.0/0 0.0.0.0/0 mark match 0x20d /* FARM_app_1_ */ to:192.168.101.250
Keraguan lebih lanjut? Tanyakan ke daftar alamat!