关于华为云平台上服务器虚拟机(银河麒麟服务器操作系统V10SP1)多网卡网络通信问题
生活随笔
收集整理的這篇文章主要介紹了
关于华为云平台上服务器虚拟机(银河麒麟服务器操作系统V10SP1)多网卡网络通信问题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 一、問題背景
- 二、解決方法
- 1. 服務器虛擬機的網卡配置
- 2. 添加路由表和策略路由
- 3. 測試路由策略生效
- 4. 添加定時任務
- 5. 重啟crond服務
一、問題背景
在某項目的華為云平臺上部署銀河麒麟服務器操作系統V10SP1虛擬機并配置多個網卡后,發現只有主網卡能與外部網絡通信,其他網卡無法與外部網絡通信(其中每個網卡都屬于不通的子網)。主路由表(main路由表)的默認路由為該虛擬機主網卡的網關地址,如果不做其他額外配置的話,所有網卡均會使用主路由表的默認路由,那么此場景中的所有副網卡無法與外部通信就可以解釋了。
二、解決方法
1. 服務器虛擬機的網卡配置
主網卡enp3s0: 192.168.30.8/24 網關192.168.30.1
副網卡enp5s0: 192.168.31.5/26 網關192.168.31.62
副網卡enp6s0: 192.168.28.21/27 網關192.168.28.30
外部網絡地址:192.168.58.10
2. 添加路由表和策略路由
echo "31 net_31" >> /etc/iproute2/rt_tables echo "28 net_28" >> /etc/iproute2/rt_tables ip route flush table net_31 ip route add default via 186.82.31.62 dev enp5s0 table net_31 ip rule add from 186.82.31.0/26 table net_31 ip route flush table net_28 ip route add default via 186.82.28.30 dev enp6s0 table net_28 ip rule add from 186.82.28.0/27 table net_283. 測試路由策略生效
使用ping命令從副網卡到外部網絡是否連通
ping -I enp5s0 192.168.58.10 ping -I enp6s0 192.168.58.10備注:由于上述添加的策略路由在系統重啟后就會丟失,我們起初嘗試添加策略路由的命令加入到/etc/rc.local來使策略路由開機自啟生效,結果發現不成功,原因未知。所以這里我們采用cron定時任務的方式來實時保障策略路由生效。步驟如下:
4. 添加定時任務
echo "* * * * * root bash /root/route.sh" >> /etc/crontab其中定時任務執行的腳本route.sh的內容如下:
#!/bin/bash rule_31=`ip rule list | grep -i net_31 |wc -l` rule_28=`ip rule list | grep -i net_28 |wc -l` route_31=`ip route show table 31 | wc -l` route_28=`ip route show table 28 | wc -l` if [ $rule_31 -eq 0 ];thenip rule add from 186.82.31.0/26 table net_31 fiif [ $rule_28 -eq 0 ];thenip rule add from 186.82.28.0/27 table net_28 fiif [ $route_31 -eq 0 ];thenip route add default via 186.82.31.62 dev enp5s0 table net_31 fiif [ $route_28 -eq 0 ];thenip route add default via 186.82.28.30 dev enp6s0 table net_28 fi5. 重啟crond服務
systemctl restart crond重啟虛擬機,確認策略路由開機自動生成。
總結
以上是生活随笔為你收集整理的关于华为云平台上服务器虚拟机(银河麒麟服务器操作系统V10SP1)多网卡网络通信问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: (结构体+指针)(外加自定义车辆数量和选
- 下一篇: 保姆级安装,在FusionCompute