我需要调整一些数据库表,以便容纳50个以上字符长的networking接口名称。 我想知道是否有一个接口名称可以是一个标准,所以我可以正确地映射它。
就Linux特有的部分而言,在最近的内核版本中, IFNAMSIZ将其定义为16个字节,因此15个用户可见字节(假设它包含尾随空白)。 IFNAMSIZ
用于在这里定义struct net_device的名称字段。
为了进行经验性测试,可以使用以下内容来查看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发行版一样)。
另外,如果要使用带DHCP的接口,则由于此问题,该名称的长度必须<14。