2.5Gbpsへの挑戦

自宅サーバの根幹RaspberryPiを2.5Gbps化

2.5Gbpsへの挑戦

概要

Raspberry Piの標準LANポート(1Gbps) で特に不満はないが、ロマンのために2.5Gbpsを追い求めてみる。

結論

2500Mb/sリンクアップ

実測値

  • Download: 約1800 Mbps
  • Upload: 約1300 Mbps

システム構成 / 使ったもの

今回用意したのはこちら。

カテゴリ 構成内容
本体 Raspberry Pi 4 Model B (8GB)
OS Ubuntu Server 22.04 LTS
拡張アダプタ UGREEN USB-A to RJ45 2.5G Ethernet Adapter
LANケーブル カテゴリ6A

ちなみに自宅は光10Gを引いている。

購入した2.5G Ethernet Adapter

構築

1. まずはインターフェース名の確認

USBアダプタを刺したあと、まずはシステムがどう認識しているかチェック

raspberrypi4% ip link             
...
...
...
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
    link/ether XX:XX:XX:XX:XX:XX brd ff:ff:ff:ff:ff:ff
    altname end0
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    link/ether XX:XX:XX:XX:XX:XX brd ff:ff:ff:ff:ff:ff
...
...
...

ip linkによるインターフェース確認 (一部改変)

  • eth0: 標準の1Gbpsポート
  • eth1: 新しく刺した2.5Gbpsアダプタ

2. Netplan設定

Netplanで管理しているので設定を追加。

標準ポートで設定していた内容にならって追加すればOK。DNSやIP固定などは適宜実施。

標準ポートはLANケーブルを刺したまま、固定IPは変えつつ設定も残してバックアップとしておく。

基本は新しい2.5Gアダプタを使って欲しいのでroute-metric を定義して優先的に使うようにする。数字が小さいほど優先度があがる。

/etc/netplan/50-cloud-init.yaml などの設定ファイル

network:
  version: 2
  renderer: networkd
  ethernets:
    # バックアップ: 標準ポート
    eth0:
      dhcp4: true
      dhcp6: true
      dhcp4-overrides:
        route-metric: 200
      dhcp6-overrides:
        route-metric: 200
    # メイン: USB 2.5G アダプタ
    eth1:
      dhcp4: true
      dhcp6: true
      dhcp4-overrides:
        route-metric: 100
      dhcp6-overrides:
        route-metric: 100

設定したら適用する。

raspberrypi4% sudo netplan try
[sudo] password for pi4: 
Do you want to keep these settings?


Press ENTER before the timeout to accept the new configuration


Changes will revert in 113 seconds
Configuration accepted.

applyでもいいが、tryは内容をチェックしたうえでEnterした時点で適用される。問題があれば自動的にrevertされる。

検証

2.5Gを認識しているかどうか

以下のコマンドで、リンク速度を確認

raspberrypi4% sudo ethtool eth1 | grep Speed
        Speed: 2500Mb/s

冗長化テスト

eth1: 2.5Gアダプタを抜いても、eth0:バックアップポートでインターネットへ出られるかの検証

もともと8.8.8.8への経路はeth1、つまり2.5Gアダプタが使われていることがわかる。

raspberrypi4% ip route get 8.8.8.8
8.8.8.8 via 192.168.68.1 dev eth1 src 192.168.68.3 uid 1000 
    cache

eth1でインターネットへ

LANケーブルを抜いてみる

同じコマンドで確認すると次はeth0、標準ポートから出ていっている

raspberrypi4% ip route get 8.8.8.8
8.8.8.8 via 192.168.68.1 dev eth0 src 192.168.68.5 uid 1000 
    cache 

eth0に切り替わる

再度LANケーブルを刺す

 raspberrypi4% ip route get 8.8.8.8
8.8.8.8 via 192.168.68.1 dev eth1 src 192.168.68.3 uid 1000 
    cache

再びeth1へ

通常時に戻り、想定どおり2.5Gアダプタが使用されている。

まとめ

2.5Gbps接続ができた

体感速度は正直変わらない。

etc: ファンから出る風が当たるようになっているせいか、まったく発熱は気にならない。ほんのり温かい程度。