【Linux】【网络管理】Linux 系统中网卡命名规范

j本文介绍 Linux 系统中网卡命名规范.

1. 网络接口命名规范

NetworkInterfaceNames 列出了下面5种可用的网络接口命名规范(Network Interface Naming Scheme):

Naming SchemeExamples
Original Simple Schemeeth1,eth2
“Persistent Names” Scheme
Miscellaneous Old Scheme
“Predictable Names” Schemeeno1, wlp1s3
Custom Schemes using .link files

现在较新的 Linux 发行版采用了 “Predictable Names” Scheme,例如 CentOS7、Ubuntu16.04 等. 与 Original Simple Scheme 相比,“Predictable Names” Scheme 解决了网络接口名称和网络接口设备映射不唯一导致的安全隐患,但是也导致了复杂的可读性.

2. Predictable Names 命名方式

2.1 简述

systemd v197 开始,Linux 对网络接口加入了 Predictable Names 的命名规范,它包含如下策略:

  • 1:如果 Firmware 或者 BIOS 提供的板载设备的索引号可用就用此命名. 例如 eno1.
  • 2:如果 Firmware 或者 BIOS 提供的 PCI-E 扩展插槽索引号可用就用此命名. 例如 ens1.
  • 3:如果硬件接口的物理或者位置信息可用就用此命名. 例如 enp2s0.
  • 4:如果网络接口的 MAC 地址可用就用此命名. 例如 enx78e7d1ea46da.
  • 5:传统的内核原生命名方式. 例如 eth0.

默认地,systemd v197 使用策略1,如果策略1条件不满如则使用策略2,如果策略2条件不满足使用策略3,如果其它条件都不满足使用策略5. 策略4默认不使用,当用户选择是否启用.

2.2 详解

详细的 systemd v197 命名规则见 systemd.net-naming-scheme(7).

所有名称包含前缀,前缀由两个字母组成,标明接口类型:

PrefixDescription
en以太网(Ethernet)
ib无限带宽(InfiniBand)
sl串列线路互联网协议(slip:Serial line IP)
wl无线局域网(WLAN,Wireless local area network)
ww无线广域网(WWAN,Wireless wide area network)

由 udev net_id 输出下列可以获得的设备信息.

1. 固件板载设备信息. 点击ID_NET_NAME_ONBOARD

ID_NET_NAME_ONBOARD=prefixonumber

2. 固件板载设备文本标签,从 v243 开始不再使用. 点击ID_NET_LABEL_ONBOARD

ID_NET_LABEL_ONBOARD=prefix label

3. 网络接口 MAC 地址. 点击ID_NET_NAME_MAC

ID_NET_NAME_MAC=prefixxAABBCCDDEEFF

4. 插槽位置. 点击ID_NET_NAME_SLOT

ID_NET_NAME_SLOT=prefix[Pdomain]sslot[ffunction][nport_name|ddev_port], 
ID_NET_NAME_SLOT=prefixvslot, 
ID_NET_NAME_SLOT=prefix[Pdomain]sslot[ffunction][nport_name|ddev_port]bnumber, 
ID_NET_NAME_SLOT=prefix[Pdomain]sslot[ffunction][nport_name|ddev_port]uport…[cconfig][iinterface], 
ID_NET_NAME_SLOT=prefix[Pdomain]sslot[ffunction][nport_name|ddev_port]vslot
FormatDescription
prefix [Pdomain] sslot [ffunction] [nport_name | ddev_port]PCI slot number
prefix vslotVIO slot number (IBM PowerVM)
… bnumberBroadcom bus (BCMA) core number
… uport… [cconfig] [iinterface]USB port number chain
… vslotSR-VIO slot number

5. 设备安装位置. 点击ID_NET_NAME_PATH

ID_NET_NAME_PATH=prefixcbus_id, 
ID_NET_NAME_PATH=prefixavendormodeliinstance, 
ID_NET_NAME_PATH=prefixiaddressnport_name, 
ID_NET_NAME_PATH=prefix[Pdomain]pbussslot[ffunction][nphys_port_name|ddev_port], 
ID_NET_NAME_PATH=prefix[Pdomain]pbussslot[ffunction][nphys_port_name|ddev_port]bnumber, 
ID_NET_NAME_PATH=prefix[Pdomain]pbussslot[ffunction][nphys_port_name|ddev_port]uport…[cconfig][iinterface]¶
FormatDescription
prefix cbus_idCCW or grouped CCW device identifier
prefix avendor model iinstanceACPI path names for ARM64 platform devices
prefix iaddress nport_nameNetdevsim (simulated networking device) device number and port name
prefix [Pdomain] pbus sslot [ffunction] [nphys_port_name | ddev_port]PCI geographical location
… bnumberBroadcom bus (BCMA) core number
… uport… [cconfig] [iinterface]USB port number chain

根据 2.1 所述命名方式选择合适的 ID_NET_NAME_X 作为网络接口名称.

3.设置使用传统命名方式

提供以下方法使用传统的网络接口命名方式. 但是,不建议退回传统命名方法,没必要且有隐患.

编辑 /etc/default/grub 文件

sudo vim /etc/default/grub

修改

GRUB_CMDLINE_LINUX=""

GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0"

 
生效

sudo update-grub

或者

sudo grub-mkconfig -o /boot/grub/grub.cfg

重启系统

sudo shutdown -r now

修改前
在这里插入图片描述
修改后
在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值