それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

nft

OpenWRTでパケットをマークして許可する(ポリシールーティング)

WEB-UI ( Luci )を使った場合 Luci で ip rule を作って ip route テーブルを作ることはできる。 前回やったコマンドからのポリシールーティングをLuCI(WEB)経由でやる話です。 やることは次の通り。 nftables でマークを扱う。 マーク済パケットをAccept…

OpenWrtにfw4でポリシールーティングを入れる

OpenWrtでポリシールーティングを入れる ポリシールーティングを入れると何が嬉しいのか。 OpenWrtの nftables (nft) では inet fw4 のテーブルに全部入っている。 しかしLuciのZONE転送の許可拒否とTraffic Acceptをうまく両立するのが大変だった。 Zone 転…

nft で指定位置にinsert する

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のfowardが記述が大量になる問題。

nftablesのテーブルのルールがあふれる どんなに整理しても、既存のforward テーブルがあふれかえることは避けられない。 細かく条件を入れればいれるほど、forward テーブルに処理が集中してしまい、結局のところiptables時代と何も変わらない気がします。 …

nftablesでaccept後のdropにマッチを回避できない。

nftablesでacceptとdropにマッチするとdropになる問題 nftablesを使ってると、accept しても他のテーブルでreject(drop)されてしまうことがある。 複数テーブルでaccept と dropが混合しちゃう 例えば、tableAとtableBにforwardの許可設定を書くわけよ。tabl…

nftables で、パケットが該当ルールに届いているかチェックする方法

nftables で、パケットが該当ルールに来ているかチェックする方法 パケットの行先が不明のとき、どこまでマッチしているか調べる必要がある。このときcounter を使うのが一番簡単。 例えば、Google(v6) 宛のパケットを探したい 次のように、ターゲットとなる…

nft のコマンドの使い方の例。NFTテーブル操作ガイドを作ろう

nft 使い方まとめ nft の使い方は、本当にややこしい。覚えることが多くてる辛いので、調べたことをまとめ直す。 ルール閲覧 "コマンド" "役割" nft list ruleset 全部見る nft- a list ruleset 管理番号を含める 全体を見渡すコマンドがコレ。ruleではなくr…

nft によるMSQUERADE(iptables MASQUERADEからの移行)

nft によるMSQUERADE(iptables MASQUERADEからの移行) iptablesでマスカレード(またはSNAT)は古くから行われている枯れた手法。これをnft(nftables)に書き換える場合のメモ 次のような、マスカレード(NAT)をiptablesで追記しているとする。 iptables -…

nftables でポリシールーティング

マーキングしたパケットを通常のルーティングより優先度を上げた別のルーティングテーブルで転送する このとき、nf_tables でパケットの条件を指定して、マーキングする。 該当のパケットをマーキングする wireguardのインターフェイスから来たパケットは0x6…

linuxのnftables(nft)でルータ機能を作る

linuxで単純なルータ機能を作る マスカレードやDNAT/SNATをして、ルータ機能を作ってみる。 先のiptablesと比較してnft でどうなるのかを見たいので、試した。 ネットワーク構成図 以下のようなネットワーク構成を作る 実際に作った構成 ipコマンドには netn…

IPv6間のMasquerade(NAT)nftablesでLinux v6 GWを作る方法。

ipv6 NATをnftables v4 の masquerade は次のようになっていた。 nft を使ってv4 を作る単純な例は次のようになる。 # テーブル追加 nft add table my_nat44 # テーブルにフィルタチェーンを追加 nft add chain my_nat44 postrouting { type nat hook postro…

nftablesのv4-v4のsnat/masqueradeとiptablesの比較

nftables linux のiptablesはそのままのコマンドで動作するのですが。 iptablesはnftablesのサブセットのような扱いになっています。 iptablesと比較しながら、超基本的な書式を学ぶことにした。 nftables nftables で masquerade する。 最初にテーブル追加…