0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

英创信息技术嵌入式Linux主板多网口多路由方案

英创信息技术 ? 来源:英创信息技术 ? 作者:英创信息技术 ? 2020-02-07 10:48 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

主流的英创嵌入式主板均支持双网络接口,其中支持ISA扩展总线的主板型号,如:EM335x、ESM335x、ESM6802、ESM6800V等,还可以通过ISA总线外接ETA728模块,再扩展两路独立的10M/100M网络,从而可构成4网口系统。多网络口的英创主板在工业应用中的典型应用是作为通讯管理机,通过网络将应用数据上传至数据中心。在实际应用中,有些需求是将应用数据上传至不同的数据中心,这就需要多网口多路由的支持,也就是说每个网口有自己独立的路由表,在英创Linux主板上通过相关的配置,即可实现上述功能,本文以ESM335x主板为例重点介绍该配置方案。

1、Linux内核配置

为了支持多路由表功能,内核配置中必须设置:

CONFIG_IP_ADVANCED_ROUTER=y

CONFIG_IP_MULTIPLE_TABLES=y

具体menuconfig位置如下:

Networking support --->

Networking options

[*] IP: advanced router

[*] IP: policy routing

2、利用ip route配置生成多路由表

对于多个路由表,是通过/etc/iproute2/rt_tables进行管理的,Linux系统最多可以支持255张路由表,其中3张是内置的:

255 local

254 main

253 default

分别表示了路由表table的序号和名称。在英创主板上对于各个网口的路由表定义序号从1开始,名称就采用网口名称。如:

1eth0

2eth1

3eth2

4eth3

生成路由表的步骤如下:

1、在rt_tables文件中增加一个路由表的序号和名称:

#>echo “1 eth0” >> /etc/iproute2/rt_tables

#>echo “2 eth1” >> /etc/iproute2/rt_tables

配置好后,可以用cat命令查看rt_tables文件:

2、定义路由表规则

利用2个Linux工具ip route、ip rule来定义路由表规则,可以用来指定IP地址的数据选择指定的路由表。

#>ip route add 192.168.202.0/24 dev eth1 src 192.168.202.175 table eth1

#>ip route add default via 192.168.202.1 dev eth1 table eth1

#>ip rule add from 192.168.202.175/32 table eth1

#>ip rule add to 192.168.202.175/32 table eth1

#>route add default gw 192.168.202.1

增加后,可以用ip route show table eth1来查看:

按照此定义的路由表规则,即所有来自“192.168.202.175”的IP数据包访问外网时选择eth1路由表,并使用该网段的网关路由。

3、自动生成多网络路由表

在多网络的情况下,为了方便客户使用,我们采用网络配置文件(ifcfg-eth*)和加载脚本文件(route-cfg.sh)来完成多个路由表的自动配置,免除了逐一配置的繁琐过程。

其中 ifcfg-eth*用于配置各个网络的参数,一个文件对应于一个网口,例如对eth0的配置文件名为ifcfg-eth0,其文件内容如下:

DEVICE=eth0 // 网络名称
TABLENUM=1 // table 序号
NETWORK=192.168.201.0 // 网段IP
NETMASK=255.255.255.0 // 子网掩码
ROUTER=192.168.201.1 // 本网口的路由网关IP
IPADDR=192.168.201.175 // 本网口IP地址

按上述方法生成好需要的若干配置文件ifcfg-eth*后,将ifcfg-eth*和route-cfg.sh均复制到/mnt/nandflash/目录下。然后直接执行脚本文件route-cfg.sh即可自动完成路由表配置,该文件会根据ifcfg-eth*文件中的参数,自动生成所需的多网口多路由表

#/mnt/nandflash/>./route-cfg.sh

route-cfg.sh文件内容如下:

#!/bin/sh

for interface_file in $(ls /mnt/nandflash/ifcfg-eth*) ;do

. ${interface_file}

prefix=$(ipcalc -p ${IPADDR} ${NETMASK} | awk -F= '{print $2}')

tablenum=${TABLENUM}

if ! grep "^${tablenum} ${DEVICE}$" /etc/iproute2/rt_tables >/dev/null ;then

echo "${tablenum} ${DEVICE}" >>/etc/iproute2/rt_tables

fi

echo ${DEVICE}: IPADDR=${IPADDR} gw=${ROUTER}

ifconfig ${DEVICE} ${IPADDR}

# flush table

ip route flush table ${DEVICE}

# add table

ip route add ${NETWORK}/${prefix} dev ${DEVICE} src ${IPADDR} table ${DEVICE}

ip route add default via ${ROUTER} dev ${DEVICE} table ${DEVICE}

ip rule add from ${IPADDR}/32 table ${DEVICE}

ip rule add to ${IPADDR}/32 table ${DEVICE}

# add default gw

route add default gw ${ROUTER}

done

4、测试网络

以ESM335x为核心,搭建双网口双网关的多路由系统,作为测试环境。下图为双网口网络拓扑图:

最简单的方法就是利用ping命令进行测试,ping命令可以指定网口。如:

#> ping -I eth0 202.98.96.68 (指定通过eth0 访问外网 -> internet网站)

#> ping -I eth1 192.168.203.70 (指定通过eth1 访问外网 -> 企业数据中心)

如果利用系统的多路由表,也可以不用指定网口进行ping测试,但是系统有个自动选路的处理,会存在一定的延时。

#> ping 202.98.96.68

#> ping 192.168.203.70

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    88

    文章

    11538

    浏览量

    214958
  • 嵌入式主板
    +关注

    关注

    7

    文章

    6105

    浏览量

    36480
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    一文带你了解嵌入式主板

    嵌入式主板是专为嵌入式系统设计的计算机主板。它与我们常见的台式机或笔记本电脑主板有着显著的区别,核心在于它不是为了通用计算,而是为了执行特定
    的头像 发表于 06-30 16:12 ?235次阅读
    一文带你了解<b class='flag-5'>嵌入式</b><b class='flag-5'>主板</b>

    Linux嵌入式和单片机嵌入式的区别?

    Linux嵌入式与单片机嵌入式在多个方面存在显著的区别,以下是详细的比较和归纳: 一、基本概念 1. Linux嵌入式: 定义:将
    发表于 06-20 09:46

    嵌入式主板开发详细指南

    嵌入式主板开发涉及硬件设计、软件集成、系统优化等多个环节,需要结合具体应用场景进行深度定制。以下是嵌入式主板开发的详细指南,涵盖关键步骤、工具、挑战及实际案例:一、开发流程与关键步骤1
    的头像 发表于 04-02 11:35 ?644次阅读
    <b class='flag-5'>嵌入式</b><b class='flag-5'>主板</b>开发详细指南

    高可靠性嵌入式主板设计

    设计直接影响整个系统的稳定性和寿命。因此,设计高可靠性的嵌入式主板不仅是技术挑战,也是提高产品竞争力的关键因素。本文将深入探讨高可靠性嵌入式主板
    的头像 发表于 03-25 15:11 ?570次阅读
    高可靠性<b class='flag-5'>嵌入式</b><b class='flag-5'>主板</b>设计

    嵌入式主板选型与应用指南

    嵌入式主板是专为嵌入式系统设计的核心硬件平台,广泛应用于工业控制、物联网、医疗设备等领域。以下是关于嵌入式主板的详细介绍:1.
    的头像 发表于 02-27 14:53 ?631次阅读
    <b class='flag-5'>嵌入式</b><b class='flag-5'>主板</b>选型与应用指南

    小身材大能量:解读小尺寸嵌入式主板

    此前,已经带大家认识了嵌入式主板的尺寸版型,相信大家对此已有了初步印象。在科技日新月异的当下,各类设备都朝着更小体积、更高性能的方向发展。小尺寸嵌入式主板正悄无声息改变着我们的生活与商
    的头像 发表于 02-17 18:02 ?685次阅读
    小身材大能量:解读小尺寸<b class='flag-5'>嵌入式</b><b class='flag-5'>主板</b>

    盘点无风扇嵌入式主板应用优势

    在科技飞速发展的今天,嵌入式主板在各个领域发挥着重要作用。而无风扇嵌入式主板以独特优势在工业自动化、医疗设备和智能交通等领域广泛应用。今天,就让我们一起深入了解无风扇
    的头像 发表于 02-15 18:04 ?451次阅读
    盘点无风扇<b class='flag-5'>嵌入式</b><b class='flag-5'>主板</b>应用优势

    嵌入式主板的概述与发展

    随着科技的迅猛发展,嵌入式系统在现代电子产品中扮演着越来越重要的角色。嵌入式主板作为嵌入式系统的核心组件之一,承担着控制、处理和通讯等多种功能。本文将对
    的头像 发表于 01-13 16:30 ?863次阅读
    <b class='flag-5'>嵌入式</b><b class='flag-5'>主板</b>的概述与发展

    ARM架构嵌入式主板特点

    嵌入式主板可以理解为嵌入在设备中用于控制和数据处理的CPU板,也就是设备的“大脑”。当主板嵌入到设备中,当然对
    的头像 发表于 12-31 16:03 ?1176次阅读
    ARM架构<b class='flag-5'>嵌入式</b><b class='flag-5'>主板</b>特点

    什么是嵌入式?一文读懂嵌入式主板

    在现代科技浪潮中,嵌入式技术已成为支撑各种智能设备和系统运行的核心力量。那么,究竟什么是嵌入式嵌入式系统,顾名思义,是将计算机的硬件和软件嵌入
    的头像 发表于 10-16 10:14 ?2775次阅读

    嵌入式主板是什么意思?嵌入式主板全面解析

    嵌入式主板,通常被称为嵌入式系统的核心组件,是一种用于控制和数据处理的计算机硬件,其设计旨在嵌入特定设备中执行专门任务。嵌入式
    的头像 发表于 09-30 10:05 ?1698次阅读

    嵌入式linux开发的基本步骤有哪些?

    嵌入式Linux开发是一个复杂的过程,涉及到硬件选择、操作系统移植、驱动开发、应用程序开发等多个方面。以下是嵌入式Linux开发的基本步骤,以及每个步骤的说明。 硬件选择 在开始
    的头像 发表于 09-02 09:11 ?1374次阅读

    嵌入式linux开发板怎么操作

    嵌入式Linux开发板是一种基于Linux操作系统的嵌入式系统开发平台。它通常包括一个处理器、内存、存储器、输入/输出接口等硬件组件,以及一个基于L
    的头像 发表于 09-02 09:09 ?887次阅读

    嵌入式linux开发板芯片的工作原理

    嵌入式Linux开发板是一种基于Linux操作系统的嵌入式系统开发平台,它广泛应用于工业控制、智能家居、智能交通、医疗设备等领域。 嵌入式
    的头像 发表于 09-02 09:07 ?931次阅读

    飞凌嵌入式技术创新日(深圳站)精彩回顾

    2024年8月26日下午,飞凌嵌入式技术创新日深圳站在深圳威尼斯迪格酒店盛大举行,此次活动汇聚了近200位嵌入式技术领域的专家和企业代表,
    发表于 08-28 09:06