nftables, öntanımlı ağ paket filtreleme çerçevesi olarak iptables’ın yerini aldı

nftables çerçevesi paket sınıflandırma yetenekleri sağlamaktadır ve iptables, ip6tables, arptables ve ebtables araçlarının yerini alması amaçlanmıştır. Önceki paket filtreleme araçlarına göre kolaylık, özellikler ve performans açısından çok sayıda iyileştirme sunmaktadır, en önemlileri şunlardır:

  • Doğrusal işleme yerine arama tabloları.

  • IPv4 ve IPv6 protokolleri için tek bir çerçeve.

  • Kuralların tamamı, tam bir kural kümesini almak, güncellemek ve depolamak yerine atomik olarak uygulanır.

  • Kural kümesinde hata ayıklama ve izleme (nftrace) ile izleme olaylarını takip etme (nft aracında) desteği.

  • Daha tutarlı ve yoğun söz dizimi, protokole özgü uzantılar yok.

  • Üçüncü taraf uygulamalar için bir Netlink API’si.

nftables, iptables ile benzer şekilde zincirleri depolamak için tablolar kullanmaktadır. Zincirler, eylemleri gerçekleştirmek için bireysel kurallar içerirler. nft aracı, önceki paket filtreleme çerçevelerindeki tüm araçların yerini almaktadır. libnftables kütüphanesi, libmnl kütüphanesi üzerinden nftables Netlink API ile düşük seviyeli etkileşim için kullanılabilir.

iptables, ip6tables, ebtables ve arptables araçları, aynı ada ve bire bir aynı işlevselliğe sahip nftables tabanlı olanlarıyla değiştirildi. Harici davranış eski muadilleriyle aynı olsa da, dahili olarak gerektiğinde bir uyumluluk arayüzü aracılığıyla eski netfilter çekirdek modülleriyle nftables kullanırlar.

Modüllerin nftables kural kümesi üzerindeki etkisi, nft list ruleset komutu kullanılarak gözlemlenebilir. Bu araçlar nftables kural kümesine tablolar, zincirler ve kurallar eklediğinden, nft flush ruleset komutu gibi nftables kural kümesi işlemlerinin, daha önce ayrı olan eski komutlar kullanılarak kurulan kural kümelerini etkileyebileceğini unutmayın.

Aracın hangi çeşidinin mevcut olduğunu hızlı bir şekilde belirlemek için, sürüm bilgileri arka uç adını içerecek şekilde güncellendi. Fedora 32’de, nftables tabanlı iptables aracı aşağıdaki sürüm dizgesini yazdırır:

$ iptables --version
iptables v1.8.4 (nf_tables)

Karşılaştırma için, eski iptables aracı mevcutsa aşağıdaki sürüm bilgileri yazdırılır:

$ iptables --version
iptables v1.8.4 (legacy)