seirios氏がAmazonでポチって面白いデバイスを持ってきたので、軽く検証、面白い結果が得れたので私も合計で5台ほど調達することにした。
検証した機器は、
八丁 seekswan XikeStor SKS8300-8X 10G SFP+ 8port マネージメント Layer L3 Switchというのを2万円以下で見つけてしまい、即購入。
ちょうど10G/25G/40G/100G対応のパフォーマンステスターが落ちていた^H^H^H^H^H手元にあったため、さくっと検証した。
Realtek RTL9303のチップを搭載したスイッチであり、
データシートからすると、Layer 3 (IPv4/IPv6 IP Unicast Routing) については、ハードウェアで処理され、また、160Gbpsのバックプレーンとしての帯域があるため、ワイヤーレートの性能があるそうだ。
最初、L3処理はCPUで性能全然出ないだろうと考えていたが、なんと調べてみる限り、PHYによるASIC処理しているとのこと。
これらから、とても優秀なスイッチだと仮定し、手元にあった VeEX のテスターを使用して、性能試験を行った。
結論から言うと、Layer 2 Ethernet Switchとして、72byte パケット長(IPv4利用環境を想定)において、packet dropすること無く100%の性能があった。
IPv6 Layer 3 Unicast Routing において、92byteパケット長でワイヤーレートの性能があった。
なお、 Layer 2 Ethernet 試験において、64byte パケット長では、0.08%のパケットをdropし、4%以上壊れたフレームとして戻ってきたため、95.37% packet forwarding できる結果となった。
64byte Ethernet Flameを扱う特殊な環境以外ににおいて問題になることはありませんでした。
いずれの試験も1時間のヒートラン実施時において、上記の結果であった。
テスターで試験した詳細結果は以下の通り。
試験環境: 室温 24℃、外部FAN設置無し、TransceiverはFINISAR 10GLR/10GSR、10GigTek/FiberStore 10GBASE-Tを使用、L2試験の際には、2port単位でVLAN分割を行い、物理的に数珠つなぎにした状態で両端からloopback試験を実施。テスターと接続したインターフェースにおいて、802.1Q VLAN Trunkを使用し、Tagでアクセス。
テスター: VeEX TX340s, 各パケットサイズ長 1ストリーム
- 全ポート負荷試験 64byteパケット長において、 Ethernet Flame は 95.37% の packet forwarding 性能 (約0.08%のパケットdrop, 4.63%のpacketがbit Error及びLost Frameとなった)
※ 0.08% drop から修正 (5/9) - 全ポート負荷試験 72byteパケット長において、 Ethernet Flame は 100% の packet forwarding 性能。(IPv4 / Ethernet+IP header 相当のパケットフレーム長においてワイヤーレートの性能有り)
- IPv6 Layer 3 性能試験(92byte長)において、ハードウェア処理のため100%のIP Unicast routing 性能
- 1時間の100%負荷におけるヒートラン実施で異常な挙動は無し
- ACアダプタ:ACアダプタ12V 2A、Amazonで購入した物についてはPSEマーク有り、購入時期により付属してるACアダプタが異なる。
- 消費電力:無負荷7W, 8ポート10GLRでリンクアップ16W(1 SFPポートあたり最大1.5W程度が設計値)、負荷の有無にかかわらず消費電力に違いは無し
- SFP+ 10GBASE-Tの利用は2ポートまで可能(10GBASE-T モジュールあたり約3.5W程度)、10GLR/SRと併用して合計で20W、また、発熱により、エラーフレームが大量発生するため別途冷却が必要
- DACは認識しませんでした(ファームウェアの更新により解消するという記事もありましたが未確認)
- CLIはCisco Like.
- DHCPv6-PDの実装はあるが、クロスでアドレスは取得出来ず
- 10G/25G AOC Cable 認識OK、Link OK、25Gはmediaは25Gとして認識するが、interface status では、10Gとして認識
- Routed Portは使用出来ない為、SVIのみの実装
- Q-in-Q 64byteパケット長(2port) にて、ワイヤーレート/100%の性能。CPUは100%にならなかった
- VLAN Translation 64byteパケット長(2port) にて、ワイヤーレート/100%の性能。CPUは100%にならなかった
ということで、写真付き結果。
試験環境はこのような形で試験しました。
★ 10GBASE-T における消費電力及び試験結果:
- 10GBASE-T 2本を未接続、Link Down時 13.2W
- 10GBASE-T 2本を接続、Link Down時 16.3W
- 10GBASE-T 2本を接続、Link up時 19.5W
- 10GBASE-T 2本を使用時の試験 21W、FAN無しだと10GBASE-T及びその隣のポートでInterface Error発生、左からFANを当てた場合、右側のポートでErrorが発生。発熱による影響だと考えられる
★ Layer 2 試験結果(10GLR/SR使用):
試験構成: 各ポートにVLANを設定し、全ポート数珠つなぎになるような構成とした。全8ポート負荷試験とする。テスター側ははLoopbackモードでsrc/dst macを書き換えてテースターにトラフィックを戻し、正常に帰ってきたパケット数をカウントする全二重方向試験。
SFP+ Port 1: trunk port, tag vlan 100 SFP+ Port 2: access port, vlan 100 - SFP+ Port 3: access port, vlan 101 SFP+ Port 4: access port, vlan 101 - SFP+ Port 5: access port, vlan 102 SFP+ Port 6: access port, vlan 102 - SFP+ Port 7: access port, vlan 103 SFP+ Port 8: trunk port, tag vlan 103
Switch#show cpu utilization Last 5 second CPU USAGE: 25% Last 30 second CPU USAGE: 21% Last 1 minute CPU USAGE: 21% Last 5 minute CPU USAGE: 20% From running CPU USAGE: 14% Switch#
64byte Results
72byte Results
1本だけどうしてもエラーが出るOpticsを引いてしまい、十分な本数のOpticsを用意出来ず、単体で完全に0%ロスに出来なかったため、その点はご了承ください。
この結果には不満があるので、改めて後日再試験を予定しています。
★ Layer 3 / IPv6 Unicast Routing 試験結果:
SFP+ Port 1及びPort8をテスターに接続、SVIを作成し、access portとしてテスターと接続し負荷試験を実施した。
フレームサイズは最小のため、92byteパケット長で試験の実施。遅延時間も短く非常に良好。
SFP+ 2ポート(10GLR)使用、負荷試験時において、消費電力は10Wであった。
なお、スクリーンショットのカウンター値が一致していないが、細かく検証した際には、おおよそ一致していたた。おおよそというのは、ND/NDPパケットなど吐いている可能性があり、数パケット分の誤差が生じていたためである。
試験時間: 1分
参考に、1時間のヒートランしたときの結果。パケットの数がほぼ一致している。
Switch#show cpu utilization Last 5 second CPU USAGE: 7% Last 30 second CPU USAGE: 8% Last 1 minute CPU USAGE: 7% Last 5 minute CPU USAGE: 7% From running CPU USAGE: 15% Switch#
合格。CPU負荷も上がらず。
★ VLAN Translation 2port 64byte パケット長 試験:
構成:
Port 1: trunk port, vlan 2000を設定, テスターのvlanは2002を設定し、vlan-transrationで、2002を2000へ変換
Port 2: trunk port, vlan 2000を設定, テスターのvlanは2000を設定
64byte packet長による負荷試験
config
vlan 2000;2002 Interface Ethernet1/0/1 transceiver-monitoring enable vlan-translation enable vlan-translation 2002 to 2000 in vlan-translation 2002 to 2000 out switchport mode trunk switchport trunk allowed vlan 2000 Interface Ethernet1/0/8 transceiver-monitoring enable switchport mode trunk switchport trunk allowed vlan 2000
スクリーンショットの通り、フルワイヤーレートが出ていること、転送されたパケット数が、スイッチの値とテスターの値が一致しており、十分な性能があることが確認できた。なお、試験中のスイッチのCPU負荷は10%程度にとどまっていたため、ハードウェア処理されていることが確認出来た。
★ 分解写真:
搭載しているチップを確認するために、分解をする必要があった。
しかし、ヒートシンクが搭載されており、これは半田付けされていた。
赤色の場所のハンダを落とさない限りヒートシンクは外せない。なお、25Wの半田ごてでは溶かすことが出来ず、40Wの物を用意した。
搭載されているチップは、
Realtek RTL9303(
Data Sheet)
で、以下の写真の通り。分解に時間がかかって大変だった。
★ ACアダプタ:
PSEマークはきちんと存在している。購入時期により入っているACアダプタが異なるようだ。
いずれも、12V 2A のACアダプタのΦ5.5の物であった。
★ スペック 及び ドキュメント類:
なお、
xikestorのサイトはは、日本のIPからアクセスすると、Products などに製品名が表示されない。
また、
Seekswanのサイトにて、
製品情報を中国語にて確認することが出来る。なお、英語ページは存在しない。
また、xikestor の方よりたどると、
xikestore Download Centerにて英語のドキュメント類がダウンロード可能。
seekswanより、マニュアル及びファームウェア類がダウンロード可能。
いつ消滅するか不明の為、
ミラーも作成した。
- https://xikestor.com/
- xikestore download center
- seekswan / 八丁 SKS8300-8X
- seekswan / 八丁 download center
- SKS8300-8X 取扱説明書(日本語) - tomocha.net mirror site
- SKS8300-8X WebUI Manual(日本語) - tomocha.net mirror site
- Realtek RTL9303 Datasheet - tomocha.net mirror site
ファームウェアについては形式が不明だった。
[tomo@sv XikeStor_SKS8300-8X]$ hexdump -C SKS8300-8X-V1-V300SP10231222-C200117-U.img | head -n 20 00000000 80 92 a7 0d 16 18 79 34 23 ac 80 82 00 de e6 6f |......y4#......o| 00000010 d1 c6 27 7b 45 65 77 ff 90 1b 34 23 0a 04 7d 9c |..'{Eew...4#..}.| 00000020 14 23 32 0f 1d ac 02 30 43 55 23 1f 1c 4c 2b 7d |.#2....0CU#..L+}| 00000030 13 02 30 33 4a ab 34 5d 13 2b 3a 82 23 34 df ad |..03J.4].+:.#4..| 00000040 14 b3 24 00 ad ab 33 3d de ff 80 82 11 44 8b 9a |..$...3=.....D..| 00000050 5a 40 34 d1 02 30 12 34 23 ab ff ff ff ff 3b 9c |Z@4..0.4#.....;.| 00000060 94 e6 89 2d dd b6 b1 3d 0a c5 82 11 44 8b 9a 77 |...-...=....D..w| 00000070 1d e3 7d 23 02 ab 72 55 83 ab 80 82 01 ff 54 9a |..}#..rU......T.| 00000080 f2 37 6e 27 8d 1b ff ff 43 1b f0 32 ff ff 46 18 |.7n'....C..2..F.| 00000090 c2 23 7f 5f ad cd ff ff 66 3b f0 56 ff 32 76 1f |.#._....f;.V.2v.| 000000a0 4f 05 00 80 ad 89 00 00 90 24 00 ff 00 00 35 4f |O........$....5O| 000000b0 60 d0 00 00 ab 5a 00 00 36 43 ff ff 00 00 37 4e |`....Z..6C....7N| 000000c0 7f 70 ff 00 a6 df 00 ff 87 44 ff 00 88 00 85 4d |.p.......D.....M| 000000d0 2c 69 ff 00 ad ab 57 04 23 5b ff 42 51 3f 8b 3b |,i....W.#[.BQ?.;| 000000e0 72 29 89 00 ab 30 f3 54 ff ab 80 82 11 44 82 1a |r)...0.T.....D..| 000000f0 0f 94 ae 00 cd ea 68 34 ff ff ff ff 00 00 87 78 |......h4.......x| 00000100 a5 23 34 df 70 06 87 49 88 30 44 4c 00 de e5 3f |.#4.p..I.0DL...?| 00000110 b3 43 21 52 c5 8a 88 2f 9c 49 7b 4e 0f 09 7f 9d |.C!R.../.I{N....| 00000120 14 23 32 0f 1d ac 02 30 43 55 23 1f 1c 4c 2b 7d |.#2....0CU#..L+}| 00000130 13 02 30 33 4a ab 34 5d 13 2b 3a 82 23 34 df ad |..03J.4].+:.#4..| [tomo@sv XikeStor_SKS8300-8X]$
★ Realtek RTL9303 Datasheet:
Realtek RTL9303 Datasheet を見ると以下の記載がある。一部抜粋する。
なお、データシートにはECMPが対応しているとは記載が無いため、ECMPは動作しないものと考えられる
メンドクサイので抜粋のみ。筆者が気になったところのみピックアップ。気になる方はデータシートを読んでネ(^_^)v。
つーか、「IP unicast routing supports Strict and loose uRPF checks and PBR (Policy-Based Routing).」とか対応してるってステキデスネ。
ブロック図
The RTL9303 has a 4K-entry VLAN table. It provides VLAN classification according to port-based, protocol-and-port-based, MAC-based, IP-subnet-based, Ingress VLAN translation and Flow-based capability. It also supports IVL (Independent VLAN Learning), SVL (Shared VLAN Learning), and IVL/SVL (both Independent and Shared VLAN Learning) for flexible network topology architecture. In network access applications it provides IEEE802.1ad (Q-in-Q) for double tag insertion and removal function. In addition, VLAN translation function is also supported for Metro Ethernet applications.
The RTL9303 supports 16K entries in a L2 MAC table with 2-left 4-way hashing algorithm. An independent 1K-entry Forwarding table is used to support Multicast functions, such as IGMP snooping.
The RTL9303 supports a 2K-entry VLAN/Ingress Access Control List (ACL). The ACL function supports L2/L3/L4 in IPv4/IPv6 protocols and performs configurable actions, such as Drop/Permit/Redirect/ Copy/Unicast Routing/Mirror/Logging/Policing/Ingress VLAN conversion/Egress VLAN conversion/QoS remarking/ VLAN tag status assignment. The RTL9303 supports per-port ingress/egress bandwidth control and per-queue egress bandwidth control.
L3 routing supports IPv4 unicast routing, IPv6 unicast routing, IPv4 multicast routing and IPv6 multicast routing. Routing table is mainly composed of L3 host table and L3 LPM table. L3 host table is shared by IPUC and IPMC, and is 2-left 6-way host table. Routing is the process of forwarding packets hop by hop on layer3. It primarily includes finding an outgoing interface and a next hop, modifying the packets’ SMAC, DMAC, VID (if provided), TTL, and L3 header checksum (for IPv4) and forwarding. The RTL9303 supports strict and loose uRPF.
・ 160Gbps switch capacity
L2 MAC Function
・ 16K-entry L2 MAC table
・ 2-left 4-way hashing algorithm
・ 2 hash algorithm selection for L2 table searching/learning
・ Source/Destination MAC filtering
・ Per port enables aging
・ Independent 1K entry Multicast table for L2/IP Forward function
・ 12Mbit SRAM Packet Buffer
・ Jumbo frame up to 12KB
Supports Link Aggregation (IEEE 802.3ad) for 64 groups of link aggregators with up to 8 ports per-group
・ Hardware trunk fail-over
・ Distribution algorithm can be based on SPP, SMAC, DMAC, VLAN ID, SIP, DIP, L4 source port, L4 destination port, Protocol ID and IPv6 Flow Label
OAM
・ 802.3ah OAM loopback
・ 802.3ah Dying Gasp
L3 Functions
・ IPv4/IPv6 unicast routing
・ 64 Router MAC
・ 6K-entry host table (6K IPv4/2K IPv6)
・ 2-left 6-way host table
・ 2 hash algorithm selection for host table searching
・ 512-entry LPM (Longest Prefix Match) table(512 IPv4/128 IPv6)
・ 2K next hop table
・ 128 Egress L3 interfaces
・ Supports uRPF (unicast Reverse Path Forwarding)
・ Supports PBR (Policy-Based Routing)
Access Control List (ACL) Function
・ Supports 2K shared entry for VLAN and Ingress ACL
・ Supports L2/L3/L4 format and user defined field
・ Supports 256 policer for traffic policing DLB/srTCM/trTCM
7.13.2. Ingress ACL
The Ingress ACL function supports functionalities similar to VLAN ACL. Differences between them are mainly determined by their lookup phase. For example, Inner VLAN translation function of VLAN ACL translates a packet before the ingress VLAN filter/L2/L3 process, but the function of ingress ACL is after the ingress VLAN filter/L2/L3 process.
7.14. L3 Unicast and Multicast Routing
Layer 3 routing supports IPv4 and IPv6 protocols. Routing is the process of forwarding packets hop by hop on layer3, it primarily includes finding an outgoing interface and a next hop, modifying the packets’ SMAC, DMAC, VID (if provided), TTL and L3 header checksum (for IPv4), and forwarding. L3 routing performs the source/destination IP lookups for IPv4 and IPv6 unicast and multicast packets.
7.14.1. IP Unicast Routing
L3 termination is initiated via a lookup in the Router MAC table. The L3 Host Routing Table is a 2-left 6-way host table, supports max 6K IPv4 entries or 3K IPv6 entries. When a look miss in the L3 host table LPM (Longest Prefix Match) table lookup occurs, it supports 512 IPv4 entries or 128 IPv6 entries. Once matched, a L3_NEXT_HOP entry is used to modify the packets, including outgoing interface and DMAIDX , and fully supports 2K next hop.
The Outgoing interface provides the packets’ SMAC, VID etc. information, and includes 128 interfaces. The DMAC and the outgoing port information should be retrieved from an L2 entry indexed by DMACIDX. Values in the MAC field of the L2 entry indicate the next hop’s MAC address, and are used to replace the packets’ DMAC field in the L2 header.
IP unicast routing supports Strict and loose uRPF checks and PBR (Policy-Based Routing).
★ 今後の検証予定:
- BGP、OSPF周りの試験、RIB/FIBあふれの時の挙動確認
- フレッツクロス環境でのIPv6 PD試験、及びパフォーマンス試験
幸いにもクロスが複数の占有回線があるため、PDで受けてテスターを回す予定
この価格帯で出てくるのはありがたいことですが、ファームウェア内部にバックドアが仕掛けられていないかとても気になります。
面白いデバイスを紹介してくださった、 seirios氏、ありがとうございます
★ 変更履歴:
- 5/7 64byteパケット長における転送性能の値を修正。0.08% drop → 4.63% drop and bit errorの為、正常なpacket frameは95.37%という結果に修正
- 5/15 Q-in-Q の結果および、VLAN Translation の結果を追加