NEC WG2600HPにOpenWrt22.03+NSS Driverを入れる
2022年10月23日の情報
NEC WG2600HPにOpenWrt22.03+NSS Driverを入れる
i-revoアクセスがサービス停止となってしまい、プロバイダーを引っ越したらIPv6とDS-Liteサービスを提供していた。 ところがNSSドライバでDS-Liteのアクセラレーションが効かず調べてみた。
WG2600HPが採用しているチップセットipq8064にはDS-Liteに対応しているドライバが提供されているのだが、NSSドライバ対応のOpenWrtを配布している流派によってはこれが有効になっていないということのよう。
パッチの内容
- PPPoE、DS-Lite、L2TPV2のNSSオフロードが有効になる。
- ACwifidudeさんのブランチにマージしていただいたので、バージョン22.03を手間なくビルドできる。
ビルドの手順
$ git clone -b openwrt-22.03-nss-qsdk10.0 https://github.com/ACwifidude/openwrt.git $ cd openwrt/ $ ./scripts/feeds update -a $ ./scripts/feeds install -a $ cp diffconfig .config $ make menuconfig Target Profile -> NEC Aterm WG2600HP Kernel modules -> Network Devices -> <*> kmod-qca-nss-drv-ipsecmgr Kernel modules -> Network Devices -> <*> kmod-qca-nss-drv-l2tpv2 Kernel modules -> Network Devices -> <*> kmod-qca-nss-drv-tunipip6 Kernel modules -> Network Support -> <*> kmod-pppol2tp Network -> <*> ds-lite Network -> <*> tcpdump $ make -j6 V=sc 2>&1 | tee log
下記のパスにファームウェアができあがる。
- bin/targets/ipq806x/generic/openwrt-ipq806x-generic-nec_wg2600hp-initramfs-uImage
- bin/targets/ipq806x/generic/openwrt-ipq806x-generic-nec_wg2600hp-squashfs-sysupgrade.bin
気づいた点
- これはLinux kernel 5.10とQSDK10のブランチ。kernel 5.15とQSDK11.2の組み合わせは動作確認中。QSDK11.4は起動時にNSSがコアダンプしてしまうので対応は無理そう。
- L2TPV2のKernel modeでの再起動は解消した。
- PPPoE 2か所とDS-Liteを同時に接続しても問題なく動く。
- ipsecアクセラレーションはなかなか難しい。ipq806xのNSSドライバでのipsecアクセラレーションはかなり古いOpenSwanのipsecを対象にしていて、これはKernel4.4あたりのOCFによるアクセラレーションが必要となる。Kernel5.4ではOCFが廃止となり、別なしくみとなってしまった。OpenSwanもLibreSwanも対応してないみたいだしどゆこと?