OpenWrt刷機后LAN口無法連通的問題



【路由器開發板硬件固件配置】
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
 
擴展閱讀:
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM