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