Jawaban utama :
Conntrack
menggantikan state
, tetapi di kernel modern sekarang tidak ada perbedaan antara keduanya.State
saat ini diberi alias dan diterjemahkan ke conntrack
di iptables jika kernel memilikinya, jadi sintaks -m state --state
sebenarnya diterjemahkan ke dalam -m conntrack --ctstate
dan ditangani oleh modul yang sama.
Namun, pada beberapa kernel lama, contrack harus diaktifkan secara khusus.
Kemungkinan penjelasan :
Menurut saya, aturan yang Anda kutip menyertakan duplikat, melayani kernel yang lebih lama dan lebih baru.
Atau mungkin ini hanya kasus pemrograman kultus Cargo.
Ada pertanyaan ini di ServerFault dari tahun 2012:
Apa perbedaan praktis antara:
iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
dan
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
Mana yang terbaik untuk digunakan?
Jawaban yang diterima adalah:
Keduanya menggunakan internal kernel yang sama di bawahnya (subsistem pelacakan koneksi).
Tajuk
xt_conntrack.c
:xt_conntrack - Netfilter module to match connection tracking information. (Superset of Rusty's minimalistic state match.)
Jadi saya akan mengatakan - modul negara lebih sederhana (dan mungkin lebih sedikit rawan kesalahan). Itu juga lebih lama di kernel. Conntrack di sisi lain memiliki lebih banyak opsi dan fitur[1].
Panggilan saya adalah menggunakan
conntrack
jika Anda membutuhkan fitur-fiturnya, jika tidak tetap gunakan modul status.Pertanyaan serupa di netfiltermaillist.
[1] Cukup berguna seperti
-m conntrack --ctstate DNAT -j MASQUERADE" routing/DNAT fixup
;-)
Salah satu jawaban lain mengarah ke dokumen ini tentang iptables
. Dikatakan:
conntrack
match adalah versi tambahan daristate
cocok, yang memungkinkan untuk mencocokkan paket dengan cara yang jauh lebih terperinci. Ini memungkinkan Anda melihat informasi yang tersedia secara langsung di sistem pelacakan koneksi, tanpa sistem "ujung depan", seperti distate
cocok.
Jadi menurut saya ini benar (dari jawaban lain di sana):
Tidak ada perbedaan hasil dari kedua aturan tersebut.
Perhatikan ada juga komentar menarik di bawah pertanyaan:
state
tidak digunakan lagi karenaconntrack
, dan mungkin atau mungkin tidak dikompilasi tergantung pada bagaimana kernel Anda dibuat.