背景知識
當云服務器綁定多張網卡時,由于默認路由會優先從主網卡出,導致主網卡默認可以和外部正常通信,擴展網卡只能與本子網網段互通,無法與其他網段正常通信;在這種情況下需要在云服務器操作系統內部為這些網卡配置策略路由,以便多張網卡均可與外部正常通信。
應用場景
客戶彈性云主機-1有兩張網卡,主網卡需要訪問彈性云主機-2,且彈性云主機-2的響應正常回到主網卡;同樣輔助網也也需訪問彈性云主機-2,且要求其響應報文正常回到輔助網卡。
操作指導
操作步驟(Linux IPv4)
收集配置策略路由需要的云服務器網卡地址等信息(主網卡IP、輔助網卡IP)
確保云服務器已正常獲取到IPv4地址。
執行以下命令,查看云服務器網卡名稱。
回顯類似如下信息,通過網卡地址查找對應的網卡名稱,本示例中
192.168.0.7為主網卡地址,對應的名稱為eth0。
192.168.1.4為擴展網卡地址,對應的名稱為eth1。
操作前檢查和網關通信情況(其中一個網卡可以和網關通信另外一個網卡默認不通)
ping -I 192.168.0.7 192.168.2.3
ping -I 192.168.1.4 192.168.2.3
查看路由默認狀態主網卡的默認路由優先級更高,策略路由為默認
ip route
ip rule
執行命令添加主備網卡的路由
主網卡
ip route add default via 子網網關 dev 網卡名稱 table 路由表名稱
ip route add 子網網段 dev 網卡名稱 table 路由表名稱
ip rule add from 網卡地址 table 路由表名稱
擴展網卡
ip route add default via 子網網關 dev 網卡名稱 table 路由表名稱
ip route add 子網網段 dev 網卡名稱 table 路由表名稱
ip rule add from 網卡地址 table 路由表名稱
參數說明如下:網卡名稱:填寫ifconfig中所查名稱。
路由表名稱:自定義路由表名稱,此處請使用數字命名路由表。
命令示例
主網卡
ip route add default via 192.168.0.1 dev eth0 table 10
ip route add 192.168.0.0/24 dev eth0 table 10
ip rule add from 192.168.0.7 table 10
擴展網卡
ip route add default via 192.168.1.1 dev eth1 table 20
ip route add 192.168.1.0/24 dev eth1 table 20
ip rule add from 192.168.1.4 table 20
ping驗證,eth0 eth1與目的地址都可以互通
ping -I 192.168.0.7 192.168.2.3
ping -I 192.168.1.4 192.168.2.3
操作步驟(Linux IPv6)
收集配置策略路由需要的云服務器網卡地址等信息(主網卡IP、輔助網卡IP)
確保云服務器已開啟IPv6協議棧,并且正常獲取到IPv6地址。
執行以下命令,查看云服務器網卡名稱。
回顯類似如下信息,通過網卡地址查找對應的網卡名稱,本示例中:192.168.0.7/240e:982:7544:b600:d048:8b81:dbd0:da34為主網卡地址,對應的名稱為eth0。
192.168.1.4/240e:982:7544:b601:ea49:9511:8124:e5f7為擴展網卡地址,對應的名稱為eth1。
操作前檢查和網關通信情況(其中一個網卡可以和網關通信另外一個網卡默認不通)
ping6 -I 240e:982:7544:b600:d048:8b81:dbd0:da34 240e:982:7544:b602:f6b0:50a9:fb3a:d97d
ping6 -I 240e:982:7544:b601:ea49:9511:8124:e5f7 240e:982:7544:b602:f6b0:50a9:fb3a:d97d
查看路由默認狀態只有一個網卡的默認路由,策略路由為默認
ip -6 route
ip -6 rule
執行命令添加主備網卡的路由
主網卡
ip -6 route add default via 子網網關 dev 網卡名稱 table 路由表名稱
ip -6 route add 子網網段 dev 網卡名稱 table 路由表名稱
ip -6 rule add from 網卡地址 table 路由表名稱
擴展網卡
ip -6 route add default via 子網網關 dev 網卡名稱 table 路由表名稱
ip -6 route add 子網網段 dev 網卡名稱 table 路由表名稱
ip -6 rule add from 網卡地址 table 路由表名稱
參數說明如下:網卡名稱:填寫ifconfig中所查名稱。
路由表名稱:自定義路由表名稱,此處請使用數字命名路由表。
命令示例
主網卡
ip -6 route add default via fe80::f816:3eff:fe64:2923 dev eth0 table 10
ip -6 route add 240e:982:7544:b600::/64 dev eth0 table 10
ip -6 rule add from 240e:982:7544:b600:d048:8b81:dbd0:da34 table 10
擴展網卡
ip -6 route add default via fe80::f816:3eff:fe12:3d1b dev eth1 table 20
ip -6 route add 240e:982:7544:b601::/64 dev eth1 table 20
ip -6 rule add from 240e:982:7544:b601:ea49:9511:8124:e5f7 table 20
ping驗證,eth0 eth1與目的地址都可以互通
ping6 -I 240e:982:7544:b600:d048:8b81:dbd0:da34 240e:982:7544:b602:f6b0:50a9:fb3a:d97d
ping6 -I 240e:982:7544:b601:ea49:9511:8124:e5f7 240e:982:7544:b602:f6b0:50a9:fb3a:d97d