Chinaunix首页 | 论坛 | 博客
  • 博客访问: 6548614
  • 博文数量: 1159
  • 博客积分: 12444
  • 博客等级: 上将
  • 技术积分: 12570
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-13 21:34
文章分类

全部博文(1159)

文章存档

2016年(126)

2015年(350)

2014年(56)

2013年(91)

2012年(182)

2011年(193)

2010年(138)

2009年(23)

分类: LINUX

2014-04-03 18:28:45

http://zh.community.dell.com/techcenter/b/weblog/archive/2011/02/21/consistent-network-device-naming-coming-to-fedora-15.aspx


以下内容代表 Matt Domsch 发表他是 Dell CTO 办公室的一名技术策略专家也是 Linux 专家

我长期宠爱的计划之一——(一致性网络设备命名)最终应用于 (强调Fedora 中 “F“的 2 个元素:Features(功能)和 First(第一)),并且以后所有的 Linux 发行版都将如此。你肯定会问,什么是(一致性网络设备命名)?

运行 Linux 的系统一贯将以太网设备命名为 ethX。你的桌面可能有一个以太网端口,命名为 eth0。如果你仅有一个网络端口,这样毫无问题,但如果出现戴尔 服务器的情况,四个以太网端口该怎么办?它们被命名为 eth0eth1eth2eth3分 别对应机箱背面的标签 1、2、3、4。某些时候确实如此。除了从 0 开始,而不是从 1 开始导致的明显命名混乱外,还可能出现其他混乱情况,如每个端口在每次启用时可能无法获得相同的名称,此外它们的命名顺序可能是任意的。如果将网卡添加到 PCI 插槽,情况还会更糟,主板上的端口和新添加卡上的端口命名可能相互混杂。

尽管已有多种解决方案提出(去年 Linux Plumbers Conference 会议的详情),但直至今日,仍无可行的方法。

运行biosdevname,这是 Dell 开发的工具,旨在为网络设备的命名理清思路(并且保持一致性!)。Biosdevname 是一款 udev 帮助程序,可根据系统 BIOS 提供的信息对网络接口进行重命名。

新的命名规则如下:

  • em[1-N] 表示主板(嵌入式)NIC(# 对应机箱标签)
  • pci# 表示 PCI 插槽中的卡,端口 1 至 N
  • NPAR & SR-IOV 设备增加后缀 _,从 0 至 N,取决于各端口可用的分区或虚拟功能的数量。
  • 其他 Linux 命名规则,如 .: 后缀,保持不变且仍然适用。

由此,Linux 网络接口名称与外部可见的网络端口(RJ-45 机架)之间建立了明确的对照。

从何处获取此信息?其算法相当简单:

  • 如果系统 BIOS 显示新的 PCI 固件规格 3.1 ACPI _DSM 方法,我们将从 ACPI 获取接口标签和索引,并加以使用。
  • 如果系统 BIOS 显示 SMBIOS 2.6 类型 9 和 41 中的索引和标签,则使用该索引值。
  • 如果系统 BIOS 通过 HP 专用 SMBIOS 扩展名显示索引,则使用该索引。
  • 否则将继续使用遗留 PCI IRQ 路由表,找出设备所在的插槽,按宽度优先顺序排列 PCI 设备列表,并指定索引值。

将带来什么影响?

如果你的脚本采用硬编码的 eth0,或者假设 ethX 为特定端口,则你的脚本已存缺陷(或许你并不知道)。请开始规划在将来使用新的接口命名,并根据需要调整你的脚本。

Fedora 15 将是默认采用 biosdevname 的首个发行版。1 月 27 日星期四是测试日。欢迎大家下载实时镜像,并在你的系统上启动,检查你的网络接口是否已根据以上规则进行命名,以及是否一切的效果均如预期。你还可借此机会检查你的定制脚本,寻找硬编码的 ethX 值,为将来的命名变更做好准备。

一旦使用 Fedora获得足够的关注和验证,我希望这样的变化扩展到其他的 Linux 发行版,并逐渐覆盖其他的操作系统。请务必留意。

阅读(6409) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~