使用ip tunnel打通私有网络

网络拓扑如下:

                                                  |
            1.1.1.1               2.2.2.2         |
            +---------+  Public   +---------+     | Private
            | ServerA +-----------+ ServerB +-----+
            +---------+  Network  +---------+     | Network
                                                  |
                                                  | 192.168.1.0/24
需求如下:
ServerA想直接访问到ServerB连接的私有网络

实现方法:
通过ip tunnel建立ipip隧道,再通过iptables进行nat,便可以实现。
Step 1. 建立ip隧道
ServerA配置
  1. ip tunnel add a2b mode ipip remote 2.2.2.2local1.1.1.1

  2. ifconfig a2b 192.168.2.1 netmask 255.255.255.0

ServerB 配置
  1. ip tunnel add a2b mode ipip remote 1.1.1.1local2.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的路由
  1. /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功能
  1. iptables -t nat -A POSTROUTING -s 192.168.2.1-d 192.168.1.0/24-j MASQUERADE

  2. sysctl -w net.ipv4.ip_forward=1

  3. sed -i '/net.ipv4.ip_forward/ s/0/1/'/etc/sysctl.conf

至此,完成了两端的配置,ServerA可以直接访问ServerB 所接的私网了。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章