ネットワークカードのブランドによってインターフェイス名が異なることがわかりました(ドライバによって異なります)。
- * BSDがネットワークインタフェースにドライバ固有の名前を使用するのはなぜですか?
- これは、カーネルに「一般的なネットワークインタフェース」を記述する抽象化層がないため、各ドライバが独自のAPIを介して内部でそれを処理するという意味ですか?
- (どのように)リンクセット、トラフィック形成、QoS、およびその他のサブシステムに影響を与えますか(アルトキュー)、フィルタリングなど?
正確に言うと、pfSenseはLink Aggregation(LAG)仮想インターフェイスでALTQを使用できません。
これは適切な抽象化層がないので、BSDの内部制限ですか?
答え1
* BSDがネットワークインタフェースにドライバ固有の名前を使用するのはなぜですか?
これは歴史的な選択です。名前の文字はカードが通信するドライバから出てくるので、2つの別々のインターフェイスが同じドライバを使用している場合でも同じになります。
1つの実質的な利点がある。 BSDでは、ネットワークドライバはセクション4に独自のマニュアルページを持っています。したがって、dc(4)
dc0
ネットワークアダプタを制御するDEC 21143ドライバについてお知らせします。
ハードドライブなどのBSD Unixの他の部分でもこれを見ることができます。
これは適切な抽象化層がないので、BSDの内部制限ですか?
いいえ。
価格に対する良い値、Linuxも同様の道を進んでいる。ネットワークがより複雑になるにつれて、イーサネットアダプタの単純な命名規則の時代は消えています。
答え2
一般名またはドライバ固有の名前を使用する選択は、ドライバの制限とは無関係です。
これは主に美容上の選択です。一般名を使用すると、ほとんど常に関連性のない情報を隠すことができるという利点があります。ネットワークインターフェイスは、誰が作成したかに関係なく、ネットワークインターフェイスです。デバイスの機能は、使用されるドライバではなく、正確なモデルと構成によって異なります。特定の名前の利点は管理者のためです。エラーメッセージに(まあ、どちらが0でどちらが1か)言及されている場合(ああ、それはWi-Fiインターフェイスです)または(ああ、それはBroadcomインターフェイスです)と言うeth0
よりも優れています。 )。wlan0
bcm0
FreeBSD では、ネットワーク設定操作は、以下を呼び出して実行されます。ioctl
Unixソケットから。 ioctl は通常のネットワークコードによって処理され、ioctl が必要なときに関連するドライバに渡されます。
ALTQがリンク集計とどのようにやり取りするのかわかりません。以下のように最新バージョンのFreeBSDを使用してください。以前は動作しませんでしたが、今は動作します。。
答え3
これにより、どのネットワークカードと通信しているかを簡単に知ることができます。
Intel(igb0)とRealtek(rl0)ネットワークカードがある場合は、2つのカードをすぐに区別できるようになりました。
また、さまざまなドライバがさまざまな機能をサポートしています。一部のドライバはこれをサポートし、polling
一部はサポートしません。いくつかのサポートLRO
とその他TSO
。RSS
名前がすべて指定されていない場合は、サポートされている項目を追跡する方が簡単ですeth
。
eth
他の種類のネットワークインターフェイスが多数ある場合は、この方法が適している可能性がありますが、実際にはこれを行うことはほとんどありません。
答え4
* BSDがネットワークインタフェースにドライバ固有の名前を使用するのはなぜですか?
仕事を単純にしてください。インターフェースという名前を見るとbge0
マニュアルを確認するか、ニーモニックリンクシステムまもなく、このドライバーが誰であるかを覚えています。Broadcom ギガビットイーサネット。これ文書化も役立ちます。
これは、カーネルに「一般的なネットワークインタフェース」を記述する抽象化層がないため、各ドライバが独自のAPIを介して内部でそれを処理するという意味ですか?
ここのルールは次のとおりです。
- ドライバ名を使用してデバイス名を作成します。
- 最も低い PCI ID を使用してデバイス名の後に番号を作成します。
抽象化階層は必要ありません。とても簡単です。
(どのように)リンク集約、トラフィック形成、QoS(ALTQ)、フィルタリングなどのサブシステムに影響しますか?
インターフェイス名はトラフィックの形成を妨げてはいけません。
正確に言うと、pfSenseはLink Aggregation(LAG)仮想インターフェイスでALTQを使用できません。
今日は働きます:
これは適切な抽象化層がないので、BSDの内部制限ですか?
だからといって、これを処理するレイヤーがないというわけではありません。これは、次のような他のリソースを使用してこれらの名前を処理できるためです。インターフェース名の生成( /etc/rc.conf
)、またはPCI IDを変更してみてくださいマザーボードの設定でこの問題について他の人が言ったように、Linuxもこの道を行きますbiosdevname
。