一、前言:
公司生產環境遷移到阿里雲,爲了便於訪問操作阿里雲服務器,連通雲VPC與公司內網,選定open***建立兩個區域網段的聯通隧道。
二、環境介紹
系統均爲CentOS7
172.16.55.26Open***_server阿里雲VPC(實際上有綁定公網IP地址)
192.168.1.245Open***_client公司內網
網絡狀況:
阿里雲有多個網段:172.16.55.0/24 、172.16.60.0/24 、172.16.65.0/24 、172.16.51.0/24
公司內網有兩個網段需要能訪問雲上主機:192.168.1.0/24 、192.168.10.0/24
實現要求:
公司內網的兩個網段能訪問雲主機,雲主機不能訪問公司內網
三、操作記錄
open***安裝和證書創建均略過,主要記錄配置及iptables轉發規則。
1、雲server端配置,配置文件server.conf內容如下:
local 172.16.55.14
port 59999
proto tcp
dev tun
ca /etc/open***/keys/server/ca.crt
cert /etc/open***/keys/server/***server.crt
key /etc/open***/keys/server/***server.key
dh /etc/open***/keys/server/dh.pem
server 10.200.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "route 172.16.60.0 255.255.255.0"
push "route 172.16.55.0 255.255.255.0"
push "route 172.16.51.0 255.255.255.0"
push "route 172.16.65.0 255.255.255.0"
client-to-client
keepalive 10 120
comp-lzo
max-clients 20
user nobody
group nobody
persist-key
persist-tun
status /data/open***data/log/open***-status.log
log-append /data/open***data/log/open***.log
verb 3
2、內網client端配置,配置文件client.conf內容如下:
client
dev tun
proto tcp
remote 172.16.55.14 59999 (此處應是公網IP地址)
resolv-retry infinite
nobind
user nobody
group nobody
persist-key
persist-tun
ca /etc/open***/client/ca.crt
cert /etc/open***/client/client.crt
key /etc/open***/client/client.key
comp-lzo
verb 3
運行server和client後,此時雲端網絡相關網段的路由已被推送到客戶端,客戶端主機192.168.1.245是能訪問阿里雲上的主機的, 但客戶端網段的其他主機無法訪問。
四、要求實現
要求:公司內網的兩個網段能訪問雲主機,雲主機不能訪問公司內網
1、需要加上iptables nat轉發規則
在server端:
iptables -t nat -A POSTROUTING -s 10.200.0.0/24 -j MASQUERADE (允許來自虛擬協商網段IP的信息被轉發)
在client端:
iptables -t nat -A POSTROUTING -s 10.200.0.0/24 -j MASQUERADE (允許來自虛擬協商網段IP的信息被轉發)
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j MASQUERADE (允許來自公司內網的相關網段IP的信息被轉發)
iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -j MASQUERADE
2、然後在內網路由器(或三層交換機)上加一條靜態路由
ip route 172.16.0.0 255.255.0.0 192.168.1.245
至此,配置完成,通過ping命令測試,192.168.1.0/24和192.168.10.0/24兩個網段的主機都能連通雲端所有發佈網段的服務器