QCA4028軟件平臺啓用雙WAN指導

 1 爲什麼要啓用雙WAN

  QCA4028的硬件方案,基板上部署了一個LTE模塊插槽,同時又外留了一個USB3.0接口,所以,就能夠在此硬件平臺上調試基於LTE的雙WAN,預期實現:網絡

A 鏈路備份,在任意一個LTE網絡鏈接異常時,其下的有線/WiFi無線用戶仍能持續接入上游網絡;負載均衡

B 負載均衡,儘可能讓上行流量均衡分配在2個LTE網絡鏈路上,避免流量其中到單個LTE鏈路。優化

  本文檔中採用LTE模塊爲上海移遠的EC2X模塊,USB3.0的LTE模塊轉接板來自T寶,它自帶了SIM卡槽。網站

2 具體操做

  在QSDK軟件工程代碼中選中"muliiwan"組件,做爲雙wan的監護進程,它缺省是不啓用的,很是好調試。在確保2個LTE模塊都能成功保證WiFi用戶上網後,再來調試雙WAN功能更加有效。本次調試中發現EC系列的模塊,它的wwanX接口的MAC地址是隨機的,每次都不同,此外,2個wwan接口的MAC地址仍是同樣的,開始調不通時爲這個折騰了很久,後來才發現MAC同樣對用戶上網也沒有關係(這個問題可能會埋伏了深層BUG,有待持續改進)。ui

  mutliwan在同QSDK的配合中,發現提取不到網卡的IP地址和網關地址,致使錯誤將2個WAN鏈路都定位爲offline,從而會出現將resolv.conf.auto清空,將default gateway條目刪除掉,致使沒法上網。規避方法是:在acquire_wan_data中,在ipaddr和gateway都爲x後,再直接到網卡上取ip和gw值。WiFi用戶上網時,會發現打不開頁面或網站的狀況,這個是由於QSDK固件中用了dnsmasq,而它須要真實的DNS配合進行解析,refresh_dns中頻繁地清空resolv.conf.auto文件,可能會致使dnsmasq工做異常,規避方法是:不讓refresh_dns頻繁操做resolv.conf.auto,而改成操做一個新臨時文件,只有當這個新臨時文件不爲空,且與現有的resolv.conf.auto不一樣時,再將新臨時文件替換resolv.conf.auto,並重啓dnsmasq,這樣就穩定了。此外,針對monitor_wan,其現有實現對LTE網絡是不適合的,由於LTE網絡可能已經斷開了,但IP和網關卻依舊存在的,因此,這裏須要讓它每次都進入add_task,要不在人工將某個wan口down下來後,監控進程都不處理,致使WIFi用戶上網失敗。3d

  另外一方面,就是WAN口的up須要從新優化,在QSDK中,若是不啓用multiwan服務,則缺省路由是後啓動網卡所對應的缺省路由,且只有一條缺省路由條目,致使你將這個惟一的缺省路由網卡關閉後,WiFi用戶就上不了網。這個不是multiwan引入,但也須要規避。能夠在按期任務中檢查route條目來解決,檢查缺省路由條目和帶UH標識條目,確保他倆同樣便可。但multiwan確實仍是引入了問題的,其一:運行中關閉multiwan服務後,會將default路由條目刪除掉,致使用戶沒法上網;其二:WAN接口上線成功後,不會更新dns和缺省路由條目,但它明明檢測了新wan口,且狀態是online了。規避方法是:在multiwan被stop後,重構路由條目(也可在定時任務中檢測路由條目);在網卡更新IP後,當即重啓multiwan服務。但重啓multiwan服務它會重構路由表,可能會致使ping包時延波動或丟包,遊戲用戶可能會影響體驗。調試

3 驗證結果

  • 路由信息表

  

  • 頁面顯示雙WAN正常

 

  • 負載均衡顯示有效

4 結論

  利用Multiwan來實現雙WAN管控是可行的,具體使用時,還須要爲目標環境進行簡單修改,可能沒法作到拿來便可用。blog

相關文章
相關標籤/搜索