searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

单VM多网卡多eip同时对外通信的解决办法

2023-10-23 01:53:40
38
0

一、 问题背景:

       在5GC厂商上天翼云的项目中,有的厂商部署的5GC网元,需要有一个对外IP来下发license、配置5GC等操作。在云管上创建EIP,并绑定VM后,该EIP默认绑定eth0,该EIP做为外部访问VM所用没有问题,但不宜做为5GC网元对外的IP。此时,需要额外再创建一个EIP,并将该EIP与另一个网口绑定,实现5GC对外的IP。

二、环境信息:

       VM上的网口信息如下:

       VM上两个网口绑定的EIP信息如下,其中EIP 192.168.192.155绑定eth0,192.168.192.158绑定eth5。

      在不配置策略路由的情况下,从跳板机/外部,可以ping通192.168.192.155,但无法ping通192.168.192.158。原因为VM默认EIP走eth0,如果要实现外部同时访问两个EIP,需要配置策略路由。

三、解决办法:

     策略路由设置,指定IP路由的走向。

    1.   把路由表序号(11、3)和路由表名字(net_11、net_3)添加到/etc/iproute2/rt_tables中,这里的路由表序号和名字,可以自定义,比如两个网卡的IP分别为172.20.10.11和172.20.15.3,所以选择最后的IP段数字,将路由表序号和名字命名为(11、3)和(net_11、net_3)。

          对文件etc/iproute2/rt_tables增加以下内容:
          echo "11 net_11 " >> /etc/iproute2/rt_tables
          echo "3 net_3 "     >> /etc/iproute2/rt_tables

    2.   增加策略路由:

  (1)ip route add default via 172.20.10.1 dev eth0 src 172.20.10.11 table net_11
      从172.20.10.11发送到 172.20.10.1/24网段的数据从eth0发出,把该路由项添加到路由表net_11中


  (2)ip rule add from 172.20.10.11 table net_11
      添加路由策略,来自172.20.10.11 的路由要求使用net_11


  (3)ip route add default via 172.20.15.1 dev eth5 src 172.20.15.3 table net_3
      从172.20.15.3发送到 172.20.13.1/24网段的数据从eth5发出,把该路由项添加到路由表net_3中


  (4)ip rule add from 172.20.15.3 table net_3
      添加路由策略,来自172.20.15.3 的路由要求使用net_3

       (5) ip route flush cache
        把新添加的路由策略和路由表刷新到缓存中,即时生效,该命令加与不加均可

    

     3.    查看策略路由表: 

               ip rule

           

 

      4.    测试连通性:

                ping  

           

四、遗留的问题

      按上述方法,可以实现单VM的多EIP同时对外通信,但VM重启后,192.168.192.158又无法ping通了,需要再次添加策略路由才可以。该问题尝试各种办法,比如写入/etc/rc.local,或者手动增加/etc/sysconfig/network-scripts/route-eth5,均无法解决。如果有其它同学解决了该问题,可以留言。

0条评论
0 / 1000