网卡冗余

冗余网卡使用笔记

1. 适用范围

本文档适用对象(SylixOS 驱动、应用工程师或用户等),适用对象应该具备 SylixOS 驱动、应用方面的知识,本文档用于调试网卡冗余工程。

2. 原理概述

2.1 网卡冗余

      冗余含义是指人为增加重复部分,其目的是用来对原本的单一部分进行备份,以达到增强其安全性的目的,这在信息通信系统当中有着较为广泛的应用。

3. 准备工作

3.1 环境准备

硬件:支持安装 SylixOS 并拥有两个以上网卡设备机或板卡。
软件:SylixOS。
注:网卡类型(igbx、e1000x、dwx、rtlx等)。

4. 技术实现

4.1 步骤一

若为 X86 架构,需要U盘安装启动盘的话可参考《RealEvo-IDE User Manual》使用手册的第八章节教程安装固化 SylixOS。

4.2 步骤二

4.2.1 ifconfig 查看网卡信息

终端命令行利用ifconfig命令查看网卡设备信息,主要包括网卡设备名、IP地址、网关、掩码、物理地址等。

 

图4.1 网卡设备

4.2.2 冗余环境配置

编写 /etc/ifparam.ini 内容,编写待绑定网卡与虚拟设备 [bond0] 的配置,格式如下:

 

图4.2 ifparam.ini

如图4.2所示,配置一个 [bond0] 的虚拟网卡设备,配置完成后此虚拟网卡将用于与其他目标设备通信。
注:[bond0]虚拟网卡的mac地址请与物理设备设置一致。

4.2.3 冗余模式

netbonding 命令可用于在 SylixOS 终端创建具有 bond 功能的虚拟网卡,网卡 bond 功能是将多个物理网卡绑定到一个虚拟网卡的一种机制,该机制实现了网卡冗余、带宽扩容、负载均衡功能,目前,SylixOS 支持3种模式:1.主-备份策略;2.平衡循环策略;3.广播策略。

4.2.4 主-备模式

运行 shell 命令绑定物理网卡到虚拟网卡 [bond0] 、,并配置相关信息。

 

图4.3 命令行参数-ARP检测

 

图4.4 命令行参数-流控检测

注1:添加虚拟设备 bond0;ab 表示主-备模式;-a 表示采用 arp 检测;-t 表示流量控制检测;10 表示 arp 的检测周期为 10ms;30 决定了虚拟网卡子设备切换延时的最小值(alive值减为0,切换子设备工作),单位 ms。

注2和3:将物理设备 rtl816x_0 和 rtl816x_1 添加到虚拟设备 bond0。

注4:将物理设备 rtl816x_0 设置为虚拟网卡工作时的主设备。

注5:添加 ARP 检测目标(需要和此虚拟网卡进行数据通信的对端设备IP)。

注6:前五步都设置无误的情况下,此命令用于查看虚拟设备 bond0 的配置信息。

上述命令均为终端命令行参数配置,也可将其写到系统启动脚本文件中,这样虚拟网卡在系统启动时便得以配置,如图4.5所示。

 

图4.5 启动脚本配置

 虚拟网卡配置后就可以正常与其他相同网段设备进行数据通信,图 4.5 和 4.6 为设置后的虚拟网卡信息。另外需要注意的地方是物理网卡成功添加到虚拟网卡上时,物理网卡信息会隐藏。

 

图4.6 虚拟网卡信息

 

图4.7 虚拟网卡bond0信息

4.2.5 平衡模式

 

图4.8 平衡模式-命令行参数

平衡模式的终端配置命令行参数的含义相对主备模式简单,设置bl即可。

4.2.6 广播模式

 

图4.9 广播模式-命令行参数

广播模式的终端配置命令行参数的含义相对主备模式简单,设置 bc 即可。

5. 总结

5.1 主-备模式

实测在 ARP 检测模式下,网卡切换时间可控,比较稳定,一般情况都可满足客户要求;而流量控制模式下容易出现切换超时,现象较明显;
数据优先从主设备发送,若主设备不可用,则选取子设备链表中的下一个可用子设备。若无设备可用,则标记丢包错误。

 

5.2 平衡模式

网卡切换时间可控,比较稳定,一般情况都可满足客户要求;

每个数据包只从一个设备发送,并且整个完整数据(由多个数据包组成)是选取有效的子设备轮询发送。

5.3 广播模式

网卡切换时间可控,比较稳定,一般情况都可满足客户要求;

数据发送是每个有效的子设备都会发送一遍。

5.4 其他

网卡切换的判断标准:第一个是终端命令行设置的alive值,驱动层中当alive值变为 0 时,就发生物理网卡切换。如下图5.1所示。第二个是依据PHY自协商的时间进行切换。
 

图5.1 alive值

另外,第六个参数值必须小于第七个参数值,并且第六,七个参数必须大于0.

    • Related Articles

    • 网络双冗余 netboding 如何配置?

      问:SylixOS 中网络双冗余 netboding 如何配置? 答:在 SylixOS Shell 命令行执行以下命令可完成网口冗余设置: netbonding addbd bond0 ab -t 10 30 netbonding addif bond0 en3 netbonding addif bond0 en4 ifconfig bd7 inet 192.168.2.93 netmask 255.255.255.0 gateway 192.168.2.1 注:en3、en4 ...
    • SylixOS 中冗余网卡主从模式等具体绑定操作步骤

      1. 适用范围 适用于需要进行冗余网卡绑定的操作,例如需要配置双网卡绑定主从模式的情况。 2. 原理概述 网卡 bond 是通过多张网卡绑定为一个逻辑网卡,实现本地网卡的冗余,带宽扩容和负载均衡,在生产场景中是一种常用的技术。 网卡冗余:冗余含义是指人为增加重复部分,其目的是用来对原本的单一部分进行备份,以达到增强其安全性的目的,这在信息通 信系统当中有着较为广泛的应用。 3. 准备工作 硬件:支持安装  SylixOS  并拥有两个以上网卡设备机或板卡; 软件:SylixOS 系统镜像。 ...
    • SylixOS 协议栈学习(二)以太网网卡接口部分初始化

              在《SylixOS_协议栈学习(一)网络接口结构》中,介绍了netif 结构体和netdev结构体。        下面举个例子来看一个以太网网卡接口结构是怎样被初始化,还有数据包是如何接收和发送的。     static struct netdev_funcs net_drv = {                         ①        .init      = __enetCoreInit,        .transmit  = __enetCoreTx,   ...