zoukankan      html  css  js  c++  java
  • Linux网络端口命名规则,一致性网络设备命名

    一致性网络设备命名,即Consistent Network Device Naming.

    一、服务器通常有多块网卡,有板载集成的,同时也有插在PCIe插槽的。
    Linux系统的网卡命名原来是eth0,eth1这样的形式,但是这个编号往往不一定能准确的对应网卡接口的物理顺序,你的桌面可能有一个以太网端口,命名为 eth0。如果你仅有一个网络端口,这样毫无问题,但如果出现在服务器的情况,四个以太网端口该怎么办?它们被命名为 eth0、eth1、eth2、eth3,分 别对应机箱背面的标签 1、2、3、4。某些时候确实如此。除了从 0 开始,而不是从 1 开始导致明显的命名混乱外,还可能出现其他的混乱情况,如每个端口在每次启用时可能无法获得相同的名称,此外它们的命名顺序可能是任意的。如果将网卡添加到 PCI 插槽,情况可能还会更糟,主板上的端口和新添加卡上的端口命名可能相互混杂,为解决这类问题,dell开发了biosdevname方案。Biosdevname是一款udev(udev 是Linux kernel 2.6系列的设备管理器。它主要的功能是管理/dev目录底下的设备节点)辅助应用,它可以将设备原先的ethn名称,映射到该设备基于物理位置的名称上。这在部署多台服务器时用处尤为明显,特别是在要求所有以太网设备都采用相同的命名规则的情况下。嵌入式插槽设备的名称格式为“eX_vf”,而PCI插槽上的NIC名称格式则是“pXpY_vf”。
    自从 v197 systemd/udev 开始,系统可以为本地的Ethernet、WLAN和WWAN接口自动地分配可预测的、稳定的网络接口名称。该规范脱离了传统的命名机制(eth0,eth1,wlan0等),但是修复了许多问题。

    二、命名方案层级结构
    默认情况下, systemd 会使用以下策略, 采用支持的命名方案为接口命名:
    方案 1:如果固件或 BIOS 信息适用且可用, 则使用整合了为板载设备提供索引号的固件或 BIOS 的名称( 例如:eno1) , 否则请使用方案 2。
    方案 2:如果固件或 BIOS 信息适用且可用, 则使用整合了为 PCI 快速热插拔插槽提供索引号的固件或BIOS 名称( 例如 ens1) , 否则请使用方案 3。
    方案 3:如果硬件连接器物理位置信息可用, 则使用整合了该信息的名称( 例如:enp2s0) , 否则请使用方案 5。
    方案 4: 默认不使用整合接口 MAC 地址的名称( 例如:enx78e7d1ea46da) , 但用户可选择使用此方案。
    方案 5:传统的不可预测的内核命名方案, 在其他方法均失败后使用( 例如: eth0) 。
     
    这个策略( 如上所述) 是默认策略。 如果该系统已启用 biosdevname, 则会使用该方案。 注:启用
    biosdevname 需要添加 biosdevname=1 作为命令行参数( Dell 系统除外) , 此时只要安装
    biosdevname, 就会默认使用该方案。 如果用户已添加 udev 规则, 该规则会更高内核设备名称, 则会优先使
    用这些规则。

    三、了解可预期网络接口设备名称
    根据接口类型以两个字母开头:
    1. en 代表以太网,
    2. wl 代表无线局域网( WLAN) ,
    3. ww 代表无线广域网( WWAN) 。


    名称有以下类型:

    设备名称类型:

    格式 描述 如图:


    所有多功能 PCI 设备都在其设备名称中包含 [f<function>] 号, 其中包括 function 0 设备。
    在 USB 设备中会组成集线器端口号完整链。 如果该名称超过 15 个字符上限, 则无法导出该名称。
    已取消 USB configuration descriptors == 1 和 USB interface descriptors == 0( 如果只有一个 USB 配置或
    接口存在, 则默认值为 configuration == 1 及 interface == 0) 。


    更多内容可参考:

    https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames/

  • 相关阅读:
    input搜索框实时检索功能实现(超简单,核心原理请看思路即可)
    django blank 和autonow
    dwebsocket的坑
    vue 动态添加active+父子传值
    NO 2,人生苦短,我学python之python+selenium元素定位
    NO 1,人生苦短,我学python之python+selenium自动化环境搭建
    SPU与SKU概念
    数据库,缓存数据一致性常用解决方案总结
    利用注解 + 反射消除重复代码
    Nacos学习与实战
  • 原文地址:https://www.cnblogs.com/pipci/p/9229571.html
Copyright © 2011-2022 走看看