支持多網(wǎng)絡是英創(chuàng)工控主板的特色之一,英創(chuàng)公司推出的ESMARC系列核心板,都帶有1路或者2路10M/100M以太網(wǎng)口網(wǎng)口,同時還可以支持wi-fi以及3G/4G模塊,而且ESM3354和ESM6802這兩款核心板還可以通過ISA總線擴展以太網(wǎng)口。在多種網(wǎng)口同時存在的情況下,如何設置路由規(guī)則以及網(wǎng)關也就成為了應用方案重要的一部分。
在linux系統(tǒng)中,使用ifconfig命令給網(wǎng)口配置ip,系統(tǒng)會自動生成這個網(wǎng)卡的相關路由信息,可以使用命令route –n查看系統(tǒng)所有的路由信息,參數(shù)-n是不進行地址解析,如果不添加-n選項,route命令會根據(jù)/etc/resolv文件中配置的DNS服務器進行地址解析,所以返回時間跟DNS服務器的響應時間有關系:

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

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

使用udhcpc獲取ip和設置默認網(wǎng)關
在多網(wǎng)絡的情況下,比如以太網(wǎng)和wi-fi以及3G網(wǎng)絡同時存在的時候,就會有多個路由信息多個默認網(wǎng)關。下圖是核心板的以太網(wǎng)和wi-fi同時存在時的路由信息:
多網(wǎng)絡路由信息
可以看到以太網(wǎng)eth0和wi-fi網(wǎng)絡wlan0的路由信息都自動生成了,而且存在兩個默認網(wǎng)關。如果訪問外網(wǎng),系統(tǒng)會根據(jù)路由緩存信息和速度最優(yōu)的原則,通過速度更快的網(wǎng)關進行訪問。Linux系統(tǒng)支持對默認網(wǎng)關的優(yōu)先級進行設置,這時需要用到mteric這個參數(shù),metric為躍點數(shù),當系統(tǒng)中有多個默認網(wǎng)關時,數(shù)據(jù)包會通過metric更低的接口傳輸,通常情況下,默認的metric都為0,所以優(yōu)先級是相同的。還是可以通過linux的命令ip route命令設置metric,命令格式為ip route add default via dev metric ,下面我們就為eth0和wlan0設置優(yōu)
路由信息的優(yōu)先級
如圖所示我們?yōu)閑th0設置的metric為100,wlan0的metric為101,這樣以太網(wǎng)eth0的優(yōu)先級就高于wlan0,數(shù)據(jù)包就會有先通過eth0通訊,如果以太網(wǎng)eth0關閉,則相關路由信息也會被清除掉,這時metric為101的默認網(wǎng)關優(yōu)先級變?yōu)樽罡撸瑪?shù)據(jù)包會自動改為通過wlan0通訊。通過traceroute命令可以驗證這一點:

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

測試效果
路由信息在板卡重啟之后會消失,板卡上自帶以太網(wǎng)可以通過英創(chuàng)公司提供的userinfo.txt配置文件來設置以太網(wǎng)的ip和默認網(wǎng)關,或者設置為dhcp的方式。如果有擴展的wi-fi模塊則可以通過腳本或自己保存一個配置文件來實現(xiàn)加載網(wǎng)口后自動進行設置ip和網(wǎng)關。3G/4G網(wǎng)絡是使用的ppp撥號,ppp會自動生成默認網(wǎng)關。
感興趣的客戶可以聯(lián)系英創(chuàng)的工程師,我們會提供相應的例程代碼。
-
Linux
+關注
關注
88文章
11761瀏覽量
219055 -
嵌入式主板
+關注
關注
7文章
6107瀏覽量
37081
發(fā)布評論請先 登錄
CS32L010系列能否支持串口的發(fā)送和接收中斷單獨配置?不同中斷的中斷優(yōu)先級如何設置?
Linux-RT特點及簡單應用
搶占優(yōu)先級和子優(yōu)先級
電能質(zhì)量在線監(jiān)測裝置的暫態(tài)數(shù)據(jù)補傳的優(yōu)先級是怎樣的?
低優(yōu)先級線程無法調(diào)度怎么解決?
什么是RTOS中的優(yōu)先級反轉
求助,關于MS51設置中斷優(yōu)先級問題求解
揭秘!基于RT-Thread探究“優(yōu)先級反轉”下的任務調(diào)度究竟是什么樣的?| 技術集結
易華錄入選國家級信息技術應用創(chuàng)新典型解決方案
TLe9893怎么調(diào)整外設的中斷優(yōu)先級?
科普|信創(chuàng)是什么?一文讀懂“信息技術應用創(chuàng)新”戰(zhàn)略
CyU3PDebugPrint的最高優(yōu)先級和最低優(yōu)先級是什么?
信創(chuàng)浪潮下,國產(chǎn)主板有什么新的發(fā)展機遇?
英創(chuàng)信息技術Linux主板多網(wǎng)絡的優(yōu)先級設置簡介
評論