瑞芯微|如何让拥有双网口的Linux设备实现数据包转发?

news2024/10/6 14:24:58

本文主要讲解如何,解决基于3568实现双网口互通问题。

一、组网

如下图所示:

  1. rk3568自带2个千兆以太口,对应网卡名称为:eth0、eth1
  2. pc1和pc2分别连接这2个网口
  3. pc1与eth0连接,网段:192.168.30.0
  4. pc2与eth1连接,网段:192.168.40.0

目标:

实现pc1与pc2互通。

组网也可以简化为:

                               3568
      pc1 <--------------[eth0======eth1]--------------->pc2
192.168.30.2     192.168.30.111     192.168.40.222   192.168.40.8

二、完整配置

下面我们首先说明各个设备完整配置

1. pc1

默认网关含义:

  1. 协议栈根据数据包的目的ip查找路由表,
  2. 如果没有匹配的路由条目则发送给网关,
  3. 网关通常是当前设备的网卡直连(或者通过交换机、路由器连接)的局域网内的某个网卡
  4. 掩码通常是255.255.255.0

根据组网图,pc1的网卡连接的是rk3568的eth0:192.168.30.111

2. pc2

配置含义同pc1

3. rk3568上配置

  1. 配置网口对应的IP地址
ifconfig eth0 192.168.30.111     
ifconfig eth1 192.168.40.222
  1. 使能转发
    默认设备是不转发数据包的,需要使能该功能
echo 1 > /proc/sys/net/ipv4/ip_forward
或者
sysctl -w net.ipv4.ip_forward=1    
  1. 增加策略路由表main,目的是转发数据的时候,查找表main 的路由策略
ip rule add from all lookup main pref 9000  

该表为main,

没指明路由表的所有路由放在该表。

  1. 删除默认的iptables规则
    系统出厂会有默认的iptables规则,必须删除,否则数据转发会受影响。
iptables -F   @删除所有的iptables规则
  1. 测试
    上述配置全部配置完,pc1和pc2就可以互相ping通了。
    如果要测试通信功能,可以使用网络调试助手,软件截图参考下图。

三、补充调试工具

调试该功能,还需要配合下面几条指令

1. ip rule查看路由表

  • 传统路由:
    在Android4.4之前是使用的传统路由,即只使用了一张路由表。

  • 策略路由:
    从Android5.0之后开始可以支持多网络,即在同一时间下,Android允许多网络类型连接,每个网络有自己的一套DNS、网关、路由表等。这使得功能更强大,使用更灵活,它使网络管理员不仅能够根据目的地址而且能够根据报文大小,应用或IP源地址等属性来选择转发路径。一般的路由以目的地址作为识别与区分的标识。

系统最多可支持255张路由表:系统默认是有维护4张路由表的,可以自定义1~252张路由表。

id说明
0系统保留表
253default table没特别指定的默认路由都放在该表。 该路由表是一个空的路由表,正常情况下保持该路由表为空即可
254main table没指明路由表的所有路由放在该表。 如果添加路由时没有指定该路由所属的路由表,则这条路由会被添加到main路由表中。配置好网卡的网络设置系统就会自动生成main路由表。
255local table保存本地接口地址,广播地址、NAT地址。由系统维护,用户不得更改

下面是查看策略路由表

rk3568_r:/ # ip rule 
0:      from all lookup local                                                    
9000:   from all lookup main       【此处是我们上一节手动添加的表,很关键】                                              
10000:  from all fwmark 0xc0000/0xd0000 lookup legacy_system                     
10500:  from all iif lo oif dummy0 uidrange 0-0 lookup dummy0                    
10500:  from all iif lo oif eth0 uidrange 0-0 lookup eth0                        
13000:  from all fwmark 0x10063/0x1ffff iif lo lookup local_network              
13000:  from all fwmark 0x10066/0x1ffff iif lo lookup eth0                       
14000:  from all iif lo oif dummy0 lookup dummy0                                 
14000:  from all iif lo oif eth0 lookup eth0                                     
15000:  from all fwmark 0x0/0x10000 lookup legacy_system                         
16000:  from all fwmark 0x0/0x10000 lookup legacy_network                        
17000:  from all fwmark 0x0/0x10000 lookup local_network                         
19000:  from all fwmark 0x66/0x1ffff iif lo lookup eth0                          
22000:  from all fwmark 0x0/0xffff iif lo lookup eth0                            
23000:  from all fwmark 0x0/0xffff uidrange 0-0 lookup main                      
32000:  from all unreachable

2. ip route配置路由表

该命令用于配置路由器静态路由的命令。

本文只举例如何查看路由表,
查看默认路由表:

rk3568_r:/ # ip route                                                                                                                                  
192.168.30.0/24 dev eth0 proto kernel scope link src 192.168.30.111              
192.168.40.0/24 dev eth1 proto kernel scope link src 192.168.40.222                            

也通过table名字显示路由,
查找main表:

rk3568_r:/ # ip route show table main
ip route show table main
192.168.30.0/24 dev eth0 proto kernel scope link src 192.168.30.111
192.168.40.0/24 dev eth1 proto kernel scope link src 192.168.40.222

3. iptables

IPTABLES 是Linux 内核集成的 IP 信息包过滤系统。
功能非常强大。

要查看所有iptables规则可以使用下面命令

rk3568_r:/ # iptables -L                                                         
iptables -L                                                                      
Chain INPUT (policy ACCEPT)                                                      
target     prot opt source               destination                             
                                                                                 
Chain FORWARD (policy ACCEPT)                                                    
target     prot opt source               destination                             
                                                                                 
Chain OUTPUT (policy ACCEPT)                                                     
target     prot opt source               destination                             
                                                                                 
Chain bw_FORWARD (0 references)                                                  
target     prot opt source               destination                             
                                                                                 
Chain bw_INPUT (0 references)                                                    
target     prot opt source               destination                                                                                    
………………

四、最后

有喜欢Linux、驱动、嵌入式、网络,或者想和一口君侃大山的可以加我好友:yikoupeng

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/772529.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

途乐证券-新型城镇概念拉升,东方园林涨停,蕾奥规划等大涨

新型乡镇概念19日盘中发力走高&#xff0c;到发稿&#xff0c;蕾奥规划涨近13%&#xff0c;东方园林涨停&#xff0c;顾地科技涨超8%&#xff0c;新城市、艾布鲁、启迪环境等涨超5%。 消息面上&#xff0c;在国新办18日举行的国务院方针例行吹风会上&#xff0c;住建部房地产市…

django rest_framework 框架动态设置序列化返回的字段

动态修改字段可以使Django rest框架API像graphQL端点一样&#xff0c;只从模型中检索所需的字段。 一旦序列化器被初始化&#xff0c;就可以使用.fields属性访问序列化器上设置的字段字典。访问和修改此属性允许您动态修改序列化器。 显式地修改fields参数可以帮助您做一些奇…

解码 LangChain|用 LangChain 和 Milvus 从零搭建 LLM 应用

如何从零搭建一个 LLM 应用&#xff1f;不妨试试 LangChain Milvus 的组合拳。 作为开发 LLM 应用的框架&#xff0c;LangChain 内部不仅包含诸多模块&#xff0c;而且支持外部集成&#xff1b;Milvus 同样可以支持诸多 LLM 集成&#xff0c;二者结合除了可以轻松搭建一个 LLM…

猿辅导推出颠覆性产品小猿学练机,加速个性化学习时代到来

近期&#xff0c;沉默近两年的猿辅导在智能硬件领域释放动作&#xff0c;发布旗下首款智能硬件产品——小猿学练机。这一动作代表着&#xff0c;猿辅导正式入局1000亿智能硬件市场。据了解&#xff0c;小猿学练机面向全国中小学生&#xff0c;主打学练一体、以练促学&#xff0…

外部邻区TAC配置错误导致语音被叫无响应问题分析

1、问题描述 用户131********用户&#xff08;中兴AXON 40终端&#xff09;容易出现被叫无响应的现象&#xff0c;现场测试发生概率大约10%。 2、信令分析 6月4日现场测试时&#xff0c;11.47分左右&#xff0c;131********测试时出现一起未接通问题。 端到端平台信令回溯分析…

ubuntu - Linux 下的常用命令

ls 查看当前文件夹下的内容 pwd 查看当前所在文件夹 cd 切换文件夹 touch 如果文件不存在&#xff0c;创建文件 mkdir 创建新目录 rm 删除指定的文件 clear 清屏 ctrl shift 放大终端窗口的字体显示 ctrl - 缩小终端窗口的字体显示 按 上&#xff0f;下 光标键可以在…

【硕士论文完美复现】【价格型需求响应】基于需求侧响应的配电网供电能力综合评估(Matlab代码实现)

目录 &#x1f4a5;1 概述 1.1 电价伸缩系数分析 1.2 需求侧响应数学模型 1.3 粒子群算法求解 1.4 本文流程图 &#x1f4da;2 运行结果 2.1 风电和光伏的出力情况 2.2 峰谷时段分类 2.3 分时电价制定及负荷响应结果 2.3.1 仅考虑需求响应 2.3.2 考虑分布式和需…

图论 并查集 模拟 位运算—题841、127、684、685、657、31、463、1356 C++实现与有向图 无向图 并查集总结

文章目录 841.钥匙和房间DFSBFS 127. 单词接龙684.冗余连接685.冗余连接II657. 机器人能否返回原点31.下一个排列463. 岛屿的周长解法1解法2 1356. 根据数字二进制下 1 的数目排序解法1解法2 注意点 图论&#xff1a;题841、127 并查集&#xff1a;题684、685 模拟&#xff1a;…

记一次从溯源分析到云服务器接管

起因是我这个臭运维的在给客户做常态化的溯源分析&#xff0c;好巧不巧发现了一个IP扔到奇安信威胁情报平台看一下&#xff0c;发现部署了大量的服务&#xff0c;且为阿里云服务器。 看到这里&#xff0c;我大胆的推测&#xff0c;云上的信息中心&#xff0c;客户花点钱&#x…

《教育界》期刊简介及投稿邮箱

《教育界》期刊简介及投稿邮箱 一、《教育界》期刊简介 《教育界》是面向各级教育行政主管部门、教育科研院所、各类大中专院校、中小学校及其从事教育教学工作的教育工作者和专业教师的综合性教育教学类素质教育专业性教育学术理论期刊。 主管单位&#xff1a;广西师范大学…

create database创建数据库失败

瀚高数据库 目录 环境 症状 问题原因 解决方案 环境 系统平台&#xff1a;Linux x86-64 Red Hat Enterprise Linux 7 版本&#xff1a;4.5.7 症状 1、执行如下sql语句创建数据库报错。 create database printcdburn with encodingUTF8 OWNERprintcdburn LC_COLLATEzh_CN.UTF-…

蓝桥杯真题:密码脱落(区间dp)

目录 题目&#xff1a; 解题思路&#xff1a; dp分析&#xff1a; 解题代码&#xff1a; 题目&#xff1a; 解题思路&#xff1a; 题目要求的为脱落的种子数&#xff08;即回文字符中没有对应回文的字符的数量&#xff09; 我们可以转换成求回文字符串最长回文字符串的长…

Unity基础 固定关节 FixedJoint

Unity是一款强大的游戏开发引擎&#xff0c;它提供了各种丰富的功能和组件&#xff0c;使开发者能够轻松创建复杂的游戏世界。其中&#xff0c;固定关节&#xff08;FixedJoint&#xff09;是Unity中一个非常重要的组件&#xff0c;它用于实现物体之间的固定连接。 组件主要面板…

简述直线导轨的预压力

直线导轨的预压力是预先给予钢珠负荷力&#xff0c;通俗来说就是加大钢珠直径&#xff0c;利用钢珠和珠道之间负向间隙给予预压&#xff0c;这个举动可以提高直线滑轨的刚性和消除间隙&#xff0c;值得注意的一点是小规格建议选用轻预压以下的预压&#xff0c;避免因为预压选用…

fastDFS 6.0.9 单机安装案例

文章目录 fastDFS 6.0.9单机安装案例&#xff08;1&#xff09;前置环境安装明细&#xff08;2&#xff09;依赖库安装&#xff08;3&#xff09;libfatscommon安装&#xff08;4&#xff09;libserverframe 安装&#xff08;5&#xff09;FastDFS 安装默认命令工具查看 &#…

如何快速入门C#编程?

学习C#需要持续努力和实践&#xff0c;但是在一周内入门是有可能的&#xff0c;前提是你愿意付出足够的时间和精力。以下是一周内入门C#的步骤和建议&#xff1a; 设定学习目标&#xff1a; 在一周内学习C#需要专注于基础知识。明确你的学习目标&#xff0c;例如了解语法、变量…

使用STM32 在实现温湿度LCD显示并蓝牙透传

项目需求 通过温湿度传感器将值传到LCD1602&#xff0c;并实时通过蓝牙透传到手机。 硬件介绍 LCD1602 是一种工业字符型液晶&#xff0c;能够同时显示16x02即32字符 &#xff08;16列两行&#xff09; DHT11 DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复…

云计算名词-IaaS,PaaS,SaaS

在学习分布式的过程中&#xff0c;知道了PaaS这个词儿&#xff0c;但是不知道是什么意思。从网上查询了之后&#xff0c;做了简单的了解。这里简单记录一下&#xff0c;方面之后的查阅。 IAAS&#xff08;Infrastructure-as-a-Service&#xff09;基础设施即服务 网上的定义是…

hdfs的读写流程

hdfs的写入流程 1.client发起文件上传请求&#xff0c;通过rpc与namenode建立通讯&#xff0c;namenode检查目标文件是否已经存在&#xff0c;父目录是否存在&#xff0c;返回是否可以上传 2.client请求第一个block该传输到哪些datanode服务器上 3.namenode根据配置文件中指定…

支付宝支付上线准备工作(商家自研接入)

商家自研流程 1.创建应用 登录支付宝开放平台创建 网页/移动应用 说明&#xff1a;生成的应用唯一标识 APPID 可用于调用开放产品接口。 2.配置应用 2.1 应用详情 2.2 产品绑定 2.3 开发设置 在开发 > 开发设置 中配置应用信息。 2.3.1 接口加密方式 按操作步骤进行…