/etc/network/interfaces - 一般的なネットワーク構成

/etc/network/interfaces - 一般的なネットワーク構成

私はOrange piの2台のシングルボードコンピュータを持っていますが、それぞれ2台のオンボードネットワークアダプタがあります。そのうちの1つは通常eth0と呼ばれ、もう1つはボードによって異なります。 enxc0742bffdf83 や enxc0742bffdf6e などの他の名前があります。私はArmbianイメージを使ってボードに電力を供給しました。 DCHPが自動的にIPアドレスを取得しないように、両方のネットワークアダプタを1つに設定しました。私は以下のように/etc/network/interfacesファイルを変更してこれを行いました。

auto  eth0
iface eth0 inet manual

auto  enxc0742bffdf6e
iface enxc0742bffdf6e inet manual

手動で設定された画像を別のSDカードにコピーし、/etc/network/interfacesを手動で再変更することなく直接実行できることを願っています。アダプタ1やアダプタ2など、すべてのマザーボードに適用される共通のエイリアスを使用するオプションはありますか?それ以外の場合は、システム起動時に各ボードアダプタの正しい名前で/ etc / network / interfacesファイルを自動的に更新する一般的なスクリプトを作成する方法はありますか?

答え1

で始まるネットワークインターフェイス名には、enx...接続されたNICのMACアドレスが含まれます。ファイルが原因で割り当てられている可能性があります/etc/systemd/network/81-usbnet.link

詳しくはこちらをご覧くださいman systemd.net-naming-schememan systemd.link

/etc/systemd/network/*.link2番目のNICの属性によっては、ボード上の2番目のNICと一致する一般的なファイルを作成し、必要な名前を割り当てることができない場合があります。これを行うことができる場合は、次のファイルを作成し、デフォルトのASCII英数字ソート順に最初に表示される*.linkように名前を付けます。81-usbnet.link

[Match]
<some condition that matches your second NIC>

[Link]
NamePolicy=
Name=<your desired name for the second NIC>

*.linkシステムがinitramfsを使用している場合は、ファイルがinitramfsに含まれ、システムがinitramfsで実行されている間にNICドライバがロードされた場合にも適用されるように、それを再生成する必要があります。


または、カーネル割り当て名(たとえば)がeth0システムで信頼できると確信している場合は、カーネルブートパラメータを追加して2つのネットワークインターフェイス(および)net.ifnames=0を取得できます。ネットワークインタフェースドライバモジュールが常に同じ順序でロードされていることを確認してください。ファイルに次の内容を追加できます。eth0eth1/etc/modprobe.d/*.conf

install <second_NIC_driver> /sbin/modprobe <first_NIC_driver> && /sbin/modprobe -i <second_NIC_driver>

これにより、カーネルが何らかの理由で2番目のネットワークカードのドライバを最初にロードしても、モジュールのロードプロセスは常に最初のネットワークカードのドライバを最初にロードするため、最初のネットワークカードは常に名前をキャプチャしますeth0

答え2

systemd-networkd/etc/network/interfacesの代わりにこのサービス(システムに付属)を試してください。

サービスを有効にしてファイルを介して/etc/systemd/network/*.networkネットワークを設定したら(参考資料を参照man systemd.network)、さまざまな基準(インターフェイス名ワイルドカードやドライバ名など)に応じてインターフェイスと一致するように設定できます。

[Match]
Name=enx*

[Network]
...
[Match]
Driver=r8188eu

[Network]
Address=...

(ファイルリストは*.networkASCIIアルファベット順に読み込まれ、各インタフェースは最初networkctl status.

関連情報