本文主要讲解如何,解决基于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 系统保留表
253 default table 没特别指定的默认路由都放在该表。 该路由表是一个空的路由表,正常情况下保持该路由表为空即可
254 main table 没指明路由表的所有路由放在该表。 如果添加路由时没有指定该路由所属的路由表,则这条路由会被添加到main路由表中。配置好网卡的网络设置系统就会自动生成main路由表。
255 local 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

瑞芯微|如何让拥有双网口的Linux设备实现数据包转发?【超实用】的更多相关文章

  1. 瑞芯微发布最新旗舰应用处理器-RK3588

    在瑞芯微电子第四届“开发者之春”大会上,瑞芯微推出了新一代8nm旗舰处理器-RK3588 这个芯片将采用8nm 制程工艺.基于A76+A55 内核组合,具备4K UI性能.8K VPU,拥有NPU2. ...

  2. 瑞芯微RK3399宣布系统开源,进入百余种行业市场!

    集微网消息,2月24日瑞芯微官方突然宣布, Rockchip RK3399Linux系统开源!作为Rockchip旗舰级芯片,RK3399具有高性能.高扩展.全能型应用特性. 这一重磅消息立马刷爆朋友 ...

  3. 瑞芯微RK3399六核-迅为3399开发板介绍

    迅为3399开发板基于瑞芯微的RK3399处理器设计,Rockchip RK3399是瑞芯微推出的一款低功耗.高性能的应用处理器芯片,该芯片基于Big.Little架构,即具有独立的NEON协同处理器 ...

  4. Linux下更新瑞芯微固件

    有这样的需求,是因为提供的BSP中是在windows下烧写的系统.我直接在linux下开发,每次编译后代码都要在windows下烧写,是一个很麻烦的事情.为了解决这个问题我尝试着用VirtualBox ...

  5. 9.7寸RK3188瑞芯微四核爱立顺M33平板电脑 - 深圳吉祥星晨科技有限公司 - 华强商情网

    9.7寸RK3188瑞芯微四核爱立顺M33平板电脑 - 深圳吉祥星晨科技有限公司 - 华强商情网 欢迎加入 2000人超级QQ群,平板电脑行业交流群:221371451,平板电脑产品及报价群:5765 ...

  6. 瑞芯微ROCK960 RK3399固件烧录总结

    1 下载固件 进入瑞芯微ROCK960下载主页 https://www.96boards.org/documentation/consumer/rock/downloads/ 选择os固件, Debi ...

  7. 瑞芯微RK3188如何配置USB摄像头支持

  8. 瑞芯微RK3188摄像头相关参数的配置

  9. 瑞芯微RKnanC芯片处理器介绍

    RKnanC是一种低成本.低功耗.高效率的数字多媒体芯片,它是基于ARM的低功耗处理器结构和硬件加速器.它是专为便携式音频产品应用,如MP3播放器等. RKnanC可以支持各种音频标准的解码,如MP3 ...

  10. 瑞芯微ROCK960 RK3399烧录image后扩容rootfs

    问题描述: RK3399开发板烧录官网提供的ubuntu镜像: Ubuntu 16.04 Server arm64(下载地址:https://www.96boards.org/documentatio ...

随机推荐

  1. python-pytest:多进程、多线程执行用例

    准备工作: Python Package pytest-parallel-0.0.10: windows版本只能是0.0.10 pytest-xdist 这两个包都是基于pytest基础上,实现多进程 ...

  2. STM32 CubeMX 学习:05-串口

    --- title: mcu-stm32-cube-05-using-serial.md date: 2020-03-09 10:37:34 categories: tags: - stm32 - c ...

  3. 【ClickHouse】0:clickhouse学习3之时间日期函数

    官方文档: https://clickhouse.tech/docs/zh/sql-reference/functions/date-time-functions/ 常用的clickhouse时间函数 ...

  4. mirai Bot初始化配置

    RT 其实本来我的bot已经因为自己手贱登陆qq nt直接报废了,但是论坛里有佬提供了新的协议库,那这不赶紧复活bot都对不起这个新的协议库. 本文写于2024年7月4日19:20:21,可能随着时间 ...

  5. NEEPU Sec 2023 Misc 两题题记

    GoingOn 题目描述 Keep going on channel 1 ;D 考察的是 midi lsb隐写 MIDI文件概述 CSV文件概述 midi转csv工具 midicsv 将 MIDI 文 ...

  6. 阿里云服务器Docket安装RabbitMQ 3.8.12

    DocketMQ安装RabbitMQ 地址:https://hub.docker.com/ 拉取镜像 docker pull rabbitmq:3.8.12-management-alpine 运行 ...

  7. nodejs,express设置允许跨域请求

    express设置允许跨域请求 //设置跨域访问 app.all("*", function (req, res, next) { //设置允许跨域的域名,*代表允许任意域名跨域 ...

  8. DASCTF X CBCTF 2023|无畏者先行 [PWN] WP

    DASCTF X CBCTF 2023|无畏者先行 [PWN] WP 1.GuestBook 题目保护情况 开启canary,nx保护 64位ida载入 首先可以通过输入0x18个垃圾数据可以通过打印 ...

  9. ERP中内部批号和外部批号分别指的是什么

    在企业资源计划(ERP)系统中,内部批号和外部批号是两个用于标识和跟踪产品的关键概念.它们通常用于管理和追踪生产.库存和供应链中的物料. 内部批号(Internal Batch Number): 定义 ...

  10. [oeasy]python0145_版本控制_git_备份还原

    git版本控制 回忆上次内容 上次我们了解了 try 的完全体 try 尝试运行   except 发现异常时运行的代码块   else 没有发现异常时运行的代码块   finally 无论是否发现异 ...