我有一個嵌入式設備,其中有三個網路連線:eth0、wwan0 和 wlan0。 wwan0 是按流量計費的連接,因此我通常更喜歡 eth0 或 wlan0。問題是在任何給定時間任何介面都可以連接,但實際上無法存取互聯網。由於各種原因,任何介面可能根本不存在。在這種情況下,我的路由表沒有執行我想要的操作。有沒有比不斷檢查和修改路由表的腳本更好的方法來處理這個問題?部分問題在於可用、不可用、沒有網路等的組合和排列太多。
答案1
正如您所注意到的,有很多可能性。還有一些模糊的,例如:“有互聯網,但只有測試伺服器不可用”,而且它們可能不可用,因為它們全部失敗或被政府阻止。也有可能「一半」的互聯網可以透過一個 ISP 訪問,而「另一半」則無法訪問;但其他ISP的圖片卻「顛倒」了。 (不管你信不信我,我曾經見過這樣的情況。)你宣稱哪一個是「有網路」?
這是一個非常棘手的問題,這就是為什麼 SOHO 路由器存在一個完整的業務利基,它們或多或少能夠在各種情況下做出決定,而這些路由器通常不太容易設置,因此他們可以做出夠好了決定。這也是電信世界中所有 BGP 業務的原因。
所以,正如您所看到的,不,您無法做得比腳本更好、更有效率。我不知道你為什麼想要這個,但對於桌面/最終用戶機器,我認為根本不值得將其自動化。對於 Linux 路由器,我將按照優先順序使用 RPDB 和通過每個具有高指標的鏈路的預設路由進行標準分割存取配置,然後腳本將僅根據 ping 設定或更新具有低指標的預設路由例如,精心挑選的五個地理分佈的測試點(最常訪問或最重要的測試點)。