DS218jにUSB 2.5GbE / 5GbE LANアダプターをインストール
ドライバー
GitHub
https://github.com/bb-qq/r8152
| DSM | ドライバー |
|---|---|
| DSM 6.2 | r8152-armada38x-2.21.4-1_6.2.spk |
| DSM 7.0 / 7.1 | r8152-armada38x-2.21.4-1_7.1.spk |
| DSM 7.2 | r8152-armada38x-2.21.4-1_7.2.spk |
| DSM 7.3以上 | r8152-armada38x-2.21.4-1_7.3.spk |
インストール
-
「コントロールパネル」→「端末とSNMP」でSSHを有効にする。
-
USB LANアダプターを接続する。
-
「パッケージセンター」→「手動インストール」でSPKをインストールする。
DSM 6.2
これでインストール完了。
DSM 7.0以降
1回目のインストールは失敗する。失敗画面は閉じず、そのままSSHでログインする。
ssh -l <ユーザー名> <DS218jのIPアドレス>
以下を実行する。
sudo install -m 4755 -o root -D \
/var/packages/r8152/target/r8152/spk_su \
/opt/sbin/spk_su
SSHを終了し、同じSPKを再度「手動インストール」すると正常にインストールされる。
動作確認
「コントロールパネル」→「ネットワーク」→「ネットワークインターフェイス」でNICが2枚表示されることを確認する。
表示されない場合は再起動する。
再起動後、USB LANが停止状態の場合は「パッケージセンター」でr8152を開始する。
動作確認済みNIC
-
I-O DATA ETQG-US3(2.5Gbps)
-
Ankmax UA32G5(5Gbps)
-
Ainex DV-134(2.5Gbps)
*Ainex DV-134は自動認識しない場合がある。その場合は再起動、または
sudo ip link set eth1 up
を実行する。
通信を安定させる
DS218jはオンボード1GbE(eth0)を優先する。
オンボードLANとUSB LANの両方にIPアドレスが設定されていると、通信が不安定になることがある。
USB LANで正常に通信できることを確認後、eth0を停止する。
起動時に自動実行するよう、タスクスケジューラへ登録する。
(タスク名)network_fix
#!/bin/sh sleep 20 # eth1経由でルーター(192.168.11.1)疎通確認 if ping -I eth1 -c 1 -W 2 192.168.11.1 >/dev/null 2>&1; then logger "ETH1 OK -> use 2.5G only" ip link set eth0 down /usr/syno/bin/synosystemctl restart pkg-synosamba-smbd.service else logger "ETH1 NG -> keep ETH0" ip link set eth0 up /usr/syno/bin/synosystemctl restart pkg-synosamba-smbd.service fi *eth〇は ip a で確認。
OMV SMBマルチチャンネル最適化・永続化
1. はじめに
Linux はデフォルトで「弱ホストモデル(Weak Host Model)」というルーティング仕様を採用しています。 同一サブネット(例:192.168.11.x)に複数の物理ポートを所属させて SMB マルチチャンネルを構成した場合、Windows(クライアント)からの書き込み(アップロード)は分散されますが、Linux からの応答(ダウンロード)パケットが全てデフォルトルートの単一ポートに固着(逆流)し、ダウンロード速度が頭打ちになるボトルネックが発生します。
本構成では、「強ホストモード(ソースベースルーティング)」をポリシールーティングで強制し、「パケットが届いたポートと同じポートから必ず返信させる」ことでボトルネックを完全に解消。双方向で理論限界値を引き出す。
2. ネットワーク環境
- OS: Linux 7.0.10+Debian 13/ OpenMediaVault 8.3.1-3
- ネットワーク管理: systemd-networkd
- 対象ポートと固定IPアドレス:
- enp1s0f0 ➔ 192.168.11.87 (ルートテーブル番号: 101)
- enp1s0f1 ➔ 192.168.11.88 (ルートテーブル番号: 102)
- 対象サブネット: 192.168.11.0/24
3. 設定手順(3ステップ)
【ステップ1】ポリシールーティング・スクリプトの作成
外部ファイルに依存せず、数字のテーブル番号(101, 102)を直接指定して動的にカーネルを制御する。
- ファイル配置パス: /etc/network/if-up.d/99-policy-routing
- 作成・上書きコマンド:
Bash
sudo tee /etc/network/if-up.d/99-policy-routing << 'EOF'
#!/bin/bash
# インターフェース名とテーブル番号の定義
TABLE_ENP1S0F0=101
TABLE_ENP1S0F1=102
# 1. 各カスタムテーブル(101, 102)に対象セグメントのルートを強制登録
ip route add 192.168.11.0/24 dev enp1s0f0 table $TABLE_ENP1S0F0 2>/dev/null || ip route change 192.168.11.0/24 dev enp1s0f0 table $TABLE_ENP1S0F0
ip route add 192.168.11.0/24 dev enp1s0f1 table $TABLE_ENP1S0F1 2>/dev/null || ip route change 192.168.11.0/24 dev enp1s0f1 table $TABLE_ENP1S0F1
# 2. 各IP(.87, .88)から送信されるパケットは、それぞれのテーブルを必ずルックアップさせる(強ホスト化)
ip rule show | grep -q "from 192.168.11.87 lookup $TABLE_ENP1S0F0" || ip rule add from 192.168.11.87 lookup $TABLE_ENP1S0F0
ip rule show | grep -q "from 192.168.11.88 lookup $TABLE_ENP1S0F1" || ip rule add from 192.168.11.88 lookup $TABLE_ENP1S0F1
# ルーティングキャッシュのクリア
ip route flush cache
EOF
- 実行権限の付与:
Bash
sudo chmod +x /etc/network/if-up.d/99-policy-routing
【ステップ2】systemd による自動起動
systemd-networkd 環境下で、OS起動時・ネットワーク復旧時に上記スクリプトを確実に自動実行させるためのサービス化設定。
- ファイル配置パス: /etc/systemd/system/smb-policy-routing.service
- 作成コマンド:
Bash
sudo tee /etc/systemd/system/smb-policy-routing.service << 'EOF'
[Unit]
Description=Samba Multi-Channel Policy Routing for 10GbE
After=network.target network-online.target
Wants=network-online.target
[Service]
Type=oneshot
ExecStart=/etc/network/if-up.d/99-policy-routing
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
EOF
- サービスの登録と即時有効化:
Bash
# systemdの設定をリロード
sudo systemctl daemon-reload
# サーバー起動時の自動実行(永続化)を有効化
sudo systemctl enable smb-policy-routing.service
# サービスを手動で即時開始
sudo systemctl start smb-policy-routing.service
【ステップ3】動作・正常性の確認コマンド
① Linux カーネルルールの確認
Bash
ip rule show
正常時の出力事実:
Plaintext
0: from all lookup local
32764: from 192.168.11.88 lookup 102
32765: from 192.168.11.87 lookup 101
32766: from all lookup main
32767: from all lookup default
② systemd 自動起動ステータスの確認
Bash
sudo systemctl status smb-policy-routing.service
正常時の出力事実: 緑色の文字で active (exited) と表示され、かつ status=0/SUCCESS で終了していること。
4. OMV / Samba 側の重要ポイント
- OMV 7.x(Samba 4.22.8以降)のデフォルト状態において、内部で最初から server multi channel support = Yes、および aio read size = 1 / aio write size = 1 が標準搭載されて機能している。
- したがって、OMV管理画面の「サービス」>「SMB/CIFS」>「設定」>「追加オプション」欄は、何かを記述するよりも『完全に空欄(何も書かない)』に保つことが、最も競合が起きず、最も安定して最高速を引き出せるクリーンな原状回復となる。