技术专栏
【shell】海思3536 多网卡绑定聚合——bond技术
0.原理说明
目前网卡绑定mode共有七种(0~6)bond0、bond1、bond2、bond3、bond4、bond5、bond6
常用的有三种:
- mode=0:平衡负载模式,有自动备援,但需要”Switch”支援及设定。
- mode=1:自动备援模式,其中一条线若断线,其他线路将会自动备援。
- mode=6:平衡负载模式,有自动备援,不必”Switch”支援及设定。
-
海斯3536 启用bond模块命令
1)停止bond模块:关闭网卡后停止模块
ifconfig bond0 down
ifconfig eth0 down
ifconfig eth1 down
modprobe -r bonding
2)启动bond模块
modprobe bonding mode=0 miimon=100
ifconfig bond0 192.168.2.143 netmask 192.168.240.1 mtu 1500 up
ifenslave bond0 eth0 eth1
route add default gw 192.168.2.1
modprobe bonding mode=0 miimon=100
mode模式,0表示平衡负载,miimon用来进行链路监测的时间间隔。100即每100ms监测一次链路状态。bonding只监测主机与交换机之间链路。如果交换机出去的链路出问题而本身没有问题,那么bonding认为链路没有问题而继续使用
ifconfig bond0 192.168.2.143 netmask 192.168.240.1 mtu 1500 up
配置IP地址,子网掩码
ifenslave bond0 eth0 eth1
绑定网卡及主网卡,写前面的(eth0)为主网卡
route add default gw 192.168.2.1
设置网关
1.shell脚本
#!/bin/sh
echo "bond reading network configure..."
. /mnt/nand/etc/network.conf
restart() {
if [ $MODE = 0 ] || [ $MODE = 1 ]; then
ifconfig $BONDIFNAME down
ifconfig $IF0 down
ifconfig $IF1 down
modprobe -r bonding
modprobe bonding mode=$MODE miimon=$BONDIFMIIMON
# dhcp
if [ $BONDIFTYPE = 1 ];then
ifconfig $BONDIFNAME up
if [ $PRIMARY = 0 ];then
ifenslave $BONDIFNAME $IF0 $IF1
else
ifenslave $BONDIFNAME $IF1 $IF0
fi
dhcpcd $BONDIFNAME -t 30
# static
else
ifconfig $BONDIFNAME $BONDIFADDR netmask $BONDIFMASK mtu $BONDIFMTU up
if [ $PRIMARY = 0 ];then
ifenslave $BONDIFNAME $IF0 $IF1
else
ifenslave $BONDIFNAME $IF1 $IF0
fi
route add default gw $BONDIFGATEWAY
fi
fi
}
case "$1" in
stop)
modprobe -r bonding
;;
restart)
restart
;;
*)
restart
;;
esac
exit $?
echo "bond networking configure success."
2.配置文件
MODE=1
BONDIFNAME=bond0
BONDIFTYPE=0
BONDIFADDR=192.168.2.143
BONDIFMASK=255.255.240.0
BONDIFGATEWAY=192.168.2.1
BONDIFMTU=1500
BONDIFMIIMON=100
PRIMARY=0
IF0=eth0
IF1=eth1
3.代码实现
#define DEVICE_NAME_BOND "bond0"
#define DEVICE_NAME_ETH0 "eth0"
#define DEVICE_NAME_ETH1 "eth1"
#define NETWORK_CFG_PATH "/mnt/nand/etc/network.conf"
#define NETWORK_CFG_FMT "\
MODE=%d\n\
BONDIFNAME=%s\n\
BONDIFTYPE=%d\n\
BONDIFADDR=%s\n\
BONDIFMASK=%s\n\
BONDIFGATEWAY=%s\n\
BONDIFMTU=%d\n\
BONDIFMIIMON=100\n\
PRIMARY=%d\n\
IF0=%s\n\
IF1=%s\n"
static int write_network_cfg(void)
{
FILE *fp = NULL;
if (netcfg == NULL)
return -1;
if ((fp = fopen(NETWORK_CFG_PATH, "w")) == NULL)
return -1;
lockf(fileno(fp), F_LOCK, 0);
fprintf(fp, NETWORK_CFG_FMT, 0, DEVICE_NAME_BOND, 0,
"192.168.2.143", "192.168.240.0",
"192.168.2.1", 1500, 0, DEVICE_NAME_ETH0, DEVICE_NAME_ETH1);
fflush(fp);
lockf(fileno(fp), F_ULOCK, 0);
fclose(fp);
return 0;
}
最后在命令行上运行shell脚本即可
声明:本文内容由易百纳平台入驻作者撰写,文章观点仅代表作者本人,不代表易百纳立场。如有内容侵权或者其他问题,请联系本站进行删除。
红包
点赞
收藏
评论
打赏
- 分享
- 举报
评论
0个
手气红包
暂无数据
相关专栏
-
浏览量:1758次2023-08-15 19:14:23
-
浏览量:3301次2020-08-03 11:10:18
-
浏览量:3078次2020-08-17 19:42:53
-
浏览量:3179次2020-08-30 11:44:43
-
浏览量:2418次2024-01-18 15:01:07
-
浏览量:1045次2024-01-24 18:13:58
-
2018-06-18 22:47:22
-
浏览量:4895次2021-08-05 13:56:33
-
浏览量:4603次2020-04-15 10:00:55
-
2018-04-04 14:06:53
-
浏览量:4342次2018-03-31 20:59:15
-
浏览量:6480次2018-06-14 22:53:53
-
浏览量:7305次2018-06-14 23:13:10
-
浏览量:2921次2018-04-03 09:48:45
-
浏览量:4992次2021-03-16 09:35:08
-
浏览量:5793次2018-04-03 09:53:34
-
浏览量:2684次2017-11-22 11:51:03
-
浏览量:6573次2021-03-11 14:24:26
-
浏览量:5489次2022-04-02 09:00:36
置顶时间设置
结束时间
删除原因
-
广告/SPAM
-
恶意灌水
-
违规内容
-
文不对题
-
重复发帖
打赏作者
在学了在学了!
您的支持将鼓励我继续创作!
打赏金额:
¥1
¥5
¥10
¥50
¥100
支付方式:
微信支付
打赏成功!
感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~
举报反馈
举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明
审核成功
发布时间设置
发布时间:
请选择发布时间设置
是否关联周任务-专栏模块
审核失败
失败原因
请选择失败原因
备注
请输入备注