succi0303 blog

This is my personal blog. All posts are my own.

Proxmox VE on DeskMeetのネットワークインタフェースをUSB有線LANアダプタに切り替える

自宅のB660 Deskmeetで稼働しているProxmoxのネットワークインタフェースをUSB有線LANアダプタに切り替えました。切り替えの背景と手順を記録しておきます。

背景:DeskMeetのオンボードLANが頻繁にハングする

ここ一か月くらいの間にProxmox VE基盤で動かしているウェブアプリケーションに接続できない事象が複数回発生しました。事象が発生するとクライアントからの通信がProxmoxに到達しなくなります。LANケーブルを一度抜いて挿しなおすと復旧します。

dmesgでログを確認したところ以下のようにエラーが記録されていました。

$ dmesg | grep -i e1000e
[102807.519070] e1000e 0000:00:1f.6 enp0s31f6: Detected Hardware Unit Hang: 

ドライバがネットワークアダプタのハングを検知していることがわかり、まずBIOS/UEFIで省電力系の機能が無効になっていることを確認、またSR-IOVも無効になっていることを確認、この状態でしばらく様子を見ましたが、同じ問題が再発しました。

オンボードLANの物理故障の可能性が濃厚になったところで、障害の切り分けのためにUSB有線LANアダプタへの切り替えを試すことにしました。以下、手順に続きます。

ネットワークアダプタの切り替え

USB有線LANアダプタを購入。Linux対応と明記していたPlanex製品を選びました。

Proxmoxの現在のネットワーク設定を確認。管理コンソールの「データセンター - pve(ノード名) - ネットワークをチェック。仮想ネットワーク vmbr0に関連づく物理NIC名(今回はemp0s31f6だった)を確認。

USB有線LANアダプタをDeskMeet背面のUSB 3.0に接続。以下のコマンドで物理NIC名と接続状態を確認(今回はenx1cc0350781c9)。

$ ip a
18: enx1cc0350781c9: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether 1c:c0:35:07:81:c9 brd ff:ff:ff:ff:ff:ff 

$ lsusb
Bus 001 Device 022: ID 0bda:8156 Realtek Semiconductor Corp. USB 10/100/1G/2.5G LAN

Proxmoxのネットワーク設定ファイル/etc/network/interfacesを開いて以下のように編集。

変更前

auto lo
iface lo inet loopback

auto enp0s31f6
iface enp0s31f6 manual

auto vmbr0
iface vmbr0 inet static
    address 192.168.1.100/24
    gateway 192.168.1.1
    bridge-ports enp0s31f6
    bridge-stp off
    bridge-fd 0

変更後

auto lo
iface lo inet loopback

auto enp0s31f6
iface enx1cc0350781c9 manual

auto vmbr0
iface vmbr0 inet static
    address 192.168.1.100/24
    gateway 192.168.1.1
    bridge-ports enx1cc0350781c9
    bridge-stp off
    bridge-fd 0

設定ファイル変更後、systemctl restart networkingでネットワークを再起動。ここまでで設定が完了し、以下は動作確認。

LANケーブルをオンボードLANからUSB有線LANアダプタへ挿しかえてしばらく待つ。3分ほどしてから設定ファイルに記載されている192.168.1.100にアクセスして疎通できることを確認。

Proxmoxの現在のネットワーク設定を確認。管理コンソールの「データセンター - pve(ノード名) - ネットワークをチェック。vmbr0に紐づく物理NIC名が切り替わっていることを確認。

以下のコマンドでUSB有線LANアダプタ(enx1cc0350781c9)がリンクアップしていることを確認。

$ ip a
18: enx1cc0350781c9: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master vmbr0 state UP group default qlen 1000
    link/ether 1c:c0:35:07:81:c9 brd ff:ff:ff:ff:ff:ff 

以上です。問題が解決するかしばらく様子を見ます。