【路由器開發板硬件固件配置】
MTK雙頻:MT7620a + MT7612e
內存:256 MB
閃存:16 MB
固件:MTK自帶SDK中的OpenWrt固件(mtksdk-openwrt-2.6.36-v1.3-20140423-dff5cfbf.bin)
【問題】
路由器開發板刷機后,與PC無法ping通。PC與路由器開發板的LAN口相連,開發板和PC用ifconfig命令都可以查到IP。
開發板:192.168.1.1(刷機后缺省配置)
PC:192.168.1.11(通過手工配置)
【分析】
兩端網口直連都無法ping通,先排查硬件問題,PC網口、開發板網口、網線均正常。再檢查兩端網口配置,PC網口配置無異常,開發板網口配置看起來也無異常。
【解決】
開發板網口的配置在/etc/config/network文件里。
文件初始配置是這樣的:
config interface 'lan' option ifname 'eth0.1' option type 'bridge' option proto 'static' option ipaddr '192.168.1.1' option netmask '255.255.255.0' option ip6assign '60' config interface 'wan' option ifname 'eth0.2' option proto 'dhcp'
查看網口信息
[root@OpenWrt]ifconfig br-lan Link encap:Ethernet HWaddr 00:0C:43:76:20:77 inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: fe80::20c:43ff:fe76:2077/64 Scope:Link inet6 addr: fd16:4e5b:1ca2::1/60 Scope:Global UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:14 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 B) TX bytes:1764 (1.7 KiB) eth0 Link encap:Ethernet HWaddr 00:0C:43:76:20:77 inet6 addr: fe80::20c:43ff:fe76:2077/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:10 errors:0 dropped:0 overruns:0 frame:0 TX packets:240 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:786 (786.0 B) TX bytes:89596 (87.4 KiB) Interrupt:3 eth0.1 Link encap:Ethernet HWaddr 00:0C:43:76:20:77 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:5 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 B) TX bytes:526 (526.0 B) eth0.2 Link encap:Ethernet HWaddr 00:0C:43:76:20:77 inet6 addr: fe80::20c:43ff:fe76:2077/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:226 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 B) TX bytes:87291 (85.2 KiB)
值得注意的是LAN口名稱是'eth0.1',WAN口名稱是'eth0.2'。這種eth0.x是啥意思呢?
自己先嘗試着修改配置文件中的網口配置,連通性測試結果如下:
將eth0.1改為eth0就可以ping通,看來確實是名稱的問題。
跑到OpenWrt官網上看了看各種網口名稱的介紹:
network interface introduction。eth0表示物理網口,eth0.1表示vlan為1的邏輯網口。這下清楚了,LAN口配置為eth0.1會打上ID=1的VLAN頭,因此和PC直連也無法通信。
在PC端抓包確認,確實如此。
注意:開發板每次修改網卡配置后需要重啟網卡,命令:/etc/init.d/network restart
擴展閱讀:
