1. 程式人生 > >VMware Linux虛擬主機雙路由的一種配置方式

VMware Linux虛擬主機雙路由的一種配置方式

大體網路拓撲如圖:

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雙閘道器配置方法:

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