メッシュWi-Fi/AiMesh対応ルーター ASUS RT-AC68UとLyra miniを試す(その3)

Lyra mini に関するエントリーの第三弾。

実際に主となる方を書斎代わりの部屋に、従となるほうをキッチンに置いて使ってみているわけですが、 iPhone つないで使っている限りでは、家の中どこにいてもちゃんと繋がってくれるようになったな、というぐらいの感想しかない、というのが正直なところ。
実際、どのぐらいのパフォーマンスが出るのかは、ちゃんと測定してみたいと思います。

[From メッシュWi-Fi/AiMesh対応ルーター ASUS RT-AC68UとLyra miniを試す(その2) - Soukaku's HENA-CHOKO Blog]

前回の予告とおり、トラフィック測定してみましたので、その結果など。

測定の方法と機材について

さて、どうやってトラフィック測定しようか、と考えたときに「サイズの大きなファイルのダウンロードでいいかな?」と思いつついろいろ調べてみたところ、「Linux( Debian )動かしているノート PC もサーバもあるんだし、 iperf 使うのがいいじゃね?」ということで、iperf3 を使うことに。

iPerf3 is a tool for active measurements of the maximum achievable bandwidth on IP networks. It supports tuning of various parameters related to timing, buffers and protocols (TCP, UDP, SCTP with IPv4 and IPv6).

[From iPerf - The TCP, UDP and SCTP network bandwidth measurement tool]

Debian であれば、root 権限で

# apt install iperf3

を実行すれば、インストール完了。
測定も、サーバ側で

$ iperf3 -s

クライアント側で

$ iperf3 -c サーバのIP

と実行すれば、OK。この場合は、クライアント→サーバの測定になりますが、 -R オプションを付けると サーバ→クライアントの測定ができるので(実際の測定時には、少しオプション付きで実行してますが。)

nsd でセカンダリDNSを構成しなおす

unbound でセカンダリ DNS を構築したものの、

今回の例だと、unbound 自身はほんと最低限の動けばいいレベルでしか設定していないので、実運用時はもう少し考える必要があるので、ご注意を。

[From unboundをbind9のスレーブとして設定してみる - Soukaku's HENA-CHOKO Blog]

設定面に不安もあったし、「なんで unbound なの?オープリゾルバにしたいの?」といったご指摘も頂いたので、いろいろ調べ直して、 nsd をセカンダリとして使うように構成を変更したので、そのメモ。

nsd は

NSD (Name Server Daemon) は高性能で簡単なオープンソースの権威ネームサーバです。

[From NSD 4 – 日本Unboundユーザー会]

と謳い文句にある通り、DNS コンテンツサーバに特化している DNS サーバの実装の一つです。

インストールと基本的な設定

インストールするのは、 unbound をスレーブとして設定した自宅側のサーバ。

HomeNetwork_DNS-20190121.png

これを unbound ではなく nsd に置き換える、と…。(正確には、ちょっと違うので、その点については後述。)

unboundをbind9のスレーブとして設定してみる

bind9 使っている宿命というか、どうしても定期的なセキュリティアップデートを実施しないといけない、というのが結構運用面での負荷になっていて、「どうしても bind でないといけないというところ以外、 unbound に切り替えてもいいのでは?」と思い始めたので、スレーブに unbound を使ってみよう、ということで設定をしてみた次第。

しばらく前から、unbound も権威サーバとして使えるということは、知ってたんですけどねぇ。

インストールと設定

うちのネットワーク的には、さくらの VPS でマスタ、自宅側サーバでスレーブという形で DNS を配置しているので、自宅側を unbound で置き換えるという形に。

/images/network

サーバは、いつもどおりの Debian で構築したものなので、 インストール自体は root で "apt install unbound" なり "aptitude install unbound" で完了。一応、-s オプションつけてシミュレーションモードで確認してみると、こんな感じ。

nexus01:~# apt -s install unbound
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下の追加パッケージがインストールされます:
libpython3.7 libunbound8 unbound-anchor
以下のパッケージが新たにインストールされます:
libpython3.7 libunbound8 unbound unbound-anchor
アップグレード: 0 個、新規インストール: 4 個、削除: 0 個、保留: 25 個。
Inst libpython3.7 (3.7.2-1 Debian:unstable [amd64])
Inst libunbound8 (1.8.1-1+b1 Debian:unstable [amd64])
Inst unbound-anchor (1.8.1-1+b1 Debian:unstable [amd64])
Inst unbound (1.8.1-1+b1 Debian:unstable [amd64])
Conf libpython3.7 (3.7.2-1 Debian:unstable [amd64])
Conf libunbound8 (1.8.1-1+b1 Debian:unstable [amd64])
Conf unbound-anchor (1.8.1-1+b1 Debian:unstable [amd64])
Conf unbound (1.8.1-1+b1 Debian:unstable [amd64])

unbound インストールの時点は、bind9 の削除がいきなり行われたりはしないようです。(というか -s オプション効くの、初めて知った…。)

LIVA Z2買ったので、ちまちまとセットアップしてます。

仕事で使っていた Raspberry Pi3 。流石にいろいろ動かしているとパワーが足りないと感じる場面が増えてきたので、ちょっと奮発?して LIVA Z2 を入手しました。

いろいろ迷ったんですけどね、あんまりお高くならず、ほどほどの性能でいいんだよね、ということで LIVA Z2 を選択。端から Debian 入れて使うつもりでいたので、最初は OS なしの LIVA Z の方にしようかと思ってたんですが、 Amazon では OS 入りの Z2 のほうが安かったので…。

ついでに 128GB の 2.5 インチ SSD と メモリ 4GB 1 枚も一緒に注文したのが届いたのが、火曜日。
で、SSD とメモリ取り付けて、プリインストールされてた Windows 10 のデスクトップを拝むこともせず、サクッと Debian をインストールしてみましたが、2 個ある HDMI ポートのうち HDMI 2.0 の表記ある方にディスプレイ繋いでたら、起動画面がすっ飛ばされていきなり Windows10 の初期セットアップ画面が表示されちゃって、 BIOS に入るための操作のタイミングが取れない、なんてことがあったぐらいで、インストール自体は特に問題なく終わりました。(表示の問題は、古いディスプレイに HDMI - DVI 変換アダプタかまして繋いたからだろうな、という気がする。)

あとは、Debian インストーラの最新版でインストールしてみたんで他のインストールイメージ使うとどうなるのかは確認してませんが、途中のネットワークインターフェースの認識のステップで 、Wi-Fi はドライバがないのであとからインストールするように、という旨の表示が出ることぐらいが注意事項でしょうかね?

Zabbix 4.0 LTS リリース!

ここ数年の飯のネタとなってる Zabbix 。
いよいよ長期サポート版としての 4.0 がリリースとなりました。(パチパチ)

2.0 から使い始めて、仕事では 2.2 から 3.4 へと(さらに 4.0 にすることを見据た上で)移行が進みつつあり、自宅でも時々ハマりながら、

実際、 Zabbix がそうだったんですが、 Zabbix が公式に用意している Zabbix 3.4 / pre-4.0 のパッケージを sid にインストールするために stretch 対応のものでよかったのですけど、 sid の curl のバージョンが上がったことで libcurl3 から libcurl4 への変更が発生。

[From Debian sidに公式配布版のZabbixパッケージがインストールできなかったので - Soukaku's HENA-CHOKO Blog]

順次バージョンアップしなから使い続けてきているわけで、当然のことながら 4.0 へのアップデートをしたわけですよ…。

Debian sidに公式配布版のZabbixパッケージがインストールできなかったので

Debian sid 使っていると、 Debian のリポジトリ以外からインストールするパッケージのインストールやアップデートが出来なくなるので「困ったな〜」となることがあったりします。

実際、 Zabbix がそうだったんですが、 Zabbix が公式に用意している Zabbix 3.4 / pre-4.0 のパッケージを sid にインストールするために stretch 対応のものでよかったのですけど、 sid の curl のバージョンが上がったことで libcurl3 から libcurl4 への変更が発生。

# dpkg -i /tmp/zabbix-release_3.4-1+stretch_all.deb
以前に未選択のパッケージ zabbix-release を選択しています。
(データベースを読み込んでいます ... 現在 155180 個のファイルとディレクトリがインストールされています。)
.../zabbix-release_3.4-1+stretch_all.deb を展開する準備をしています ...
zabbix-release (3.4-1+stretch) を展開しています...
zabbix-release (3.4-1+stretch) を設定しています ...
# apt update
ーーー 中略 ーーー
# apt install zabbix-server-mysql zabbix-frontend-php
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
インストールすることができないパッケージがありました。おそらく、あり得
ない状況を要求したか、(不安定版ディストリビューションを使用しているの
であれば) 必要なパッケージがまだ作成されていなかったり Incoming から移
動されていないことが考えられます。
以下の情報がこの問題を解決するために役立つかもしれません:

以下のパッケージには満たせない依存関係があります:
zabbix-server-mysql : 依存: libcurl3 (<= 7.28.0) しかし、インストールされようとしていません
E: 問題を解決することができません。壊れた変更禁止パッケージがあります。

その影響で libcurl3 に依存していた公式配布版のZabbixパッケージがインストール/アップデートができなくなってしまう、と…。
libcurl3 → libcurl4 になる前に公式配布版の Zabbix パッケージをインストールしていたので、 libcurl4 に依存する apache2 関連のパッケージのアップデートを libcurl3 に依存する Zabbix パッケージが邪魔をするという状態になってしまったというのが、自分のところで起こっていた状況だったわけです。

Debian buster/sid で玄人志向の USB3.1 インタフェースボードを動かしてみる[性能編]

前のエントリーから、時間が空いてしまいましたが、簡単にパフォーマンステストをしてみた結果をまとめておきます。

測定対象の HDD について

まず、内蔵 SATA インターフェースに繋がっている方。

root@vhost01:~# smartctl --info /dev/sda -d sat
smartctl 6.6 2016-05-31 r4324 [x86_64-linux-4.17.0-rc7-amd64] (local build)
Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Family: Hitachi Deskstar E7K1000
Device Model: Hitachi HDE721010SLA330
Serial Number: STN****S0UWL1K
LU WWN Device Id: 5 000cca 35ecbc4d1
Firmware Version: ST6OA3AA
User Capacity: 1,000,204,886,016 bytes [1.00 TB]
Sector Size: 512 bytes logical/physical
Rotation Rate: 7200 rpm
Device is: In smartctl database [for details use: -P show]
ATA Version is: ATA8-ACS T13/1699-D revision 4
SATA Version is: SATA 2.6, 3.0 Gb/s
Local Time is: Thu Jul 19 22:50:48 2018 JST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

今回増設した USB3.1 インタフェースボード経由で接続した HDD 増設スタンドに挿した方が、こちら。

root@vhost01:~# smartctl --info /dev/sdb -d sat
smartctl 6.6 2016-05-31 r4324 [x86_64-linux-4.17.0-rc7-amd64] (local build)
Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Family: Hitachi Ultrastar 7K3000
Device Model: Hitachi HUA723020ALA640
Serial Number: MK0****FJ4XZVA
LU WWN Device Id: 5 000cca 223de6d56
Firmware Version: MK7OAA10
User Capacity: 2,000,398,934,016 bytes [2.00 TB]
Sector Size: 512 bytes logical/physical
Rotation Rate: 7200 rpm
Form Factor: 3.5 inches
Device is: In smartctl database [for details use: -P show]
ATA Version is: ATA8-ACS T13/1699-D revision 4
SATA Version is: SATA 2.6, 6.0 Gb/s (current: 6.0 Gb/s)
Local Time is: Thu Jul 19 22:50:41 2018 JST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

どちらも、回転数 7200rpm 、セクタサイズ 512byte のもので、違いは容量と SATA のリンクスピード。
測定を厳密にやるのであれば、同じ型番の HDD 2 台用意して、内蔵 SATA と USB3.1 にそれぞれを繋ぐのが良いのでしょうけど、機材を揃える時間もなかったので、大体の傾向だけつかめれば良いことにします。

Debian buster/sid で玄人志向の USB3.1 インタフェースボードを動かしてみる

Mac mini などのバックアップを TimeMachine でやっているですけどね。そのバックアップ先にしてたサーバの HDD がお亡くなりになったようで、OS レベルで認識されなくなりまして…。

まあ、 HDD 買ってきて載せ替えて、ちょいと設定修正すれば話は終わりなんですが、それじゃ面白くないよねぇ(誰が?)ということで、いろいろと考えて「USB 3.1 のボード載せてみるか?」ということに。
最初は、サーバに HDD 内蔵してしまうと、なにかあったときに交換するが面倒だから、いわゆる「お立ち台」タイプの HDD 増設スタンドを USB 経由で繋ぐだけでいっかな〜、と思ってたんですけど、ちょっと調べてみたら USB3.1 Type-C コネクタ付きのカードで比較的お安いの見つけることができたので、それに合わせて HDD 増設スタンドの方も、 USB3.1 Type-C コネクタを持つものにして一緒に Amazon でポチッと…。

カードを増設して、 OS からの認識状態を確認

でモノが届いたので、早速取り付け~。
バックアップサーバとして使っているのは、1年ほど前に手に入れた Express5800/53Xg 。こいつ、スリムタイプの筐体なのだけど、3.5 インチ HDD を 2 台搭載可能、PCI Express スロットとも x16 と x4 ぞれぞれフルハイトのカードが使えるというのがちょっと嬉しかったり…。

久しぶりに自分用のノート PC を手に入れた

久しぶりに、持ち出し用にノートPCを買うなどしてみた。ま、買ったと言っても、ヤフオクで競り落とした中古なんですけど。
モノは、マウスコンピューターの m-Book E シリーズの2つぐらい前のエントリーモデル。付属してたマニュアルとか見ると Windows 10 入ってたみたいで、終売になって1年程度のモデルの模様。(すでに、公式サイトには情報がないので、詳細は不明ですが…。)

14型 m-Book E シリーズ [ノートパソコン(PC)]|BTOパソコンの通販ショップ マウスコンピューター【公式】

エントリーモデルなだけあって、14 インチディスプレイ、 Celeron N3060(デュアルコア 1.6GHz)、メモリ 4GB、内蔵SSD 32GB というスペックですけど、メモリスロットが2スロットあって、うち 1 が空き。2.5 インチ HDD/SDD の搭載スペースもあるので、ちょっとリソース不足かな、と思ったら追加できる余裕はあるので、そこそこ使えそうな感じ。
実際、裏蓋開けての確認はしてないんですけど、型番をキーにググると、2.5 インチ SSD を増設したというレポートを見つけることができるので、あまりそのへんは心配していなかったり…。

そもそも、勉強会に参加したりするときにテキストベースでメモ取れればいいかな、ぐらいの用途しか想定してないので、スペックが低めなところは、使い方を工夫することでカバーできる範囲かな〜、と。(データはできる限り、Google ドライブの方に置いてしまうとか。)

rpmパッケージのダウンロードだけ実行する

以前、書いたエントリーなんだけど、割りと頻繁にアクセスされているよなので、ちょっと落ち穂拾いをしておこうと思う。

外部ネットワークへのアクセスが容易ではないネットワーク上に接続されたサーバに、最新状態の CentOS を入れてから、システム構築って話って意外とあるように思うのだけど、そういう環境で更新されたパッケージをどうやってアップデートする,というのは結構大変。
#逆に、そういう要求って少ない?

[From アップデートサーバにダイレクトアクセス出来ない環境下で、CentOS をアップデート - Soukaku's HENA-CHOKO Blog]

現状での最適解は、yum コマンド自身のオプションである --downloadonly オプションを使う、ってやつになるでしょうね。

パッケージをインストールせずにダウンロードだけ行う方法は 2 つあります。

yum の downloadonly プラグインを使用する方法と、yumdownloader ユーティリティを使用する方法です。

[From yum を使用して、パッケージをインストールせずにダウンロードだけ行う - Red Hat Customer Portal]

RHEL6/CentOS6 以降であれば、基本的に --downloadonly オプションが使えるんで、余分な手間ひまかけなくて良ですし…。

あと、以前のエントリーでやった方法の欠点としては、 epel レポジトリのものや、ソフトウェア開発元の提供しているレポジトリ(例えば、 Zabbix とか)をまとめて扱うのが難しかったりするんですよね…、実は…。

自分的によくやる方法

他の人達も書いているのでやり方自体はググればたくさん見つかるので、主に自分がよくやる手順を書いときます。

  1. まず、パッケージダウンロード専用の環境を用意します。
    • 常時起動しておく必要もないですし、リソースも使わないので、VMware Player や VirtualBox 上の仮想マシンで OK。
    • ここに、RHEL/CentOSをインストール。RHEL の場合は、サブスクリプションの手続きを忘れずに。
    • 当然ですが、ネット上のリポジトリにアクセス出来ること。
  2. 構築するシステムに合わせて、公式以外に必要なリポジトリ(epel とか Zabbix とか)の追加をします。
  3. 準備ができたら、 "yum --downloadonly update" とか "yum --downloadonly install zabbix-server-mysql" を実行。これでインストールに必要になるパッケージが、まとめてダウンロードされます。
    • デフォルトでのダウンロード先は、 /var/cache/yum ディレクトリの下。
      CentOS7だと、/var/cache/yum/x86_64/7/base/packages/ や /var/cache/yum/x86_64/7/extras/packages/ 。
    • デフォルト状態でダウンロードしてしまうと、ターゲットへの移動時に抜けが出ちゃったりすることのありえるので、大抵は --downloaddir オプションも一緒につけて、ダウンロード先を任意に指定してます。
  4. ダウンロードされたパッケージは、実際にシステムを構築したいサーバ上にファイル転送するなり、USB メモリなどのリムバブルメディアを用いて移動。移動先で "yum install *" か "rpm -ivh *" で、インストール。
  5. ターゲット側でのインストール/アップデートが終わったら、ダウンロード専用環境側でもパッケージのインストール/アップデートを実施。

と、いう感じ。