我们通常使用linux (Ubuntu)中的接口或sysfs或ifenslave来配置连接接口,以聚合两个或多个网卡。然后,有了netlink库,它允许我们创建和删除键,并从其中添加和删除接口。但它目前没有提供的是动态地改变债券的其他属性。
例如,我希望更改MTU或键的硬件地址,或其键合模式本身。此信息通常驻留在
/sys/class/net/bondx/... 在bonding_masters中,我们需要做的事情是
# ifconfig bond0 down
echo 6 > /sys/class/net/bond0/bonding/mode更改其键合模式以动态平衡-alb,即不重新启动或通过更改接口文件重新启动网络。类似地,我们可以修改与键连接模块相关的文档中给出的其他参数。
但是如果我要通过一个交互式C程序来改变它,我如何与sysfs接口呢?我以前没有直接与文件系统进行接口的经验,除了C中的基本文件处理。开发人员对libsysfs是没有的,我在某个地方读到libudev可能有用,但我不太确定。因此,就像sysctl()是用于/proc文件系统一样,sysfs文件系统的接口是什么?
还是有其他编程方法来解决这个问题?也许是ioctl?
发布于 2013-08-02 11:17:38
如果可以使用shell中的/sys/class/net/bond0/bonding/mode编写echo,也可以使用程序中的write()向其写入。
发布于 2018-06-17 10:55:27
在linux/ubuntu/Debian中,您可以使用$ip链接选项命令来完成您的任务。使用
$ip链接集dev bond0类型键合模式mode_name
和
您可以看到所有可用的选项,通过键入
$ip链接集dev bond0类型键-帮助
在这里,您将发现所有可能的键合选项,可用于进一步的修改。
https://stackoverflow.com/questions/18013177
复制相似问题