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も対応してないみたいだしどゆこと?