10GbEへ向けたネットワーク覚書

2021/02/11に公開

こんにちは。ぱやおです。
ホームラボ環境を整えていく上でやはりLANの速度が気になるところ。特に今の所の構想としては、IP-SANによるストレージの共有が含まれていて、なにかとネットワークの通信速度に依存することになるので、なんとかLANの速度を10GbEにしたいと思ってネットワーク周辺の通信規格を調べたりしています。その中で調べてわかったこと、今回試したことなど記載していきます。

一応はインフラSEですが、ネットワーク周りは仕事をする上での基礎知識しか持っていないため、知識に誤りがある可能性があります。コメントでご指摘ください。

通信規格あれこれ

まずは通信規格から簡単に。

近年はやはり無線通信が主流で、家庭用の家電なんかは無線LANカードが組み込まれていてスマートホンのアプリから家電を操作できます!といった商品が広く普及していますよね。近年の無線LANの通信規格は↓の通り高速化が進んでいます。

通信規格 最大通信速度の理論値
IEEE802.11ax(Wi-Fi6) 9.6Gbps
IEEE802.11ac 6.9Gbps

ぱやおの自宅はWi-FiルーターからIEEE802.11acでWi-Fiを飛ばしていて、テレビ内臓のネットワークカード経由でYouTubeをみたりしていますが、4Kの動画ですら通信がボトルネックになって視聴ができない、なんてことはないですね。

一方で有線LANの通信規格はどうなっているのかというとこんな感じ。

通信規格 最大通信速度の理論値 通称
10BASE-T 10Mbps
100BASE-T 100Mbps
1000BASE-T 1000Mbps ギガビットイーサネット
2.5GBASE-T 2.5Gbps マルチギガビットイーサネット
5GBASE-T 5Gbps マルチギガビットイーサネット
10GBASE-T 10Gbps

家庭に広く普及しているのは、太字にしているギガビットイーサネットです。この通信規格はそれぞれ接続先のネットワークカード、そしてケーブルが同一規格に対応していて、初めて成り立ちます。たとえば100BASE-T対応の機器と1000BASE-T対応の機器が1000BASE-T対応のLANケーブルで繋がっていたとしても、1000BASE-Tでの通信はできません。ただし、全く通信ができないわけではなく、基本的には下位互換があるため、100BASE-Tでの通信が行えます。

ここで、もう一度無線LANの通信規格を見てみると、近年対応機器が増えてきているWi-Fi6に対して、物理接続であるギガビットイーサの通信速度がかなり遅いことがわかります。ここでどういうことが起こるかというと、Wi-Fi6同士で繋がっている機器同士は高速通信できるが、Wi-Fiルーターから出て物理接続された機器へ通信しようと思うと、たちまちギガビットイーサネットへの通信へと速度が落とされてしまいます。

ぱやおの自宅の場合

具体例を交えてもう少し見ていきます。私の自宅では、以下の構成で繋がっています。

Wi-Fiクライアント --(6.9Gbps)-- Wi-Fiルーター --(1Gbps)-- L2スイッチ -- (1Gbps) -- NAS

Wi-Fiの接続については、IEEE802.11acでの接続ではありますが、実際には6.9Gbpsの通信が可能な機種ではないです。ただ、ここでは6.9Gbpsとして話を進めます。

ここで、Wi-FiクライアントであるPCからNASに対してデータのやり取りをすることを考えます。Wi-FiルーターのLANポートとL2スイッチのポートが1000BASE-Tまでしか対応していないため、全体の通信としては1Gbpsに制限されてしまいます。この状況を改善するには手っ取り早く機器を最新のスペックのものに変えて

  • Wi-FiルーターのLANポートが10GBASE-Tに対応しているものに交換する
  • L2スイッチのLANポートが10GBASE-Tに対応しているものに交換する
  • NASのPCIeスロットに10GBASE-T対応のネットワークカードを刺す

ということで対応が可能ですが、10GBASE-T対応製品はまだまだ価格が高く、これだけでも10万くらいはかかってしまいそうです。スイッチは最近購入したものなのですが、この辺りのこと、何にも考えずに購入してしまいました...

なので、今ある設備でなんとか通信改善できる方法を考えます。

リンクアグリゲーションという技術

色々探っているとリンクアグリゲーションという技術に目がつきました。これは、機器どうしを1本のLANケーブルで繋げばいいところを、複数のLANケーブルで接続していい感じにしよう!という技術のようです。

これを行うには、機器同士が対応している必要があります。私が持っている機器を確認すると、NASはPort trunkingという名前で対応していて、L2スイッチもLinkAGgregation(LAG)という呼び方で対応していたので、実際に設定していきます。LAGにはいくつか種類があり、どちらの機器もLACPというプロトコルが負荷分散と冗長性を兼ね備えていてよさそうだったのでLACPで設定します。

QNAP NAS側の設定

NASのネットワーク設定画面から、適切な物理NICを選択して論理的に束ねていきます。

ポートトランキングの詳細設定の中で、このIEEE802.3adという規格がLACPになるため、選択します。

L2スイッチ側の設定

スイッチの管理画面から、NASと接続するポートをLAGのメンバーに追加します。

作成したLAGのグループ(NETGEARのスイッチではチャネルと呼ぶみたいです)のLAGタイプをLACPにします。

通信状況の確認

さて、これでLACPでの接続が確立されたため、実際にどう通信されているのか確認します。NASからPCに対して、9GB程度のファイルをコピーしてみました。下のグラフはNASのネットワークの通信量を示したものです。

NASから見るとPCへのコピーは送信のため、青い線になります。これをみると論理的に1つのポートとして扱っているAdapter1+2の送信がAdapter1単体だけで見るのと変わりません。はて...

LAGへの誤解

設定してからさらに調べてわかったのですが、LAGは確かに2本のリンクを仮想的に1本にまとめることで、帯域を2倍にして負荷分散と冗長性を高めますが、通信についてはLAGメンバーのポートに並行でデータが転送されるわけではなく、通信速度が増速されるわけではないようです。無念...

というわけで、現環境でうまくして増速させることはできませんでした。ちゃんちゃん。

Discussion