スキップしてメイン コンテンツに移動

投稿

ラベル(NAT越え)が付いた投稿を表示しています

pptp clients behind Debian 12 nat router

最近のカーネル 6.x では 従来の方法 (modprobe -av ip_gre; modprobe -av nf_nat_pptp) だと lan内のpptp clients(複数同時) が linux nat router を通過できませんでした。そこで調べたところ、 こちら に6.x系で同じ症状の事が記述されており、nftables で対処できるとのことでした。 そこで、ほぼそのままですが以下のコマンドを流したところ、確かに同時に複数 pptp クライアントが(20241128追記:同一リモートホストに対して) Debian 12 nat router を無事通過できるようになりましたので忘備録として挙げてみました。 nft add table inet ct-helper nft add ct helper inet ct-helper pptp '{ type "pptp" protocol tcp; }' nft add chain inet ct-helper prerouting '{ type filter hook prerouting priority filter ; policy accept ; }' nft add rule inet ct-helper prerouting tcp dport 1723 ct helper set "pptp" コマンドは以上です。これらを流すと、nft list ruleset では以下のようになります。 --snip-- table inet ct-helper { ct helper pptp { type "pptp" protocol tcp l3proto ip } chain prerouting { type filter hook prerouting priority filter; policy accept; tcp dport 1723 ct helper set "pptp"...

x64 Linux ルータのIPoE(map-e by nftables)環境でGame ConsoleをNAT越えさせる

Linuxルータでiptablesを使った場合、Game Console(Nintendo Switch)のナット判定をタイプAまたはタイプBにすることはできたのですが、nftablesでゲームコンソールをNAT越えさせるという記事は他に見当たりません。所謂ニチバンベンチはクリアできても、ナット判定はタイプDとなってしまい、NAT越えできない場合がほとんどです。 そこで、iptablesでナットタイプBになる例を参考にしながら試行錯誤した結果、Nintendo SWITCHはタイプB、PSはタイプ2にすることができたので備忘録として挙げてみました。 当方の環境はフレッツ光クロスでOCNバーチャルコネクト(プロバイダはぷらら)です。(つまり、DHCPv6-PD + map-e OCNバーチャルコネクトで、他のフレッツ光ではひかり電話あり+OCNバーチャルコネクトの環境と同じです。)早速ですが、/usr/local/sbin/nft.shとして以下のようにしました。なおパラメータは 例の計算機 で算出しています。 #!/bin/sh PFX=2400:4050:5c71:af00:: PLEN=56 GWA=1 BR='2001:380:a120::9' CE='2400:4050:5c71:af00:99:f171:c600:2f00' IP4='153.241.113.198' PSID=47 #対抗ルータのアドレスはradvdumpで確認できます。 FGW=fe80::aaaa:bbbb:cccc:dddd WANDEV='enp1s0f0' LANDEV='enp1s0f1' TUNDEV='tun0' # TYPE: [ OCN | V6P ] TYPE='OCN' if [ "$TYPE" = "OCN" ]; then \ lp=63 nxps=1024 # next port set elif [ "$TYPE" = "V6P" ]; then \ lp=15 nxps=4096 # next port set else ech...

x64 Linux ルータのIPoE(map-e by iptables)環境でGame ConsoleをNAT越えさせる -- その1fullconenat module追加有りの場合

随分前のことなのですが、フレッツ光クロスとNuro光の2回線を引いていた頃があり、クロス(ぷらら、OCNバーチャルコネクト)の方が1Gを安定して超えていたので、Nuroの方を解約することにした時のことです。回線切り替えテストのためNuroの回線を一旦停止し、ブリッジモードのwifiをフレッツ光クロス経由に切り替えところ、ゲームコンソール(具体的にはNintendo Switch)の NAT判定がNATタイプ Dになり、家人から「オンラインモードでお友達を招待できない」とのクレームがでました。 調べたところ、NAT Type Dは対照型NAT(Symmetric NAT)の状態だそうで、単にスクリプトを見直すだけでは当時はNAT越えできませんでした。 そこで、いろいろと試した結果、FULLCONENATのカーネルモジュールがあるのでそれを使えるようにし、スクリプトを書き換えたところNAT判定をタイプAまで持って行けたので当時のことをまとめてみました。 まず、今回の環境(2021-12-08時点)についてですが、ルータはx64機で10G x2 nic + 1G x 1 onboardで、debian versionは11.2、uname -a はLinux gw23 5.10.0-10-amd64 #1 SMP Debian 5.10.84-1 x86_64 GNU/Linuxです。 2023/04/14追記:Debian 12対応方法を追記しました。 2023/04/16追記: モジュール追加無し の場合を新規投稿しました。 まず、FULLCONENATカーネルモジュールとiptablesをコンパイル・パッケージ化します。詳細は割愛しますが、Debianでカーネルモジュールとパッケージがビルドできる状態にしておいてください。 ビルド手順はおよそ以下の通りです。(途中で再起動させるので注意してください。) apt-get install linux-headers-amd64 apt-get install build-essential debhelper git libxtables-dev cd /usr/src ## 2023/04/14 追記:以下 Debian 11の場合(Debian 12は不可) git clone https:/...