您现在的位置是:网站首页> 编程资料编程资料
linux中网络接口名称限制讲解_LINUX_操作系统_
2023-03-16
625人已围观
简介 linux中网络接口名称限制讲解_LINUX_操作系统_
Linux中每个网络接口都有一个名称,可以使用ifconfig命令来查询当前系统中的接口。
那么这些接口命名时是否有要求或者限制呢,比如格式或者长度限制。
从表面上看似乎没有限制可以随意命名,在一般应用场景中也可以正常工作,当在特殊应用场合中就会因为接口名称的原因出现莫名其妙的问题。
问题1:接口名称长度过长
应用场景:使用网络造包、发包工具进行向外发包时(比如mz工具),需要指定网络接口。
问题:当这个接口名称的长度过长时就会出现发包失败情况。
原因:看如下代码。
来自标准linux源代码(include/linux/socket.h) struct sockaddr { sa_family_t sa_family; /* address family, AF_xxx */ char sa_data[14]; /* 14 bytes of protocol address */ }; 当应用程序使用socket向内核发包时,会调用struct sockaddr结构来设置发包的协议族(sa_family)和接口名称(sa_data[14]),当指定的接口名称长度超过13字节时,比如一个桥接口名称为br-0123456789abcd,最终保存到sa_data[14]中的接口名称就会被截断为br-0123456789,这样由于接口不存在就会导致发包失败。
结论:网络接口名称长度不超过13个字节。
相关内容
- Linux basename命令的使用详解_LINUX_操作系统_
- Linux主流架构运维工作简单剖析讲解_LINUX_操作系统_
- linux的Sudo/su授权命令详解_LINUX_操作系统_
- Linux下定制SSH来简化远程访问的方法_LINUX_操作系统_
- 临时更改Linux栈空间大小的方法_LINUX_操作系统_
- 从Vim中访问shell或者运行外部命令的方法_LINUX_操作系统_
- 浅谈Linux中free命令以及它的一些有用选项_LINUX_操作系统_
- 如何在Linux中添加一块大于2TB的新磁盘?_LINUX_操作系统_
- 利用linux命令行工具进行文本行过滤的方法_LINUX_操作系统_
- linux块设备读写流程详解_LINUX_操作系统_
