VMware Linux虚拟主机双路由的一种配置方式

大体网络拓扑如图:

VMware Linux虚拟主机双路由的一种配置方式_第1张图片

VM物理机单网卡,IP192.168.1.2,VM虚拟机IP192.168.1.3,默认网关192.168.1.1;

因业务需要,需经常往公有云主机(假设IP为222.172.200.68)上传文件;

因192段外联为10M专线,带宽较小,172段外联为500M光宽带,50M上行,比192段的上行要大,在不改变默认路由的情况下,指定目标主机222.172.200.68从172.16.1.1出去。

解决办法:

    1、在192.168.1.3虚拟主机当前网卡上添加一个172段IP地址,默认网关172.16.1.1;(如果没有这一步,下一步加路由时将报错:SIOCADDRT: 网络不可达);

    2、在虚拟主机上添加路由:route add -host 222.172.200.68 gw 172.16.1.1;

    3、traceroute追踪路由,已实现上述需求;

问题:

    之前可以通过192段对应的专线公网IP访问到1.3虚拟主机,上述处理后,1.3虚拟主机对222.172.200.68的回程路由发生改变,无法建立TCP连接,将不能再通过专线公网IP访问进来。

解决设想1:222.172.200.68访问进来后通过NAT设备进行反向NAT配置,对1.3虚拟主机而言,222.172.200.68访问进来的源IP发生改变,回程路由按照其默认路由从192段返回,可以建立TCP连接了。

解决设想2:在另外一台服务器上部署nginx,利用其TCP转发,用nginx主机地址与1.3虚拟主机之间建立连接;

由于没有多的NAT设备了,采用设想2,nginx的TCP转发配置参考:https://www.cnblogs.com/baolin2200/p/7803511.html

SCP指定端口参考:https://www.cnblogs.com/jixingke/p/6213074.html

nginx配置如下:

worker_processes  1;
events {
    worker_connections  1024;
}
# 此为TCP转发请求 stream 
stream {
    upstream stream_backend {
         server xxx.xxx.xx.x:22;
    }
    
     server {
        listen                2122;
        proxy_pass            stream_backend;
    }
    }

最终实现了上行、下行分别走不同的路由。

PS:Linux单网卡双IP双网关配置方法:

参考:https://blog.csdn.net/cooling88/article/details/51042633

etho对应IP:192.168.1.2

cp ifcfg-eth0 ifcfg-eth0\:1 

vi ifcfg-eth0:1 

DEVICE=eth0:1 #网络虚拟接口eth0:1

ONBOOT=yes #启动的时候激活

BOOTPROTO=static #使用静态ip地址

IPADDR=172.16.1.2 #分配ip地址

NETMASK=255.255.255.0 #子网掩码

#GATEWAY=172.16.1.1 #eth0配置已经有网关,如果网关上做了路由或者两个网段在一个交换网络,可省略;

激活:ifconfig eth0:1 up

重启:service network restart

你可能感兴趣的:(linux,nginx)