加入星計劃,您可以享受以下權益:

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

瑞芯微|如何讓擁有雙網口的Linux設備實現(xiàn)數據包轉發(fā)?

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

一、組網

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

目標:實現(xiàn)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

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

根據組網圖,pc1的網卡連接的是rk3568的eth0:192.168.30.111

2. pc2

配置含義同pc1

3. rk3568上配置

    配置網口對應的IP地址
ifconfig?eth0?192.168.30.111?????
ifconfig?eth1?192.168.40.222
    1. 使能轉發(fā)
  1. 默認設備是不轉發(fā)數據包的,需要使能該功能

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

該表為main,

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

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

 

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

 

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

 

    1. 如果要測試通信功能,可以使用網絡調試助手,軟件截圖參考下圖。

三、補充調試工具

調試該功能,還需要配合下面幾條指令

1. ip rule查看路由表

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

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

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

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

下面是查看策略路由表

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

本文只舉例如何查看路由表,
查看默認路由表:

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 信息包過濾系統(tǒ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、驅動、嵌入式、網絡,或者想和一口君侃大山的可以加我好友:yikoupeng

 

 

推薦器件

更多器件
器件型號 數量 器件廠商 器件描述 數據手冊 ECAD模型 風險等級 參考價格 更多信息
4N35SM 1 Isocom Components Transistor Output Optocoupler, 1-Element, 5300V Isolation, SURFACE MOUNT, PLASTIC PACKAGE-6
$0.88 查看
CM315D32768DZFT 1 Citizen Finedevice Co Ltd Parallel - Fundamental Quartz Crystal, 0.032768MHz Nom, SMD, 2 PIN

ECAD模型

下載ECAD模型
$1.3 查看
HFBR-5911LZ 1 Foxconn Transceiver, 830nm Min, 860nm Max, 1250Mbps(Tx), 1250Mbps(Rx), LC Connector, Through Hole Mount, ROHS COMPLIANT PACKAGE
$54.7 查看

相關推薦

電子產業(yè)圖譜

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