Přihřeju si vlastní polívčičku - napsal jsem pro RHEL6 / CentOS6 init skript kterým lze ukládat a při bootu znovu načítat existující IPSET tabulky a položky.
Použití je velice jednoduché - service ipset save všechno uloží a pokud je služba nastavená aby se spustila při bootu (takže chkconfig ipset on) tak se pak vše znovu načte.
Umí to i při ukládání ignorovat některé tabulky, případně uložit tabulku ale ignorovat položky (to se hodí např. u těch fail2ban tabulek). Konfigurace celkem očekávatelně v /etc/sysconfig/ipset
K dostání tady: https://github.com/mludvig/ipset-init
Případně hotové RPM tady: http://download.opensuse.org/repositories/home:/mludvig:/elml/CentOS_CentOS-6/noarch/
Třeba protože máš hotové automatické aktualizace jednotlivých ipsetů a nechce se ti to předělávat.
Přijde mi totiž jednodušší aktualizovat samostatně jeden velký (a jeden z mnoha) ipsetů, než volat binárku nftables, která překompiluje všechno a všechno hodí do jádra ... Ono to asi fungovat bude, ale osobně mi to prostě přijde lepší ipsetem.
Ale zase existuje program pro synchronizaci těch map v nftables. Což by také mohlo něco řešit ...
Ono já mám přeci jenom jiné potřeby, než má někdo na desktopu nebo na aplikačním serveru.
Asi si úplně nerozumíme. Pokud nechceš předělávat firewall, můžeš a minimálně několik dalších let budeš moci nadále používat iptables, i s novými jádry.
Přechod na nftables bude vyžadovat poměrně zásadní přepracování firewallu, už jenom proto, že všechny matchery, včetně ipset, se stěhují do userspace, takže si nemyslím, že by byl problém při té příležitosti předělat i systém automatických aktualizací, aby používal nftables.
Na este lepsiu optimalizaciu niektorych popisanych rieseni by bolo vhodne pouzit CONNMARK tzn oznacenie celeho spojenia a nasledna praca z celym spojenim namiesto matchovanim kazdeho packetu cez ipset. Takto sa kazdy packet hashuje 2x, prvy krat v connection tracking(tam sa hashuje vzdy) a druhy krat v ipset module. Samozrejme toto riesenie je vhodne len v pripade ze tzv dlhy zoznam bude povolovat prevadzku (nie blokovat pretoze tam sa zahadzuje prvy packet a conntrack je nevyuzitelny na popisovanu optimalizaciu).