基幹L2スイッチをL3スイッチにリプレースした
事の発端
メイン PC から NAS への iPerf3 が同 VLAN では速いが異 VLAN になると速度が落ち込んだ。
具体的には同 VLAN だと 10Gbps 弱出るが、異 VLAN だと 6Gpbs 程度だった。
また、異 VLAN で通信している最中はルーターである IX3315 の CPU 使用率が 97% にも上っていた。
以下にログを貼るが、iPerf3 はメイン PC である実機の Windows ではなく仮想環境の Linux のもの。
そのため仮想化のオーバーヘッドが若干あるかもしれない。
同 VLAN
$ iperf3 -c 10.0.0.4
Connecting to host 10.0.0.4, port 5201
[ 5] local 10.0.0.80 port 51236 connected to 10.0.0.4 port 5201
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 1.07 GBytes 9.20 Gbits/sec 9729 2.39 MBytes
[ 5] 1.00-2.00 sec 1.08 GBytes 9.25 Gbits/sec 5377 1.69 MBytes
[ 5] 2.00-3.00 sec 1.10 GBytes 9.41 Gbits/sec 2409 1.70 MBytes
[ 5] 3.00-4.00 sec 1.09 GBytes 9.36 Gbits/sec 2379 1.09 MBytes
[ 5] 4.00-5.00 sec 1.10 GBytes 9.43 Gbits/sec 513 1.18 MBytes
[ 5] 5.00-6.00 sec 1.10 GBytes 9.42 Gbits/sec 1043 1.44 MBytes
[ 5] 6.00-7.00 sec 1.10 GBytes 9.42 Gbits/sec 1741 1.07 MBytes
[ 5] 7.00-8.00 sec 1.10 GBytes 9.43 Gbits/sec 780 1.33 MBytes
[ 5] 8.00-9.00 sec 1.09 GBytes 9.41 Gbits/sec 1530 1.06 MBytes
[ 5] 9.00-10.00 sec 1.10 GBytes 9.46 Gbits/sec 645 1.15 MBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 10.9 GBytes 9.38 Gbits/sec 26146 sender
[ 5] 0.00-10.00 sec 10.9 GBytes 9.38 Gbits/sec receiver
iperf Done.
異 VLAN
$ iperf3 -c 10.0.2.4
Connecting to host 10.0.2.4, port 5201
[ 5] local 10.0.0.80 port 55096 connected to 10.0.2.4 port 5201
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 691 MBytes 5.79 Gbits/sec 1749 2.91 MBytes
[ 5] 1.00-2.00 sec 669 MBytes 5.61 Gbits/sec 1699 3.16 MBytes
[ 5] 2.00-3.00 sec 674 MBytes 5.65 Gbits/sec 0 3.16 MBytes
[ 5] 3.00-4.00 sec 666 MBytes 5.59 Gbits/sec 0 3.17 MBytes
[ 5] 4.00-5.00 sec 799 MBytes 6.70 Gbits/sec 0 3.17 MBytes
[ 5] 5.00-6.00 sec 768 MBytes 6.44 Gbits/sec 1767 2.34 MBytes
[ 5] 6.00-7.00 sec 672 MBytes 5.64 Gbits/sec 0 2.54 MBytes
[ 5] 7.00-8.00 sec 800 MBytes 6.71 Gbits/sec 1417 1.95 MBytes
[ 5] 8.00-9.00 sec 794 MBytes 6.66 Gbits/sec 0 2.24 MBytes
[ 5] 9.00-10.00 sec 900 MBytes 7.55 Gbits/sec 0 2.52 MBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 7.26 GBytes 6.24 Gbits/sec 6632 sender
[ 5] 0.00-10.00 sec 7.26 GBytes 6.24 Gbits/sec receiver
iperf Done.
異 VLAN 中の IX3315 負荷
Router# show utilization
System utilization 97 (description: violent storm)
868679569 ticks ran last one second
1366233 worker threads ran last one second
Core utilization
CPU#0 48%
CPU#1 21%
CPU#2 76%
CPU#3 20%
CPU#4 97%
CPU#5 46%
CPU#6 0%
CPU#7 6%
Device GigaEthernet2
Mean transmit util 0%, last transmit util 0%, high transmit util 16%
Mean receive util 0%, last receive util 0%, high receive util 23%
Total intervals 112821
Device GigaEthernet3
Mean transmit util 0%, last transmit util 0%, high transmit util 49%
Mean receive util 0%, last receive util 0%, high receive util 48%
Total intervals 112821
(未使用 Device は省略)
現状の構成
ONU → IX3315 → JL682A(L2SW)→ 各機器
という感じの Router on a stick 構成である。
┌───────┐ ┌──────────┐ ┌───────┐
│ │ │ │ │ │─────────▶ 10.0.0.0/24
│ ONU │─────▶│ IX3315 │─────▶│ L2SW │─────────▶ 10.0.1.0/24
│ │ │ │ │ │─────────▶ 10.0.2.0/24
└───────┘ └──────────┘ └───────┘─────────▶ 10.0.10.0/24
│
│ - WAN Routing
│ - Inter-VLAN Routing
│ - VLAN Tagging
│ - DNS Server
│ - DHCP Server
│ - DHCPv6 Server (DNS only)
異 VLAN 間のルーティングも IX3315 が担っており、その処理性能が完全に足を引っ張っていた。
公式が出している IX3315 のスループット性能を見てみると、フレームサイズ 1,000 bytes で 10Gbps は出ていそう。
しかし実際には出ていない。
公式のスループットはおそらく「ポート to ポート」であり、単一ポートの Router on a stick 構成が悪いのではないだろうかという結論になった。(一緒に調査してくれたオタクありがとう!)
解決策
そのオタクはルーターに古河電工の F310 を使用しており、そちらも Router on a stick 構成なのだが 10Gbps 出ていた。
しかしそれはジャンボフレームが有効の時の話であり、1500 バイトにすると 8.6Gbps 程度になってしまうらしい。
そしてそもそもルーターはソフトウェアでルーティングをしているから遅いらしい。
ハードウェアでルーティングをするものは…?
L3 スイッチだよなぁ?
┌───────┐ ┌──────────┐ ┌───────┐
│ │ │ │ │ │─────────▶ 10.0.0.0/24
│ ONU │─────▶│ IX3315 │─────▶│ L3SW │─────────▶ 10.0.1.0/24
│ │ │ │ │ │─────────▶ 10.0.2.0/24
└───────┘ └──────────┘ └───────┘─────────▶ 10.0.10.0/24
│ │
│ - WAN Routing │ - Inter-VLAN Routing
│ - DNS Server │ - VLAN Tagging
│ - DHCP Server
│ - RA (RDNSS)
こうする。
ルーターを本来あるべき WAN と LAN の境界だけに使い、LAN のほうはすべて L3 スイッチに任せる。
こうすればルーティングはハードウェアで行われ、LAN 向けの DHCP なども任せられるため機器の役割をはっきりと分離できる。
あとついでに Android に対応するために DNS サーバーの配り方を DHCPv6 から RDNSS に移行する。
選定
- 1G RJ45 x8
- 10G SFP+ x4
最低でもこれらのポートが欲しかった。
メーカーは大手がいいが特に拘りはなく、とりあえず Cisco なら安心じゃね?程度で考えていた。
そんなものをヤフオクで探していると以下のものが出品されており、価格も 99,000 円とお手頃だったためこれを買うことにした。
- Cisco Catalyst 9300-24T-E V02
- Firmware: IOS XE 16.09.02
- 1G RJ45 x24
- 冗長化電源搭載済み
- モジュール C9300-NM-8X 付き
- 10G SFP+ x8
購入と着弾
L3SW買った pic.twitter.com/rt65r2x0CO
— yui (@sugtao4423) January 28, 2026
L3SW届いた! pic.twitter.com/XoeRg75d1d
— yui (@sugtao4423) January 30, 2026
一応分解してみたけど綺麗すぎて草 pic.twitter.com/dKCnpYH5dL
— yui (@sugtao4423) January 30, 2026
内部の埃などを吹き飛ばしたいと思って分解したが、すでに清掃されているのか元からなのか、非常に綺麗だった。
ファームウェア
16.09.02 は 2018 年 11 月のバージョンであり非常に古い。
最新の安定版(推奨版)である 17.15.04 にアップグレードする。


といってもここに書いてあることをすればいい。
ただし USB フラッシュメモリから IOS を転送する際は 8GB 以下のものを使わないときちんとファイルを認識してくれなかった。
Switch# install remove inactive
Switch# copy usbflash0:cat9k_iosxe.17.15.04.SPA.bin flash:
Switch# dir flash:
! ファームのダウンロードページに書いてある MD5 ハッシュと比較する
Switch# verify /md5 flash:cat9k_iosxe.17.15.04.SPA.bin
Switch# configure terminal
Switch(config)# no boot system
Switch(config)# boot system flash:packages.conf
Switch(config)# no boot manual
Switch(config)# end
Switch# write memory
Switch# show boot system
! この後勝手に再起動する
Switch# install add file flash:cat9k_iosxe.17.15.04.SPA.bin activate commit
Switch# show version
! 上記のサイトには書いていないがお掃除
Switch# install remove inactive
これだけで 17.15.04 にアップグレードすることができた。
コンフィグ
ルーターでフレッツ網から受け取った /56 を /60 などで L3SW に再移譲し、L3SW でそれを /64 に分割して各 VLAN に配るだけ。
IX3315 が再移譲に対応していてよかった。ルーターの選定時に正しい選択をしていたようだ…
そこまで難しいコンフィグは書いていないので特に詰まった箇所だけを書いておく。
トランクポート
interface TenGigabitEthernet1/1/4
switchport trunk native vlan 102
switchport trunk allowed vlan 102,110
switchport mode trunk
switchport nonegotiate
native vlanの VLAN であってもallowed vlanに追加しないといけないnonegotiateがないと DTP(Dynamic Trunking Protocol)を送信しやがって繋がらない
IPv4 固定アドレス
ネットの情報では固定したい一つのホストに対して一つのプールを作成しないといけないというのが多く出てくる。
だがそれは嘘。これでいい。
ip dhcp use hardware-address client-id
ip dhcp pool SAMPLE-DHCP-POOL
network 10.0.0.0 255.255.255.0
default-router 10.0.0.1
dns-server 10.0.255.1
address 10.0.0.10 hardware-address 1234.5678.90ab
address 10.0.0.11 hardware-address 1a2b.3c4d.5e6f
MAC アドレスは Cisco 特有の 4 桁のドット区切りなので気を付けるべし。
ACL
IoT 機器用の VLAN から他の VLAN にアクセスさせないけど逆はできるやつ。
前に IX2215 で書いたバージョンはここ。
interface Vlan110
description IoT Network
ip address 10.0.10.1 255.255.255.0
ip access-group ACL-IoT-IN in
ip access-group ACL-IoT-OUT out
ip access-list extended ACL-IoT-IN
remark === Allow return packets ===
evaluate IoT-SESSIONS
remark === Allow DNS server access ===
permit udp any host 10.0.255.1 eq domain
permit tcp any host 10.0.255.1 eq domain
remark === Deny access to internal VLANs ===
deny ip any 10.0.0.0 0.0.0.255
deny ip any 10.0.1.0 0.0.0.255
deny ip any 10.0.2.0 0.0.0.255
deny ip any 10.0.255.0 0.0.0.3
remark === Allow Internet access ===
permit ip any any
ip access-list extended ACL-IoT-OUT
permit tcp any any reflect IoT-SESSIONS timeout 300
permit udp any any reflect IoT-SESSIONS timeout 120
permit icmp any any reflect IoT-SESSIONS timeout 60
permit ip any any
解説は remark に書いてある通り。
IX2215 時代は「他 VLAN から通信があった時に時限的にそのホストに対してはなんでも許可する」といった緩い ACL だったが、今回から「他 VLAN から通信があった時にその戻りパケットだけは許可する」というかなり厳格な ACL にすることができた。
これだけでそれが実現できる Reflexive ACL とかいうやつはすごい。
トランシーバーについて
Cisco はサードパーティ製の SFP+ のトランシーバーを使うことができる。
具体的にはコンフィグに以下の 2 行を投入することで警告すら出さずに使わせてくれる。
service unsupported-transceiver
no errdisable detect cause gbic-invalid
当初これを使って L2SW から流用した FS 製の HPE Aruba 互換の SFP+ トランシーバー(#92098)を使っていた。
しかし何気なくヤフオクを見ていると、Cisco 純正の SFP+ のトランシーバーが 10 個 1 万円で出ていた。
コンフィグに余計な 2 行があるのも気になるので買って換装し、2 行は削除した。
そして換装後に気付いたことではあるが、FS の HPE Aruba 互換だと光パワーが強すぎるという警告が 10 分おきにずっと出ていた。
換装後には一度も出ていないため、やはり純正(または Cisco 互換)のトランシーバーを使うべきかと思う。
Feb 7 15:19:15.490: %SFF8472-3-THRESHOLD_VIOLATION: Te1/1/1: Rx power high warning; Operating value: -0.76 dBm, Threshold value: -1.00 dBm.
Feb 7 15:29:17.850: %SFF8472-3-THRESHOLD_VIOLATION: Te1/1/1: Rx power high warning; Operating value: -0.74 dBm, Threshold value: -1.00 dBm.
Feb 7 15:39:20.199: %SFF8472-3-THRESHOLD_VIOLATION: Te1/1/1: Rx power high warning; Operating value: -0.74 dBm, Threshold value: -1.00 dBm.
Feb 7 15:49:22.560: %SFF8472-3-THRESHOLD_VIOLATION: Te1/1/1: Rx power high warning; Operating value: -0.74 dBm, Threshold value: -1.00 dBm.
設置
てことで鯖室のL2SWからL3SWへのリプレース完全完了! pic.twitter.com/Sw9zq6WcRi
— yui (@sugtao4423) February 1, 2026
速度
一番上でやったのと同じ条件で再度 iPerf3 をやってみる。
同 VLAN
$ iperf3 -c 10.0.0.4
Connecting to host 10.0.0.4, port 5201
[ 5] local 10.0.0.80 port 49198 connected to 10.0.0.4 port 5201
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 1.08 GBytes 9.24 Gbits/sec 8300 1.24 MBytes
[ 5] 1.00-2.00 sec 1.10 GBytes 9.42 Gbits/sec 2241 1.36 MBytes
[ 5] 2.00-3.00 sec 1.10 GBytes 9.48 Gbits/sec 0 1.63 MBytes
[ 5] 3.00-4.00 sec 1.09 GBytes 9.35 Gbits/sec 4023 1.46 MBytes
[ 5] 4.00-5.00 sec 1.10 GBytes 9.46 Gbits/sec 1220 1.23 MBytes
[ 5] 5.00-6.00 sec 1.10 GBytes 9.47 Gbits/sec 401 1.53 MBytes
[ 5] 6.00-7.00 sec 1.10 GBytes 9.43 Gbits/sec 1727 1.26 MBytes
[ 5] 7.00-8.00 sec 1.10 GBytes 9.49 Gbits/sec 0 1.77 MBytes
[ 5] 8.00-9.00 sec 1.09 GBytes 9.34 Gbits/sec 2756 1.38 MBytes
[ 5] 9.00-10.00 sec 1.11 GBytes 9.49 Gbits/sec 0 1.79 MBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 11.0 GBytes 9.42 Gbits/sec 20668 sender
[ 5] 0.00-10.00 sec 11.0 GBytes 9.42 Gbits/sec receiver
iperf Done.
異 VLAN
$ iperf3 -c 10.0.2.4
Connecting to host 10.0.2.4, port 5201
[ 5] local 10.0.0.80 port 46232 connected to 10.0.2.4 port 5201
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 1.09 GBytes 9.39 Gbits/sec 3846 989 KBytes
[ 5] 1.00-2.00 sec 1.10 GBytes 9.45 Gbits/sec 212 954 KBytes
[ 5] 2.00-3.00 sec 1.10 GBytes 9.46 Gbits/sec 7 880 KBytes
[ 5] 3.00-4.00 sec 1.10 GBytes 9.47 Gbits/sec 5 977 KBytes
[ 5] 4.00-5.00 sec 1.10 GBytes 9.47 Gbits/sec 4 1008 KBytes
[ 5] 5.00-6.00 sec 1.10 GBytes 9.47 Gbits/sec 6 1.14 MBytes
[ 5] 6.00-7.00 sec 1.09 GBytes 9.40 Gbits/sec 2199 988 KBytes
[ 5] 7.00-8.00 sec 1.10 GBytes 9.47 Gbits/sec 6 1.09 MBytes
[ 5] 8.00-9.00 sec 1.10 GBytes 9.47 Gbits/sec 7 1.10 MBytes
[ 5] 9.00-10.00 sec 1.10 GBytes 9.46 Gbits/sec 9 1001 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 11.0 GBytes 9.45 Gbits/sec 6301 sender
[ 5] 0.00-10.00 sec 11.0 GBytes 9.45 Gbits/sec receiver
iperf Done.
すばらしい。
どちらでも全く同じ速度が出ており、どこもボトルネックになっていそうな箇所がない。
L3SW の使用率も見てみたかったのだが、コマンドがありすぎてどれを見たら良いのかがわからなかった。
ハードウェアルーティングなので CPU 使用率はもちろんアイドル時と同じ 0% ~ 1% だった。
ASIC の使用率を知りたくていろんなコマンドを叩いてみたが、どれもそんなに値が変化していないように見え、これもうわかんねえな。
誰か良さげなコマンドを知ってたら至急、連絡くれや。
というかもしかすると 10Gbps なんてゴミレベルの通信すぎて見えるような負荷ではないかもしれない。
そもそも SFP+ のポートが 8 つもあるので、それをフルロードしてやっと負荷が見えてくるのかも。
おわり
異 VLAN でも速度が低下することがなくなって非常によかった。
また副次的ではあるが、ルーターにすべてが集中してしまう Router on a stick 構成から脱却することができたのもよかった。(むしろこちらが主であるべきなのかもしれない)
やはり餅は餅屋でルーターと L3SW でそれぞれの得意分野があるのだなということを実感した。
10Gbps をきちんと処理しきれるルーターはほぼ?存在しないようなので、これから 10G 環境にする人やうちもそんな構成だ…と感じる人がいたらぜひ L3SW の導入を検討、というか導入してほしい。
そういえば Twitter でも報告を忘れていたが、安定稼働時の Catalyst 9300 の動作音は 1m 弱離したところで約 50dB だった。
静音化したルーターのほうがこれよりも若干うるさいくらいなので、一般家庭にも置けるように作られているのは非常に高ポイントである。
そんな感じで騒音も思っていたほどではなく、約 100W の電力を消費し続ける点だけが気になりポイントになった。
なので悪あがきとして家中の白熱電球を LED 電球にリプレースし始めた。
ネットワークの最適化が家の最適化にまで影響するなんて…
みんなもネットワークを見直してみると新しい発見があるかもしれないよ。おすすめ。
最後に、Cisco の製品は本当に壊れないことで有名なのでこの先何年だろう、十年単位の時間でよろしく頼むぞ!