支持多網(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)的例程代碼。
-
Linux
+關(guān)注
關(guān)注
87文章
11335瀏覽量
210068 -
嵌入式主板
+關(guān)注
關(guān)注
7文章
6086瀏覽量
35510
發(fā)布評論請先 登錄
相關(guān)推薦
評論