| 1.1.1.1 2.2.2.2 | +---------+ Public +---------+ | Private | ServerA +-----------+ ServerB +-----+ +---------+ Network +---------+ | Network | | 192.168.1.0/24
實現
通過ip tunnel建立ipip隧道,再通過iptables進行nat,便可以實現。
Step 1. 建立ip隧道
ServerA配置iptunnel,並給tunnel接口配置上ip
ip tunnel add a2b mode ipip remote 2.2.2.2 local 1.1.1.1 ifconfig a2b 192.168.2.1 netmask 255.255.255.0
ServerB配置iptunnel,並給tunnel接口配置上ip
ip tunnel add a2b mode ipip remote 1.1.1.1 local 2.2.2.2 ifconfig a2b 192.168.2.2 netmask 255.255.255.0
隧道配置完成後,請在ServerA上192.168.2.2,看是否可以ping通,ping通則繼續,ping不通需要再看一下上面的命令執行是否有報錯
Step 2. 添加路由和nat
ServerA上,添加到192.168.1.0/24的路由
/sbin/route add -net 192.168.1.0/24 gw 192.168.2.2
ServerB上,添加iptables nat,將ServerA過了訪問192.168.1.0/24段的包進行NAT,並開啟ip foward功能
iptables -t nat -A POSTROUTING -s 192.168.2.1 -d 192.168.1.0/24 -j MASQUERADE sysctl -w net.ipv4.ip_forward=1 sed -i '/net.ipv4.ip_forward/ s/0/1/' /etc/sysctl.conf
至此,完成了兩端的配置,ServerA可以直接訪問ServerB 所接的私網了。