私はDebian 9(拡張版)を使用しています。私は4つのイーサネットポート(上部に2つ、下部に2つ)を持つマザーボードを持っています。私のユースケースでは、そのうちの2つだけを使用します。私の質問は:左上をeth0に、右上をeth1にするにはどうすればよいですか?
最初は簡単に聞こえるかもしれません。 「MACアドレスを使う」が最初に考えられるかもしれません。残念ながらそれほど簡単なことではありません。これを何百ものマザーボードに拡張する必要があり、その一部は同じネットワークに接続されているため、MACが一意になります。
以下は出力の一部ですlspci
。
02:00.0 Ethernet controller: Intel Corporation I210 Gigabit Network Connection (rev 03)
03:00.0 Ethernet controller: Intel Corporation I210 Gigabit Network Connection (rev 03)
04:00.0 Ethernet controller: Intel Corporation I210 Gigabit Network Connection (rev 03)
05:00.0 Ethernet controller: Intel Corporation I210 Gigabit Network Connection (rev 03)
私の最初のアプローチは、これらのうち私が関心のある物理インターフェイスに対応するものを特定し、次のシステムネットワークリンクファイルを使用することでした。
[Match]
Path=pci-0000:02:00.0
[Link]
NamePolicy=
Name=eth0
これは実際にはかなりうまくいくようです。問題は、BDFが実際に安定していないことです。場合によっては、古いバス番号を使用し、すべてのイーサネットインターフェイスを再インポートするFirewireカードをここに挿入する必要があります。
02:00.0 FireWire (IEEE 1394): Texas Instruments XIO2213A /B/XIO2221 IEEE-1394b OHCI Controller [Cheetah Express] (rev 01)
03:00.0 Ethernet controller: Intel Corporation I210 Gigabit Network Connection (rev 03)
04:00.0 Ethernet controller: Intel Corporation I210 Gigabit Network Connection (rev 03)
05:00.0 Ethernet controller: Intel Corporation I210 Gigabit Network Connection (rev 03)
06:00.0 Ethernet controller: Intel Corporation I210 Gigabit Network Connection (rev 03)
しかし、四重奏団は決して分裂したようではなかった。この4つのデバイスの相対的な順序が、複数の同じマザーボードにわたって少なくとも明確に定義されていることを確認できますか?より具体的に説明すると、特定のマザーボードがIFINDEX
複数の同じマザーボードにある同じ物理ポートを確実に指していると考えていますか?これはこれまでの私の経験のようですが、逸話以外にこれを実際に確認できることは何も見つかりませんでした。これが事実であっても、systemd in StretchバージョンがProperty
リンクされたファイルのキーをサポートしていないという事実が問題です。MACAddress
、、、、、、、、、Path
またはDriver
のみかかったType
ようです。Name
Host
Virtualization
KernelCommandLine
Architecture
現在私が見つけた最高の解決策は、次のものを使用することです。廃止されたudevのサポート次のように入力してください/etc/udev/rules.d/70-persistent-net.rules
。
ACTION=="add", SUBSYSTEM=="net", ATTRS{vendor}=="0x8086", ATTRS{device}=="0x1533", ATTR{ifindex}=="5", NAME:="eth0"
ACTION=="add", SUBSYSTEM=="net", ATTRS{vendor}=="0x8086", ATTRS{device}=="0x1533", ATTR{ifindex}=="3", NAME:="eth1"
ACTION=="add", SUBSYSTEM=="net", ATTRS{vendor}=="0x8086", ATTRS{device}=="0x1533", ATTR{ifindex}=="4", NAME:="eth2"
ACTION=="add", SUBSYSTEM=="net", ATTRS{vendor}=="0x8086", ATTRS{device}=="0x1533", ATTR{ifindex}=="2", NAME:="eth3"
systemd v243以前の新しい世界でこれを行う方法はありますか? IFINDEXより良く安定したものはありますか?