嵌入式linux实现双网切换

概述

某些信息设备为了增强通讯可靠性,硬件上往往配备双冗余网卡,当一块网卡出现问题时,另一块网卡可以接管工作保持网络通畅。本文介绍一种基于嵌入式linux系统的双冗余网卡的主备切换实现方法。linux内核提供了bond技术,利用该技术可以将多块网卡虚拟成为单一网卡,对外表现为一块网卡并且仅有一个IP地址。

bond技术

在正常情况下,网卡只接收目的地址为自身MAC地址的以太网帧,过滤掉其他的数据帧。而混杂模式下,网卡可接收所有数据帧。bond技术下网卡就运行在这种模式下,其修改了驱动程序的mac地址,将两块网卡的mac地址设置成为同一mac地址,可以及接收特定mac的数据帧。然后把相应的数据帧传送给bond驱动程序处理。

准备工作

1、硬件平台:主机是windows+ubuntu虚拟机,目标机是altera cyclone V SoC平台。

2、查看嵌入式linux是否已经将bond编译进内核,可以通过menuconfig进行配置。如下图所示

3、开机查看嵌入式linux是否已经存在ifenslave工具,如果没有需编译生成,找到内核中ifenslave.c,在其所在目录下打开终端,输入arm-linux-gnueabihf-gcc -Wall -o -I linux-socfpag/include ifenslave.c -o ifenslave进行编译。将ifenslave拷贝到目标机系统中。

bond主备模式配置

1、目标机上cd到/etc/network,修改interface文件添加如下命令

auto bond0

ifface bond0 inet static

address 192.168.3.12

netmask 255.255.255.0

bond-mode active-backup

bond-miimon 10

auto eth0

iface eth0 inet manual

auto eth1

iface eth1 inet manual

3、使用ifenslave 工具,在rc.local中添加如下命令

exec ~/ifenslave bond0 eth0 eth1

测试


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 计算机基础、DOS常用命令、Java概述、JDK环境安装配置、环境变量配置、Java程序入门 JAVA语言之父:詹...
    酷酷的IT阅读 170评论 0 0
  • 舆论世界的四条规则: 舆论是一种关注,不管你用什么态度关注,只要你关注,舆论就产生了。 舆论产生于现实世界,但绝对...
    多读书勤写作阅读 281评论 0 0
  • 马上又要进行入师考试了。说实话,很紧张,感觉有高考的感觉。压力很大。复习的也很紧张。但是现在和以往的心态有了很大的...
    南方的雨中人阅读 252评论 0 0
  • 黑夜从大地升起 向海面涌去 吞并了孤舟 山峦以及脚下的碎石 直至吻到了海平面 光与黑如此的和谐 御火而飞的青鸾 是...
    陌上衣熏阅读 372评论 0 5
  • 张东辉,讲师七期坚持原创分享第802天(2019.11.12) 因为公司是集团化管理,流程要求比较严苛,而幼儿园呢...
    星悦传奇阅读 342评论 0 1