Linux主板多網絡的優先級設置
1.簡介
支持多網絡是電魚嵌入式板卡的特色之一,電魚電子推出的SAIL-IMX6系列核心板,都帶有以太網口,同時還可以支持wi-fi以及3G/4G模塊。本文是實現對於Linux系統在電魚SAIL-IMX6Q開發板中的多網絡的優先級的設置。
2.準備
軟件:板上linux系統和PC上的超級終端
硬件:電魚SAIL-IMX6Q開發板、PC和WiFi模塊(連接到紅框處)
SAIL-IMX6Q開發板利用232串口連接電腦,並連接上電源。
網線連接PC和開發板的網口
3.操作
3.1 IP地址設置
3.1.1 IP地址設置方法一
~# ifconfig
直接使用udhcpc命令,該命令會自動獲取ip並設置默認網關:
~# udhcpc -i eth0 -q //通過DHCP自動獲取IP地址
可以使用命令~# route –n查看系統所有的路由信息,參數-n是不進行地址解析,如果不添加-n選項,route命令會根據/etc/resolv文件中配置的DNS服務器進行地址解析,所以返回時間跟DNS服務器的響應時間有關係:
上邊的方法網關和ip都是自動設置的也可以自己設置IP
~# ifconfig eth0 192.168.137.0
3.1.2 IP地址設置方法二
如果要通過eth0訪問外網,還可以通過如下方法添加默認網關,linux系統中可以通過命令ip route命令添加默認網關,
命令格式爲ip route add default via <gateway> dev <interface>:
~# ip route add default via 192.168.137.1 dev eth0
出現圖示錯誤則輸入 ~# ip addr flush dev eth0
再次輸入 ~# ifconfig eth0 192.168.137.0
~# route -n
~# ip route add default via 192.168.137.1 dev eth0
3.2
測試網卡eth0的連接
~# ping 192.168.137.93 //DPCH裏邊發送的地址
3.3多網絡情況及優先級的設置
將WiFi模塊插入開發板的P7插針處(三角形對着三角形)。
在多網絡的情況下,比如以太網和wi-fi以及3G網絡同時存在的時候,就會有多個路由信息多個默認網關。
在底板P7插針處中正確插入wifi模塊,如果一開始未曾插入模塊,則插入後需要重啓,再進行一次上邊的設置。開啓開發板
~# ifconfig -a //顯示wlan信息
打開wlan
~# ifconfig wlan0 up
~# ifconfig
設置wifi模塊的ip地址
#ifconfig wlan0 192.168.137.21
設置WiFi模塊網關
~# ip route add default via 192.168.137.22 dev wlan0
查看系統所有的路由信息
~# route –n
下圖是核心板的以太網和wi-fi同時存在時的路由信息:
可以看到以太網eth0和wi-fi網絡wlan0的路由信息都自動生成了,而且存在兩個默認網關。如果訪問外網,系統會根據路由緩存信息和速度最優的原則,通過速度更快的網關進行訪問。Linux系統支持對默認網關的優先級進行設置,這時需要用到mteric這個參數,metric爲躍點數,當系統中有多個默認網關時,數據包會通過metric更低的接口傳輸,通常情況下,默認的metric都爲0,所以優先級是相同的。還是可以通過linux的命令ip route命令設置metric,命令格式爲ip route add default via <gateway> dev <interface> metric <val>,下面我們就爲eth0和wlan0設置優先級:
~# ip route del via 192.168.137.1 dev eth0
~# ip route del via 192.168.137.3 dev wlan0
~# ip route add default via 192.168.137.3 dev wlan0 metric 11
~# route -n
如圖所示我們爲eth0設置的metric爲0/10,wlan0的metric爲11,這樣以太網eth0的優先級就高於wlan0,數據包就會有先通過eth0通訊,如果以太網eth0關閉,則相關路由信息也會被清除掉,這時metric爲11的默認網關優先級變爲最高,數據包會自動改爲通過wlan0通訊。通過traceroute命令可以驗證這一點:
所以現在網絡的優先級設置完成了。
4.小結
如上述示例,通過Linux主板多網絡的優先級的各種設置命令即可實現對於開發板的網絡方面的多個網絡進行優先級的設置,能夠通過優先級的設置對開發板的網絡進行想要的選擇
在Linux中,我們經常會涉及到修改主機的路由列表,以前都是使用route這個命令,但是在CentOS7中默認已經不安裝net-tools這個包,所以默認是沒有route這個命令的,可以使用ip route 代替。
ip route
ip這個命令是在iproute2包裏面,在CentOS7中默認就安裝了。
列出路由
ip route list
ip route show
ip route
查看指定網段的路由
ip route list 192.168.2.0/24
添加路由
ip route add 192.168.2.0/24 via 192.168.1.1
追加路由
ip route append 192.168.2.0/24 via 192.168.1.12 #追加一個指定網絡的路由,爲了平滑切換網關使用
修改路由
ip route change 192.168.2.0/24 via 192.168.1.11
ip route replace 192.168.2.0/24 via 192.168.1.111
刪除路由
ip route del 192.168.2.0/24 via 192.168.1.1
清空指定網絡的路由
ip route flush 192.168.2.0/24 #這個是清理所有192.168.2.0/24相關的所有路由,有時候設置錯網關存在多條記錄,就需要一次性清空相關路由再進行添加
添加默認路由
ip route add default via 192.168.1.1
指定路由metirc
ip route add 192.168.2.0/24 via 192.168.1.15 metric 10
route命令
爲了兼容CentOS7也提供了net-tools包,只是沒有默認安裝而已。可以直接使用yum進行安裝。
yum -y install net-tools
查看路由
route -n
添加路由
route add -net 192.168.2.0/24 gw 192.168.1.1
route add -host 192.168.2.100/32 gw 192.168.1.1
刪除路由
route del -net 192.168.2.0/24 gw 192.168.1.1
route del -host 192.168.2.100/32 gw 192.168.1.1
添加默認路由
route add default gw 192.168.1.1