g00ceyの技術ブログ

LaptopでOpenWrtルーターを作るときの話

目次

結論

  • ノートパソコンでNICが足りなかったらUSBで追加すればいいよ。
  • ディスプレイつきっぱなし問題は解決できるよ
  • バッテリーは外しているよ
  • NIC接続するポートはUSB 3 Gen 1はほしいよ
  • マシンがリップクローズドで再起動が完了できない機種は、ディスプレイを半分あけておこう

方針・前提条件

  • 既に現役を引退したマシンをルーターとして活用する
    • USB3 gen 1

環境

  • Vostro 3468?
CPU Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz i3 or Celeronでも十分かもしれない
Mem 16G ルーターだけだったら2Gあればオーバースペックだと思う
Drive 1TSSD USBメモリでもいいと思う
USB-NIC Tp-Link UE306 OpenWrtで認識するUSBNICだったら何でもいい

作業内容

LANを分離したいときにNICが足りない

普通のパソコンだとNICは1枚あれば事足りるわけで、下手したらNICすらない
ただOpenWrt入れてルーターにしてやろうというときにはVLAN分離してやろうとか色々考える兼ね合いでNICが別でほしいと思うはず。
1Gbit etherであればUSB 3.0 Gen1あれば2NIC入れたとしても使い物になる(Gen1は5Gbpsなので、1ポートあたり5NICまではいけるかもだけど、変換含めると4NICまでかな?)
ただ、トラフィックを裁くときにはやっぱり物理NICのほうがハードウェアサポートを受けることができるのか性能がいい。
そのため、以下の通り物理NICについてはトラフィックが多いであろうサーバー間のVLANを任せている。

img

どう設定すればいいか?

使用しているUE306を例にOpenWrtで使えるか調べるまでの流れを説明します。

  1. chipsetを確認する
商品名 chipset

この文章でググり、仕様を探すと下記のページが見つかるUE306 | USB3.0 ギガビット有線LANアダプター | TP-Link 日本

  1. 対象チップセットが対応しているかを確認する
chipset名 openwrt

上記でぐぐり、パッケージ有無を確認する
[OpenWrt Wiki] package: kmod-usb-net-asix-ax88179
OpenWrtのsupported deviceみたいな一覧でchipsetで調べられた気もしますが、見つからなかったので割愛。
なお、この時、releaseについても自分が使おうとしているOpenWrtのバージョンであるか確認しましょう。(なかったら自前でビルドする=公式がビルドしてくれてるものが使えないので自分でビルドするというめんどくさいことになります)

  1. openwrtとしてセットアップしたマシンに突き刺してpackgeをインストールします

ここで認識されるとinterfaceに表示されます。
interface

起動したら"disk ‘hd0,gpt1’ not found.“エラー

21.02限定の話か分かりませんが

error: disk 'hd0,gpt1' not found.

起動時にこのようになって起動しませんでした。
どのlinuxでもいいんですが、USBブートして、/boot/gru/grub.cfgの以下の項目をコメントアウトしました。
個人的にはインストール時に使用するのはgparted-livを使ってて、ターミナルを起動してマウントして書きかえました。

set root='(hd0,gpt1)'

内臓デバイスにインストールしたい

USBから起動もできるんですが、そもそもUSBメモリも壊れやすいっちゃ壊れやすいのでHDDやSSDにインストールしたくなります
私はgparted-liveで以下の通り作業しました。(これももちろん、他のLinuxLiveUSBメディアでやっていい作業です)

wget https://downloads.openwrt.org/releases/21.02.2/targets/x86/64/openwrt-21.02.2-x86-64-generic-ext4-combined-efi.img.gz
gunzip openwrt-21.02.2-x86-64-generic-ext4-combined-efi.img.gz
dd if=./openwrt-21.02.2-x86-64-generic-ext4-combined-efi.img of=/dev/sda bs=1M

やってることはイメージ落としてきて解凍して、書き込んでいます。
前述しているこの作業もやっておくと、そのまま起動できます。

ディスプレイつきっぱなし問題

ノートパソコンにインストールすると、ずっと画面がついててうざい&現役を引退したディスプレイのバックライト寿命を削ってしまいます。
そのため、バックライトを起動して1分したら消すようにしましょう。

  1. OpenWrtにログイン(LuCI)
  2. System => Startupをクリック
  3. Local Startupをクリック
  4. /usr/bin/setterm –blank 1 > /dev/tty1を exit 0の前に追加

編集後はこうなります。

# Put your custom commands here that should be executed once
# the system init finished. By default this file does nothing.
/usr/bin/setterm --blank 1 > /dev/tty1

exit 0

これで再起動したらディスプレイがoffになります。

解決策はHow to turn off the screen of a laptop? - Installing and Using OpenWrt - OpenWrt Forumを参照しました。

マシンがリップクローズドで再起動が完了できない機種は、ディスプレイを半分あけておこう

ディスプレイが完全にしまっていると再起動しない機種もあるので、その場合は写真のようにディスプレイを少し開けておきましょう。 img

最後に

前の記事のようにサーバーマシンがあるとしたら1台で済むっちゃ済むんですが単一障害ポイントになってつらいことになりそうだなとボケーっと考えていた時にこちらの作業をしました。
ネックになったのは、Proxmox側が起動しなくなったら外に出られない時間が何分かかるか?って所で、VM側(つまりOpenWrt側)が問題であればそのままProxmoxのコンソール画面でコマンド叩いてVMを起動すればいいんですが、そもそもPromox側だった場合、四苦八苦しそうだなと思ったでさらに前の記事の構成に戻した際にこの辺記載していなかったなと思ってここら辺書きました。
OpenWrt導入当初はなかった外部電源供給も可能なUSB3 HUBも追加購入したので、障害発生用にPi4で念のため1台用意しておくなんてこともいいかもですね。
なので、VMに配置しているOpenWrtに関してはホストOS側のNIC設定が汚くなるので、削除するかもなーと考えています。


Share

comments powered by Disqus