首页 > 代码库 > OpenWrt刷机后有线网口ping不通的问题

OpenWrt刷机后有线网口ping不通的问题


【路由器开发板参数】
MTK双频:MT7620a + MT7612e
内存:256 MB
闪存:16 MB
 
【问题】
路由器开发板刷机后,与PC无法ping通。PC与路由器开发板的LAN口相连,开发板和PC用ifconfig命令都可以查到IP。
开发板:192.168.1.1(刷机后缺省配置)
PC:192.168.1.2(通过手工配置)
 
【分析】
两端网口直连都无法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]ifconfigbr-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
 
扩展阅读:
OpenWrt的两种模式:桥接模式与路由模式
Bridged AP
Routed AP
RG100-AA下OpenWRT网络VLAN配置
 

OpenWrt刷机后有线网口ping不通的问题