【问题标题】:What length can a network interface name have?网络接口名称可以有多长?
【发布时间】:2014-09-15 22:01:25
【问题描述】:

我需要调整一些数据库表以适应 50 多个字符长的网络接口名称。 我想知道接口名称可以多长有一个标准,所以我可以正确映射它。

【问题讨论】:

  • 如果您查看:msdn.microsoft.com/en-us/library/windows/desktop/…,似乎适配器名称的最大长度为 256 个字符。
  • 它接缝 16 个字符对于某些 Linux 风格是正确的(在 Centos 5 上测试),但不确定其余的。我需要同时支持 win/unix。
  • 在这种情况下,我会选择 256 个字符,这似乎同时支持 linux 和 windows。

标签: linux database windows oracle networking


【解决方案1】:

至于 Linux 特定部分,在最近的内核版本中,IFNAMSIZ 将其定义为 16 个字节,因此 15 个用户可见字节(假设它包含一个尾随空)。 IFNAMSIZ用于定义struct net_device的名称字段here

为了经验性的测试,可以用下面的来看看16字节失败,15字节有效:

# CLEAN SLATE
root# ip link ls dev 123456789012345
Device "123456789012345" does not exist.
root# ip link ls dev 1234567890123456
Device "1234567890123456" does not exist.

# FAIL
root# ip link add dev 1234567890123456 type dummy
Error: argument "1234567890123456" is wrong: "name" too long
root# ip link ls dev 1234567890123456
Device "1234567890123456" does not exist.

# PASS
root# ip link add dev 123456789012345 type dummy
root# ip link ls dev 123456789012345
40: 123456789012345: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN mode DEFAULT group default 
link/ether ... brd ff:ff:ff:ff:ff:ff

# CLEAN UP
root# ip link del dev 123456789012345

(假设您安装了 iproute2 软件包中的ip,这可能在过去十年左右的任何 Linux 发行版上。)

【讨论】:

【解决方案2】:

另外,如果你想使用 DHCP 的接口,名称的长度必须小于 14,因为这个问题:

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=858580

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2018-01-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-24
  • 2012-09-10
  • 2011-06-15
  • 2023-04-07
相关资源
最近更新 更多