0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

英創(chuàng)信息技術(shù)Linux主板多網(wǎng)絡(luò)的優(yōu)先級設(shè)置簡介

英創(chuàng)信息技術(shù) ? 來源:英創(chuàng)信息技術(shù) ? 作者:英創(chuàng)信息技術(shù) ? 2020-02-06 11:16 ? 次閱讀

支持多網(wǎng)絡(luò)是英創(chuàng)工控主板的特色之一,英創(chuàng)公司推出的ESMARC系列核心板,都帶有1路或者2路10M/100M以太網(wǎng)口網(wǎng)口,同時還可以支持wi-fi以及3G/4G模塊,而且ESM3354和ESM6802這兩款核心板還可以通過ISA總線擴展以太網(wǎng)口。在多種網(wǎng)口同時存在的情況下,如何設(shè)置路由規(guī)則以及網(wǎng)關(guān)也就成為了應(yīng)用方案重要的一部分。

linux系統(tǒng)中,使用ifconfig命令給網(wǎng)口配置ip,系統(tǒng)會自動生成這個網(wǎng)卡的相關(guān)路由信息,可以使用命令route –n查看系統(tǒng)所有的路由信息,參數(shù)-n是不進行地址解析,如果不添加-n選項,route命令會根據(jù)/etc/resolv文件中配置的DNS服務(wù)器進行地址解析,所以返回時間跟DNS服務(wù)器的響應(yīng)時間有關(guān)系:

系統(tǒng)自動生成eth0的路由信息

可以看到系統(tǒng)自動生成了201網(wǎng)段的路由信息,凡是201這個網(wǎng)段的數(shù)據(jù)包都會通過eth0這個網(wǎng)口。但是目前還沒有網(wǎng)關(guān)的信息,如果要通過eth0訪問外網(wǎng),還需要添加默認網(wǎng)關(guān),linux系統(tǒng)中可以通過命令ip route命令添加默認網(wǎng)關(guān),命令格式為ip route add default via dev :

eth0的路由信息

添加默認網(wǎng)關(guān)后的路由信息如上圖,其中Destination和Genmask為0.0.0.0的記錄表明這是系統(tǒng)默認網(wǎng)關(guān),默認網(wǎng)關(guān)的意思是當要發(fā)送數(shù)據(jù)包的目標網(wǎng)絡(luò)地址不在系統(tǒng)的路由記錄中時,系統(tǒng)會將該數(shù)據(jù)包通過默認網(wǎng)關(guān)對應(yīng)的接口(網(wǎng)卡)發(fā)送出去,如果允許使用dhcp的話,還可以直接使用udhcpc命令,該命令會自動獲取ip并設(shè)置默認網(wǎng)關(guān):

使用udhcpc獲取ip和設(shè)置默認網(wǎng)關(guān)

在多網(wǎng)絡(luò)的情況下,比如以太網(wǎng)和wi-fi以及3G網(wǎng)絡(luò)同時存在的時候,就會有多個路由信息多個默認網(wǎng)關(guān)。下圖是核心板的以太網(wǎng)和wi-fi同時存在時的路由信息:

多網(wǎng)絡(luò)路由信息

可以看到以太網(wǎng)eth0和wi-fi網(wǎng)絡(luò)wlan0的路由信息都自動生成了,而且存在兩個默認網(wǎng)關(guān)。如果訪問外網(wǎng),系統(tǒng)會根據(jù)路由緩存信息和速度最優(yōu)的原則,通過速度更快的網(wǎng)關(guān)進行訪問。Linux系統(tǒng)支持對默認網(wǎng)關(guān)的優(yōu)先級進行設(shè)置,這時需要用到mteric這個參數(shù),metric為躍點數(shù),當系統(tǒng)中有多個默認網(wǎng)關(guān)時,數(shù)據(jù)包會通過metric更低的接口傳輸,通常情況下,默認的metric都為0,所以優(yōu)先級是相同的。還是可以通過linux的命令ip route命令設(shè)置metric,命令格式為ip route add default via dev metric ,下面我們就為eth0和wlan0設(shè)置優(yōu)

路由信息的優(yōu)先級

如圖所示我們?yōu)閑th0設(shè)置的metric為100,wlan0的metric為101,這樣以太網(wǎng)eth0的優(yōu)先級就高于wlan0,數(shù)據(jù)包就會有先通過eth0通訊,如果以太網(wǎng)eth0關(guān)閉,則相關(guān)路由信息也會被清除掉,這時metric為101的默認網(wǎng)關(guān)優(yōu)先級變?yōu)樽罡?,?shù)據(jù)包會自動改為通過wlan0通訊。通過traceroute命令可以驗證這一點:

數(shù)據(jù)包通訊信息

可以看到數(shù)據(jù)包默認是通過優(yōu)先級更高的網(wǎng)關(guān)通訊,當eth0關(guān)閉之后,數(shù)據(jù)就改為通過wi-fi網(wǎng)絡(luò)的網(wǎng)關(guān)了。同時為了方便客戶使用和參考,我們提供了一個管理路由信息的例程,讓程序在后臺運行,會檢查有沒有新的默認網(wǎng)關(guān),如果有新的默認網(wǎng)關(guān),則按照以太網(wǎng)>wi-fi>3G/4G網(wǎng)絡(luò)的優(yōu)先級順序自動設(shè)置metic的值,如果需要更改則可以通過參數(shù)來設(shè)置三種網(wǎng)絡(luò)的metric值:route_manager [metric for eth] [metric for wlan] [metric for ppp]

測試效果

路由信息在板卡重啟之后會消失,板卡上自帶以太網(wǎng)可以通過英創(chuàng)公司提供的userinfo.txt配置文件來設(shè)置以太網(wǎng)的ip和默認網(wǎng)關(guān),或者設(shè)置為dhcp的方式。如果有擴展的wi-fi模塊則可以通過腳本或自己保存一個配置文件來實現(xiàn)加載網(wǎng)口后自動進行設(shè)置ip和網(wǎng)關(guān)。3G/4G網(wǎng)絡(luò)是使用的ppp撥號,ppp會自動生成默認網(wǎng)關(guān)。

感興趣的客戶可以聯(lián)系英創(chuàng)的工程師,我們會提供相應(yīng)的例程代碼。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11335

    瀏覽量

    210068
  • 嵌入式主板
    +關(guān)注

    關(guān)注

    7

    文章

    6086

    瀏覽量

    35510
收藏 人收藏

    評論

    相關(guān)推薦

    使用CH32V103C8TC設(shè)置中斷優(yōu)先級分組時,編譯報錯的原因?

    使用CH32V103C8TC設(shè)置中斷優(yōu)先級分組時,設(shè)置為NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);編譯報錯 而使用NVIC_PriorityGroupConfig(NVIC_
    發(fā)表于 09-27 06:03

    freertos中斷優(yōu)先級在哪設(shè)置

    FreeRTOS是一個流行的實時操作系統(tǒng),它廣泛應(yīng)用于嵌入式系統(tǒng)開發(fā)。在FreeRTOS中,中斷優(yōu)先級是一個重要的概念,因為它決定了中斷處理的順序和響應(yīng)時間。 1. 理解中斷優(yōu)先級 在討論如何設(shè)置
    的頭像 發(fā)表于 09-02 14:17 ?737次閱讀

    APS智能優(yōu)化排產(chǎn)軟件的優(yōu)先級應(yīng)用

    資源、訂單需求和約束條件,自動計算出最優(yōu)的生產(chǎn)計劃。在這個過程中,訂單排產(chǎn)的優(yōu)先規(guī)則起著至關(guān)重要的作用。1.交期優(yōu)先級交期優(yōu)先級是訂單排產(chǎn)中最基本的優(yōu)先規(guī)則。根據(jù)
    的頭像 發(fā)表于 06-26 17:43 ?420次閱讀
    APS智能優(yōu)化排產(chǎn)軟件的<b class='flag-5'>優(yōu)先級</b>應(yīng)用

    ESP32S2如何設(shè)置中斷優(yōu)先級?

    ESP32S2有六中斷, 如何設(shè)置中斷優(yōu)先級? 比如在GPIO例程里 ,這種中斷優(yōu)先級是如何設(shè)置的呢? 中斷寄存器列表里 ,只有簡稱,哪里
    發(fā)表于 06-21 07:59

    請問有什么方法降低WIFI中斷的優(yōu)先級?

    因為項目對時序輸出要求比較嚴格,WIFI中斷優(yōu)先級比硬件定時器中斷優(yōu)先級要高,在定時器中斷里面對GPIO管腳控制被延長執(zhí)行,請問有什么方法降低WIFI中斷的優(yōu)先級?
    發(fā)表于 06-19 07:37

    如何在不同優(yōu)先級安裝相同的處理程序?

    在不同的優(yōu)先級中安裝相同的處理程序? 我需要一個解決方案,在不同的優(yōu)先級中安裝相同的處理程序(ISR),以便在我的項目中處理 CAT2 中斷,但我不能上傳項目,因為我簽署了 NDA。
    發(fā)表于 05-28 08:13

    systick的中斷優(yōu)先級是否應(yīng)該設(shè)置為最高優(yōu)先級的嵌套中斷?

    最近在學習ucosii有這樣一個疑問,關(guān)于stm32的systick作為ucosii的基準時鐘,systick的中斷優(yōu)先級是否應(yīng)該設(shè)置為最高優(yōu)先級的嵌套中斷。理由是什么?各位大俠求指教!??!
    發(fā)表于 05-16 06:44

    stm32的中斷優(yōu)先級分組了之后還能改分組嗎?

    如標題所示,stm32的中斷優(yōu)先級分組了之后還能改分組嗎? 比如我要使用外部中斷EXIT2,3,我在配置的時候配置了優(yōu)先級分組2組,然后配置了EXIT2,3,如果我下面又想開外部中斷的EXIT4,5的話,我是不是必須還的要使用優(yōu)先級
    發(fā)表于 05-13 08:40

    創(chuàng)建了兩個task如果一個優(yōu)先級高 一個優(yōu)先級低,高優(yōu)先級的那個一直在做,什么時候會調(diào)度到低優(yōu)先級的呢?

    創(chuàng)建了兩個task如果一個優(yōu)先級高一個優(yōu)先級低, 我看到任務(wù)的函數(shù)都是用死循環(huán)做的,那個高優(yōu)先級的那個一直在做,什么時候會調(diào)度到低優(yōu)先級的呢?
    發(fā)表于 05-13 07:13

    STM8中斷優(yōu)先級不夠怎么解決?

    STM8L 中,中斷優(yōu)先級通過下面函數(shù)設(shè)置,但此處僅 ITC_PriorityLevel_1,ITC_PriorityLevel_2,ITC_PriorityLevel_3總共才3個中斷優(yōu)先級
    發(fā)表于 05-06 06:54

    求助,關(guān)于stm32F4中斷優(yōu)先級0無法搶占的問題求解

    使用F407遇到一個搶占優(yōu)先級的問題: 現(xiàn)設(shè)置優(yōu)先級分組 HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_4);也就是15個優(yōu)先級分組。
    發(fā)表于 04-23 07:26

    關(guān)于stm32cube中freertos的優(yōu)先級設(shè)置問題求解

    在用stm32cube中freertos,在配置界面里設(shè)置為12任務(wù)優(yōu)先級,但是在cube中配置每個任務(wù)優(yōu)先級時還是只能選擇7種優(yōu)先級,分
    發(fā)表于 04-22 07:25

    STM32F103的寄存器NVIC_IPRx搶占優(yōu)先級和子優(yōu)先級是怎么設(shè)置的?

    STM32F103的寄存器NVIC_IPRx有些不明白,搶占優(yōu)先級和子優(yōu)先級是怎么設(shè)置的? 如果,中斷分組2,搶占優(yōu)先級3,子優(yōu)先級3
    發(fā)表于 03-27 07:48

    Hightec對芯片中斷優(yōu)先級分配時,中斷號越高中斷優(yōu)先級越高嗎?

    請問大佬,Hightec對芯片中斷優(yōu)先級分配時,中斷號越高中斷優(yōu)先級越高嗎?看網(wǎng)上的帖子說中斷號越低優(yōu)先級越高。
    發(fā)表于 02-27 06:13

    RTTnano的用戶main函數(shù)中的優(yōu)先級是多少?

    RTTnano 的用戶main函數(shù)中的優(yōu)先級是多少?為什么會出現(xiàn)創(chuàng)建新的task之后,main函數(shù)會搶占掉低優(yōu)先級的task,例如RT_THREAD_PRIORITY_MAX設(shè)置為8 ,低于3
    發(fā)表于 02-26 08:01