nft
WEB-UI ( Luci )を使った場合 Luci で ip rule を作って ip route テーブルを作ることはできる。 前回やったコマンドからのポリシールーティングをLuCI(WEB)経由でやる話です。 やることは次の通り。 nftables でマークを扱う。 マーク済パケットをAccept…
OpenWrtでポリシールーティングを入れる ポリシールーティングを入れると何が嬉しいのか。 OpenWrtの nftables (nft) では inet fw4 のテーブルに全部入っている。 しかしLuciのZONE転送の許可拒否とTraffic Acceptをうまく両立するのが大変だった。 Zone 転…
nft で指定位置にinsert する 既存のルールが次のようになっているとき table inet fw4 { chain forward { # handle 2 type filter hook forward priority filter; policy drop; $EXISTS_RULE # handle 2340 $EXISTS_RULE # handle 2341 $EXISTS_RULE # hand…
nftablesのテーブルのルールがあふれる どんなに整理しても、既存のforward テーブルがあふれかえることは避けられない。 細かく条件を入れればいれるほど、forward テーブルに処理が集中してしまい、結局のところiptables時代と何も変わらない気がします。 …
nftablesでacceptとdropにマッチするとdropになる問題 nftablesを使ってると、accept しても他のテーブルでreject(drop)されてしまうことがある。 複数テーブルでaccept と dropが混合しちゃう 例えば、tableAとtableBにforwardの許可設定を書くわけよ。tabl…
nftables で、パケットが該当ルールに来ているかチェックする方法 パケットの行先が不明のとき、どこまでマッチしているか調べる必要がある。このときcounter を使うのが一番簡単。 例えば、Google(v6) 宛のパケットを探したい 次のように、ターゲットとなる…
nft 使い方まとめ nft の使い方は、本当にややこしい。覚えることが多くてる辛いので、調べたことをまとめ直す。 ルール閲覧 "コマンド" "役割" nft list ruleset 全部見る nft- a list ruleset 管理番号を含める 全体を見渡すコマンドがコレ。ruleではなくr…
nft によるMSQUERADE(iptables MASQUERADEからの移行) iptablesでマスカレード(またはSNAT)は古くから行われている枯れた手法。これをnft(nftables)に書き換える場合のメモ 次のような、マスカレード(NAT)をiptablesで追記しているとする。 iptables -…
マーキングしたパケットを通常のルーティングより優先度を上げた別のルーティングテーブルで転送する このとき、nf_tables でパケットの条件を指定して、マーキングする。 該当のパケットをマーキングする wireguardのインターフェイスから来たパケットは0x6…
linuxで単純なルータ機能を作る マスカレードやDNAT/SNATをして、ルータ機能を作ってみる。 先のiptablesと比較してnft でどうなるのかを見たいので、試した。 ネットワーク構成図 以下のようなネットワーク構成を作る 実際に作った構成 ipコマンドには netn…
ipv6 NATをnftables v4 の masquerade は次のようになっていた。 nft を使ってv4 を作る単純な例は次のようになる。 # テーブル追加 nft add table my_nat44 # テーブルにフィルタチェーンを追加 nft add chain my_nat44 postrouting { type nat hook postro…
nftables linux のiptablesはそのままのコマンドで動作するのですが。 iptablesはnftablesのサブセットのような扱いになっています。 iptablesと比較しながら、超基本的な書式を学ぶことにした。 nftables nftables で masquerade する。 最初にテーブル追加…