start

世界最安の40GbE対応スイッチCRS326-24S+2Q+RMがやってきた!

真っ当な流通ルートで購入できるものでは世界最安1)と思われる40GbE対応スイッチ、CRS326-24S+2Q+RMがやってきた!流石は俺たちのMikroTik!!とかいいつつ、同社の製品を買うのは初めてだったりする。

このページに辿り着くくらいの人には釈迦に説法だろうけど、CRS326-24S+2Q+RMは10ギガビット対応のSFP+ポートを24個、加えて40ギガビット対応のQSFP+ポートを2つ備えながら499ドルという超破格を実現した頭おかしいスイッチである。普通に考えたら499ドルは結構な額だが、この性能でこの額は本当に価格破壊もいいところ。しかもEuroDKでは384ドルで売ってる()。マジでありえん。

というわけで誘惑に勝てずに買ってしまった。8/22(木)に注文して26(月)に配達される40GbE顔負けの高速配送っぷりだったけど、結局受け取りは週末までお預け。送料やら消費税やらで、最終的に448ドル+1900円となった。

設置場所の問題やらMPOケーブル不足やらで本格的には試せてないが、ひとまず下表環境のiperf3 (MTU=1500)で28Gbpsほど出ることは確認。

サーバ クライアント
OS FreeBSD 11.2-RELEASE (x64) Windows 10 Pro. (x64)
M/B Supermicro X10DRi MSI X370 SLI PLUS
CPU Xeon E5-2648L v3 @1.8GHz Ryzen 7 1700 @3.0GHz
RAM Registered DDR4-2400 16GB×4 (2133MHz駆動) DDR4-2666 16GB×4
NIC ConnectX-3 Pro EN (PCIe 3.0x8)

使われてるスイッチチップは98DX8332っぽい。明言はされてないけど、2.5GbE/5GbEにも対応してる予感…?ポートの速度設定画面にチェックボックスがあるんですけど……。

OSはRouterOSとSwOSのデュアル対応なので、一応L3の処理も可能。だけどスイッチチップで処理できないものはCPU処理となるうえ、内部リンクは1Gbpsなので折角の性能が死ぬ。なので素直にL2スイッチとして使うか、軽めのフィルタでWANを受けるとかに留めるのが吉。幸い10Gポートは腐るほどあるからLAG組んでL3処理は上位ルータに投げてしまえばいいかと。AT-x510-28GTXも泣いて喜ぶね!

ざっくり消費電力は以下の通り。

状況 消費電力
待機(SFPモジュールは一切挿してない状態) 13W
待機(40GBASE-SR4×2でリンクアップ) 15~16W
40GBASE-SR4でiperf実行 17W

出荷時のRouterOSバージョンではファンが結構うるさいが、6.45.5に更新したらかなり静かになった。基本は停止、内部温度に応じて回転数可変のなかなかアグレッシブな制御をしてくれるようになる。消費電力とあわせて一般のご家庭にも大変やさしい仕様と言える。ありがとうMikroTik。なお、回転時はそれなりに音がする。風切り音よりファン自体の回転音が大きい感じ。個人的には許容範囲内だけど気になる人は気になると思われる。


1)
2019年9月4日現在

FreeBSDでQSFP+トランシーバの相性によって40GBASE-SR4が再リンクしなくなる事があるっぽい

家鯖(FreeBSD 11)とメインマシン(Windows 10)をConnectX-3の40GBASE-SR4で繋ぐようになって早5ヵ月。メインマシンをスリープ&レジュームすると、40GBASE-SR4が再リンクアップせず、サーバ側のQSFP+トランシーバを抜き差しすると直る、という現象が発生することがあった。

その時は決まって、サーバ側のTXシグナルが出ていないという状況。

$ ifconfig -v mlxen0
mlxen0: flags=8947<UP,BROADCAST,DEBUG,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=ad00b9<RXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,VLAN_HWFILTER,VLAN_HWTSO,LINKSTATE,RXCSUM_IPV6>
        ether e4:1d:2d:74:16:e0
        hwaddr e4:1d:2d:74:16:e0
        nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
        media: Ethernet 40Gbase-CR4 <full-duplex> (autoselect)
        status: no carrier
        plugged: QSFP+ 40GBASE-SR4 (MPO Parallel Optic)
        vendor: Mellanox PN: MC2210411-SR4 SN: MEQSRIC0115 DATE: 2015-03-23
        compliance level: Unspecified
        nominal bitrate: 10300 Mbps
        module temperature: 40.00 C voltage: 3.22 Volts
        lane 1: RX: 0.57 mW (-2.37 dBm) TX: 0.36 mW (-4.38 dBm)
        lane 2: RX: 1.06 mW (0.26 dBm) TX: 0.37 mW (-4.30 dBm)
        lane 3: RX: 0.96 mW (-0.17 dBm) TX: 0.00 mW (-30.46 dBm)
        lane 4: RX: 1.12 mW (0.52 dBm) TX: 0.37 mW (-4.20 dBm)

スリープ&レジュームで電気的に不連続状態になるメインマシン側がそうなるならまだしも、無関係なサーバ側がなんで死ぬのか全く意味がわからないのだが、結局のところQSFP+モジュールとNICとドライバの相性らしい。とりあえず10GtekのMellanox互換モジュールAMQ10-SR4-M1からAvago AFBR-79EQPZに変えて2ヵ月ほど経つが、今のところ再現はしていない。メインマシンの方は変わらずAMQ10-SR4-M1を使っていて特に問題なし。

やっぱりサーバ側の相性ということでFAで、直ったっぽい?

逸般の誤家庭で40GbEはじめますた その3(構築編)

機材が揃ったので、サーバ/クライアント直結40GBASE-SR4ネットワークを構築する。

ネットワーク概略図を示す。

(2020-03-07 追記)

FreeBSDのL2ブリッジif_bridgeはジャイアントロックを使った実装が原因でボトルネックとなるようだ。実際、うちの環境ではブリッジなしでは30Gbpsを超えるのに対し、ブリッジを使うと12~13Gbpsで頭打ちとなる。

クライアントとサーバを40GBASE-SR4で直結し、サーバで40GbEのI/Fと1GbEのI/Fをブリッジする。こうすることで、40GbE対応スイッチがなくとも、40GbEによる高速化の恩恵を受けつつ既存の1000BASE-Tネットワークとの相互運用が実現できる。当然ながら、サーバが落ちてるとクライアントのネットワークも使えなくなってしまうが、うちでは常時稼働させてるので殆ど問題ない。いざって時はクライアントを従来通り1000BASE-Tで繋げばいいだけだし、そこは割り切る。

40GbEといっても恐るるなかれ、ネットワークカードは何の変哲もないPCI-Expressカードだ。ビデオカード等を取り付ける要領でマシンにNICを挿し、ドライバをインストールすればよい。

FreeBSD(サーバ側)では/boot/loader.confに以下の1行を追加し再起動すると、mlxen0/mlxen1というネットワークデバイスが生えてくる。

mlx4en_load="YES"

40GbEと1GbEのブリッジは/etc/rc.confに以下の設定を追加する。このサーバではsshやSambaなどのサービスを提供しているので、igb0のIPアドレスをbridge0に付け替える。ブリッジにIPアドレスを振る場合は、必ずブリッジそのもの(ここではbridge0)に対して行う。ブリッジメンバ(ここではigb0)に振ると、一見動いているように見えてブロードキャストは到達するのにユニキャストは到達しない、といった非常に分かりにくい問題を誘発することになる。

cloned_interfaces="bridge0"
ifconfig_bridge0="ether XX:YY:ZZ:00:00:01 addm igb0 addm mlxen0 up"
ifconfig_bridge0_alias0="inet 192.168.0.1 netmask 255.255.255.0"
ifconfig_igb0="up"
ifconfig_mlxen0="up"

うまくブリッジが出来上がればifconfigが↓こんな感じになる。bhyve用のブリッジも兼用してるのでtapも刺さってるのは無視してくだしあ。

$ ifconfig bridge0
bridge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        description: vm-public
        ether XX:YY:ZZ:00:00:01
        inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255
        nd6 options=9<PERFORMNUD,IFDISABLED>
        groups: bridge vm-switch viid-4c918@
        id 00:00:00:00:00:00 priority 32768 hellotime 2 fwddelay 15
        maxage 20 holdcnt 6 proto rstp maxaddr 2000 timeout 1200
        root id 00:00:00:00:00:00 priority 32768 ifcost 0 port 0
        member: tap1 flags=143<LEARNING,DISCOVER,AUTOEDGE,AUTOPTP>
                ifmaxaddr 0 port 8 priority 128 path cost 2000000
        member: tap0 flags=143<LEARNING,DISCOVER,AUTOEDGE,AUTOPTP>
                ifmaxaddr 0 port 7 priority 128 path cost 2000000
        member: mlxen0 flags=143<LEARNING,DISCOVER,AUTOEDGE,AUTOPTP>
                ifmaxaddr 0 port 4 priority 128 path cost 500
        member: igb0 flags=143<LEARNING,DISCOVER,AUTOEDGE,AUTOPTP>
                ifmaxaddr 0 port 1 priority 128 path cost 2000000

Windows(クライアント側)はふつーのEthernet設定の要領で、ConnectX-3のネットワークプロパティでIPアドレス等を設定してやればよい。サーバ側の設定が問題なければ、今までと同じように通信が行えるはず。

最後にSambaでファイルコピーを行ったGIF動画を貼っておく。サーバのSSD(Intel DC S3500シリーズ)の速度がボトルネックとなり10Gb/秒にも満たないが、素敵な速さだ。

逸般の誤家庭で40GbEはじめますた その2(購入編)

家のネットワークを10GBEにするつもりが結局40Gbeにすることになったのが前回。機材は以下のものを購入した。

機材 型番 購入先
Mellanox ConnectX-3 Pro EN MCX314A-BCCT ヤフオク
10Gtek 40GBASE-SR4 QSFP+ Transceiver for MMF AMQ10-SR4-M1 10Gtek
10Gtek MPOメス-メス Type-B OM3 MMFコード 20m OM3-MPO-12MPO-20M 10Gtek

NICはヤフオクでたまたま安いのが出ていたので迷わずお買い上げ。40GBASE-SR4 QSFP+トランシーバとMPOパッチコードは10Gtekから購入。MPOコードはコネクタのオスメスやらコードの極性やらがややこしい。なので10Gtekに質問メール投げたら、すぐさま適切な回答と共に「見積もる?」と来たもんだ。どういうわけか直販サイトよりも安かったので、そのままお買い上げ。

今回の注文で中華の勢いとエネルギーを垣間見た気がする。こちらが日本人客だと判明すれば、わざわざ宛名にさん付けしてくるし(日本からそれなりに注文あるんだろうね)、小口注文でも親身に対応、特注品も1つから作ってくれてそれでいて安い。そりゃ日本は負けちゃうよねーっていう…。割と本気で危機感を覚えますた。

閑話休題。

購入の時系列としては、先にNICで落札から3日で到着。トランシーバとケーブルは中国からの発送にもかかわらず、輸送期間含め5日で到着。送料20ドルのFedEx扱いで、発送の翌日には国内に入り、その翌日には配達されて現代の物流マジパネェっす。

届いた機材たちはこんな感じ。ケーブルは検査証も入っててしっかりしてるねー。

本プロジェクト開始までは名前すら知らなかったMPOコードを初めて手にしたけど、思いの外取り回しが良くてビックリ。その辺のUTPケーブルより細くて軽く、STPケーブルよりしなやかでええじゃないか。といっても、最小曲げ半径は銅線より劣るはずなので、調子に乗ってはいかん。

次でいよいよ40GBASE-SR4ネットワークを構築していく。



逸般の誤家庭で40GbEはじめますた その1(構想編)

自宅ネットワークを40GBASE-SR4で40GbE化しますた。その顛末を全3回くらいでお届け。

かねてより宅内ネットワークの10GbE化を目論んでいたものの、次の理由で二の足を踏んでいた。

  1. メインマシンがMacBook Proのため10GbE対応NICの選択肢が極めて限られる
  2. 10GbE対応スイッチが高い
  3. 消費電力が高い
  4. 割安なAquantiaの10GbE NICのFreeBSD用ドライバがない

(2021-07-20 追記)

Aquantia NICのFreeBSD用ドライバは2019年6月にリリースされ、現在はports/packagesで提供されている。

一般のご家庭向け40GbE対応スイッチも徐々に増えてきた。

MacBook Proで10GbEを使うにはThunderboltに頼らざるを得ない。となると対応製品はAKiTiO Thunder2 10G Network AdapterSonnet Twin 10G Ethernet Thunderbolt 2 Adapterくらいしかなく、値段が高い上に潰しもきかない。Thunderbolt→PCI Expressエンクロージャと汎用NICを使う手もあるが、同じく高価だしイマイチ筋が悪い。

10GbE対応スイッチも安くなってきたとはいえ、10GBASE-T×2ポートの単機能スイッチングハブで2万円後半~は個人的にはまだ高い。せめて5ポートで1.5万円くらいじゃないと話にならん。それに加えて、逸般の誤家庭 一般のご家庭での使用を考えた場合、消費電力の高さに、発熱の多さからのファン騒音も悩ましい。

そんなこんなで4~5年ほど悶々としていた。

ひと月ほど前、某掲示板で10GBASE-SRが割とお手軽に導入できることを知る。光ファイバー方式は機器的にもお値段的にも敷居が高そうな印象があったが、調べてみると思いのほか安い。NICはサーバ抜き取り品やリファービッシュ品が5000円程度で流通してるし、光ケーブルも1mで1000円、20mで2000円程と家電量販店で売ってるUTPケーブルと大差ない値段で買えることが分かった。現状、10GBASE-SRは10GBASE-Tより低消費電力というのも好都合だ。

スイッチがお高い問題は残ったままだけど、メインマシン-サーバ兼NAS間が速くなれば当面は事足りる。DAC (Direct Attach Cable)やAOC (Active Optical Cable)を使うとSFP+分のお金が浮いて嬉しかったりするものの、今回は15mほど引き回す必要があり、またそれらは汎用性に欠けるので不採用。メインマシンとサーバを10GBASE-SRで直結し、サーバで10GbEと既存の1000BASE-TでL2ブリッジを作れば、単体のスイッチを用意せずとも既存ネットワーク構成を活かしつつ高速化の恩恵を受けられそうな予感。

MacBook Pro用の10GbE NICはどうしたかって?。そもそもMacとはもうオサラバして、Windowsな自作デスクトップにメイン環境を移行済みなのである。というか、そうしたからこそ、宅内ネットワーク高速化に着手できたというのが実際のところ。Macを捨てたポエムは別途書く。多分。

大まかな構想が固まったところで、次は機材選定だ。必要なのは以下の3点である。

  • SFP+搭載の10GbE NIC
  • 10GBASE-SR用SFP+トランシーバ
  • LC-LCマルチモードファイバー

注意すべきはSFP+モジュールのベンダーロックイン。ロックが掛かってるとNICとトランシーバは純正品の組み合わせでしか動かず残念な事になる。もっとも、ロックイン対応の互換トランシーバーも売ってるんですけども。今回は関係ないがスイッチ側で掛かってる事もあるので要注意。

ロックインやドライバ状況を鑑みて、NICはMellanox ConnectX-3以降、SFP+トランシーバは10Gtekの互換品を使うことにした。ConnectXシリーズは中古品の流通量が多く、機能も豊富で、FreeBSD対応ドライバがあり、ベンダーロックインもなく紛うことなき神NICなのだ。10Gtekはあまり聞き慣れない会社だが、格安ネットワーク機器中華ベンダーとしてそれなりに実績があるようだ。実は別件で同社の10GBASE-T NICとDACを使った事があるが、特に問題なく使えたってのも採用理由の1つ。ケーブルも10Gtekに決定。

なお、ConnectX-3の前期種のConnectX-2は中古相場がかなり安いが、サポートが終了しておりWindows 10用ドライバが提供されていないため非推奨。一応、インボックスドライバやWindows 8.1用ドライバで使えるらしいので、とにかく価格重視ということなら選択肢として無くはないってところ。

そんな感じでConnectX-3の調査をしていると、40GbE対応の製品があるではありませんか。値段は10G対応品よりは高いけど十分に手が届く範囲だった。トランシーバーとケーブルも同様な感じ。となれば欲が出てくるのが人の常。スイッチの入手性は10GbE以上に絶望的だが、マシン間直結なら最早10GbEに拘ることもなくね…?ってなもんで、40GbEへと舵を切ったのである…。

基本方針はそのままにEthernet規格が40GBASE-SR4となり、必要な機材は次のようになった。

  • 40GbE対応のConnectX-3
  • 40GBASE-SR4用QSFPトランシーバ
  • MPO-12マルチモードファイバ(OM3以上)

それぞれ10GbEで選定した機材の40GbE対応版を買えばよい。続きは購入編にて。

  • start.txt
  • 最終更新: 2022-07-27 15:26
  • by Decomo