公司内网与机房内网互通解决方案20130106

公司内网与机房内网互通解决方案20130106

公司内网对外互通采用在公司出口路由器pfsense上做端口映射的方式,本文主要介绍在机房那边的设置方法。

本方案的优点:简单、对用户透明、控制性/扩展性强、零成本(节约机房公网ip、硬件资源)、不改变现有网络结构,可以完美解决公司内网与机房内网互通问题。
本方案的缺点:需要用户记住对应关系。


公司出口IP:1.65.148.6


0、查看NAT主机的信息
[root@60 ~]# ifconfig
eth0      Link encap:Ethernet  HWaddr D4:AE:52:9A:A1:E0 
          inet addr:172.16.1.60  Bcast:172.16.1.255  Mask:255.255.255.0
          inet6 addr: fe80::d6ae:52ff:fe9a:a1e0/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1014369055 errors:0 dropped:0 overruns:0 frame:0
          TX packets:730213487 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:89201576538 (83.0 GiB)  TX bytes:167848900868 (156.3 GiB)
          Interrupt:82 Memory:da000000-da012800

eth1      Link encap:Ethernet  HWaddr D4:AE:52:9A:A1:E1 
          inet addr:2.2.2.108  Bcast:2.2.2.127  Mask:255.255.255.224
          inet6 addr: fe80::d6ae:52ff:fe9a:a1e1/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:589962437 errors:0 dropped:250980 overruns:0 frame:0
          TX packets:416034185 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:85820919214 (79.9 GiB)  TX bytes:71968638871 (67.0 GiB)
          Interrupt:90 Memory:dc000000-dc012800

[root@60 ~]# iptables -L -n -t nat
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination        
DNAT       tcp  --  0.0.0.0/0            2.2.2.108      tcp dpt:3361 to:172.16.1.61:3306
DNAT       tcp  --  0.0.0.0/0            2.2.2.108      tcp dpt:3364 to:172.16.1.64:3306

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination        
MASQUERADE  all  --  172.16.1.61         0.0.0.0/0          
MASQUERADE  all  --  172.16.1.63         0.0.0.0/0          
MASQUERADE  all  --  172.16.1.64         0.0.0.0/0          
MASQUERADE  all  --  172.16.1.56         0.0.0.0/0          

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination 


1、开启ip转发
[root@60 ~]# echo "1" >/proc/sys/net/ipv4/ip_forward

或者写入配置文件(推荐)
[root@60 ~]# vim /etc/sysctl.conf
# Controls IP packet forwarding
net.ipv4.ip_forward = 1

2、代理内网指定服务器访问互联网
[root@60 ~]# iptables -t nat -A POSTROUTING -o eth1 -s 172.16.1.61/32 -j MASQUERADE
[root@60 ~]# iptables -t nat -A POSTROUTING -o eth1 -s 172.16.1.63/32 -j MASQUERADE
[root@60 ~]# iptables -t nat -A POSTROUTING -o eth1 -s 172.16.1.64/32 -j MASQUERADE
[root@60 ~]# iptables -t nat -A POSTROUTING -o eth1 -s 172.16.1.56/32 -j MASQUERADE

3、内网需要访问互联网的指定服务器设置默认网关为172.16.1.60
[root@mongo25 ~]# more /etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=mongo25
GATEWAY=172.16.1.60

在内网指定服务器172.16.1.56测试:
# ping 8.8.8.8


4、端口映射,对外网开放内部服务器的指定端口
允许公司187访问61和64的3306端口
[root@60 ~]# iptables -t nat -A PREROUTING -p tcp -d 2.2.2.108 --dport 7961 -j DNAT --to 172.16.1.61:6379
[root@60 ~]# iptables -t nat -A PREROUTING -p tcp -d 2.2.2.108 --dport 3361 -j DNAT --to 172.16.1.61:3306
[root@60 ~]# iptables -t nat -A PREROUTING -p tcp -d 2.2.2.108 --dport 3364 -j DNAT --to 172.16.1.64:3306

route add default gw 172.16.1.60


在公司内网服务器测试
[root@vm ~]# mysql -uroot -p -h2.2.2.108 -P3361


5、将以上步骤放到开机启动脚本里
[root@60 ~]# more /usr/local/sbin/fw.sh
#!/bin/bash

# Stop iptables service first
service iptables stop


#代理内网指定服务器访问互联网
/sbin/iptables -t nat -A POSTROUTING -o eth1 -s 172.16.1.61/32 -j MASQUERADE
/sbin/iptables -t nat -A POSTROUTING -o eth1 -s 172.16.1.63/32 -j MASQUERADE
/sbin/iptables -t nat -A POSTROUTING -o eth1 -s 172.16.1.64/32 -j MASQUERADE
/sbin/iptables -t nat -A POSTROUTING -o eth1 -s 172.16.1.56/32 -j MASQUERADE

#3端口映射对外网开放内部服务器的指定端口
#允许公司187访问61和64的3306端口
/sbin/iptables -t nat -A PREROUTING -p tcp -d 2.2.2.108 --dport 3361 -j DNAT --to 172.16.1.61:3306
/sbin/iptables -t nat -A PREROUTING -p tcp -d 2.2.2.108 --dport 3364 -j DNAT --to 172.16.1.64:3306

你可能感兴趣的:(公司内网与机房内网互通解决方案20130106)