加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
    • 一、組網(wǎng)
    • 二、完整配置
    • 三、補(bǔ)充調(diào)試工具
    • 四、最后
  • 推薦器件
  • 相關(guān)推薦
申請入駐 產(chǎn)業(yè)圖譜

瑞芯微|如何讓擁有雙網(wǎng)口的Linux設(shè)備實(shí)現(xiàn)數(shù)據(jù)包轉(zhuǎn)發(fā)?

2023/07/04
2997
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論
本文主要講解如何,解決基于3568實(shí)現(xiàn)雙網(wǎng)口互通問題。

一、組網(wǎng)

如下圖所示:rk3568自帶2個千兆以太口,對應(yīng)網(wǎng)卡名稱為:eth0、eth1pc1和pc2分別連接這2個網(wǎng)口pc1與eth0連接,網(wǎng)段:192.168.30.0pc2與eth1連接,網(wǎng)段:192.168.40.0

目標(biāo):實(shí)現(xiàn)pc1與pc2互通。

組網(wǎng)也可以簡化為:

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

二、完整配置

下面我們首先說明各個設(shè)備完整配置

1. pc1

默認(rèn)網(wǎng)關(guān)含義:協(xié)議棧根據(jù)數(shù)據(jù)包的目的ip查找路由表,如果沒有匹配的路由條目則發(fā)送給網(wǎng)關(guān),網(wǎng)關(guān)通常是當(dāng)前設(shè)備的網(wǎng)卡直連(或者通過交換機(jī)、路由器連接)的局域網(wǎng)內(nèi)的某個網(wǎng)卡掩碼通常是255.255.255.0

根據(jù)組網(wǎng)圖,pc1的網(wǎng)卡連接的是rk3568的eth0:192.168.30.111

2. pc2

配置含義同pc1

3. rk3568上配置

    配置網(wǎng)口對應(yīng)的IP地址
ifconfig?eth0?192.168.30.111?????
ifconfig?eth1?192.168.40.222
    1. 使能轉(zhuǎn)發(fā)
  1. 默認(rèn)設(shè)備是不轉(zhuǎn)發(fā)數(shù)據(jù)包的,需要使能該功能

echo?1?>?/proc/sys/net/ipv4/ip_forward
或者
sysctl?-w?net.ipv4.ip_forward=1????
    增加策略路由表main,目的是轉(zhuǎn)發(fā)數(shù)據(jù)的時候,查找表main 的路由策略
ip?rule?add?from?all?lookup?main?pref?9000??

該表為main,

沒指明路由表的所有路由放在該表。

    1. 刪除默認(rèn)的iptables規(guī)則

 

    系統(tǒng)出廠會有默認(rèn)的iptables規(guī)則,必須刪除,否則數(shù)據(jù)轉(zhuǎn)發(fā)會受影響。
iptables?-F???@刪除所有的iptables規(guī)則
    1. 測試

 

    1. 上述配置全部配置完,pc1和pc2就可以互相ping通了。

 

    1. 如果要測試通信功能,可以使用網(wǎng)絡(luò)調(diào)試助手,軟件截圖參考下圖。

三、補(bǔ)充調(diào)試工具

調(diào)試該功能,還需要配合下面幾條指令

1. ip rule查看路由表

傳統(tǒng)路由:
在Android4.4之前是使用的傳統(tǒng)路由,即只使用了一張路由表。

策略路由:
從Android5.0之后開始可以支持多網(wǎng)絡(luò),即在同一時間下,Android允許多網(wǎng)絡(luò)類型連接,每個網(wǎng)絡(luò)有自己的一套DNS、網(wǎng)關(guān)、路由表等。這使得功能更強(qiáng)大,使用更靈活,它使網(wǎng)絡(luò)管理員不僅能夠根據(jù)目的地址而且能夠根據(jù)報(bào)文大小,應(yīng)用或IP源地址等屬性來選擇轉(zhuǎn)發(fā)路徑。一般的路由以目的地址作為識別與區(qū)分的標(biāo)識。

系統(tǒng)最多可支持255張路由表:系統(tǒng)默認(rèn)是有維護(hù)4張路由表的,可以自定義1~252張路由表。

id 說明
0 系統(tǒng)保留表
253 default table 沒特別指定的默認(rèn)路由都放在該表。 該路由表是一個空的路由表,正常情況下保持該路由表為空即可
254 main table 沒指明路由表的所有路由放在該表。 如果添加路由時沒有指定該路由所屬的路由表,則這條路由會被添加到main路由表中。配置好網(wǎng)卡的網(wǎng)絡(luò)設(shè)置系統(tǒng)就會自動生成main路由表。
255 local table 保存本地接口地址,廣播地址、NAT地址。由系統(tǒng)維護(hù),用戶不得更改

下面是查看策略路由表

rk3568_r:/?#?ip?rule?
0:??????from?all?lookup?local????????????????????????????????????????????????????
9000:???from?all?lookup?main???????【此處是我們上一節(jié)手動添加的表,很關(guān)鍵】??????????????????????????????????????????????
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配置路由表

該命令用于配置路由器靜態(tài)路由的命令。

本文只舉例如何查看路由表,
查看默認(rèn)路由表:

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 內(nèi)核集成的 IP 信息包過濾系統(tǒng)。
功能非常強(qiáng)大。

要查看所有iptables規(guī)則可以使用下面命令

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、驅(qū)動、嵌入式、網(wǎng)絡(luò),或者想和一口君侃大山的可以加我好友:yikoupeng

 

 

推薦器件

更多器件
器件型號 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊 ECAD模型 風(fēng)險(xiǎn)等級 參考價(jià)格 更多信息
CSTNE10M0G550000R0 1 Murata Manufacturing Co Ltd Ceramic Resonator,

ECAD模型

下載ECAD模型
$0.65 查看
25LC256T-I/SN 1 Microchip Technology Inc 32K X 8 SPI BUS SERIAL EEPROM, PDSO8, 0.150 INCH, PLASTIC, MS-012, SOIC-8
$1.74 查看
HFBR-2521 1 Hewlett Packard Co Receiver, 5Mbps, DIP, Through Hole Mount
$13.26 查看

相關(guān)推薦

登錄即可解鎖
  • 海量技術(shù)文章
  • 設(shè)計(jì)資源下載
  • 產(chǎn)業(yè)鏈客戶資源
  • 寫文章/發(fā)需求
立即登錄

公眾號『一口Linux』號主彭老師,擁有15年嵌入式開發(fā)經(jīng)驗(yàn)和培訓(xùn)經(jīng)驗(yàn)。曾任職ZTE,某研究所,華清遠(yuǎn)見教學(xué)總監(jiān)。擁有多篇網(wǎng)絡(luò)協(xié)議相關(guān)專利和軟件著作。精通計(jì)算機(jī)網(wǎng)絡(luò)、Linux系統(tǒng)編程、ARM、Linux驅(qū)動、龍芯、物聯(lián)網(wǎng)。原創(chuàng)內(nèi)容基本從實(shí)際項(xiàng)目出發(fā),保持原理+實(shí)踐風(fēng)格,適合Linux驅(qū)動新手入門和技術(shù)進(jìn)階。