by
Anonymous Coward
on 2013年10月24日 11時17分
(#2483092)
疑問点: 1 可読性が落ちているように感じるのだが、誰も指摘しなかったのか?
例えばiptablesで-j CTする場合、iptables -t raw -A PREROUTING -m conntrack --ctstate ESTABLISHED -j CTみたいな感じになるだろう。 一方でntfでは、nft add rule raw prerouting ct state established ctになるのかな? この時点でも十分読みにくいけど、これで-j CTの後ろに--helperなんてついて伸びていった日にはもう… nftの方が単なる英単語の羅列のようになってしまって、明らかに可読性が落ちているんだよね。 -j CT程度ですらご覧の有様、もしこれがパラメータの多いhashlimitなんて使った日には、パッと見ではもう何が何だかわからないだろう。
微妙すぎる… (スコア:1)
疑問点: 1
可読性が落ちているように感じるのだが、誰も指摘しなかったのか?
例えばiptablesで-j CTする場合、iptables -t raw -A PREROUTING -m conntrack --ctstate ESTABLISHED -j CTみたいな感じになるだろう。
一方でntfでは、nft add rule raw prerouting ct state established ctになるのかな?
この時点でも十分読みにくいけど、これで-j CTの後ろに--helperなんてついて伸びていった日にはもう…
nftの方が単なる英単語の羅列のようになってしまって、明らかに可読性が落ちているんだよね。
-j CT程度ですらご覧の有様、もしこれがパラメータの多いhashlimitなんて使った日には、パッと見ではもう何が何だかわからないだろう。
だいたいからして、iptablesでtimeモジュールとhashlimitモジュール、それにconntrackモジュールとmultiportモジュールを同時に使うルールなんてのも珍しくもない。
それにiptablesのように-m conntrack --ctstate ESTABLISHED,RELATEDと繋げずに、estanblishedとrelatedを別々に記述してるのも気になる。
まさかiptablesで言うところのモジュールはひとつしか使えないとか?
しかもstateマッチみたいな定義も一行に列挙できないとか?
まさかねぇ。
疑問点: 2
nftでlogした時に、ログが投げられる先は何処?
iptablesであれば、-j LOGならばsyslogだし、-j ULOGや-j NFLOGならばulogdに投げられる。
それではnftでlogした時には、ログは一体何処に投げられるの?
うちでは特定のパケットをマークして統計取ったりする関係上、全て-j NFLOGで、しかもoutput_MYSQLでMariaDBに丸投げしてるけどさ。
ぶっちゃけた話、-t raw -A PREROUTING -m rpfilter --invert 的なことが起きるくらいでないとログなんて要らね。って人も多いのでは?
そんなわけで「ログも少ないから-j LOGのみで十分」って人も結構居るんじゃないのかな。
つまりnftablesの名前から察するようにデフォルトがNFLOGだと、全ての人がNFLOGとulogdの組み合わせを使うことになるけど、それは明らかにオーバースペックでしょ?
ulogdは、公式のulogd2のgitリポジトリ見てもわかる通り、ドキュメントからしてかなり古いままで更新停止してるしね。
どれがInput pluginで、どれがInterpreter pluginで、どれがOutput pluginなのか? とか、plugins stacksの順番や定義の書き方なんて、ドキュメントがそんな状態だからソース読めなきゃ書けないでしょ?
ulogd強制したら、素人さん達がulogd.conf書けなくて阿鼻叫喚の地獄絵図になるのは目に見えてる。
だからといってnftablesなのに、デフォルトがNFLOGじゃないってのもってのもねぇ…
そもそもnftablesっていうネーミングからして失敗なんだよな、カーネルから取ってxt_tablesとかにしておけば良かったんだよ。
疑問点: 3
ユーザー定義チェインは?
table filter {
chain input {
table filter hook input priority 0;
ct state established accept
ct state related accept
…
という例文があるから、同じような感じで定義できそうなのはわかる。
しかし次のtable filter hook input priority 0;の一文が気になる。
まさかと思うが、Netlinkの段数分しか定義できないとかいうことじゃないだろうな?
ましてNFLOGがデフォルトだったとして、NFLOGで使う分と合わせて。ということだったりしたら最悪。
# なんかもう色々と微妙すぎてテストする気も起こらない…
Re:微妙すぎる… (スコア:1)
よく想像だけでそんなに書けるねえ。すごい。
# 可読性落ちてるんじゃなくて慣れてないだけじゃね
Re: (スコア:0)
元々iptablesだって読みにくい書きにくいって点では問題ありでしょ。
というわけで、iptablesのコマンド群を生成するスクリプトなり何なり作ったヤツはたくさんいる筈だ。いたら手を挙げろ!