使用IP tunnel打通私有網絡

需求


有2個在不同地方的IDC機房,2個機房需要鏈接對方的內網。拓撲見下圖。ServerA想直接訪問到ServerB連接的私有網絡

                                          |

+-----------+   外網       +-------------+ |兩個機器通過內網相互訪問

+  Server A + <----------> +  Server B   + |

+-----------+              +-------------+ |  192.168.200.0/24

111.7.132.43              120.210.196.42  |

實現

通過ip tunnel建立ipip隧道,再通過iptables進行nat,便可以實現。

Step 1. 建立ip隧道

  ServerA配置iptunnel,並給tunnel接口配置上ip

  /sbin/modprobe ip_ipip

  /sbin/ip tun add iptun_hj mode ipip local 111.7.132.43 remote 120.210.196.42 ttl 32

  /sbin/ifconfig iptun_hj 192.168.200.1/24 up

 ServerB配置iptunnel,並給tunnel接口配置上ip

  /sbin/modprobe ip_ipip

  /sbin/ip tun add hj_iptun mode ipip local  120.210.196.42 remote 111.7.132.43 ttl 32

  /sbin/ifconfig hj_iptun 192.168.200.2/24 up

隧道配置完成後,請在ServerA上192.168.200.2,看是否可以ping通,ping通則繼續,ping不通需要再看一下上面的命令執行是否有報錯


Step 2. 添加路由和nat

ServerA上,添加到192.168.200.0/30的路由

/sbin/route add -net 192.168.200.0/24 gw 192.168.200.2

ServerB上,添加iptables nat,將ServerA過了訪問192.168.200.0/24段的包進行NAT,並開啓ip foward功能

  iptables -t nat -I POSTROUTING -s 192.168.200.0/24  -j MASQUERADE

  echo "1" > /proc/sys/net/ipv4/ip_forward

或者:

  sysctl -w net.ipv4.ip_forward=1

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


至此,完成了兩端的配置,ServerA可以直接訪問ServerB 所接的私網了。


需要特定網絡走私網出去,需要使用到ip rule和ip route.





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