暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Linux 双网卡双IP配置

生有可恋 2022-05-18
3579

当一台服务器接了两根网线,配置了两个IP,此时网络数据包的流向是如何走的?


先说一下背景,原服务器IP为192.168.10.83,网关为192.168.10.254,已经通了部分业务。因临时调整需要在该服务器上部署一套数据库代替之前的业务,要求被替换的业务IP转移至当前服务器上。该数据库业务与原服务器IP不在一个网段,新业务IP为172.16.100.152,网关为172.16.100.254。


此时服务器的两块网卡上分别配置了不同网段的IP:

  • 192.168.10.83     (A网卡接口)

  • 172.16.100.152   (B网卡接口)


原网络的默认网关是在A上,当在第二块网卡配置好IP后,此时对外第二块网卡的网络实际上是不通的。B网络在服务器上没有配置路由,所有数据包的默认路由都是从A出去的,数据包默认不会从B出去。


此时B网络虽然网线是通的,但只有同网段是可达的。同网段的IP,不需要路由即可达,但跨网段的数据包只有在路由指导下才知道从哪个物理接口出去。


此时如果需要让B网络的IP与所有局域网IP都通,需要将默认路由从A上改到B上。


首先查看路由表

    # route -n
    Kernel IP routing table
    Destination Gateway Genmask Flags Metric Ref Use Iface
    0.0.0.0         192.168.10.254  0.0.0.0         UG    0      0        0 bond0
    172.16.100.0    0.0.0.0         255.255.255.0   U     0      0        0 em3
    192.168.10.0    0.0.0.0         255.255.255.0   U     0      0        0 bond0


    同网段的路由走相应网卡接口出去,此时192.168.10.0/24 走网卡 bond0 ,172.16.100.0/24 走网卡 em3。默认路由走 bond0,所谓的默认路由即目的地址为0.0.0.0的路由,当地址为0.0.0.0,就代表目的地址为任意地址,比如互联网地址。互联网的IP我们是没法提前预知的,所以互联网的目的地址要使用0.0.0.0。当大部分网络都走一个网卡接口出去时,我们会优先把默认路由设置在这个网卡接口上。我们需要通过route命令调整一下路由表:


    删掉默认路由

      route del default

      添加新的默认路由

        route add default gw 172.16.100.254 dev em3

        重新打印新的路由表

          # route -n
          Kernel IP routing table
          Destination Gateway Genmask Flags Metric Ref Use Iface
          0.0.0.0         172.16.100.254   0.0.0.0         UG    0      0        0 em3
          172.16.100.0 0.0.0.0 255.255.255.0 U 0 0 0 em3
          192.168.10.0 0.0.0.0 255.255.255.0 U 0 0 0 bond0

          此时默认路由转到了B接口上,所有的IP到B接口都是通的,除了A接口所在的网段,即192.168.10.0/24段到A接口192.168.10.83是通的,但不通B接口的地址172.16.100.152。因为在路由表中192.168.10.0/24网段走的就是接口A,它不会走到接口B。如果此时192.168.10.0/24段的IP需要和接口B通信,此时需要写明细路由,手工将固定IP指到相应接口。


          比如192.168.10.26需要和172.16.100.152通信,可以这样写路由表

            route add -host 192.168.10.26 gw 172.16.100.254 dev em3


            此时路由表如下:

              # route -n
              Kernel IP routing table
              Destination Gateway Genmask Flags Metric Ref Use Iface
              0.0.0.0 172.16.100254 0.0.0.0 UG 0 0 0 em3
              172.16.100.0 0.0.0.0 255.255.255.0 U 0 0 0 em3
              192.168.10.0 0.0.0.0 255.255.255.0 U 0 0 0 bond0
              192.168.10.26 172.16.100.254 255.255.255.255 UGH 0 0 0 em3


              在路由表中为目的地址192.168.10.26指定网关为172.16.100.254,并且从网卡的em3接口出去,此时192.168.10.26就不再通192.168.10.83了。我们可以通过指定网卡物理接口的形式执行ping来测试网络的连通性。

                # ping -I bond0 192.168.10.26
                PING 192.168.10.26 (192.168.10.26) from 192.168.10.83 bond0: 56(84) bytes of data.



                文章转载自生有可恋,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                评论